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

    N)assert_assert_allclose)pi)_pep440)MissingModulecheck_versionFuncDataassert_func_equal)
ArgFixedArg
ComplexArgIntArgassert_mpmath_equalnonfunctional_tooslow
trace_argstime_limitedexception_to_nan
inf_to_nan)_sinpi_cospi_lgam1p_lanczos_sum_expg_scaled_log1pmx	_igam_facmpmathz0.10c               	   C   s   g } t dddD ]H}t ddt j dD ].}|t d|  }| |tt|f q*qt j	| t j
d} ttj| dd  d S )	Ni   
   r                    ?Zdtype   )nplogspacelinspacer   expappendcomplexr   eiarrayZcomplex_r   scexpicheck)datasetrpz r0   S/var/www/sunrise/env/lib/python3.9/site-packages/scipy/special/tests/test_mpmath.pytest_expi_complex#   s    r2   z0.19c                  C   s   g } dD ]^}t dddD ]J}td, | ||tt||f W d    q1 sZ0    Y  qqt | } tt	j
| dddd	  d S )
N)2   3   r         d   r   r    r   vIh%<=rtol)r!   r"   r   workdpsr%   floatexpintasarrayr   r)   expnr+   )r,   nxr0   r0   r1   test_expn_large_n3   s    >
rC   c                  C   s   g } g d}|D ]n}|D ]d}|D ]Z}|d|  }t d  tt ||}W d    n1 s`0    Y  | |||f q qqt| } tdd | dddd	  d S )
N)g     Xg      #            ?g      #@g     X@r   x   c                 S   s   t | j|S Nr)   hyp0f1realvr/   r0   r0   r1   <lambda>U       z$test_hyp0f1_gh5764.<locals>.<lambda>r8   r   r9   r:   )	r   r<   r&   rI   r%   r!   r(   r   r+   )r,   ZaxisrL   rB   yr/   resr0   r0   r1   test_hyp0f1_gh5764D   s    .
rQ   c                  C   sF   t ddd} t| d}t dd | D }t||tdd d S )	N         rE   c                 S   s   g | ]}t |d qS )rE   r   rI   ).0rL   r0   r0   r1   
<listcomp>^   rN   z'test_hyp0f1_gh_1609.<locals>.<listcomp>-q=r:   )r!   r#   r)   rI   r(   r   astyper=   )vvafZ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 qqt | } 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                     sx   ddg} | t tjg ddd7 } dd | D } tdd	  fd
d| D }tj|tjd}ttj	|dddd
  d S )N)r   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|i  f qS r0   r=   r   hyp2f1rV   r.   kwr0   r1   rW      rN   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   sn   g d} dd | D }t j|t jd}t jdd( ttj|ddd	d
  W d    n1 s`0    Y  d S )N)r    r   rf   r   )UUUUUU?gUUUUUU?g?g      ?)      ?rE   g      ?gX<ݚ?)r   rs   rf   )r   r   rs   rf   )r   ra   ra   rf   r   )gx&?rq   r]   g333333?)r   r   r   +?)r   r   r   rq   )r   rf   r^   Gz?)rc   rD   rf   r   )r   rd   g      
r   )g*4]92@g|O%@gCu?)  r`   r   )r   r         %@r   )rq   r   r          ?)rq   r   r    rb   )r      r^   r   )r   r   r^   rb   )rE   g     prc   gm˟?c                 S   s    g | ]}|t tj| f qS r0   rx   rz   r0   r0   r1   rW      rN   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   s
    r   0.14c                     sN   g d} dd   fdd| D }t j|t jd}ttj|ddd	d
  d S )N))p   )r4   r   )r   gwJ)r   |r   r   )r   r   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      rN   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 ]f}dD ]\}dD ]R}dD ]H}zt t||||}W n tyR   Y q Y n0 | |||||f q qqqtj| tjd} tjdd* t	t
j| dd	d
dd  W d    n1 s0    Y  d S )N)r   r]   g?r^   r   )g      rq   r    g@)r   r   r^   gffffff4@)r   g)\(Gz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 } }zdt j_ttdddtddd\}}ttdddtddd\}}tj|	 |	 f dtj|	 |	 f   }t
tjd	d
 |ddd t
tjdd
 |ddd W | | t j_t j_n| | t j_t j_0 d S )NF   r   r          ig?r   c                 S   s   t t| S rG   )r&   r   erfr   r0   r0   r1   rM      rN   z"test_erf_complex.<locals>.<lambda>Fr9   
vectorizedr;   c                 S   s   t t| S rG   )r&   r   erfcr   r0   r0   r1   rM     rN   )r   mpdpsprecr!   meshgridr#   r"   r_ravelr	   r)   r   r   )old_dpsold_precx1y1Zx2y2Zpointsr0   r0   r1   test_erf_complex   s    $$0r   z0.15c                     sd  g } dD ]}|  dd|fdd|fdd|fdd|fdd|fdd|fdd|fdd|fdd|fdd	|fd
d|fdd	|fdd|fdd	|fd
d|fdd|fdd|fdd|fd
d|fdd|fdd|fdd|fd
d|fdd|fdd|fdd|fg qdd   fdd| D }tj|tjd}dd }tjdd( t||dd
dd d!  W d    n1 sV0    Y  d S )"N)r   gmư>gL7A`?r    r    rq   rs   g333333?g333333gr   r   rf      r^   r   r]   r   ig @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  rN   ztest_lpmv.<locals>.<listcomp>r   c                 S   s   t | t||S rG   )r)   lpmvrY   r   )r   r   rB   r0   r0   r1   evf9  s    ztest_lpmv.<locals>.evfr   r   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 }}zPdt
j_ttjdd |dddd ttjdd |ddd W || t
j_t
j_n|| t
j_t
j_0 d S )Nr   8r6   r5   r   r   rq   r    r   rE   gffffffr   g33333Yg3333r     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  s8    
4r   g?c                  C   s   t tg d } tddtj d}t| |\} }| td|  }tjd| d| f  }dd |D }t|}t	t
j|ddd	d
  d S )N)gg{Gzr   g{Gz?g?r   r   r_   r   r    c                 S   s   g | ]}|t t|fqS r0   r&   r   loggammarV   Zz0r0   r0   r1   rW   y  rN   z3test_loggamma_taylor_transition.<locals>.<listcomp>vIh%,=r:   )LOGGAMMA_TAYLOR_RADIUSr!   r(   r#   r   r   r$   r   flattenr   r)   r   r+   r-   thetadzr/   r,   r0   r0   r1   test_loggamma_taylor_transitionn  s    
r   c                  C   s   t dt td} t ddt j d}t | |\} }| t d|  }t jd| d| f 	 }dd	 |D }t 
|}ttj|ddd
d  d S )Nir   r   r   r_   r   r    c                 S   s   g | ]}|t t|fqS r0   r   r   r0   r0   r1   rW     rN   z(test_loggamma_taylor.<locals>.<listcomp>r   r:   )r!   r"   log10r   r#   r   r   r$   r   r   r(   r   r)   r   r+   r   r0   r0   r1   test_loggamma_taylor  s    
r   c                  C   s   t jt ddd dt dddf } |  }t | |\} }| d|  }t dddddd}|t |f|j  	 }t
d d	d
 |D }W d    n1 s0    Y  t |}ttj|dddd  d S )Nrq   rf   r   r   iVr    r7   c                 S   s   g | ]}|t t|fqS r0   )r&   r   rgammar   r0   r0   r1   rW     rN   z%test_rgamma_zeros.<locals>.<listcomp>rX   r:   )r!   r   r"   copyr   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 d    n1 s0    Y  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     rN   z&test_digamma_roots.<locals>.<listcomp>r    r   r:   )r   Zfindrootr   r=   r%   r!   r(   r   r"   r   r   r   r   r   r<   r   r)   r+   )rootrootsr   r   r   r/   r,   r0   r0   r1   test_digamma_roots  s    

*,
r   c                     s   t tj tddd } tjtddd dtdddf }t| |\} }| d|   }td"  fd	d
|D }W d    n1 s0    Y  t	|}t
tj|dddd  d S )N,  r7   r   r   r^   r   (   c                    s   g | ]}|t  |fqS r0   )r&   r   r   r0   r1   rW     rN   z(test_digamma_negreal.<locals>.<listcomp>r    r9   r:   )r   r   r   r!   r"   r   r   r   r<   r?   r   r)   r+   rB   rO   r/   r,   r0   r   r1   test_digamma_negreal  s    
&0
r   c                  C   s   t ddd } t g d}t | |\} }| d|   }td dd |D }W d    n1 sl0    Y  t |}tt	j
|d	d
dd  d S )Nr   r   r7   )gffffffgg@gffffff@r   r   c                 S   s   g | ]}|t t|fqS r0   r   r   r0   r0   r1   rW     rN   z)test_digamma_boundary.<locals>.<listcomp>r   r    r9   r:   )r!   r"   r(   r   r   r   r<   r?   r   r)   r   r+   r   r0   r0   r1   test_digamma_boundary  s    ,
r   c                  C   s   d} t d|  d|  d}| }t ||\}}| |  }}td$ dd t||D }W d    n1 sx0    Y  t |}t	t
j|ddd	d
  d S )Nr_   rE   r   r3   r7   c              
   S   s*   g | ]"\}}||t tj||d dfqS )T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+   )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     rN   z&test_spence_circle.<locals>.<listcomp>r   r:   )r!   r#   r   outerr$   r   r?   r   r)   r  r+   )r-   r   r/   r,   r0   r	  r1   test_spence_circle  s    r  c                  C   s   t tj} t jt ddd dt dddf }| }t ||\}}|d|  }t ddd	ddd}|t 
|f|j   }t d	d
 |D }tt|ddd|  d  d S )Nr   r   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   sf   t |H t | } t | jt j dt j  }t t | |}W d    n1 sX0    Y  |S r  )r   r<   Zmpcceilimagr   lambertwr$   )r/   r   ZunwindrP   r0   r0   r1   _mpmath_wrightomegaP  s
    
0r"  c            	      C   s4  t ddd } t t jt jg}t t jt j g}t t j t jg}t t j t j g}tdD ]h}|t |d t j |t |d t j  |t |d t j |t |d t j  qht ||||f}t | |\} }| d|  	 }t 
dd |D }ttj|dd	d
d  d S )Nr   r      r3   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    :0yE>r:   )r!   r"   	nextafterr   infranger%   Zhstackr   r   r?   r   r)   wrightomegar+   )	rB   Zpicut_aboveZpicut_belowZnpicut_aboveZnpicut_belowirO   r/   r,   r0   r0   r1   test_wrightomega_branchX  s"    
r,  c                  C   sn   t dd} t ddt j }t | |\} }| d|   }t dd |D }ttj|dddd		  d S )
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    
r0  r6   ZmaxprecZmaxtermsz0.17c                   @   s  e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd Zdd Zdd Zdd  Zd!d" Zd#d$ Zd%d& Zd'd( Zd)d* Zd+d, Zd-d. Zd/d0 Zd1d2 Z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 ZCdd ZDdd ZEdd ZFdd ZGdd ZHdd ZIdd ZJdd ZKdd ZLdd ZMdd ZNdd ZOejjd3ddd ZPdd ZQejjd3ddd ZReSdd ZTdd ZUdd ZVejjd3dd5dd ZWdd ZXdd ZYdd ZZejjd3ddd Z[eSdd Z\ejjd3ddd Z]ej^ddd Z_dd Z`dd Zaejjd3ddd Zbdd Zcdd Zddd ZeeSddĄ ZfddƄ Zgej^dǡddɄ Zhdd˄ ZieSdd̈́ Zjddτ Zkddф Zlddӄ ZmddՄ Znejjd3dd5dd؄ ZoeSddڄ Zpdd܄ Zqddބ Zrejjd3ddd Zsejjd3dd5dd Ztdd Zuejjd3dd5dd Zvdd Zwdd Zxejjdddd Zydd Zzdd Z{dd Z|dd Z}dd Z~dd Zdd Zd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" Ze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>    ח    חAh㈵>r:   c                 S   s   t | d S r3  r4  r  r0   r0   r1   rM     rN        @     @@)r   r   airyair
   selfr0   r0   r1   test_airyai  s    

zTestSystematic.test_airyaic                 C   s   t dd tjt g d S )Nc                 S   s   t | d S r3  r4  r  r0   r0   r1   rM     rN   z4TestSystematic.test_airyai_complex.<locals>.<lambda>)r   r   r:  r   r;  r0   r0   r1   test_airyai_complex  s    z"TestSystematic.test_airyai_complexc                 C   s@   t dd dd tddgdd t dd d	d td
dg d S )Nc                 S   s   t | d S Nr    r4  r  r0   r0   r1   rM     rN   z2TestSystematic.test_airyai_prime.<locals>.<lambda>c                 S   s   t j| ddS Nr    )Z
derivativer   r:  r  r0   r0   r1   rM     s    r5  r6  r7  r:   c                 S   s   t | d S r?  r4  r  r0   r0   r1   rM     rN   c                 S   s   t j| ddS r@  rA  r  r0   r0   r1   rM     s    r8  r9  r   r
   r;  r0   r0   r1   test_airyai_prime  s    

z TestSystematic.test_airyai_primec                 C   s   t dd dd t g d S )Nc                 S   s   t | d S r?  r4  r  r0   r0   r1   rM     rN   z:TestSystematic.test_airyai_prime_complex.<locals>.<lambda>c                 S   s   t j| ddS r@  rA  r  r0   r0   r1   rM     s    r   r   r;  r0   r0   r1   test_airyai_prime_complex  s    z(TestSystematic.test_airyai_prime_complexc                 C   s@   t dd dd tddgdd t dd d	d td
dg d S )Nc                 S   s   t | d S r  r4  r  r0   r0   r1   rM     rN   z,TestSystematic.test_airybi.<locals>.<lambda>c                 S   s
   t | S rG   r   Zairybir  r0   r0   r1   rM     s    r5  r6  r7  r:   c                 S   s   t | d S r  r4  r  r0   r0   r1   rM     rN   c                 S   s
   t | S rG   rF  r  r0   r0   r1   rM     s    r8  r9  rB  r;  r0   r0   r1   test_airybi  s    

zTestSystematic.test_airybic                 C   s   t dd dd t g d S )Nc                 S   s   t | d S r  r4  r  r0   r0   r1   rM     rN   z4TestSystematic.test_airybi_complex.<locals>.<lambda>c                 S   s
   t | S rG   rF  r  r0   r0   r1   rM     s    rD  r;  r0   r0   r1   test_airybi_complex  s    z"TestSystematic.test_airybi_complexc                 C   s@   t dd dd tddgdd t dd d	d td
dg d S )Nc                 S   s   t | d S Nrf   r4  r  r0   r0   r1   rM     rN   z2TestSystematic.test_airybi_prime.<locals>.<lambda>c                 S   s   t j| ddS r@  rF  r  r0   r0   r1   rM     s    r5  r6  r7  r:   c                 S   s   t | d S rI  r4  r  r0   r0   r1   rM     rN   c                 S   s   t j| ddS r@  rF  r  r0   r0   r1   rM     s    r8  r9  rB  r;  r0   r0   r1   test_airybi_prime  s    

z TestSystematic.test_airybi_primec                 C   s   t dd dd t g d S )Nc                 S   s   t | d S rI  r4  r  r0   r0   r1   rM     rN   z:TestSystematic.test_airybi_prime_complex.<locals>.<lambda>c                 S   s   t j| ddS r@  rF  r  r0   r0   r1   rM     s    rD  r;  r0   r0   r1   test_airybi_prime_complex  s    z(TestSystematic.test_airybi_prime_complexc                 C   s"   t tjtdd tddg d S )Nc                 S   s   t jd| fi tS r3  )r   beiHYPERKWr  r0   r0   r1   rM     rN   z)TestSystematic.test_bei.<locals>.<lambda>r8  r9  )r   r)   rL  r   r
   r;  r0   r0   r1   test_bei  s    

zTestSystematic.test_beic                 C   s"   t tjtdd tddg d S )Nc                 S   s   t jd| fi tS r3  )r   berrM  r  r0   r0   r1   rM     rN   z)TestSystematic.test_ber.<locals>.<lambda>r8  r9  )r   r)   rO  r   r
   r;  r0   r0   r1   test_ber  s    

zTestSystematic.test_berc                 C   s&   t dd dd tddgddd d S )Nc                 S   s   t t| t|  S rG   )r)   	bernoullir   rA   r0   r0   r1   rM     rN   z/TestSystematic.test_bernoulli.<locals>.<lambda>c                 S   s   t tt| S rG   )r=   r   rQ  r   rR  r0   r0   r1   rM     rN   r   i2  r   r;   rA   )r   r   r;  r0   r0   r1   test_bernoulli  s
    
zTestSystematic.test_bernoullic                 C   s*   t tjtdd tddt gdd d S )Nc                 S   s   t j| |fi tS rG   r   besselirM  rK   r0   r0   r1   rM     rN   z-TestSystematic.test_besseli.<locals>.<lambda>}Ô%I}Ô%ITgJDrj   )r   r)   ivr   r
   r;  r0   r0   r1   test_besseli  s
    
zTestSystematic.test_besselic                 C   s(   t dd tdd tddt g d S )Nc                 S   s   t | j|S rG   )r)   rZ  rJ   rK   r0   r0   r1   rM     rN   z5TestSystematic.test_besseli_complex.<locals>.<lambda>c                 S   s   t j| |fi tS rG   rU  rK   r0   r0   r1   rM     rN   rW  rX  r   r   r
   r   r;  r0   r0   r1   test_besseli_complex  s    
z#TestSystematic.test_besseli_complexc                 C   sZ   t tjtdd tddtddgdd t tjtd	d tddtd
dgddd d S )Nc                 S   s   t j| |fi tS rG   r   besseljrM  rK   r0   r0   r1   rM     rN   z-TestSystematic.test_besselj.<locals>.<lambda>rW  rX  r8  r9  Tr   c                 S   s   t j| |fi tS rG   r^  rK   r0   r0   r1   rM     rN   r5  r6  r7  )r   r;   )r   r)   jvr   r
   r;  r0   r0   r1   test_besselj   s    

zTestSystematic.test_besseljc                 C   s$   t dd tdd t t g d S )Nc                 S   s   t | j|S rG   )r)   ra  rJ   rK   r0   r0   r1   rM     rN   z5TestSystematic.test_besselj_complex.<locals>.<lambda>c                 S   s   t j| |fi tS rG   r^  rK   r0   r0   r1   rM     rN   r\  r;  r0   r0   r1   test_besselj_complex  s    

z#TestSystematic.test_besselj_complexc                 C   s,   t tjtjtddtdtjgddd d S Nr   r6   r   FrX   nan_okr;   )r   r)   kvr   besselkr
   r!   r(  r;  r0   r0   r1   test_besselk  s
    zTestSystematic.test_besselkc                 C   s,   t tjtjtddtdtjgddd d S rd  )	r   r)   knr   rh  r   r
   r!   r(  r;  r0   r0   r1   test_besselk_int  s
    zTestSystematic.test_besselk_intc                 C   s(   t dd tdd tddt g d S )Nc                 S   s   t | j|S rG   )r)   rg  rJ   rK   r0   r0   r1   rM     rN   z5TestSystematic.test_besselk_complex.<locals>.<lambda>c                 S   s   t j| |fi tS rG   )r   rh  rM  rK   r0   r0   r1   rM      rN   rW  rX  r\  r;  r0   r0   r1   test_besselk_complex  s    
z#TestSystematic.test_besselk_complexc                 C   s2   dd }t tjt|tddtddgdd d S )	Nc                 S   sR   t tj| |fi t}t|dkr4tjt| }t|dkrN|dkrNtjS |S )NقnQ:Br   )	r=   r   besselyrM  r   r!   r(  signnanrL   rB   r-   r0   r0   r1   	mpbessely$  s    z.TestSystematic.test_bessely.<locals>.mpbesselyrW  rX  r5  r6    rR  )r   r)   yvr   r
   r<  rr  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   sd   t tj| |fi t}t|dkr`tjdd  tjt| }W d    n1 sV0    Y  |S )Nrm  r   r   )	r&   r   rn  rM  r   r!   r   r(  ro  rq  r0   r0   r1   rr  3  s
    .z6TestSystematic.test_bessely_complex.<locals>.mpbesselyc                 S   s   t | j|S rG   )r)   rt  rJ   rK   r0   r0   r1   rM   :  rN   z5TestSystematic.test_bessely_complex.<locals>.<lambda>i:  rR  r\  ru  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 r3  )r=   r   rn  r   r!   rp  rq  r0   r0   r1   rr  @  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     r5  r6  r   r   r   r
   ru  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   mr   r    )r!   rp  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)r{  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(   r;  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rn   rm   rB   r0   r0   r1   rM   k  rN   z-TestSystematic.test_betainc.<locals>.<lambda>)r   r)   r  r   r   r
   r;  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 )Nr6  r    rg   )r   r!   rp  r=   rv   r%   r   binomial)rA   kr{  r|  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(   r;  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i tS rG   )r   chebytrM  r  r0   r0   r1   rM     rN   r3   r  ry  r;  r0   r0   r1   test_chebyt_int  s    
zTestSystematic.test_chebyt_intFz'some cases in hyp2f1 not fully accurate)runreasonc                 C   s&   t tjdd tddt gdd d S )Nc                 S   s   t  ttj| |fi tS rG   )r   r   r   r  rM  r  r0   r0   r1   rM     rN   z,TestSystematic.test_chebyt.<locals>.<lambda>e   '  rR  )r   r)   r  r
   r;  r0   r0   r1   test_chebyt  s    zTestSystematic.test_chebytc                 C   s(   t dd tdd t t gdd d S )Nc                 S   s   t t| |S rG   )r)   eval_chebyur   r  r0   r0   r1   rM     rN   z0TestSystematic.test_chebyu_int.<locals>.<lambda>c                 S   s   t j| |fi tS rG   )r   chebyurM  r  r0   r0   r1   rM     rN   r3   r  ry  r;  r0   r0   r1   test_chebyu_int  s    
zTestSystematic.test_chebyu_intc                 C   s"   t tjdd tddt g d S )Nc                 S   s   t  ttj| |fi tS rG   )r   r   r   r  rM  r  r0   r0   r1   rM     rN   z,TestSystematic.test_chebyu.<locals>.<lambda>r  r  )r   r)   r  r
   r;  r0   r0   r1   test_chebyu  s    zTestSystematic.test_chebyuc                 C   s6   dd }t |tjt g t |tjtg dg d S )Nc                 S   s   t | d S r?  r)   Zshichir   r0   r0   r1   chi  s    z$TestSystematic.test_chi.<locals>.chigU@X   g   V@)r   r   r  r
   r   r<  r  r0   r0   r1   test_chi  s    zTestSystematic.test_chic                 C   s8   dd }t |tjtttj dttjdgdd d S )Nc                 S   s   t | d S r?  r  r  r0   r0   r1   r    s    z,TestSystematic.test_chi_complex.<locals>.chir5  r6  rX   r:   )r   r   r  r   r&   r!   r(  r  r0   r0   r1   test_chi_complex  s    zTestSystematic.test_chi_complexc                 C   s"   dd }t |tjtddg d S )Nc                 S   s   t | d S r?  r)   Zsicir   r0   r0   r1   ci  s    z"TestSystematic.test_ci.<locals>.cir5  r6  )r   r   r  r
   r<  r  r0   r0   r1   test_ci  s
    
zTestSystematic.test_cic                 C   s8   dd }t |tjttdtj tdtjgdd d S )Nc                 S   s   t | d S r?  r  r  r0   r0   r1   r    s    z*TestSystematic.test_ci_complex.<locals>.cir5  r6  r&  r:   )r   r   r  r   r&   r!   r(  r  r0   r0   r1   test_ci_complex  s    zTestSystematic.test_ci_complexc                 C   s,   t tj}tttjt gdd| d d S NFr   re  )	r!   r  r=   r  r   r   r   r  r
   r<  r  r0   r0   r1   
test_cospi  s
    zTestSystematic.test_cospic                 C   s   t ttjt gddd d S )NFr9   re  )r   r   r   r  r   r;  r0   r0   r1   test_cospi_complex  s    
z!TestSystematic.test_cospi_complexc                 C   s"   t tjttjt gddd d S )NrX   r3   r;   r   )r   r)   r   r   r   r
   r;  r0   r0   r1   test_digamma  s    
zTestSystematic.test_digammac                 C   s,   dd }t tjttjt gdd|d d S )Nc                 S   s$   t | jdk t | jdk @ ddS )Nr   gQ?FT)r!   whererJ   r   r   r  r0   r0   r1   param_filter  s    z9TestSystematic.test_digamma_complex.<locals>.param_filterr9   r   r;   r   r  )r   r)   r   r   r   r   )r<  r  r0   r0   r1   test_digamma_complex  s    
z#TestSystematic.test_digamma_complexc                 C   s   t tjtjt gdd d S )Nr   r:   )r   r)   exp1r   e1r
   r;  r0   r0   r1   test_e1  s    zTestSystematic.test_e1c                 C   s   t tjtjtttj dttjdgdd t tjtjt	dddd d d f tj
dtd	d
dtd	d
d f d   dd t tjtjt	dddd dd d S )Nr5  r6  r  r:   r3      r   r   r   =   r   r   ir  y                )r   r)   r  r   r  r   r&   r!   r(  r#   r   r"   r   r;  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   gW:r   g   mBgyCxDr  r:   )r   r)   Zexprelr
   r!   r   r  doubler   r(   r(  r   isinfr;  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(  r;  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   r;  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
   r;  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
   r;  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 )Nr5  r6  r   r:   )	r   r)   r*   r   r'   r   r&   r!   r(  r;  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
   r;  r0   r0   r1   test_ellipe  s    
zTestSystematic.test_ellipec                 C   s$   t tjtjtddtddg d S )Nr8  r9  r   r  r   r)   Z	ellipeincr   r  r
   r;  r0   r0   r1   test_ellipeinc!  s    zTestSystematic.test_ellipeincc                 C   s   t tjtjt t g d S rG   r  r;  r0   r0   r1   test_ellipeinc_largephi&  s    
z&TestSystematic.test_ellipeinc_largephic                 C   s    t tjtjtddt g d S Nr8  r9  r   r)   	ellipkincr   Zellipfr
   r;  r0   r0   r1   test_ellipf+  s    zTestSystematic.test_ellipfc                 C   s   t tjtjt t g d S rG   r  r;  r0   r0   r1   test_ellipf_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ellipkm1r;  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 r3  r   Zellippiphir  r0   r0   r1   r  ?  s    z0TestSystematic.test_ellipkinc.<locals>.ellipkincr8  r9  r   r  Tr`  r   r)   r  r
   r<  r  r0   r0   r1   test_ellipkinc>  s    zTestSystematic.test_ellipkincc                 C   s*   dd }t tj|t tddgdd d S )Nc                 S   s   t d| |S r3  r  r  r0   r0   r1   r  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 r3  r  r  r0   r0   r1   rM   Y  rN   z1TestSystematic.test_ellipfun_sn.<locals>.<lambda>    .    .Ar   r    r   r&  r:   rB  )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:   rB  r;  r0   r0   r1   test_ellipfun_cn^  s
    zTestSystematic.test_ellipfun_cnc                 C   s.   t dd dd tddtdddgd	d
 d S )Nc                 S   s   t | |d S r  r  r  r0   r0   r1   rM   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:   rB  r;  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
   r;  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   rR  )r   r)   r   r   r;  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
   r;  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   rR  )r   r)   r   r   r   r;  r0   r0   r1   test_erfc_complex{  s    
z TestSystematic.test_erfc_complexc                 C   s   t tjtjt gdd d S Nr6   rR  )r   r)   erfir   r
   r;  r0   r0   r1   	test_erfi  s    zTestSystematic.test_erfic                 C   s   t tjtjt gdd d S r  )r   r)   r  r   r   r;  r0   r0   r1   test_erfi_complex  s    z TestSystematic.test_erfi_complexc                 C   s"   t tjtdd t gdd d S )Nc                 S   s
   t | S rG   )r   ncdfr  r0   r0   r1   rM     rN   z*TestSystematic.test_ndtr.<locals>.<lambda>r6   rR  )r   r)   ndtrr   r
   r;  r0   r0   r1   	test_ndtr  s    
zTestSystematic.test_ndtrc                 C   s0   t tjdd ttddtdddgdd d S )Nc                 S   s   t |  td d S Ng       @)r   r   r!   sqrtr  r0   r0   r1   rM     rN   z2TestSystematic.test_ndtr_complex.<locals>.<lambda>r  r   r   rR  )r   r)   r  r   r&   r;  r0   r0   r1   test_ndtr_complex  s    z TestSystematic.test_ndtr_complexc                 C   s&   t tjtdd t gdddd d S )Nc                 S   s   t t | S rG   )r   r   r  r  r0   r0   r1   rM     rN   z.TestSystematic.test_log_ndtr.<locals>.<lambda>iX  r   r9   rA   r   r;   )r   r)   log_ndtrr   r
   r;  r0   r0   r1   test_log_ndtr  s    
zTestSystematic.test_log_ndtrc                 C   s6   t tjtdd ttddtdddgdd	d
 d S )Nc                 S   s    t t |  td d S r  )r   r   r   r!   r  r  r0   r0   r1   rM     rN   z6TestSystematic.test_log_ndtr_complex.<locals>.<lambda>r  r  r  r7   r   r6   r   rA   r   )r   r)   r  r   r   r&   r;  r0   r0   r1   test_log_ndtr_complex  s    

z$TestSystematic.test_log_ndtr_complexc                 C   s"   t dd tjtddgdd d S )Nc                 S   s   t | d S )Nrq   )r)   ZeulerrR  r0   r0   r1   rM     rN   z.TestSystematic.test_eulernum.<locals>.<lambda>r    r  rR  )r   r   Zeulernumr   r;  r0   r0   r1   test_eulernum  s    zTestSystematic.test_eulernumc                 C   s,   t tjtjtddtdtjgddd d S )Nr   r6   r9      r  )	r   r)   r@   r   r>   r   r
   r!   r(  r;  r0   r0   r1   test_expint  s
    zTestSystematic.test_expintc                 C   s   dd }t |tjt g d S )Nc                 S   s   t | d S r3  r)   Zfresnelr   r0   r0   r1   fresnels  s    z.TestSystematic.test_fresnels.<locals>.fresnels)r   r   r  r
   )r<  r  r0   r0   r1   test_fresnels  s
    zTestSystematic.test_fresnelsc                 C   s   dd }t |tjt g d S )Nc                 S   s   t | d S r?  r  r   r0   r0   r1   fresnelc  s    z.TestSystematic.test_fresnelc.<locals>.fresnelc)r   r   r  r
   )r<  r  r0   r0   r1   test_fresnelc  s
    zTestSystematic.test_fresnelcc                 C   s   t tjttjt g d S rG   )r   r)   gammar   r   r
   r;  r0   r0   r1   
test_gamma  s    zTestSystematic.test_gammac                 C   s    t tjttjt gdd d S Nrh   r:   )r   r)   r  r   r   r   r;  r0   r0   r1   test_gamma_complex  s    z!TestSystematic.test_gamma_complexc                 C   s0   t tjdd tddddtddgddd d S )	Nc                 S   s   t j| |ddS )NTr   r   r  )r/   rm   r0   r0   r1   rM     rN   z.TestSystematic.test_gammainc.<locals>.<lambda>r        @Finclusive_ar  re  )r   r)   r  r
   r;  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  re  )r   r)   Z	gammainccr
   r;  r0   r0   r1   test_gammaincc  s
    zTestSystematic.test_gammainccc                 C   s"   dd }t tjt|t g d S )Nc                 S   s   t | jS rG   r   r   rJ   r  r0   r0   r1   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
   r;  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 rt|tt|krt| |td |}t |tdk rtd}t |d	krtjS |S )
NrX  r   r   r    r   rq   z1e-50z0.0\4@Iw)	r   r!   rp  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    eg    eAi@  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   rn   rB   r0   r0   r1   rM     rN   z8TestSystematic.test_gegenbauer_complex.<locals>.<lambda>r   r7   )r   r   r   r
  r   r
   r   r;  r0   r0   r1   test_gegenbauer_complex  s    z&TestSystematic.test_gegenbauer_complexc                 C   s*   t dd ttjtddt t g d S )Nc                 S   s   t | j|j|S rG   )r)   r	  rJ   r  r0   r0   r1   rM     rN   z@TestSystematic.test_gegenbauer_complex_general.<locals>.<lambda>r8  r9  )r   r   r   r
  r
   r   r;  r0   r0   r1   test_gegenbauer_complex_general  s    z.TestSystematic.test_gegenbauer_complex_generalc                 C   s&   t tjtdd tddt g d S )Nc                 S   s   t j| |fi tS rG   )r   hankel1rM  rL   rB   r0   r0   r1   rM     s   z-TestSystematic.test_hankel1.<locals>.<lambda>@x@xD)r   r)   r  r   r
   r;  r0   r0   r1   test_hankel1  s    
zTestSystematic.test_hankel1c                 C   s&   t tjtdd tddt g d S )Nc                 S   s   t j| |fi tS rG   )r   hankel2rM  r  r0   r0   r1   rM   !  rN   z-TestSystematic.test_hankel2.<locals>.<lambda>r  r  )r   r)   r  r   r
   r;  r0   r0   r1   test_hankel2  s    
zTestSystematic.test_hankel2z%issues at intermediately large ordersc                 C   s&   t dd ttjtddt g d S )Nc                 S   s   t t| |S rG   )r)   Zeval_hermiter   r  r0   r0   r1   rM   &  rN   z-TestSystematic.test_hermite.<locals>.<lambda>r   r  )r   r   r   Zhermiter   r
   r;  r0   r0   r1   test_hermite$  s    zTestSystematic.test_hermitec                    s:   t ddd ttj fddtddtdd	gd
d d S )Nr   i  r1  c                    s   t j| |fi  S rG   rU   rn   rB   ZKWr0   r1   rM   1  rN   z,TestSystematic.test_hyp0f1.<locals>.<lambda>r  r  r   g     j@rs  rR  )r   r   r)   rI   r
   r;  r0   r  r1   test_hyp0f1,  s    
zTestSystematic.test_hyp0f1c              	   C   s8   t dd tdd tddttddtddg d S )Nc                 S   s   t | j|S rG   rH   )rn   r/   r0   r0   r1   rM   :  rN   z4TestSystematic.test_hyp0f1_complex.<locals>.<lambda>c                 S   s   t j| |fi tS rG   )r   rI   rM  r  r0   r0   r1   rM   ;  rN   r   r   irF   )r   r   r
   r   r&   r;  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   s.   zt | ||W S  ty(   tj Y S 0 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   rf  )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i tS rG   )r   r   rM  r  r0   r0   r1   rM   S  rN   r8  r9  i  rR  )r   r   r   r
   r   r;  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i tS rG   )r   ry   rM  r%  r0   r0   r1   rM   [  rN   g      Yg      Y@r   rR  r\  r;  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i tS rG   )r   rl   rM  r  r0   r0   r1   rM   b  rN   z,TestSystematic.test_hyperu.<locals>.<lambda>)r   r)   rl   r   r
   r;  r0   r0   r1   test_hyperu_  s    
zTestSystematic.test_hyperuz:mpmath issue gh-342: unsupported operand mpz, long for powc                 C   s0   dd }t t|tddddtddgdd d S )	Nc                 S   s"   t || t |  t |  S rG   )r   powerr$   r  r  r0   r0   r1   mp_igam_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 Nr8  r9  r5  r6  r7  r:   )r   r)   Zj0r   r
   r;  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
   r;  r0   r0   r1   test_j1}  s    

zTestSystematic.test_j1c                 C   sR   t tjtdd t t t t g t dd tdd t t t t g d S )Nc                 S   s   t j| |||fi tS rG   r   jacobirM  r%  r0   r0   r1   rM     rN   z,TestSystematic.test_jacobi.<locals>.<lambda>c                 S   s   t t| |||S rG   r)   eval_jacobir   )rA   rm   rw   rB   r0   r0   r1   rM     rN   c                 S   s   t j| |||fi tS rG   r.  r%  r0   r0   r1   rM     rN   )r   r)   r1  r   r
   r   r;  r0   r0   r1   test_jacobi  s    

zTestSystematic.test_jacobic                    s:   dd  t dd  fddt t t t gddd d S )	Nc                 S   s   | dkrdS t | |||S )Nr   r   )r   r/  rA   rn   rm   rB   r0   r0   r1   r/    s    z.TestSystematic.test_jacobi_int.<locals>.jacobic                 S   s   t t| |||S rG   r0  r3  r0   r0   r1   rM     rN   z0TestSystematic.test_jacobi_int.<locals>.<lambda>c                    s   t  | |||fi tS rG   )r   rM  r3  r/  r0   r1   rM     rN    N  r3   r  r   r   r
   r;  r0   r4  r1   test_jacobi_int  s    
zTestSystematic.test_jacobi_intc                 C   s&   dd }t tj|tddgdd d S )Nc                 S   s*   | dkrt  d S ttjd| fi tS )Nr   r5   )r   r   r   keirM  r   r0   r0   r1   r8    s    
z$TestSystematic.test_kei.<locals>.keiꌠ9Y>)ꌠ9Y>)Frx  rR  )r   r)   r8  r
   )r<  r8  r0   r0   r1   test_kei  s
    zTestSystematic.test_keic                 C   s&   t tjtdd tddgdd d S )Nc                 S   s   t jd| fi tS r3  )r   kerrM  r   r0   r0   r1   rM     rN   z)TestSystematic.test_ker.<locals>.<lambda>r9  r:  rx  rR  )r   r)   r<  r   r
   r;  r0   r0   r1   test_ker  s    
zTestSystematic.test_kerc                 C   s"   t ttjdd t t g d S )Nc                 S   s   t tj| |fi tS rG   r   r   ZlaguerrerM  r  r0   r0   r1   rM     rN   z.TestSystematic.test_laguerre.<locals>.<lambda>)r   r   r)   eval_laguerrer
   r;  r0   r0   r1   test_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i tS rG   r>  r  r0   r0   r1   rM     rN   r5  rR  r6  r;  r0   r0   r1   test_laguerre_int  s    z TestSystematic.test_laguerre_intzsee gh-3551 for bad pointsc                 C   s4   t dd dd ttj tjtddgddd d S )	Nc                 S   s   t | t|jS rG   )r)   r!  r   rJ   rB   r  r0   r0   r1   rM     rN   z3TestSystematic.test_lambertw_real.<locals>.<lambda>c                 S   s   t | t|jS rG   )r   r!  r   rJ   rB  r0   r0   r1   rM     rN   r   r   r9   Fr;   rf  )r   r   r!   r(  r   r;  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 )NgGase@r    g  E@c                    s   t jddp |  d   | d  }|t jkr>|t|  }n0|  d   d| d   }|t|  }||9 }W d    n1 s0    Y  |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   rE  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
   r;  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)   rI  r   r  r0   r0   r1   rM     rN   z2TestSystematic.test_legendre_int.<locals>.<lambda>c                 S   s   t tj| |fi tS rG   r   r   rJ  rM  r  r0   r0   r1   rM     rN   r5  rR  c                 S   s   t t| |S rG   rL  r  r0   r0   r1   rM     rN   c                 S   s   t tj| |fi tS rG   rM  r  r0   r0   r1   rM     rN   r   r  r_   )r   r   r
   r   r!   r"   r;  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   sV   zt || |d d }W n ty2   tj Y S 0 t|dkrRtjt|j }|S )Nr   rq   rq   )#v)	r)   Zlpmn
ValueErrorr!   rp  r   r(  ro  rJ   rA   r  r/   rL   r0   r0   r1   lpnm  s    z(TestSystematic.test_legenp.<locals>.lpnmc                 S   s0   t || |}t|dkr,tjt|j }|S )NrP  )r)   r   r   r!   r(  ro  rJ   rR  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rtj	t|j
 }|S )	Nr    rq   r   rg   r   rf   typerP  )r   r   r(  ro  r   r!   rp  r   r   r(  rJ   )rA   r  r/   typrL   r0   r0   r1   r     s    
z*TestSystematic.test_legenp.<locals>.legenpr  r7   rq   r    r~   rY  r6  )r<  rS  rT  r   r0   r0   r1   test_legenp  s    
zTestSystematic.test_legenpc                 C   s   dd }dd }t g d}t g d}|d d d f d|d d d f    }t||tg dtg dt|gd	d
d d S )Nc                 S   s>   z t j|j| j|ddd d W S  ty8   tj Y S 0 d S )Nr   rU  r   rO  r)   ZclpmnrJ   rQ  r!   rp  rA   r  r/   r0   r0   r1   clpnm  s     z3TestSystematic.test_legenp_complex_2.<locals>.clpnmc                 S   s4   t |dk rtjS ttjt| jt|j|ddS Nrg   r   rU  r   r!   rp  r   r   r   r   rJ   rZ  r0   r0   r1   r     s    z4TestSystematic.test_legenp_complex_2.<locals>.legenp	rs   r   rD   r   r7  rE   r   r_   g     @@r8  rD   rE   g?r   rs   rq   r   r    r   r   r   r   rS  r!   r(   r   r   r   r<  r[  r   rB   rO   r/   r0   r0   r1   test_legenp_complex_2  s    (z$TestSystematic.test_legenp_complex_2c                 C   s   dd }dd }t g d}t g d}|d d d f d|d d d f    }t||tg dtg dt|gd	d
d d S )Nc                 S   s>   z t j|j| j|ddd d W S  ty8   tj Y S 0 d S )Nrf   rU  r   rO  rY  rZ  r0   r0   r1   r[  /  s     z3TestSystematic.test_legenp_complex_3.<locals>.clpnmc                 S   s4   t |dk rtjS ttjt| jt|j|ddS )Nrg   rf   rU  r]  rZ  r0   r0   r1   r   5  s    z4TestSystematic.test_legenp_complex_3.<locals>.legenpr^  r_  r   r`  r   r   rS  ra  rb  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   rO  )r)   lqmnrZ  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!   rp  r   r   legenqrZ  r0   r0   r1   rh  K  s    z*TestSystematic.test_legenq.<locals>.legenqr   r7   r6  r<  rg  rh  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 re  )r)   rf  r   rJ   rZ  r0   r0   r1   rg  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!   rp  r   r   rh  r   rJ   rZ  r0   r0   r1   rh  Z  s    z2TestSystematic.test_legenq_complex.<locals>.legenqr   r7   rR  )r   r   r   ri  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  rm  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   s4   zt | }W n  ty.   ttjtj}Y n0 |S rG   )r   r   rQ  r&   r!   rp  )r/   rP   r0   r0   r1   mpmath_loggammat  s
    z5TestSystematic.test_loggamma.<locals>.mpmath_loggammaFr   )rf  Zdistinguish_nan_and_infr;   )r   r)   r   r   )r<  ro  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 r3  )r)   Zpbdvr  r0   r0   r1   pcfd  s    z&TestSystematic.test_pcfd.<locals>.pcfdc                 S   s   t j| |fi tS rG   )r   rq  rM  r  r0   r0   r1   rM     rN   z*TestSystematic.test_pcfd.<locals>.<lambda>)r   r   r
   )r<  rq  r0   r0   r1   	test_pcfd  s
    

zTestSystematic.test_pcfdzHit's not the same as the mpmath function --- maybe different definition?c                 C   s(   dd }t |dd t t gdd d S )Nc                 S   s   t | |d S r3  )r)   Zpbvvr  r0   r0   r1   pcfv  s    z&TestSystematic.test_pcfv.<locals>.pcfvc                 S   s   t  ttj| |fi tS rG   )r   r   r   rs  rM  r  r0   r0   r1   rM     rN   z*TestSystematic.test_pcfv.<locals>.<lambda>rx  rR  rB  )r<  rs  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 r3  r)   Zpbwar  r0   r0   r1   pcfw  s    z&TestSystematic.test_pcfw.<locals>.pcfwc                 S   s   t | |d S r?  ru  r  r0   r0   r1   dpcfw  s    z'TestSystematic.test_pcfw.<locals>.dpcfwc                 S   s   t t j| |fdS )Nr8   )r   diffrv  r  r0   r0   r1   mpmath_dpcfw  s    z.TestSystematic.test_pcfw.<locals>.mpmath_dpcfwr]   r^   g:0yU>r7   rS  g&.!>)r   r   rv  r
   )r<  rv  rw  ry  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   rx  )r   r)   Z	polygammar   r   r   r   r
   r;  r0   r0   r1   test_polygamma  s    zTestSystematic.test_polygammac                 C   s&   t tjtjtdtjgdddd d S )Nirs  FT)rA   rf  r   )r   r)   r   r   r
   r!   r(  r;  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   r;  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 r3  )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
   )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+=re  )r   r   r   r  r   r;  r0   r0   r1   test_sinpi_complex  s    
z!TestSystematic.test_sinpi_complexc                 C   s6   dd }t |tjt g t |tjtg dg d S )Nc                 S   s   t | d S r3  r  r   r0   r0   r1   shi  s    z$TestSystematic.test_shi.<locals>.shir  )r   r   r  r
   r   r<  r  r0   r0   r1   test_shi  s    zTestSystematic.test_shic                 C   s8   dd }t |tjtttj dttjdgdd d S )Nc                 S   s   t | d S r3  r  r  r0   r0   r1   r    s    z,TestSystematic.test_shi_complex.<locals>.shir5  r6  rX   r:   )r   r   r  r   r&   r!   r(  r  r0   r0   r1   test_shi_complex  s    zTestSystematic.test_shi_complexc                 C   s   dd }t |tjt g d S )Nc                 S   s   t | d S r3  r  r   r0   r0   r1   si  s    z"TestSystematic.test_si.<locals>.si)r   r   r  r
   r<  r  r0   r0   r1   test_si  s    zTestSystematic.test_sic                 C   s8   dd }t |tjttdtj tdtjgdd d S )Nc                 S   s   t | d S r3  r  r  r0   r0   r1   r    s    z*TestSystematic.test_si_complex.<locals>.sir5  r6  rX   r:   )r   r   r  r   r&   r!   r(  r  r0   r0   r1   test_si_complex  s    zTestSystematic.test_si_complexc                 C   s,   dd }t tjt|tdtjgdd d S )Nc                 S   s   t dd|  S r  r   r  r   r0   r0   r1   dilog  s    z)TestSystematic.test_spence.<locals>.dilogr   r   r:   )r   r)   r  r   r
   r!   r(  r<  r  r0   r0   r1   test_spence  s
    zTestSystematic.test_spencec                 C   s&   dd }t tjt|t gdd d S )Nc                 S   s   t dd|  S r  r  r  r0   r0   r1   r     s    z1TestSystematic.test_spence_complex.<locals>.dilogr   r:   )r   r)   r  r   r   r  r0   r0   r1   test_spence_complex  s
    z"TestSystematic.test_spence_complexc              
   C   sJ   dd }t |tjtddtddtdtdtddt dgddd	d
 d S )Nc                 S   s   || krt jS t|| ||S rG   )r!   rp  r)   Zsph_harm)lr  r   r  r0   r0   r1   	spherharm  s    z0TestSystematic.test_spherharm.<locals>.spherharmr   r7   r   r   r&  ip  rR   )rj   rA   r   )r   r   r  r   r
   r   )r<  r  r0   r0   r1   test_spherharm  s    zTestSystematic.test_spherharmc                 C   s,   t tjttjtddtddgdd d S )N     r  r   &.>r:   )r   r)   Zstruver   r   Zstruvehr
   r;  r0   r0   r1   test_struveh  s
    zTestSystematic.test_struvehc                 C   s4   dd }t tjt|tddtddgddd d S )	Nc                 S   s\   | dk rP||  k rPt | dkrPtjj}zdtj_t| |W |tj_S |tj_0 t| |S )Nr   rx  r   )r   r   r   r   Zstruvel)rL   r/   r   r0   r0   r1   
mp_struvel  s    
z/TestSystematic.test_struvel.<locals>.mp_struvelr  r  r   r  Tr   )r   r)   Z	modstruver   r
   )r<  r  r0   r0   r1   test_struvel  s    zTestSystematic.test_struvelc                 C   s*   dd }t tj|tddgdddd d S )	Nc                 S   s   t t | t dS )Nz-0.5)r   r!  r$   r  r   r0   r0   r1   mpmath_wrightomega_real+  s    zETestSystematic.test_wrightomega_real.<locals>.mpmath_wrightomega_realrt   gPKDg+<r   F)r;   rj   rf  )r   r)   r*  r
   )r<  r  r0   r0   r1   test_wrightomega_real*  s    
z$TestSystematic.test_wrightomega_realc                 C   s    t tjdd t gddd d S )Nc                 S   s
   t | dS )Nr#  )r"  r  r0   r0   r1   rM   <  rN   z1TestSystematic.test_wrightomega.<locals>.<lambda>r   FrC  )r   r)   r*  r   r;  r0   r0   r1   test_wrightomega:  s    
zTestSystematic.test_wrightomegac                 C   s.   t tjttjtddddtdddg d S )Nr        _BF)rn   rm   r  r   rn   r  )r   r)   zetar   r   r
   r;  r0   r0   r1   test_hurwitz_zeta?  s    
z TestSystematic.test_hurwitz_zetac                 C   s$   t tjdd tddgddd d S )Nc                 S   s   | dkrt | S t jS r?  r   r  r(  r   r0   r0   r1   rM   H  rN   z2TestSystematic.test_riemann_zeta.<locals>.<lambda>r  r7   Frh   re  )r   r)   r  r
   r;  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   )rf  r   r;   )r   r)   Zzetacr
   r;  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 r3  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  Zoner0   r0   r1   mp_boxcox1ph  s    z1TestSystematic.test_boxcox1p.<locals>.mp_boxcox1prq   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   r5  r6  r   r  ry  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  rn  r  r  r   r   rJ   r  r0   r0   r1   mp_spherical_yn  s    

z9TestSystematic.test_spherical_yn.<locals>.mp_spherical_ync                 S   s   t t| |S rG   )r)   spherical_ynr   r  r0   r0   r1   rM     rN   z2TestSystematic.test_spherical_yn.<locals>.<lambda>r   r6   g    _r  r7   r  ry  r<  r  r0   r0   r1   test_spherical_yn  s    	z TestSystematic.test_spherical_ync                 C   s,   dd }t dd t|tddt g d S )Nc                 S   sP   t |}t | t dd  |t d| t j  }|jdkrH|jS |S d S r  r  r  r0   r0   r1   r    s    

zATestSystematic.test_spherical_yn_complex.<locals>.mp_spherical_ync                 S   s   t t| j|S rG   )r)   r  r   rJ   r  r0   r0   r1   rM     rN   z:TestSystematic.test_spherical_yn_complex.<locals>.<lambda>r   r6   r  r  r0   r0   r1   test_spherical_yn_complex  s
    	z(TestSystematic.test_spherical_yn_complexc                 C   s2   dd }t dd t|tddt gddd d S )	Nc                 S   sP   t |}t | t dd  |t d| t j  }|jdkrH|jS |S d S r  r   r  rV  r  r  r   r   rJ   r  r0   r0   r1   mp_spherical_in  s    

z9TestSystematic.test_spherical_in.<locals>.mp_spherical_inc                 S   s   t t| |S rG   )r)   spherical_inr   r  r0   r0   r1   rM     rN   z2TestSystematic.test_spherical_in.<locals>.<lambda>r   r6   g訰6r  ry  r<  r  r0   r0   r1   test_spherical_in  s    	z TestSystematic.test_spherical_inc                 C   s,   dd }t dd t|tddt g d S )Nc                 S   sP   t |}t | t dd  |t d| t j  }|jdkrH|jS |S d S r  r  r  r0   r0   r1   r    s    

zATestSystematic.test_spherical_in_complex.<locals>.mp_spherical_inc                 S   s   t t| j|S rG   )r)   r  r   rJ   r  r0   r0   r1   rM     rN   z:TestSystematic.test_spherical_in_complex.<locals>.<lambda>r   r6   r  r  r0   r0   r1   test_spherical_in_complex  s
    	z(TestSystematic.test_spherical_in_complexc                 C   s0   dd }t dd t|tddt gdd d S )	Nc                 S   sR   t | t dd  |t t jdt |   }t |jdkrJ|jS |S d S r  )r   rh  r  r  r   r  r   rJ   )rA   r/   r  r0   r0   r1   mp_spherical_kn  s    z9TestSystematic.test_spherical_kn.<locals>.mp_spherical_knc                 S   s   t t| |S rG   )r)   spherical_knr   r  r0   r0   r1   rM     rN   z2TestSystematic.test_spherical_kn.<locals>.<lambda>r   rR   r7   r  ry  r<  r  r0   r0   r1   test_spherical_kn  s    z TestSystematic.test_spherical_knz.Accuracy issues near z = -1 inherited from kv.c                 C   s0   dd }t dd t|tddt gdd d S )Nc                 S   sP   t |}t | t dd  |t d| t j  }|jdkrH|jS |S d S r  )r   r  rh  r  r  r   r   rJ   r  r0   r0   r1   r    s    

zATestSystematic.test_spherical_kn_complex.<locals>.mp_spherical_knc                 S   s   t t| j|S rG   )r)   r  r   rJ   r  r0   r0   r1   rM     rN   z:TestSystematic.test_spherical_kn_complex.<locals>.<lambda>r   r6   r  r  r  r0   r0   r1   test_spherical_kn_complex  s    	z(TestSystematic.test_spherical_kn_complexN)__name__
__module____qualname__r=  r>  rC  rE  rG  rH  rJ  rK  rN  rP  rT  r[  r]  rb  rc  ri  rk  rl  rv  rw  rz  r   r  r  r  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-  r2  r7  r;  r=  r@  rA  rD  rH  rK  rN  rX  rc  rd  rj  rk  rn  rp  rr  rt  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  r  r  r0   r0   r0   r1   r2    sB  





		
	
0







	






3






			
	r2  )J__doc__numpyr!   Znumpy.testingr   r   r   r  r   Z
scipy._libr   Zscipy.specialZspecialr)   Zscipy.special._testutilsr   r   r   r	   Zscipy.special._mptestutilsr
   r   r   r   r   r   r   r   r   r   Zscipy.special._ufuncsr   r   r   r   r   r   r   ImportErrorr2   rC   rQ   r\   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/  r0  r   rM  r2  r0   r0   r0   r1   <module>   s   0 










7
&






