U
    »mœdµ% ã                   @   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   úX/home/sam/Atlas/atlas_env/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=   )Ú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                     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   éÿÿÿÿ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|ˆ Žƒf ‘qS r0   ©r=   r   Úhyp2f1©rV   r.   ©Úkwr0   r1   rW   ‰   s     r   ©r   r    r   rg   ç»½×Ùß|Û=r:   )ÚlistÚ	itertoolsÚproductÚdictr!   r(   Úfloat_r   r)   rz   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   rg   r   )çUUUUUUÕ?gUUUUUUå?g«ªªªªªê?g      ë?)ç      Ð?rE   g      è?gX¤<Ýšï?)r   rt   éýÿÿÿrg   )r   rŠ   rt   rg   )r   rb   rb   rg   )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   ¨   s     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�   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›   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   ¿   s     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 ]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      À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 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    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  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”   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 }}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   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  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 )Nrr   éóÿÿÿrg   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¾   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 5 Q R X 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   ½  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©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     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ê   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   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   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"   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 )
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    
ÿ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 r1  r2  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 r1  r2  r  r0   r0   r1   rM   ´  rN   z4TestSystematic.test_airyai_complex.<locals>.<lambda>)r   r   r8  r   r9  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    r2  r  r0   r0   r1   rM   º  rN   z2TestSystematic.test_airyai_prime.<locals>.<lambda>c                 S   s   t j| dd�S ©Nr    )Z
derivative©r   r8  r  r0   r0   r1   rM   º  s    r3  r4  r5  r:   c                 S   s   t  | ¡d S r=  r2  r  r0   r0   r1   rM   ¾  rN   c                 S   s   t j| dd�S r>  r?  r  r0   r0   r1   rM   ¾  s    r6  r7  ©r   r
   r9  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=  r2  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   r9  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  r2  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    r3  r4  r5  r:   c                 S   s   t  | ¡d S r  r2  r  r0   r0   r1   rM   Í  rN   c                 S   s
   t  | ¡S rG   rD  r  r0   r0   r1   rM   Í  s    r6  r7  r@  r9  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  r2  r  r0   r0   r1   rM   Ò  rN   z4TestSystematic.test_airybi_complex.<locals>.<lambda>c                 S   s
   t  | ¡S rG   rD  r  r0   r0   r1   rM   Ò  s    rB  r9  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   r2  r  r0   r0   r1   rM   Ø  rN   z2TestSystematic.test_airybi_prime.<locals>.<lambda>c                 S   s   t j| dd�S r>  rD  r  r0   r0   r1   rM   Ø  s    r3  r4  r5  r:   c                 S   s   t  | ¡d S rG  r2  r  r0   r0   r1   rM   Ü  rN   c                 S   s   t j| dd�S r>  rD  r  r0   r0   r1   rM   Ü  s    r6  r7  r@  r9  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 rG  r2  r  r0   r0   r1   rM   á  rN   z:TestSystematic.test_airybi_prime_complex.<locals>.<lambda>c                 S   s   t j| dd�S r>  rD  r  r0   r0   r1   rM   á  s    rB  r9  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 r1  )r   ÚbeiÚHYPERKWr  r0   r0   r1   rM   ç  rN   z)TestSystematic.test_bei.<locals>.<lambda>r6  r7  )r   r)   rJ  r   r
   r9  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 r1  )r   ÚberrK  r  r0   r0   r1   rM   ì  rN   z)TestSystematic.test_ber.<locals>.<lambda>r6  r7  )r   r)   rM  r   r
   r9  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   rO  rÊ   rP  r0   r0   r1   rM   ñ  rN   r   iÈ2  r¥   ©r;   rA   )r   r   r9  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   ÚbesselirK  rK   r0   r0   r1   rM   ÷  rN   z-TestSystematic.test_besseli.<locals>.<lambda>ç}Ã”%­I²Ôç}Ã”%­I²TgJD¼îÉçà©rk   )r   r)   Úivr   r
   r9  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)   rX  rJ   rK   r0   r0   r1   rM   ü  rN   z5TestSystematic.test_besseli_complex.<locals>.<lambda>c                 S   s   t j| |ftŽS rG   rS  rK   r0   r0   r1   rM   ý  rN   rU  rV  ©r   r   r
   r   r9  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   ÚbesseljrK  rK   r0   r0   r1   rM     rN   z-TestSystematic.test_besselj.<locals>.<lambda>rU  rV  r6  r7  T©r§   c                 S   s   t j| |ftŽS rG   r\  rK   r0   r0   r1   rM     rN   r3  r4  r5  )r§   r;   )r   r)   Újvr   r
   r9  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   rZ  r9  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&  r9  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 rb  )	r   r)   Úknr   rf  r   r
   r!   r&  r9  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)   re  rJ   rK   r0   r0   r1   rM     rN   z5TestSystematic.test_besselk_complex.<locals>.<lambda>c                 S   s   t j| |ftŽS rG   )r   rf  rK  rK   r0   r0   r1   rM      rN   rU  rV  rZ  r9  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   ÚbesselyrK  r±   r!   r&  ÚsignÚnan©rL   rB   r-   r0   r0   r1   Ú	mpbessely$  s    z.TestSystematic.test_bessely.<locals>.mpbesselyrU  rV  r3  r4  éˆ  rP  )r   r)   Úyvr   r
   ©r:  rp  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 )Nrk  r“   r”   )	r&   r   rl  rK  r±   r!   r–   r&  rm  ro  r0   r0   r1   rp  3  s
    z6TestSystematic.test_bessely_complex.<locals>.mpbesselyc                 S   s   t  | j|¡S rG   )r)   rr  rJ   rK   r0   r0   r1   rM   :  rN   z5TestSystematic.test_bessely_complex.<locals>.<lambda>i˜:  rP  rZ  rs  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 r1  )r=   r   rl  r±   r!   rn  ro  r0   r0   r1   rp  @  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>ru   éè  r3  r4  ©r   r   r   r
   rs  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!   rn  r±   r=   r%   r   r×   )ro   rn   Únonzero©Ú
bad_pointsr0   r1   r×   M  s    (z&TestSystematic.test_beta.<locals>.betac                    s   ˆ | |dd�S ©NT)ry  r0   rØ   )r×   r0   r1   rM   ]  rN   z*TestSystematic.test_beta.<locals>.<lambda>rÖ   T©r¼   r§   ç•dyáý¥=)r¼   r§   rk   )F)r   r)   r×   r
   r!   r(   r9  r0   )r{  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©ro   rn   rB   r0   r0   r1   rM   k  rN   z-TestSystematic.test_betainc.<locals>.<lambda>)r   r)   r  r   r   r
   r9  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 )Nr4  r    rh   )r±   r!   rn  r=   rw   r%   r   Úbinomial)rA   Úkry  rz  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¼   rk   )F)r   r)   Zbinomr
   r!   r(   r9  r0   )r{  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   ÚchebytrK  rˆ  r0   r0   r1   rM   �  rN   r3   r„  rw  r9  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‰  rK  rˆ  r0   r0   r1   rM   “  rN   z,TestSystematic.test_chebyt.<locals>.<lambda>é›ÿÿÿée   é'  rP  )r   r)   r‡  r
   r9  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   ÚchebyurK  rˆ  r0   r0   r1   rM   ˜  rN   r3   r„  rw  r9  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’  rK  rˆ  r0   r0   r1   rM   ž  rN   z,TestSystematic.test_chebyu.<locals>.<lambda>r�  rŽ  )r   r)   r‘  r
   r9  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   ©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>.chir3  r4  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>.cir3  r4  )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>.cir3  r4  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   rc  )	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   rc  )r   r   r   r  r   r9  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
   r9  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
   r9  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 )Nr3  r4  r~  r:   éÎÿÿÿr3   é«   r   rŠ   r   é=   r¶   r   iÝÿÿÿr�  y                )r   r)   r¬  r   r­  r   r&   r!   r&  r#   r¿   r"   rÀ   r9  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   Úisinfr9  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&  r9  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   r9  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
   r9  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
   r9  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 )Nr3  r4  r¥   r:   )	r   r)   r*   r   r'   r   r&   r!   r&  r9  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‘   ©rn   )r   r)   Úelliper   r
   r9  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 )Nr6  r7  r‘   rÄ  ©r   r)   Z	ellipeincr   rÅ  r
   r9  r0   r0   r1   Útest_ellipeinc!  s    þzTestSystematic.test_ellipeincc                 C   s   t tjtjtƒ tƒ gƒ d S rG   rÇ  r9  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 ©Nr6  r7  ©r   r)   Ú	ellipkincr   Zellipfr
   r9  r0   r0   r1   Útest_ellipf+  s    þzTestSystematic.test_ellipfc                 C   s   t tjtjtƒ tƒ gƒ d S rG   rË  r9  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        )ro   rÖ   r„  )r   r)   r  r   r
   Zellipkm1r9  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 r1  ©r   Zellippi©Úphir  r0   r0   r1   rÌ  ?  s    z0TestSystematic.test_ellipkinc.<locals>.ellipkincr6  r7  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 r1  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 r1  r  r  r0   r0   r1   rM   Y  rN   z1TestSystematic.test_ellipfun_sn.<locals>.<lambda>ç    €„.Áç    €„.Ar   r    rØ   r%  r:   r@  )r:  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@  r9  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@  r9  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
   r9  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   rP  )r   r)   r·   r   r9  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
   r9  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   rP  )r   r)   rº   r   r   r9  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   rP  )r   r)   Úerfir   r
   r9  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   r9  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   rP  )r   r)   Úndtrr   r
   r9  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Ö   rP  )r   r)   rè  r   r&   r9  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
   r9  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&   r9  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eulerrP  r0   r0   r1   rM      rN   z.TestSystematic.test_eulernum.<locals>.<lambda>r    r�  rP  )r   r   Zeulernumr   r9  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&  r9  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 r1  ©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
   r9  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   r9  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   Å  rN   z.TestSystematic.test_gammainc.<locals>.<lambda>r   ç     ˆÃ@F©Úinclusive_ar~  rc  )r   r)   r  r
   r9  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)ro   r   rÿ  )r/   ro   r0   r0   r1   rM   Ì  rN   z/TestSystematic.test_gammaincc.<locals>.<lambda>r   r   Fr  r~  rc  )r   r)   Z	gammainccr
   r9  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
   )r:  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
   r9  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 )
NrV  r   r‘   r    r   rr   z1e-50z0.0ç\žç4@Iþw)	r±   r!   rn  r   r	  r=   rÊ   r¶  r&  ©rA   ro   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"   )r:  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   ro   rB   r0   r0   r1   rM     rN   z8TestSystematic.test_gegenbauer_complex.<locals>.<lambda>r   r7   )r   r   r   r	  r   r
   r   r9  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>r6  r7  )r   r   r   r	  r
   r   r9  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   Úhankel1rK  ©rL   rB   r0   r0   r1   rM     s   
ÿz-TestSystematic.test_hankel1.<locals>.<lambda>ç@Œµx¯Äç@Œµx¯D)r   r)   r  r   r
   r9  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   Úhankel2rK  r  r0   r0   r1   rM   !  rN   z-TestSystematic.test_hankel2.<locals>.<lambda>r  r  )r   r)   r  r   r
   r9  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
   r9  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   ©ro   rB   ©ZKWr0   r1   rM   1  rN   z,TestSystematic.test_hyp0f1.<locals>.<lambda>rº  r»  r   g     jø@rq  rP  )rƒ   r   r)   rI   r
   r9  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tŽS rG   )r   rI   rK  r  r0   r0   r1   rM   ;  rN   rŽ   r   iˆÿÿÿrF   )r   r   r
   r   r&   r9  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   rd  )r   r)   r  r
   )r:  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  rK  r€  r0   r0   r1   rM   S  rN   r6  r7  iÐ  rP  )r   r   r   r
   r   r9  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)   rz   rJ   ©ro   rn   rx   rB   r0   r0   r1   rM   Z  rN   z4TestSystematic.test_hyp2f1_complex.<locals>.<lambda>c                 S   s   t j| |||ftŽS rG   )r   rz   rK  r$  r0   r0   r1   rM   [  rN   g      YÀg      Y@r   rP  rZ  r9  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   rm   rK  r€  r0   r0   r1   rM   b  rN   z,TestSystematic.test_hyperu.<locals>.<lambda>)r   r)   rm   r   r
   r9  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
   )r:  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 ©Nr6  r7  r3  r4  r5  r:   )r   r)   Zj0r   r
   r9  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
   r9  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   ÚjacobirK  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tŽS rG   r-  r$  r0   r0   r1   rM   �  rN   )r   r)   r0  r   r
   r   r9  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   ro   rn   rB   r0   r0   r1   r.  ’  s    z.TestSystematic.test_jacobi_int.<locals>.jacobic                 S   s   t  t| ƒ|||¡S rG   r/  r2  r0   r0   r1   rM   —  rN   z0TestSystematic.test_jacobi_int.<locals>.<lambda>c                    s   t ˆ ƒ| |||ftŽS rG   )r   rK  r2  ©r.  r0   r1   rM   ˜  rN   é N  r3   rñ  ©r   r   r
   r9  r0   r3  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   ÚkeirK  rž   r0   r0   r1   r7  �  s    
z$TestSystematic.test_kei.<locals>.keiçêŒ 9Y>)ÆçêŒ 9Y>)Frv  rP  )r   r)   r7  r
   )r:  r7  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 r1  )r   ÚkerrK  rž   r0   r0   r1   rM   ¨  rN   z)TestSystematic.test_ker.<locals>.<lambda>r8  r9  rv  rP  )r   r)   r;  r   r
   r9  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laguerrerK  rˆ  r0   r0   r1   rM   ®  rN   z.TestSystematic.test_laguerre.<locals>.<lambda>)r   r   r)   Úeval_laguerrer
   r9  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   r4  rP  r5  r9  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   rA  r0   r0   r1   rM   ¹  rN   r   r   r9   F©r;   rd  )r   r   r!   r&  r   r9  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
   )r:  Zmaxgammarû  r0   rD  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
   r9  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)   rH  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   rI  rK  rˆ  r0   r0   r1   rM   Ú  rN   r4  rP  c                 S   s   t  t| ƒ|¡S rG   rK  rˆ  r0   r0   r1   rM   ß  rN   c                 S   s   t tjƒ| |ftŽS rG   rL  rˆ  r0   r0   r1   rM   à  rN   rù   r  r`   )r   r   r
   r   r!   r"   r9  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   ©rr   rr   ç)�#ÊåÈv)	r)   ZlpmnÚ
ValueErrorr!   rn  r±   r&  rm  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 )NrO  )r)   rÐ   r±   r!   r&  rm  rJ   rQ  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   ©ÚtyperO  )rÊ   r   r'  rm  r±   r!   rn  r   rË   r&  rJ   )rA   r  r/   ÚtyprL   r0   r0   r1   rË   õ  s    
z*TestSystematic.test_legenp.<locals>.legenpr  r7   rr   r    r   rW  r5  )r:  rR  rS  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   rT  r   rN  ©r)   ZclpmnrJ   rP  r!   rn  ©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   rT  ©r±   r!   rn  r   r   rË   rÊ   rJ   rY  r0   r0   r1   rË     s    z4TestSystematic.test_legenp_complex_2.<locals>.legenprt   r¤   rD   r   r5  rE   rŒ   r`   ç     @Ÿ@r6  çÍÌÌÌÌÌô?r   rr   r    r   r   rÇ   rª   rQ  ©r!   r(   rÀ   r   r   ©r:  rZ  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 )Nrg   rT  r   rN  rX  rY  r0   r0   r1   rZ  /  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   rT  r\  rY  r0   r0   r1   rË   5  s    z4TestSystematic.test_legenp_complex_3.<locals>.legenprt   r¤   rD   r   r5  rE   rŒ   r`   r]  r6  r^  r   rr   r    r   r   rÇ   rª   rQ  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   rN  )r)   ÚlqmnrY  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 r[  )r±   r!   rn  r   r   ÚlegenqrY  r0   r0   r1   rf  K  s    z*TestSystematic.test_legenq.<locals>.legenqr   r7   r5  ©r:  re  rf  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 rc  )r)   rd  rÊ   rJ   rY  r0   r0   r1   re  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 r[  )r±   r!   rn  r   r   rf  rÊ   rJ   rY  r0   r0   r1   rf  Z  s    z2TestSystematic.test_legenq_complex.<locals>.legenqr   r7   rP  )r   r   r   rg  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
   )r:  r©  rk  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ß   rP  r&   r!   rn  )r/   rP   r0   r0   r1   Úmpmath_loggammat  s
    z5TestSystematic.test_loggamma.<locals>.mpmath_loggammaFrá   )rd  Zdistinguish_nan_and_infr;   )r   r)   rß   r   )r:  rm  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 r1  )r)   Zpbdvr  r0   r0   r1   Úpcfd‚  s    z&TestSystematic.test_pcfd.<locals>.pcfdc                 S   s   t j| |ftŽS rG   )r   ro  rK  r  r0   r0   r1   rM   …  rN   z*TestSystematic.test_pcfd.<locals>.<lambda>)r   r   r
   )r:  ro  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 r1  )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   rq  rK  r  r0   r0   r1   rM   �  rN   z*TestSystematic.test_pcfv.<locals>.<lambda>rv  rP  r@  )r:  rq  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 r1  ©r)   Zpbwar  r0   r0   r1   Úpcfw‘  s    z&TestSystematic.test_pcfw.<locals>.pcfwc                 S   s   t  | |¡d S r=  rs  r  r0   r0   r1   Údpcfw”  s    z'TestSystematic.test_pcfw.<locals>.dpcfwc                 S   s   t  t j| |fd¡S )Nr8   )r   Údiffrt  r  r0   r0   r1   Úmpmath_dpcfw—  s    z.TestSystematic.test_pcfw.<locals>.mpmath_dpcfwr^   r_   g:Œ0âŽyU>r7   rQ  g•Ö&è.!>)r   r   rt  r
   )r:  rt  ru  rw  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   rv  )r   r)   Z	polygammar   r   r   r   r
   r9  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Ààÿÿrq  FT)rA   rd  r§   )r   r)   rë   r   r
   r!   r&  r9  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   r9  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 )Nrq   c                 S   sN   t | | ƒt| | ƒkrBt | | ƒdkrBt | ¡} t| | ƒ|  }t | |¡S r1  )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_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›+¡†›„=rc  )r   r   r   r  r   r9  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 r1  r•  rž   r0   r0   r1   ÚshiÙ  s    z$TestSystematic.test_shi.<locals>.shir—  r˜  r™  )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 r1  r•  r  r0   r0   r1   rƒ  à  s    z,TestSystematic.test_shi_complex.<locals>.shir3  r4  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 r1  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 r1  r�  r  r0   r0   r1   r‡  î  s    z*TestSystematic.test_si_complex.<locals>.sir3  r4  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!   rn  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
   r9  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   rv  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   rd  )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Ò   FrB  )r   r)   r(  r   r9  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
   r9  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   Fri   rc  )r   r)   r�  r
   r9  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é-   ri   )rd  r¼   r;   )r   r)   Zzetacr
   r9  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 r1  ©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
   )r:  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_boxcox1prr   Frœ  r6   r¾  r9   rî  )r   r)   Zboxcox1pr   r
   )r:  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   r3  r4  rø   r„  rw  ©r:  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¬  rl  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„  rw  ©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¬  rT  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…  rw  ©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   rf  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„  rw  ©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¬  rf  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<  rA  rC  rE  rF  rH  rI  rL  rN  rR  rY  r[  r`  ra  rg  ri  rj  rt  ru  rx  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,  r1  r6  r:  r<  r?  r@  rC  rG  rJ  rM  rW  ra  rb  rh  ri  rl  rn  rp  rr  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Æ  rÇ  r0   r0   r0   r1   r0  ¥  sB  





		
	
0







	






3






			
	r0  )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]   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-  r.  rƒ   rK  r0  r0   r0   r0   r1   Ú<module>   sª   0 










7
&






