o
    ?Hh+                     @   s`  d Z ddlZddlmZmZmZ ddlmZ ddlZddl	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'yq   ed	Z&Y nw 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! Z0ee&d"ej1j2d#d$ Z3ee&dd%d& Z4ee&d'd(d) Z5ee&d'd*d+ Z6d,Z7ee&dd-d. Z8ee&dd/d0 Z9ee&dej1j2d1d2 Z:ee&dej1j2d3d4 Z;ee&dd5d6 Z<ee&dd7d8 Z=ee&dej1j2d9d: Z>ee&dej1j2d;d< Z?ee&dd=d> Z@ee&dd?d@ ZAee&ddAdB ZBdCdD ZCej1j2ee&ddEdF ZDej1j2ee&ddGdH ZEej1j2ee&ddIdJ ZFej1j2ee&ddKdL ZGeHdMdMdNZIej1j2ee&dOG dPdQ dQZJdS )Rz4
Test SciPy functions versus mpmath, if available.

    N)assert_assert_allclosesuppress_warnings)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 ]$}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                    ?dtype   )nplogspacelinspacer   expappendcomplexr   eiarraycdoubler	   scexpicheck)datasetrpz r3   _/home/air/sanwanet/gpt-api/venv/lib/python3.10/site-packages/scipy/special/tests/test_mpmath.pytest_expi_complex#   s   r5   z0.19c                  C   s   g } dD ]/}t dddD ]%}td | ||tt||f W d    n1 s-w   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xr3   r3   r4   test_expn_large_n3   s   
rF   c                  C   s   g } g d}|D ]7}|D ]2}|D ]-}|d|  }t d tt ||}W d    n1 s0w   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      t | j|S Nr,   hyp0f1realvr2   r3   r3   r4   <lambda>U       z$test_hyp0f1_gh5764.<locals>.<lambda>r;   r   r<   r=   )	r   r?   r(   rM   r'   r#   r*   r	   r.   )r/   axisrP   rE   yr2   resr3   r3   r4   test_hyp0f1_gh5764D   s"   
	
rV   c                  C   sF   t ddd} t| d}t dd | D }t||tdd d S )	N         rH   c                 S   s   g | ]}t |d qS )rH   r   rM   ).0rP   r3   r3   r4   
<listcomp>^       z'test_hyp0f1_gh_1609.<locals>.<listcomp>-q=r=   )r#   r%   r,   rM   r*   r   astyper@   )vvafmfr3   r3   r4   test_hyp0f1_gh_1609Y   s   rc   z1.1.0c                  C   s   g } t ddD ]6}t dddD ],}| }| ||dtt||df | | d }| ||dtt||df qqdD ]}dD ]}| ||dtt||df qEqAt | } tt	j| dd	d
dd
  d S )N      r   r"   )      %      rG   r   rH   r"   r   )      rG   r   rH   r"         ?r         @r   r"   r      V瞯<-a=r>   atol)r#   aranger%   r'   r@   r   hyperur*   r	   r,   r.   )r/   rD   bar3   r3   r4   test_hyperu_around_0f   s    ""
rv   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   rx   ffffff?)r   rz   ry   )r   r"   gffffffr8   )repeatc                 S   sD   g | ]\}}}}||krt ||kr|d k r|dkr||||fqS )r   r{   )round)r[   ru   rt   crE   r3   r3   r4   r\      s
    
$
z.test_hyp2f1_strange_points.<locals>.<listcomp>T)	eliminatec                    s&   g | ]}|t tj|i  f qS r3   r@   r   hyp2f1r[   r1   kwr3   r4   r\      s   & r    r   r"   r   rm   绽|=r=   )list	itertoolsproductdictr#   r*   float64r	   r,   r   r.   ptsr/   r3   r   r4   test_hyp2f1_strange_points}   s   
r   z0.13c                  C   sp   g d} dd | D }t j|t jd}t jdd ttj|ddd	d
  W d    d S 1 s1w   Y  d S )N)r"   r   rm   r   )UUUUUU?gUUUUUU?g?g      ?)      ?rH   g      ?gX<ݚ?)r   rz   rm   )r   r   rz   rm   )r   rh   rh   rm   r   )gx&?rx   rd   g333333?)r   r   r   +?)r   r   r   rx   )r   rm   re   Gz?)rj   rG   rm   r   )r   rk   g      
r   )g*4]92@g|O%@gCu?)  rg   r   )r   r         %@r   )rx   r   r"         ?)rx   r   r"   ri   )r      re   r   )r   r   re   ri   )rH   g     prj   gm˟?c                 S   s    g | ]}|t tj| f qS r3   r   r   r3   r3   r4   r\           z0test_hyp2f1_real_some_points.<locals>.<listcomp>r    ignoreinvalidr   r8   r   r=   )r#   r*   r   errstater	   r,   r   r.   r   r3   r3   r4   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   )r7   r   )r   gwJ)r   |r   r   )r   r   rg   r   c                 S   s"   t | trt| d | d  S | S )Nr   r"   )
isinstancetupler@   rE   r3   r3   r4   fev   s   
z&test_hyp2f1_some_points_2.<locals>.fevc                    s*   g | ]}t t |ttj| f qS r3   )r   mapr@   r   r   r   r   r3   r4   r\         * z-test_hyp2f1_some_points_2.<locals>.<listcomp>r    r   r8   r   r=   )r#   r*   r   r	   r,   r   r.   r   r3   r   r4   test_hyp2f1_some_points_2   s
   r   c                  C   s   g } dD ]1}dD ],}dD ]'}dD ]"}zt t||||}W n	 ty'   Y qw | |||||f qqqqtj| tjd} tjdd t	t
j| dd	d
dd  W d    d S 1 s]w   Y  d S )N)r   rd   g?re   r   )g      rx   r"   g@)r   r   re   gffffff4@)r   g)\(Gzr   g333333?gffffff?rj   r   r    r   r   r   r8   &.>Tr>   ignore_inf_sign)r@   r   r   	Exceptionr'   r#   r*   r   r   r	   r,   r.   )r/   ru   rt   r~   r2   rP   r3   r3   r4   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 ]2}tj	d
k rt
|d d  t
|d krt
|d d  |d< ttjt|d d  |d< qttj|dddd  d S )N  re     rj   r   r"   r   rm   rx   r   r8   r   r   r=   )r#   zerosr   randomseedparetorandrandintr   __version__absmaxr@   r   r   r	   r,   r.   )npointsr/   dsr3   r3   r4   test_hyp2f1_real_random   s     &&&
  r   c               	   C   s   t jjt jj} }zdd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_d S | |t j_t j_w )NF   r   r"         ig?r   c                 S      t t| S rK   )r(   r   erfr   r3   r3   r4   rQ      rR   z"test_erf_complex.<locals>.<lambda>Fr<   
vectorizedr>   c                 S   r   rK   )r(   r   erfcr   r3   r3   r4   rQ     rR   )r   mpdpsprecr#   meshgridr%   r$   r_ravelr
   r,   r   r   )old_dpsold_precx1y1x2y2pointsr3   r3   r4   test_erf_complex   s   $$0*r   z0.15c                     sd  g } dD ]o}|  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    d S 1 sw   Y  d S )"N)r   gmư>gL7A`?r"   r"   rx   rz   g333333?g333333gr   r   rm      re   r   rd   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murE   r3   r3   r4   mplegenp-  s
   ztest_lpmv.<locals>.mplegenpc                    s*   g | ]}| |d  |d |d f qS )r"   r   r   r3   r   r   r3   r4   r\   6  r   ztest_lpmv.<locals>.<listcomp>r    c                 S   s   t | t||S rK   )r,   lpmvr_   r   )r   r   rE   r3   r3   r4   evf9     ztest_lpmv.<locals>.evfr   r   rl   r   +=rp   )extendr#   r*   r   r   r	   r.   )r   rE   r/   r   r3   r   r4   	test_lpmv  sJ   	"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 ||t
j_t
j_d S ||t
j_t
j_w )Nr   8r9   r8   r   r   rx   r"   r   rH   gffffffr   g33333Yg3333r     c                 S   s   t t| |S rK   )r@   r   betaru   rt   r3   r3   r4   rQ   W      ztest_beta.<locals>.<lambda>Fr   T)r   r>   r   c                 S   s   t ttt| |S rK   )r@   r   logr   r   r   r3   r3   r4   rQ   _      r   )r#   r   r   r   r$   rr   r*   broadcast_arraysreshapeTr   r   r   r   r
   r,   r   betaln)rt   ru   abr   r   r3   r3   r4   	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   rf   r   r"   c                 S      g | ]}|t t|fqS r3   r(   r   loggammar[   z0r3   r3   r4   r\   y      z3test_loggamma_taylor_transition.<locals>.<listcomp>vIh%,=r=   )LOGGAMMA_TAYLOR_RADIUSr#   r*   r%   r   r   r&   r   flattenr	   r,   r   r.   r0   thetadzr2   r/   r3   r3   r4   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   rf   r   r"   c                 S   r   r3   r   r   r3   r3   r4   r\     r   z(test_loggamma_taylor.<locals>.<listcomp>r   r=   )r#   r$   log10r   r%   r   r   r&   r   r   r*   r	   r,   r   r.   r   r3   r3   r4   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 sUw   Y  t |}ttj|dddd  d S )Nrx   rm   r   r   iVr"   r:   c                 S   r   r3   )r(   r   rgammar   r3   r3   r4   r\     r   z%test_rgamma_zeros.<locals>.<listcomp>r^   r=   )r#   r   r$   copyr   rr   r   dstacksizer   r   r?   r*   r	   r,   r  r.   )dxdyr   r   r2   r/   r3   r3   r4   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 sjw   Y  t|}ttj|dddd  d S )Nrj   rG   gQοrx   r   r   gQ?r   r   c                 S   r   r3   r(   r   digammar   r3   r3   r4   r\     r   z&test_digamma_roots.<locals>.<listcomp>r"   r   r=   )r   findrootr  r@   r'   r#   r*   r   r$   r  r   r  r  r   r?   r	   r,   r.   )rootrootsr  r	  r   r2   r/   r3   r3   r4   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 sIw   Y  t	|}t
tj|dddd  d S )N,  r:   r   r   re   r   (   c                    s   g | ]
}|t  |fqS r3   )r(   r   r  r3   r4   r\         z(test_digamma_negreal.<locals>.<listcomp>r"   r<   r=   )r   r   r  r#   r$   r   r   r   r?   rB   r	   r,   r.   rE   rT   r2   r/   r3   r  r4   test_digamma_negreal  s   
&
r  c                  C   s   t ddd } t g d}t | |\} }| d|   }td dd |D }W d    n1 s6w   Y  t |}tt	j
|d	d
dd  d S )Nr  r  r:   )gffffffgg@gffffff@r   r   c                 S   r   r3   r  r   r3   r3   r4   r\     r   z)test_digamma_boundary.<locals>.<listcomp>r   r"   r<   r=   )r#   r$   r*   r   r   r   r?   rB   r	   r,   r  r.   r  r3   r3   r4   test_digamma_boundary  s   
r  c                  C   s   d} t d|  d|  d}| }t ||\}}| | }}td dd t||D }W d    n1 s<w   Y  t |}t	t
j|ddd	d
  d S )Nrf   rH   r   r6   r:   c              
   S   s*   g | ]\}}||t tj||d dfqS )Trt   regularized)r@   r   gammainc)r[   a0x0r3   r3   r4   r\     s    z*test_gammainc_boundary.<locals>.<listcomp>r;   r^   r=   )r#   r%   r  r   r   r   r?   zipr*   r	   r,   r  r.   )smallru   rE   r/   r3   r3   r4   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r2   r3   r3   r4   spence  r   z"test_spence_circle.<locals>.spencerH   rj   r   r   r"   r   c                    s   g | ]}| |fqS r3   r3   r   r%  r3   r4   r\     r]   z&test_spence_circle.<locals>.<listcomp>r   r=   )r#   r%   r   outerr&   r   rB   r	   r,   r%  r.   )r0   r   r2   r/   r3   r&  r4   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  rm   r   r:   r"   rx   c                 S   r   r3   )r(   r   sinpir   r3   r3   r4   r\         z$test_sinpi_zeros.<locals>.<listcomp>r   r=   )r#   finfor@   epsr   r$   r  r   rr   r   r  r  r   rB   r	   r   r.   r-  r  r	  r   r   r2   r/   r3   r3   r4   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  rm   r   r)  r:   r"   rH   rx   c                 S   r   r3   )r(   r   cospir   r3   r3   r4   r\   -  r+  z$test_cospi_zeros.<locals>.<listcomp>r   r=   )r#   r,  r@   r-  r   r$   r  r   rr   r   r  r  r   rB   r	   r   r.   r.  r3   r3   r4   test_cospi_zeros$  s   &
r1  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 q1q&t |}t	| |dddd
  d S )Nc                 S      t | |d S Nr   r,   ellipjumr3   r3   r4   dn9     z"test_dn_quarter_period.<locals>.dnc                 S   s   t tjd| |dS Nr9  r6  )r@   r   ellipfunr6  r3   r3   r4   	mpmath_dn<  r   z)test_dn_quarter_period.<locals>.mpmath_dnr   r"   rf   rx   r  r   r;   r   r   r=   )r#   r%   r   r$   r@   r   ellipkr'   rB   r	   r.   )	r9  r=  r8  dur/   m0u0du0r1   r3   r3   r4   test_dn_quarter_period7  s   &
rC  c                 C   sh   t |% t | } t | jt j dt j  }t t | |}W d    |S 1 s-w   Y  |S r3  )r   r?   mpcceilimagr   lambertwr&   )r2   r   unwindrU   r3   r3   r4   _mpmath_wrightomegaP  s   

rI  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 ]4}|t |d t j |t |d t j  |t |d t j |t |d t j  q4t ||||f}t | |\} }| d|  	 }t 
dd |D }ttj|dd	d
d  d S )Nr   r      r6   rx   r   c                 S      g | ]}|t t|d fqS rJ  r(   rI  r   r3   r3   r4   r\   i  r+  z+test_wrightomega_branch.<locals>.<listcomp>r"   :0yE>r=   )r#   r$   	nextafterr   infranger'   hstackr   r   rB   r	   r,   wrightomegar.   )	rE   picut_abovepicut_belownpicut_abovenpicut_belowirT   r2   r/   r3   r3   r4   test_wrightomega_branchX  s"   
rY  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 )
Nrz   r"   r   r   c                 S   rK  rL  rM  r   r3   r3   r4   r\   x  r+  z,test_wrightomega_region1.<locals>.<listcomp>r   rn   r=   
r#   r%   r   r   r   rB   r	   r,   rS  r.   r  r3   r3   r4   test_wrightomega_region1o     
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 )
Nrz   r"   rx   r   c                 S   rK  rL  rM  r   r3   r3   r4   r\     r+  z,test_wrightomega_region2.<locals>.<listcomp>r   rn   r=   rZ  r  r3   r3   r4   test_wrightomega_region2~  r\  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 )
Nrx   r"   rJ  r   c                 S   r   r3   )r(   r   rG  r   r3   r3   r4   r\     r+  z(test_lambertw_smallz.<locals>.<listcomp>r   r<   r=   )	r#   r%   r   r   rB   r	   r,   rG  r.   r  r3   r3   r4   test_lambertw_smallz  s   
r^  r9   maxprecmaxtermsz0.17c                   @   s  e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd Zdd Zdd Zdd  Zd!d" Zd#d$ Zd%d& Zd'd( Zd)d* Zd+d, Zd-d. Zd/d0 Zd1d2 Zd3d4 Zejjd5d6d7d8d9 Z d:d; Z!ejjd5d6d7d<d= Z"d>d? Z#d@dA Z$dBdC Z%dDdE Z&dFdG Z'dHdI Z(dJdK Z)dLdM Z*dNdO Z+dPdQ Z,dRdS Z-dTdU Z.dVdW Z/dXdY Z0dZd[ Z1d\d] Z2d^d_ Z3d`da Z4dbdc Z5ddde Z6dfdg Z7dhdi Z8djdk Z9dldm Z:dndo Z;dpdq Z<drds Z=dtdu Z>dvdw Z?dxdy Z@dzd{ ZAd|d} ZBd~d ZCdd ZDdd ZEdd ZFdd ZGdd ZHdd ZIdd ZJdd ZKdd ZLdd ZMdd ZNdd ZOdd ZPejjd5ddd ZQdd ZRejjd5ddd ZSeTdd ZUdd ZVdd ZWejjd5dd7dd ZXdd ZYdd ZZdd Z[ejjd5ddd Z\eTdd Z]ejjd5ddd Z^ej_ddd Z`dd Zadd Zbejjd5ddd Zcdd Zddd ZeddĄ ZfeTddƄ ZgddȄ Zhej_dɡdd˄ Zidd̈́ ZjeTddτ Zkddф Zlddӄ ZmddՄ Znddׄ Zoejjd5dd7ddڄ ZpeTdd܄ Zqddބ Zrdd Zsejjd5ddd Ztejjd5dd7dd Zudd Zvejjd5dd7dd Zwdd Zxdd Zyejjdddd 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" Zd#d$ Zejjd5d%d7d&d' Zd(S ()  TestSystematicc                 C   s<   t dd tjtddgdd t dd tjtdd	g d S )
Nc                 S      t | d S Nr   r,   airyr$  r3   r3   r4   rQ     rR   z,TestSystematic.test_airyai.<locals>.<lambda>    ח    חAh㈵>r=   c                 S   rc  rd  re  r$  r3   r3   r4   rQ     rR        @     @@)r   r   airyair   selfr3   r3   r4   test_airyai  s   

zTestSystematic.test_airyaic                 C   s   t dd tjt g d S )Nc                 S   rc  rd  re  r$  r3   r3   r4   rQ     rR   z4TestSystematic.test_airyai_complex.<locals>.<lambda>)r   r   rl  r   rm  r3   r3   r4   test_airyai_complex  s   z"TestSystematic.test_airyai_complexc                 C   @   t dd dd tddgdd t dd d	d td
dg d S )Nc                 S   rc  Nr"   re  r$  r3   r3   r4   rQ     rR   z2TestSystematic.test_airyai_prime.<locals>.<lambda>c                 S      t j| ddS Nr"   )
derivativer   rl  r$  r3   r3   r4   rQ        rg  rh  ri  r=   c                 S   rc  rr  re  r$  r3   r3   r4   rQ     rR   c                 S   rs  rt  rv  r$  r3   r3   r4   rQ     rw  rj  rk  r   r   rm  r3   r3   r4   test_airyai_prime     

z TestSystematic.test_airyai_primec                 C      t dd dd t g d S )Nc                 S   rc  rr  re  r$  r3   r3   r4   rQ     rR   z:TestSystematic.test_airyai_prime_complex.<locals>.<lambda>c                 S   rs  rt  rv  r$  r3   r3   r4   rQ     rw  r   r   rm  r3   r3   r4   test_airyai_prime_complex     z(TestSystematic.test_airyai_prime_complexc                 C   rq  )Nc                 S   rc  r3  re  r$  r3   r3   r4   rQ     rR   z,TestSystematic.test_airybi.<locals>.<lambda>c                 S   
   t | S rK   r   airybir$  r3   r3   r4   rQ        
rg  rh  ri  r=   c                 S   rc  r3  re  r$  r3   r3   r4   rQ     rR   c                 S   r  rK   r  r$  r3   r3   r4   rQ     r  rj  rk  rx  rm  r3   r3   r4   test_airybi  rz  zTestSystematic.test_airybic                 C   r{  )Nc                 S   rc  r3  re  r$  r3   r3   r4   rQ     rR   z4TestSystematic.test_airybi_complex.<locals>.<lambda>c                 S   r  rK   r  r$  r3   r3   r4   rQ     r  r|  rm  r3   r3   r4   test_airybi_complex  r~  z"TestSystematic.test_airybi_complexc                 C   rq  )Nc                 S   rc  Nrm   re  r$  r3   r3   r4   rQ     rR   z2TestSystematic.test_airybi_prime.<locals>.<lambda>c                 S   rs  rt  r  r$  r3   r3   r4   rQ     rw  rg  rh  ri  r=   c                 S   rc  r  re  r$  r3   r3   r4   rQ     rR   c                 S   rs  rt  r  r$  r3   r3   r4   rQ     rw  rj  rk  rx  rm  r3   r3   r4   test_airybi_prime  rz  z TestSystematic.test_airybi_primec                 C   r{  )Nc                 S   rc  r  re  r$  r3   r3   r4   rQ     rR   z:TestSystematic.test_airybi_prime_complex.<locals>.<lambda>c                 S   rs  rt  r  r$  r3   r3   r4   rQ     rw  r|  rm  r3   r3   r4   test_airybi_prime_complex  r~  z(TestSystematic.test_airybi_prime_complexc                 C   "   t tjtdd tddg d S )Nc                 S      t jd| fi tS rd  )r   beiHYPERKWr$  r3   r3   r4   rQ         z)TestSystematic.test_bei.<locals>.<lambda>rj  rk  )r   r,   r  r   r   rm  r3   r3   r4   test_bei     

zTestSystematic.test_beic                 C   r  )Nc                 S   r  rd  )r   berr  r$  r3   r3   r4   rQ     r  z)TestSystematic.test_ber.<locals>.<lambda>rj  rk  )r   r,   r  r   r   rm  r3   r3   r4   test_ber  r  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 rK   )r,   	bernoullir   rD   r3   r3   r4   rQ         z/TestSystematic.test_bernoulli.<locals>.<lambda>c                 S   s   t tt| S rK   )r@   r   r  r   r  r3   r3   r4   rQ         r   i2  r   r>   rD   )r   r   rm  r3   r3   r4   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      t j| |fi tS rK   r   besselir  rO   r3   r3   r4   rQ      r  z-TestSystematic.test_besseli.<locals>.<lambda>}Ô%I}Ô%ITgJDrq   )r   r,   ivr   r   rm  r3   r3   r4   test_besseli  s   

zTestSystematic.test_besselic                 C   (   t dd tdd tddt g d S )Nc                 S   rJ   rK   )r,   r  rN   rO   r3   r3   r4   rQ     rR   z5TestSystematic.test_besseli_complex.<locals>.<lambda>c                 S   r  rK   r  rO   r3   r3   r4   rQ     r  r  r  r   r   r   r   rm  r3   r3   r4   test_besseli_complex  
   
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   r  rK   r   besseljr  rO   r3   r3   r4   rQ     r  z-TestSystematic.test_besselj.<locals>.<lambda>r  r  rj  rk  Tr   c                 S   r  rK   r  rO   r3   r3   r4   rQ     r  rg  rh  ri  )r   r>   )r   r,   jvr   r   rm  r3   r3   r4   test_besselj  s   


zTestSystematic.test_besseljc                 C   s$   t dd tdd t t g d S )Nc                 S   rJ   rK   )r,   r  rN   rO   r3   r3   r4   rQ     rR   z5TestSystematic.test_besselj_complex.<locals>.<lambda>c                 S   r  rK   r  rO   r3   r3   r4   rQ      r  r  rm  r3   r3   r4   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   r9   r   Fr^   nan_okr>   )r   r,   kvr   besselkr   r#   rP  rm  r3   r3   r4   test_besselk$     
zTestSystematic.test_besselkc                 C   s,   t tjtjtddtdtjgddd d S r  )	r   r,   knr   r  r   r   r#   rP  rm  r3   r3   r4   test_besselk_int-  r  zTestSystematic.test_besselk_intc                 C   r  )Nc                 S   rJ   rK   )r,   r  rN   rO   r3   r3   r4   rQ   8  rR   z5TestSystematic.test_besselk_complex.<locals>.<lambda>c                 S   r  rK   )r   r  r  rO   r3   r3   r4   rQ   9  r  r  r  r  rm  r3   r3   r4   test_besselk_complex6  r  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rtjt| }t|dkr'|dkr'tjS |S )NقnQ:Br   )	r@   r   besselyr  r   r#   rP  signnanrP   rE   r0   r3   r3   r4   	mpbessely>  s   z.TestSystematic.test_bessely.<locals>.mpbesselyr  r  rg  rh    r  )r   r,   yvr   r   rn  r  r3   r3   r4   test_bessely=  s   	
zTestSystematic.test_besselyc                 C   s,   dd }t dd t|t t gdd d S )Nc                 S   sf   t tj| |fi t}t|dkr1tjdd tjt| }W d    |S 1 s,w   Y  |S )Nr  r   r   )	r(   r   r  r  r   r#   r   rP  r  r  r3   r3   r4   r  O  s   
z6TestSystematic.test_bessely_complex.<locals>.mpbesselyc                 S   rJ   rK   )r,   r  rN   rO   r3   r3   r4   rQ   W  rR   z5TestSystematic.test_bessely_complex.<locals>.<lambda>i:  r  r  r  r3   r3   r4   test_bessely_complexN  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 rd  )r@   r   r  r   r#   r  r  r3   r3   r4   r  ^  s   z2TestSystematic.test_bessely_int.<locals>.mpbesselyc                 S      t t| |S rK   )r,   ynr   rO   r3   r3   r4   rQ   e  r   z1TestSystematic.test_bessely_int.<locals>.<lambda>r{     rg  rh  r   r   r   r   r  r3   r3   r4   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#   r  r   r@   r'   r   r   )ru   rt   nonzero
bad_pointsr3   r4   r   m  s   (z&TestSystematic.test_beta.<locals>.betac                        | |ddS NT)r  r3   r   )r   r3   r4   rQ   ~  rR   z*TestSystematic.test_beta.<locals>.<lambda>r   Tr   r   dy=)r   r   rq   F)r   r,   r   r   r#   r*   rm  r3   )r  r   r4   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ru   rt   rE   r3   r3   r4   rQ     r  z-TestSystematic.test_betainc.<locals>.<lambda>)r   r,   r  r   r   r   rm  r3   r3   r4   test_betainc  s   zTestSystematic.test_betaincc                 C   s0   t tjt tdd t t t gdd d S )Nc                 S   s   t j| ||dddS )Nr"   Tr  r  r  r3   r3   r4   rQ     r  z.TestSystematic.test_betaincc.<locals>.<lambda>r   r   )r   r,   betainccr   r   r   rm  r3   r3   r4   test_betaincc  s   
zTestSystematic.test_betainccc                    sR   g  d
 fdd	t tjfddt t gdd t tjt ddd	 d S )NFc                    sx   t |dt | d  krtjS | |k r6t t| | tt| |  dk r6|r6 t| t|f tjS t| |S )Nrh  r"   rn   )r   r#   r  r@   r}   r'   r   binomial)rD   kr  r  r3   r4   r    s   .z+TestSystematic.test_binom.<locals>.binomialc                    r  r  r3   )rD   r  )r  r3   r4   rQ     rR   z+TestSystematic.test_binom.<locals>.<lambda>r   r  r   r   rq   r  )r   r,   binomr   r#   r*   rm  r3   )r  r  r4   
test_binom  s   


zTestSystematic.test_binomc                 C   (   t dd tdd t t gdd d S )Nc                 S   r  rK   )r,   eval_chebytr   rD   rE   r3   r3   r4   rQ     r   z0TestSystematic.test_chebyt_int.<locals>.<lambda>c                 S   r  rK   )r   chebytr  r  r3   r3   r4   rQ     r  r6   r  r  rm  r3   r3   r4   test_chebyt_int     


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      t  ttj| |fi tS rK   )r   r   r   r  r  r  r3   r3   r4   rQ         z,TestSystematic.test_chebyt.<locals>.<lambda>e   '  r  )r   r,   r  r   rm  r3   r3   r4   test_chebyt  s   
zTestSystematic.test_chebytc                 C   r  )Nc                 S   r  rK   )r,   eval_chebyur   r  r3   r3   r4   rQ     r   z0TestSystematic.test_chebyu_int.<locals>.<lambda>c                 S   r  rK   )r   chebyur  r  r3   r3   r4   rQ     r  r6   r  r  rm  r3   r3   r4   test_chebyu_int  r  zTestSystematic.test_chebyu_intc                 C   s"   t tjdd tddt g d S )Nc                 S   r  rK   )r   r   r   r  r  r  r3   r3   r4   rQ     r  z,TestSystematic.test_chebyu.<locals>.<lambda>r  r  )r   r,   r  r   rm  r3   r3   r4   test_chebyu  s
   zTestSystematic.test_chebyuc                 C   6   dd }t |tjt g t |tjtg dg d S )Nc                 S   rc  rr  r,   shichir   r3   r3   r4   chi  rw  z$TestSystematic.test_chi.<locals>.chigU@X   g   V@)r   r   r  r   r   rn  r  r3   r3   r4   test_chi     zTestSystematic.test_chic                 C   8   dd }t |tjtttj dttjdgdd d S )Nc                 S   rc  rr  r  r$  r3   r3   r4   r    rw  z,TestSystematic.test_chi_complex.<locals>.chirg  rh  r^   r=   )r   r   r  r   r(   r#   rP  r  r3   r3   r4   test_chi_complex     
zTestSystematic.test_chi_complexc                 C   s"   dd }t |tjtddg d S )Nc                 S   rc  rr  r,   sicir   r3   r3   r4   ci  rw  z"TestSystematic.test_ci.<locals>.cirg  rh  )r   r   r  r   rn  r  r3   r3   r4   test_ci  s   zTestSystematic.test_cic                 C   8   dd }t |tjttdtj tdtjgdd d S )Nc                 S   rc  rr  r  r$  r3   r3   r4   r    rw  z*TestSystematic.test_ci_complex.<locals>.cirg  rh  rN  r=   )r   r   r  r   r(   r#   rP  r  r3   r3   r4   test_ci_complex  r  zTestSystematic.test_ci_complexc                 C   ,   t tj}tttjt gdd| d d S NFr   r  )	r#   r,  r@   r-  r   r   r   r0  r   rn  r-  r3   r3   r4   
test_cospi  s    zTestSystematic.test_cospic                 C      t ttjt gddd d S )NFr<   r  )r   r   r   r0  r   rm  r3   r3   r4   test_cospi_complex     
z!TestSystematic.test_cospi_complexc                 C   s"   t tjttjt gddd d S )Nr^   r6   r>   r   )r   r,   r  r   r   r   rm  r3   r3   r4   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#   whererN   r   rF  r$  r3   r3   r4   param_filter&     $z9TestSystematic.test_digamma_complex.<locals>.param_filterr<   r  r>   r   r  )r   r,   r  r   r   r   )rn  r  r3   r3   r4   test_digamma_complex#  s   
z#TestSystematic.test_digamma_complexc                 C      t tjtjt gdd d S )Nr   r=   )r   r,   exp1r   e1r   rm  r3   r3   r4   test_e12  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 )Nrg  rh  r  r=   r6      r   r   r   =   r   r   ir  y                )r   r,   r  r   r  r   r(   r#   rP  r%   r   r$   r   rm  r3   r3   r4   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       | dkrt | |  S t dS Nr   z1.0r   expm1mpfr   r3   r3   r4   rQ   U  r   z,TestSystematic.test_exprel.<locals>.<lambda>r   c                 S   r  r  r  r   r3   r3   r4   rQ   [  r   r^   gW:r   g   mBgyCxDr  r=   )r   r,   exprelr   r#   r   r,  r   r   r*   rP  r   isinfrm  r3   r3   r4   test_exprelR  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#   rP  rm  r3   r3   r4   test_expm1_complexb  s
   z!TestSystematic.test_expm1_complexc                 C      t tjdd t gdd d S )Nc                 S   s   t | d S rr  r   r   r   r3   r3   r4   rQ   m  rR   z3TestSystematic.test_log1p_complex.<locals>.<lambda><   r  )r   r,   log1pr   rm  r3   r3   r4   test_log1p_complexj  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 rr  r  r   r3   r3   r4   rQ   u  r  z-TestSystematic.test_log1pmx.<locals>.<lambda>r   r   )r   r>   )r   r   r   rm  r3   r3   r4   test_log1pmxr  s   
zTestSystematic.test_log1pmxc                 C   r  )Nr  r=   )r   r,   r-   r   r)   r   rm  r3   r3   r4   test_ei{     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 )Nrg  rh  r   r=   )	r   r,   r-   r   r)   r   r(   r#   rP  rm  r3   r3   r4   test_ei_complex~  s   
zTestSystematic.test_ei_complexc                 C   s   t tjtjtddg d S )Nr   rt   )r   r,   elliper   r   rm  r3   r3   r4   test_ellipe  r%  zTestSystematic.test_ellipec                 C   s$   t tjtjtddtddg d S )Nrj  rk  r   r'  r   r,   	ellipeincr   r(  r   rm  r3   r3   r4   test_ellipeinc  r  zTestSystematic.test_ellipeincc                 C      t tjtjt t g d S rK   r*  rm  r3   r3   r4   test_ellipeinc_largephi  r%  z&TestSystematic.test_ellipeinc_largephic                 C   s    t tjtjtddt g d S Nrj  rk  r   r,   	ellipkincr   ellipfr   rm  r3   r3   r4   test_ellipf  s    zTestSystematic.test_ellipfc                 C   r-  rK   r0  rm  r3   r3   r4   test_ellipf_largephi  r%  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 rr  )r   r>  )r8  r3   r3   r4   rQ     rR   z,TestSystematic.test_ellipk.<locals>.<lambda>g        )ru   r   r  )r   r,   r>  r   r   ellipkm1rm  r3   r3   r4   test_ellipk  s   

zTestSystematic.test_ellipkc                 C   s.   dd }t tj|tddtddgdd d S )	Nc                 S      t d| |S rd  r   ellippiphir8  r3   r3   r4   r1    rw  z0TestSystematic.test_ellipkinc.<locals>.ellipkincrj  rk  r   r'  Tr  r   r,   r1  r   rn  r1  r3   r3   r4   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   r7  rd  r8  r:  r3   r3   r4   r1    rw  z9TestSystematic.test_ellipkinc_largephi.<locals>.ellipkincr   r'  Tr  r<  r=  r3   r3   r4   test_ellipkinc_largephi  s   
z&TestSystematic.test_ellipkinc_largephic                 C   s2   dd }t dd |tddtddd	gd
d d S )Nc                 S   s   | dkrdS t jd| |dS )Nr   snr6  r   r<  r6  r3   r3   r4   r@    s   z+TestSystematic.test_ellipfun_sn.<locals>.snc                 S   r2  rd  r4  r6  r3   r3   r4   rQ     r   z1TestSystematic.test_ellipfun_sn.<locals>.<lambda>    .    .Ar   r"   r   rN  r=   rx  )rn  r@  r3   r3   r4   test_ellipfun_sn  s   

zTestSystematic.test_ellipfun_snc                 C   .   t dd dd tddtdddgd	d
 d S )Nc                 S   r2  rr  r4  r6  r3   r3   r4   rQ     r   z1TestSystematic.test_ellipfun_cn.<locals>.<lambda>c                 S      t jd| |dS )Ncnr6  rA  r6  r3   r3   r4   rQ     r   rB  rC  r   r"   r   rN  r=   rx  rm  r3   r3   r4   test_ellipfun_cn     
zTestSystematic.test_ellipfun_cnc                 C   rE  )Nc                 S   r2  r3  r4  r6  r3   r3   r4   rQ     r   z1TestSystematic.test_ellipfun_dn.<locals>.<lambda>c                 S   rF  r;  rA  r6  r3   r3   r4   rQ     r   rB  rC  r   r"   r   rN  r=   rx  rm  r3   r3   r4   test_ellipfun_dn  rI  zTestSystematic.test_ellipfun_dnc                 C   s   t tjdd t g d S )Nc                 S   r  rK   r   r   r$  r3   r3   r4   rQ        
 z)TestSystematic.test_erf.<locals>.<lambda>)r   r,   r   r   rm  r3   r3   r4   test_erf  s   zTestSystematic.test_erfc                 C   r  )Nc                 S   r  rK   rK  r$  r3   r3   r4   rQ     rL  z1TestSystematic.test_erf_complex.<locals>.<lambda>r9   r  )r   r,   r   r   rm  r3   r3   r4   r     s   zTestSystematic.test_erf_complexc                 C   "   t tjtdd t gdd d S )Nc                 S   r  rK   r   r   r$  r3   r3   r4   rQ     rL  z*TestSystematic.test_erfc.<locals>.<lambda>r<   r=   )r   r,   r   r   r   rm  r3   r3   r4   	test_erfc     

zTestSystematic.test_erfcc                 C   rN  )Nc                 S   r  rK   rO  r$  r3   r3   r4   rQ     rL  z2TestSystematic.test_erfc_complex.<locals>.<lambda>r9   r  )r   r,   r   r   r   rm  r3   r3   r4   test_erfc_complex  rQ  z TestSystematic.test_erfc_complexc                 C      t tjtjt gdd d S Nr9   r  )r   r,   erfir   r   rm  r3   r3   r4   	test_erfi  r%  zTestSystematic.test_erfic                 C   rS  rT  )r   r,   rU  r   r   rm  r3   r3   r4   test_erfi_complex  r%  z TestSystematic.test_erfi_complexc                 C   rN  )Nc                 S   r  rK   )r   ncdfr$  r3   r3   r4   rQ     rL  z*TestSystematic.test_ndtr.<locals>.<lambda>r9   r  )r   r,   ndtrr   r   rm  r3   r3   r4   	test_ndtr  rQ  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$  r3   r3   r4   rQ     r   z2TestSystematic.test_ndtr_complex.<locals>.<lambda>r  r   r   r  )r   r,   rY  r   r(   rm  r3   r3   r4   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 rK   )r   r   rX  r$  r3   r3   r4   rQ     r   z.TestSystematic.test_log_ndtr.<locals>.<lambda>iX  r  r<   rD   r   r>   )r   r,   log_ndtrr   r   rm  r3   r3   r4   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$  r3   r3   r4   rQ     r   z6TestSystematic.test_log_ndtr_complex.<locals>.<lambda>r]  r)  r  r:   r   r9   r  rD   r   )r   r,   r`  r   r   r(   rm  r3   r3   r4   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   rc  )Nrx   )r,   eulerr  r3   r3   r4   rQ     rR   z.TestSystematic.test_eulernum.<locals>.<lambda>r"   r  r  )r   r   eulernumr   rm  r3   r3   r4   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   r9   r<      r  )	r   r,   rC   r   rA   r   r   r#   rP  rm  r3   r3   r4   test_expint  r  zTestSystematic.test_expintc                 C      dd }t |tjt g d S )Nc                 S   rc  rd  r,   fresnelr   r3   r3   r4   fresnels$  rw  z.TestSystematic.test_fresnels.<locals>.fresnels)r   r   rl  r   )rn  rl  r3   r3   r4   test_fresnels#     zTestSystematic.test_fresnelsc                 C   ri  )Nc                 S   rc  rr  rj  r   r3   r3   r4   fresnelc)  rw  z.TestSystematic.test_fresnelc.<locals>.fresnelc)r   r   ro  r   )rn  ro  r3   r3   r4   test_fresnelc(  rn  zTestSystematic.test_fresnelcc                 C   s   t tjttjt g d S rK   )r   r,   gammar   r   r   rm  r3   r3   r4   
test_gamma-  r%  zTestSystematic.test_gammac                 C       t tjttjt gdd d S Nro   r=   )r   r,   rq  r   r   r   rm  r3   r3   r4   test_gamma_complex0     
z!TestSystematic.test_gamma_complexc                 C   0   t tjdd tddddtddgddd d S )	Nc                 S      t j| |ddS )NTr  r   r  )r2   rt   r3   r3   r4   rQ   <  r   z.TestSystematic.test_gammainc.<locals>.<lambda>r        @Finclusive_ar  r  )r   r,   r  r   rm  r3   r3   r4   test_gammainc8     
zTestSystematic.test_gammaincc                 C   rw  )	Nc                 S   rx  )NT)ru   r  ry  )r2   ru   r3   r3   r4   rQ   F  r   z/TestSystematic.test_gammaincc.<locals>.<lambda>r   rz  Fr{  r  r  )r   r,   	gammainccr   rm  r3   r3   r4   test_gammainccB  r~  zTestSystematic.test_gammainccc                 C   s"   dd }t tjt|t g d S )Nc                 S   s   t | jS rK   r   r   rN   r$  r3   r3   r4   fN  s   z&TestSystematic.test_gammaln.<locals>.f)r   r,   gammalnr   r   )rn  r  r3   r3   r4   test_gammalnL  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   rm  r3   r3   r4   test_gegenbauerS  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rd| | }nt| ||}t|dkrP|dk rPt|tt|krPt| |td |}t |tdk rPtd}t |d	krYtjS |S )
Nr  r   r   r"   r   rx   z1e-50z0.0\4@Iw)	r   r#   r  r   r  r@   r   r  rP  rD   ru   rE   r0   r3   r3   r4   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#   rP  r  r3   r3   r4   sc_gegenbauerx  s   z9TestSystematic.test_gegenbauer_int.<locals>.sc_gegenbauerr   r:   g    eg    eAi@  Tr   )rD   r   r   r>   r  r   r  )r   r   r   r   r   r#   r$   )rn  r  r  r3   r3   r4   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 rK   )r,   r  r   rN   rD   ru   rE   r3   r3   r4   rQ     r  z8TestSystematic.test_gegenbauer_complex.<locals>.<lambda>r   r:   )r   r   r   r  r   r   r   rm  r3   r3   r4   test_gegenbauer_complex  
   z&TestSystematic.test_gegenbauer_complexc                 C   s*   t dd ttjtddt t g d S )Nc                 S      t | j|j|S rK   )r,   r  rN   r  r3   r3   r4   rQ     r  z@TestSystematic.test_gegenbauer_complex_general.<locals>.<lambda>rj  rk  )r   r   r   r  r   r   rm  r3   r3   r4   test_gegenbauer_complex_general  r  z.TestSystematic.test_gegenbauer_complex_generalc                 C   &   t tjtdd tddt g d S )Nc                 S   r  rK   )r   hankel1r  rP   rE   r3   r3   r4   rQ     r  z-TestSystematic.test_hankel1.<locals>.<lambda>@x@xD)r   r,   r  r   r   rm  r3   r3   r4   test_hankel1  
   
zTestSystematic.test_hankel1c                 C   r  )Nc                 S   r  rK   )r   hankel2r  r  r3   r3   r4   rQ     r  z-TestSystematic.test_hankel2.<locals>.<lambda>r  r  )r   r,   r  r   r   rm  r3   r3   r4   test_hankel2  r  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   r  rK   )r,   eval_hermiter   r  r3   r3   r4   rQ     r   z-TestSystematic.test_hermite.<locals>.<lambda>r   r  )r   r   r   hermiter   r   rm  r3   r3   r4   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i  S rK   rZ   ru   rE   KWr3   r4   rQ     r  z,TestSystematic.test_hyp0f1.<locals>.<lambda>r  r  r   g     j@r  r  )r   r   r,   rM   r   rm  r3   r  r4   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   rJ   rK   rL   )ru   r2   r3   r3   r4   rQ     rR   z4TestSystematic.test_hyp0f1_complex.<locals>.<lambda>c                 S   r  rK   )r   rM   r  r  r3   r3   r4   rQ     r  r   r   irI   )r   r   r   r   r(   rm  r3   r3   r4   test_hyp0f1_complex  s
   
z"TestSystematic.test_hyp0f1_complexc              	   C   s<   dd }t tj|tddtddddtddgddd	 d S )
Nc                 S   s*   zt | ||W S  ty   tj Y S w rK   )r   hyp1f1ZeroDivisionErrorr#   rP  r  r3   r3   r4   mpmath_hyp1f1  s
   
z1TestSystematic.test_hyp1f1.<locals>.mpmath_hyp1f1r  r6   r"   Fr{  r   )rD   r  )r   r,   r  r   )rn  r  r3   r3   r4   test_hyp1f1  s   
zTestSystematic.test_hyp1f1c                 C   s8   t tdd tdd tddtddt gdd d S )Nc                 S   r  rK   )r,   r  rN   r  r3   r3   r4   rQ     r  z4TestSystematic.test_hyp1f1_complex.<locals>.<lambda>c                 S      t j| ||fi tS rK   )r   r  r  r  r3   r3   r4   rQ     r  rj  rk  i  r  )r   r   r   r   r   rm  r3   r3   r4   test_hyp1f1_complex  s   


z"TestSystematic.test_hyp1f1_complexc                 C   s<   t dd tdd tddtddtddt gdd d S )Nc                 S   s   t | j|j|j|S rK   )r,   r   rN   ru   rt   r~   rE   r3   r3   r4   rQ     r  z4TestSystematic.test_hyp2f1_complex.<locals>.<lambda>c                 S      t j| |||fi tS rK   )r   r   r  r  r3   r3   r4   rQ     r]   g      Yg      Y@r   r  r  rm  r3   r3   r4   test_hyp2f1_complex  s   

z"TestSystematic.test_hyp2f1_complexc                 C   s&   t tjtdd t t t g d S )Nc                 S   r  rK   )r   rs   r  r  r3   r3   r4   rQ     r  z,TestSystematic.test_hyperu.<locals>.<lambda>)r   r,   rs   r   r   rm  r3   r3   r4   test_hyperu  s
   
zTestSystematic.test_hyperuz:mpmath issue gh-342: unsupported operand mpz, long for powc                 C   s2   dd }t t|tddddtddgddd	 d S )
Nc                 S   s"   t || t |  t |  S rK   )r   powerr&   rq  r  r3   r3   r4   mp_igam_fac     "z1TestSystematic.test_igam_fac.<locals>.mp_igam_facr   g  ļBFr{  r      r  )r   r   r   )rn  r  r3   r3   r4   test_igam_fac  s   
zTestSystematic.test_igam_facc                 C   8   t tjtjtddg t tjtjtddgdd d S Nrj  rk  rg  rh  ri  r=   )r   r,   j0r   r   rm  r3   r3   r4   test_j0  s    zTestSystematic.test_j0c                 C   r  r  )r   r,   j1r   r   rm  r3   r3   r4   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   r  rK   r   jacobir  r  r3   r3   r4   rQ     r]   z,TestSystematic.test_jacobi.<locals>.<lambda>c                 S      t t| |||S rK   r,   eval_jacobir   )rD   rt   r~   rE   r3   r3   r4   rQ     r  c                 S   r  rK   r  r  r3   r3   r4   rQ     r]   )r   r,   r  r   r   r   rm  r3   r3   r4   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  rD   ru   rt   rE   r3   r3   r4   r  #  s   z.TestSystematic.test_jacobi_int.<locals>.jacobic                 S   r  rK   r  r  r3   r3   r4   rQ   )  r  z0TestSystematic.test_jacobi_int.<locals>.<lambda>c                    s   t  | |||fi tS rK   )r   r  r  r  r3   r4   rQ   *  r    N  r6   rb  r   r   r   rm  r3   r  r4   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   r8   )r   r   r   keir  r   r3   r3   r4   r  1  s   
z$TestSystematic.test_kei.<locals>.keiꌠ9Y>)ꌠ9Y>)Fr  r  )r   r,   r  r   )rn  r  r3   r3   r4   test_kei0  s   zTestSystematic.test_keic                 C   s&   t tjtdd tddgdd d S )Nc                 S   r  rd  )r   kerr  r   r3   r3   r4   rQ   ;  r  z)TestSystematic.test_ker.<locals>.<lambda>r  r  r  r  )r   r,   r  r   r   rm  r3   r3   r4   test_ker8  s   


zTestSystematic.test_kerc                 C   s"   t ttjdd t t g d S )Nc                 S      t tj| |fi tS rK   r   r   laguerrer  r  r3   r3   r4   rQ   D  r]   z.TestSystematic.test_laguerre.<locals>.<lambda>)r   r   r,   eval_laguerrer   rm  r3   r3   r4   test_laguerre@  s
   
zTestSystematic.test_laguerrec                 C   s$   t dd dd t t gdd d S )Nc                 S   r  rK   )r,   r  r   r  r3   r3   r4   rQ   J  r   z2TestSystematic.test_laguerre_int.<locals>.<lambda>c                 S   r  rK   r  r  r3   r3   r4   rQ   K  r]   r  r  r  rm  r3   r3   r4   test_laguerre_intH  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      t | t|jS rK   )r,   rG  r   rN   rE   r  r3   r3   r4   rQ   S  r  z3TestSystematic.test_lambertw_real.<locals>.<lambda>c                 S   r  rK   )r   rG  r   rN   r  r3   r3   r4   rQ   T  r  r   r   r<   Fr>   r  )r   r   r#   rP  r   rm  r3   r3   r4   test_lambertw_realP  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A |  d   | d  }|t jkr|t|  }n |  d   d| d   }|t|  }||9 }W d    |S W d    |S 1 sJw   Y  |S )Nr   )overrH   )r#   r   rP  r   )rE   facrU   egr3   r4   rq  ^  s   



z:TestSystematic.test_lanczos_sum_expg_scaled.<locals>.gammar   Fr{  r<   r=   )r#   r&   r   r   rq  r   )rn  maxgammarq  r3   r  r4   test_lanczos_sum_expg_scaledY  s   

z+TestSystematic.test_lanczos_sum_expg_scaledc                 C   r-  rK   )r   r,   eval_legendrer   legendrer   rm  r3   r3   r4   test_legendrep  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   r  rK   r,   r  r   r  r3   r3   r4   rQ   v  r   z2TestSystematic.test_legendre_int.<locals>.<lambda>c                 S   r  rK   r   r   r  r  r  r3   r3   r4   rQ   w  r]   r  r  c                 S   r  rK   r  r  r3   r3   r4   rQ   ~  r   c                 S   r  rK   r  r  r3   r3   r4   rQ     r]   r  r  rf   )r   r   r   r   r#   r$   rm  r3   r3   r4   test_legendre_intt  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   s   z&t  }|jtd t|| |d d }W d    n1 s w   Y  W n ty2   tj Y S w t|dkrBtj	t
|j }|S )Ncategoryr   rx   rx   )#v)r   filterDeprecationWarningr,   lpmn
ValueErrorr#   r  r   rP  r  rN   )rD   r8  r2   suprP   r3   r3   r4   lpnm  s   
z(TestSystematic.test_legenp.<locals>.lpnmc                 S   s0   t || |}t|dkrtjt|j }|S )Nr  )r,   r   r   r#   rP  r  rN   )rD   r8  r2   rP   r3   r3   r4   lpnm_2  s   z*TestSystematic.test_legenp.<locals>.lpnm_2c                 S   s   |dks|dkr&t | | kr&|dkr$| dk r|  d } tt|| S dS t|dk r/tjS t|dkr7dnd}ttj| |||d}t|dkrStj	t|j
 }|S )	Nr"   rx   r   rn   r   rm   typer  )r   r   r  r  r   r#   r  r   r   rP  rN   )rD   r8  r2   typrP   r3   r3   r4   r     s   
z*TestSystematic.test_legenp.<locals>.legenpr)  r:   rx   r"   r   r  r  )rn  r  r  r   r3   r3   r4   test_legenp  s    
zTestSystematic.test_legenpc                 C      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   r   z,t  }|jtd tj|j| j|ddd d W  d    W S 1 s%w   Y  W d S  ty8   tj Y S w )Nr  r   r  r   r  	r   r  r  r,   clpmnrN   r  r#   r  rD   r8  r2   r  r3   r3   r4   clpnm     (
z3TestSystematic.test_legenp_complex_2.<locals>.clpnmc                 S   4   t |dk r	tjS ttjt| jt|j|ddS Nrn   r   r  r   r#   r  r   r   r   r   rN   rD   r8  r2   r3   r3   r4   r        "z4TestSystematic.test_legenp_complex_2.<locals>.legenp	rz   r   rG   r   ri  rH   r   rf   g     @@rj  rG   rH   g?r   rz   rx   r   r"   r   r   r   r   r  r#   r*   r   r   r   rn  r  r   rE   rT   r2   r3   r3   r4   test_legenp_complex_2     (


z$TestSystematic.test_legenp_complex_2c                 C   r  )Nc                 S   r  )Nr  rm   r  r   r  r  r  r3   r3   r4   r    r  z3TestSystematic.test_legenp_complex_3.<locals>.clpnmc                 S   r  )Nrn   rm   r  r  r  r3   r3   r4   r     r  z4TestSystematic.test_legenp_complex_3.<locals>.legenpr  r  r   r  r   r   r  r  r  r3   r3   r4   test_legenp_complex_3  r  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   r  )r,   lqmnr  r3   r3   r4   lqnm  s   z(TestSystematic.test_legenq.<locals>.lqnmc                 S   s(   t |dk r	tjS ttj| ||ddS r  )r   r#   r  r   r   legenqr  r3   r3   r4   r    s   z*TestSystematic.test_legenq.<locals>.legenqr   r:   r  rn  r  r  r3   r3   r4   test_legenq  s   zTestSystematic.test_legenqc                 C   s8   dd }dd }t ||tddtddt gdd d S )Nc                 S   s"   t t|jt| j|d d S r  )r,   r  r   rN   r  r3   r3   r4   r    r  z0TestSystematic.test_legenq_complex.<locals>.lqnmc                 S   r  r  )r   r#   r  r   r   r  r   rN   r  r3   r3   r4   r  
  r  z2TestSystematic.test_legenq_complex.<locals>.legenqr   r:   r  )r   r   r   r  r3   r3   r4   test_legenq_complex  s   
z"TestSystematic.test_legenq_complexc                 C   s,   dd }dd }t t|t gdd|d d S )Nc                 S   s    t t | | k| dk@ ddS )Nr   FT)r#   r  floorr   r3   r3   r4   r    s    z0TestSystematic.test_lgam1p.<locals>.param_filterc                 S   s   t d|  jS rr  r  r$  r3   r3   r4   	mp_lgam1p  s   z-TestSystematic.test_lgam1p.<locals>.mp_lgam1pr<   r:   r	  )r   r   r   )rn  r  r  r3   r3   r4   test_lgam1p  s   
zTestSystematic.test_lgam1pc                 C   s&   dd }t tj|t gdddd d S )Nc                 S   s4   zt | }W |S  ty   ttjtj}Y |S w rK   )r   r   r  r(   r#   r  )r2   rU   r3   r3   r4   mpmath_loggamma*  s   z5TestSystematic.test_loggamma.<locals>.mpmath_loggammaFr   )r  distinguish_nan_and_infr>   )r   r,   r   r   )rn  r  r3   r3   r4   test_loggamma)  s   
zTestSystematic.test_loggammac                 C   s(   dd }t |tdd t t g d S )Nc                 S   r2  rd  )r,   pbdvr  r3   r3   r4   pcfd<  r:  z&TestSystematic.test_pcfd.<locals>.pcfdc                 S   r  rK   )r   r  r  r  r3   r3   r4   rQ   @  r  z*TestSystematic.test_pcfd.<locals>.<lambda>)r   r   r   )rn  r  r3   r3   r4   	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   r2  rd  )r,   pbvvr  r3   r3   r4   pcfvG  r:  z&TestSystematic.test_pcfv.<locals>.pcfvc                 S   r  rK   )r   r   r   r  r  r  r3   r3   r4   rQ   K  r   z*TestSystematic.test_pcfv.<locals>.<lambda>r  r  rx  )rn  r  r3   r3   r4   	test_pcfvD  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   r2  rd  r,   pbwar  r3   r3   r4   pcfwQ  r:  z&TestSystematic.test_pcfw.<locals>.pcfwc                 S   r2  rr  r  r  r3   r3   r4   dpcfwT  r:  z'TestSystematic.test_pcfw.<locals>.dpcfwc                 S   s   t t j| |fdS )Nr;   )r   diffr  r  r3   r3   r4   mpmath_dpcfwW  r   z.TestSystematic.test_pcfw.<locals>.mpmath_dpcfwrd   re   g:0yU>r:   r  g&.!>)r   r   r  r   )rn  r  r  r  r3   r3   r4   	test_pcfwP  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   r  )r   r,   	polygammar   r   r   r   r   rm  r3   r3   r4   test_polygammal  s
   zTestSystematic.test_polygammac                 C   s&   t tjtjtdtjgdddd d S )Nir  FT)rD   r  r   )r   r,   r  r   r   r#   rP  rm  r3   r3   r4   test_rgammav  s   
zTestSystematic.test_rgammac                 C   rs  rt  )r   r,   r  r   r   r   rm  r3   r3   r4   test_rgamma_complex  rv  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 )Nrw   c                 S   sN   t | | t| | kr!t | | dkr!t| } t| | |  }t| |S rd  )r@   r   r   r  rf)ru   r8  r3   r3   r4   mppoch  s   (
z&TestSystematic.test_rf.<locals>.mppochr   r  )
r   parser   r   Versionr!  r   r,   pochr   )rn  r"  r3   r3   r4   test_rf  s   	zTestSystematic.test_rfc                 C   r  r  )	r#   r,  r@   r-  r   r   r   r*  r   r  r3   r3   r4   
test_sinpi  s   
zTestSystematic.test_sinpic                 C   r  )NFg+=r  )r   r   r   r*  r   rm  r3   r3   r4   test_sinpi_complex  r  z!TestSystematic.test_sinpi_complexc                 C   r  )Nc                 S   rc  rd  r  r   r3   r3   r4   shi  rw  z$TestSystematic.test_shi.<locals>.shir  )r   r   r)  r   r   rn  r)  r3   r3   r4   test_shi  r  zTestSystematic.test_shic                 C   r  )Nc                 S   rc  rd  r  r$  r3   r3   r4   r)    rw  z,TestSystematic.test_shi_complex.<locals>.shirg  rh  r^   r=   )r   r   r)  r   r(   r#   rP  r*  r3   r3   r4   test_shi_complex  r  zTestSystematic.test_shi_complexc                 C   ri  )Nc                 S   rc  rd  r  r   r3   r3   r4   si  rw  z"TestSystematic.test_si.<locals>.si)r   r   r-  r   rn  r-  r3   r3   r4   test_si  rn  zTestSystematic.test_sic                 C   r  )Nc                 S   rc  rd  r  r$  r3   r3   r4   r-    rw  z*TestSystematic.test_si_complex.<locals>.sirg  rh  r^   r=   )r   r   r-  r   r(   r#   rP  r.  r3   r3   r4   test_si_complex  r  zTestSystematic.test_si_complexc                 C   s,   dd }t tjt|tdtjgdd d S )Nc                 S      t dd|  S r"  r   r#  r   r3   r3   r4   dilog  r:  z)TestSystematic.test_spence.<locals>.dilogr   r   r=   )r   r,   r%  r   r   r#   rP  rn  r3  r3   r3   r4   test_spence  s   
zTestSystematic.test_spencec                 C   s&   dd }t tjt|t gdd d S )Nc                 S   r1  r"  r2  r$  r3   r3   r4   r3    r:  z1TestSystematic.test_spence_complex.<locals>.dilogr   r=   )r   r,   r%  r   r   r4  r3   r3   r4   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   sT   || krt jS t }|jtd t|| ||W  d    S 1 s#w   Y  d S )Nr  )r#   r  r   r  r  r,   sph_harm)lr8  r   r;  r  r3   r3   r4   	spherharm  s   $z0TestSystematic.test_spherharm.<locals>.spherharmr   r:   r   r   rN  ip  rW   )rq   rD   r   )r   r   r9  r   r   r   )rn  r9  r3   r3   r4   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     rz  r   &.>r=   )r   r,   struver   r   struvehr   rm  r3   r3   r4   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 r(||  k r(t | dkr(tjj}zdtj_t| |W |tj_S |tj_w t| |S )Nr   r  r   )r   r   r   r   struvel)rP   r2   r   r3   r3   r4   
mp_struvel  s   z/TestSystematic.test_struvel.<locals>.mp_struvelr;  rz  r   r<  Tr   )r   r,   	modstruver   r   )rn  rA  r3   r3   r4   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   rG  r&   r  r   r3   r3   r4   mpmath_wrightomega_real  s   zETestSystematic.test_wrightomega_real.<locals>.mpmath_wrightomega_realr{   gPKDg+<r   F)r>   rq   r  )r   r,   rS  r   )rn  rD  r3   r3   r4   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 )NrJ  )rI  r$  r3   r3   r4   rQ   %  rL  z1TestSystematic.test_wrightomega.<locals>.<lambda>r   Fr  )r   r,   rS  r   rm  r3   r3   r4   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)ru   rt   r|  r   ru   r|  )r   r,   zetar   r   r   rm  r3   r3   r4   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 rr  r   rI  rP  r   r3   r3   r4   rQ   5  r]   z2TestSystematic.test_riemann_zeta.<locals>.<lambda>r)  r:   Fro   r  )r   r,   rI  r   rm  r3   r3   r4   test_riemann_zeta2  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 rr  rK  r   r3   r3   r4   rQ   >  r  z+TestSystematic.test_zetac.<locals>.<lambda>r)  r:   F-   ro   )r  r   r>   )r   r,   zetacr   rm  r3   r3   r4   
test_zetac;  s   

zTestSystematic.test_zetacc                 C   4   dd }t tjt|tdddt gdddd	 d S )
Nc                 S   s>   t j| } t j|}|dkrt j| S t j| || S rd  r   r   r  r   powm1)rE   lmbdar3   r3   r4   	mp_boxcoxG  s
   z-TestSystematic.test_boxcox.<locals>.mp_boxcoxr   FrH  r9   r   r<   r_  )r   r,   boxcoxr   r   )rn  rT  r3   r3   r4   test_boxcoxE  s   
zTestSystematic.test_boxcoxc                 C   rP  )
Nc                 S   sR   t j| } t j|}t jd}|dkrt j||  S t j||  || S r   rQ  )rE   rS  oner3   r3   r4   mp_boxcox1pZ  s   z1TestSystematic.test_boxcox1p.<locals>.mp_boxcox1prx   FrH  r9   r   r<   r_  )r   r,   boxcox1pr   r   )rn  rX  r3   r3   r4   test_boxcox1pX  s   	
zTestSystematic.test_boxcox1pc                 C   s>   dd }t dd t|tddtddgd	d d
d fd d S )Nc                 S   L   t |}t | t dd  |t d| t j  }|jdkr$|jS |S Nr"   r   r   r   	mpmathifyr  r  r\  r   rF  rN   rD   r2   argoutr3   r3   r4   mp_spherical_jnm     

z9TestSystematic.test_spherical_jn.<locals>.mp_spherical_jnc                 S   r  rK   )r,   spherical_jnr   rD   r2   r3   r3   r4   rQ   w  r   z2TestSystematic.test_spherical_jn.<locals>.<lambda>r   r9   rg  rh  r  c                 S   s   t | dkS )Ng#B;)r#   r   r$  r3   r3   r4   rQ   |  rR   )r   r  r  rn  rb  r3   r3   r4   test_spherical_jnl  s   	

z TestSystematic.test_spherical_jnc                 C   ,   dd }t dd t|tddt g d S )Nc                 S   r[  r\  r]  r_  r3   r3   r4   rb    rc  zATestSystematic.test_spherical_jn_complex.<locals>.mp_spherical_jnc                 S      t t| j|S rK   )r,   rd  r   rN   re  r3   r3   r4   rQ     r  z:TestSystematic.test_spherical_jn_complex.<locals>.<lambda>r   r9   r   r   r   r   rf  r3   r3   r4   test_spherical_jn_complex     	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   r[  r\  r   r^  r  r  r\  r   rF  rN   r_  r3   r3   r4   mp_spherical_yn  rc  z9TestSystematic.test_spherical_yn.<locals>.mp_spherical_ync                 S   r  rK   )r,   spherical_ynr   re  r3   r3   r4   rQ     r   z2TestSystematic.test_spherical_yn.<locals>.<lambda>r   r9   g    _rG  r:   r  r  rn  rn  r3   r3   r4   test_spherical_yn  s   	
z TestSystematic.test_spherical_ync                 C   rh  )Nc                 S   r[  r\  rm  r_  r3   r3   r4   rn    rc  zATestSystematic.test_spherical_yn_complex.<locals>.mp_spherical_ync                 S   ri  rK   )r,   ro  r   rN   re  r3   r3   r4   rQ     r  z:TestSystematic.test_spherical_yn_complex.<locals>.<lambda>r   r9   rj  rp  r3   r3   r4   test_spherical_yn_complex  rl  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   r[  r\  r   r^  r  r  r\  r   rF  rN   r_  r3   r3   r4   mp_spherical_in  rc  z9TestSystematic.test_spherical_in.<locals>.mp_spherical_inc                 S   r  rK   )r,   spherical_inr   re  r3   r3   r4   rQ     r   z2TestSystematic.test_spherical_in.<locals>.<lambda>r   r9   g訰6r  r  rn  rt  r3   r3   r4   test_spherical_in  s   	
z TestSystematic.test_spherical_inc                 C   rh  )Nc                 S   r[  r\  rs  r_  r3   r3   r4   rt    rc  zATestSystematic.test_spherical_in_complex.<locals>.mp_spherical_inc                 S   ri  rK   )r,   ru  r   rN   re  r3   r3   r4   rQ     r  z:TestSystematic.test_spherical_in_complex.<locals>.<lambda>r   r9   rj  rv  r3   r3   r4   test_spherical_in_complex  rl  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 | t dd  |t d| t j  }t |jdkr'|jS |S r\  r   r^  r  r  r\  r   rF  rN   r_  r3   r3   r4   mp_spherical_kn  s   
z9TestSystematic.test_spherical_kn.<locals>.mp_spherical_knc                 S   r  rK   )r,   spherical_knr   re  r3   r3   r4   rQ     r   z2TestSystematic.test_spherical_kn.<locals>.<lambda>r   rW   r:   r  r  rn  rz  r3   r3   r4   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   r[  r\  ry  r_  r3   r3   r4   rz    rc  zATestSystematic.test_spherical_kn_complex.<locals>.mp_spherical_knc                 S   ri  rK   )r,   r{  r   rN   re  r3   r3   r4   rQ     r  z:TestSystematic.test_spherical_kn_complex.<locals>.<lambda>r   r9   r  rj  r|  r3   r3   r4   test_spherical_kn_complex  s   	
z(TestSystematic.test_spherical_kn_complexN)__name__
__module____qualname__ro  rp  ry  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  pytestmarkxfailr  r  r  r  r  r  r  r   r  r  r
  r  r  r  r  r"  r#  r$  r&  r)  r,  r.  r3  r4  r6  r>  r?  rD  rH  rJ  rM  r   rP  rR  rV  rW  rZ  r^  ra  rc  rf  rh  rm  rp  rr  ru  r}  r  r  r  r  r  r   r  r  r  r  r  r  r  r  r  r  xfail_on_32bitr  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r	  r  r  r  r  r  r  r  r   r&  r'  r(  r+  r,  r/  r0  r5  r6  r:  r?  rC  rE  rF  rJ  rL  rO  rV  rZ  rg  rk  rq  rr  rw  rx  r}  r~  r3   r3   r3   r4   rb    sN   



		#!


						

			


2


	


	


	




5


	





	

		
rb  )K__doc__numpyr#   numpy.testingr   r   r   r   r  r   
scipy._libr   scipy.specialspecialr,   scipy.special._testutilsr   r   r	   r
   scipy.special._mptestutilsr   r   r   r   r   r   r   r   r   r   scipy.special._ufuncsr   r   r   r   r   r   r   ImportErrorr5   rF   rV   rc   rv   r   r   r   r   r  slowr   r   r   r   r   r   r  r
  r  r  r  r!  r(  r/  r1  rC  rI  rY  r[  r]  r^  r   r  rb  r3   r3   r3   r4   <module>   s    0 










7
&






