
    tKgS                        d dl Z d dlZd dlZd dlZd dlZd dlZd dlmZmZm	Z	m
Z
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ d dlZd dlmZ d dlmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z' d dl(m)Z) d dl*m)c m+Z, d dl-m.Z.m/Z/m0Z0 d dl-m1Z1m2Z2m3Z3m4Z4m5Z5 d dl-m6Z6m7Z7m8Z8 d d	l9m:Z:m;Z; d d
l<m=Z=m>Z> d dl?m@Z@mAZAmBZB d dlCZC G d d      ZD G d d      ZE G d d      ZF G d d      ZG G d d      ZH G d d      ZI G d d      ZJ G d d      ZK G d d      ZL G d d      ZM G d  d!      ZN G d" d#      ZO G d$ d%      ZP G d& d'      ZQ G d( d)      ZR G d* d+      ZS G d, d-      ZT G d. d/      ZU G d0 d1      ZV G d2 d3      ZW G d4 d5      ZX G d6 d7      ZY G d8 d9      ZZ G d: d;      Z[ G d< d=      Z\ G d> d?      Z] G d@ dA      Z^ G dB dC      Z_ G dD dE      Z` G dF dG      Za G dH dI      Zb G dJ dK      Zc G dL dM      Zd G dN dO      Ze G dP dQ      Zf G dR dS      Zg G dT dU      Zh G dV dW      ZidX ZjdY Zk G dZ d[      Zld\ Zmd] Znd^ Zod_ Zpd` Zqda Zre@db        Zsdc Ztdd Zude Zvdf Zwdg Zxdh Zydi Zzdj Z{dk Z| G dl dm      Z}y)n    N)arrayisnanr_arangefinfopisincostanexplogzerossqrtasarrayinf
nan_to_numrealarctandoublearray_equal)raises)	assert_equalassert_almost_equalassert_array_equalassert_array_almost_equalassert_approx_equalassert_assert_allcloseassert_array_almost_equal_nulpsuppress_warnings)special)ellipeellipkellipkm1)elliprcelliprdelliprfelliprgelliprj)mathieu_odd_coefmathieu_even_coef	stirling2)np_longnp_ulong)_FACTORIALK_LIMITS_64BITS_FACTORIALK_LIMITS_32BITS)with_special_errorsassert_func_equalFuncDatac                      e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!d  Z"d! Z#d" Z$d# Z%d$ Z&d% Z'd& Z(d' Z)d( Z*d) Z+d* Z,d+ Z-d, Z.d- Z/d. Z0d/ Z1e2jf                  ji                  d01      d2        Z5d3 Z6d4 Z7d5 Z8e2jf                  ji                  d61      d7        Z9d8 Z:d9 Z;d: Z<d; Z=d< Z>d= Z?d> Z@d? ZAd@ ZBdA ZCdB ZDdC ZEdD ZFdE ZGdF ZHdG ZIdH ZJdI ZKdJ ZLdK ZMdL ZNdM ZOdN ZPdO ZQdP ZRdQ ZSdR ZTdS ZUdT ZVdU ZWdV ZXdW ZYdX ZZdY Z[dZ Z\d[ Z]d\ Z^d] Z_d^ Z`d_ Zad` Zbda Zcdb Zddc Zedd Zfde Zgdf Zhdg Zidh Zjdi Zkdj Zldk Zmdl Zndm Zodn Zpdo Zqdp Zrdq Zsdr Ztds Zudt Zvdu Zwdv Zxdw Zydx Zzdy Z{dz Z|d{ Z}d| Z~d} Zd~ Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zy)
TestCephesc                 .    t        j                  d       y Nr   )cephesairyselfs    b/home/alanp/www/video.onchill/myenv/lib/python3.12/site-packages/scipy/special/tests/test_basic.py	test_airyzTestCephes.test_airy6       A    c                 .    t        j                  d       y r7   )r8   airyer:   s    r<   
test_airyezTestCephes.test_airye9   s    Qr?   c           	         t        j                  g d      }t        j                  g d      }t        j                  t        j                  |d d d f   |d d d f               j                  dd      j                  }t        j                  g dg dg dg dg      }t        t        j                  |j                         |d	
       t         j                  j                  d       t         j                  t        j                  dd      dt         j                  j                  d      z  dz
  f   }t        j                  dd      }t        j                  t        j                  |d d d f   |d d d f               j                  dd      j                  }t        t        j                  t        j                  |d d df   |d d df   dz        |dd       y )N)gL7A`?   g@   )   皙?   gffffff
@rF   )g޸g	TշJ?g	7?geLF)   g*+ @r   gM{@)gףp=
%@gϔ>@g<wg$@)   g,y3@iK  g5@vIh%<=rtol  i       r   f           ?绽|=atolrN   )npr   broadcast_arraysreshapeTr2   r8   binomravelrandomseedr   r   rand)r;   nknkrknowns        r<   
test_binomzTestCephes.test_binom<   sm   HH()HH%&XXb))!AdF)QtAvY? 2qq 	 ##QF@B C 	&,,G 			tEE"))B#T"))..*<%<s%BBCIIaXXb))!AdF)QtAvY? 2qq 	 	&,, ,,r!A#w1Q390EF$5	2r?   c           	         t         j                  j                  d       t         j                  t        j                  ddd         }t        j
                  dd      }t        j                  t        j                  |d d d f   |d d d f               j                  dd      j                  }t        t        j                  t        j                  |d d df   |d d df   d	z        |d
d
       y )NrO   rT   ,     r   rS   rF   rI   rU   rV   rW   )rY   r_   r`   r   logspacer   r   rZ   r[   r\   r2   r8   r]   )r;   rb   rc   rd   s       r<   test_binom_2zTestCephes.test_binom_2S   s    
		tEE"++ab)*IIaXXb))!AdF)QtAvY? 2qq 	 	&,, ,,r!A#w1Q390EF$5	2r?   c           	         t         j                  d        }t         j                  j                  d       t        j                  dd      }t        j                  dd      }t        j
                  t        j                  |d d d f   |d d d f               j                  dd      j                  }||d d df   |d d df   k\     }t        t        j                   ||d d df   |d d df         |dd       y )	Nc                     t        |       } t        |      }d}d}t        d|dz         D ]  }||| z   |z
  z  }||z  } t        ||z        S NrT   )intrangefloat)rb   rc   numdenis        r<   	binom_intz.TestCephes.test_binom_exact.<locals>.binom_inta   s]    AAAACC1ac]q1uqy q # S>!r?   rO   rT      r   rF   rI   rW   )rY   	vectorizer_   r`   r   r   rZ   r[   r\   r2   r8   r]   )r;   ru   rb   rc   rd   s        r<   test_binom_exactzTestCephes.test_binom_exact`   s    		" 
	" 			tIIaIIaXXb))!AdF)QtAvY? 2qq 	1Q32ac7"#&,,#BqsGR!W5 q	*r?   c                     g d}t        j                  |      }t        t        j                  |ddd      j                          y )N))rQ   rR   gwP~)i  i  gii9~)i  i  gyhY~)i  i  gpvy~)i  i  gzN~)i  i  gGTɳ~)i  i  g@jH~)i  i  gF:aYͦ~)i  i  gɸV)i  i  g
{9)i  i  gyVxY)i    g*I y)i   i   gI)i  i  gW@N)i  i  g5yr   rT   rF   -q=rM   )rY   r   r3   r8   r]   check)r;   datasets     r<   test_binom_nooverflow_8346z%TestCephes.test_binom_nooverflow_8346w   s6    
" **W%w>DDFr?   c                 F    t        t        j                  ddd      d       y )NrT         ?      ?)r   r8   bdtrr:   s    r<   	test_bdtrzTestCephes.test_bdtr   s    V[[1S)#.r?   c                 F    t        t        j                  ddd      d       y NrT      r   )r   r8   bdtrir:   s    r<   
test_bdtrizTestCephes.test_bdtri       V\\!Ac*3/r?   c                 F    t        t        j                  ddd      d       y r   )r   r8   bdtrcr:   s    r<   
test_bdtrczTestCephes.test_bdtrc   r   r?   c                 F    t        t        j                  ddd      d       y NrT   r         @)r   r8   bdtrinr:   s    r<   test_bdtrinzTestCephes.test_bdtrin       V]]1Qq)#.r?   c                 2    t        j                  ddd       y r   )r8   bdtrikr:   s    r<   test_bdtrikzTestCephes.test_bdtrik   s    a#r?   c                 B    t        t        j                  d      d       y Nr           )r   r8   beir:   s    r<   test_beizTestCephes.test_bei       VZZ]3'r?   c                 B    t        t        j                  d      d       y r   )r   r8   beipr:   s    r<   	test_beipzTestCephes.test_beip       V[[^C(r?   c                 B    t        t        j                  d      d       y Nr   r   )r   r8   berr:   s    r<   test_berzTestCephes.test_ber   r   r?   c                 B    t        t        j                  d      d       y r   )r   r8   berpr:   s    r<   	test_berpzTestCephes.test_berp   r   r?   c                 F    t        t        j                  ddd      d       y r   )r   r8   
besselpolyr:   s    r<   test_besselpolyzTestCephes.test_besselpoly   s    V&&q1-c2r?   c                     t        j                  d      5  t        j                  ddd      }d d d        t	        d       y # 1 sw Y   xY wNzdeprecated in SciPy 1.12.0matchrT   r   )pytestdeprecated_callr!   btdtrr   r;   ys     r<   
test_btdtrzTestCephes.test_btdtr   s=    ##*FGaA&A HQ HG   AAc                     t        j                  d      5  t        j                  ddd      }d d d        t	        d       y # 1 sw Y   xY wr   )r   r   r!   btdtrir   r   s     r<   test_btdtrizTestCephes.test_btdtri   s=    ##*FGq!Q'A HQ HGr   c                 F    t        t        j                  ddd      d       y NrT   r   )r   r8   btdtriar:   s    r<   test_btdtriazTestCephes.test_btdtria       V^^Aa*3/r?   c                 F    t        t        j                  ddd      d       y r   )r   r8   btdtribr:   s    r<   test_btdtribzTestCephes.test_btdtrib   r   r?   c                 B    t        t        j                  d      d       y NrT   r   )r   r8   cbrtr:   s    r<   	test_cbrtzTestCephes.test_cbrt   s    FKKN3/r?   c                 D    t        t        j                  dd      d       y NrT   r   r   )r   r8   chdtrr:   s    r<   
test_chdtrzTestCephes.test_chdtr   s    V\\!A&s+r?   c                 D    t        t        j                  dd      d       y NrT   r   r   )r   r8   chdtrcr:   s    r<   test_chdtrczTestCephes.test_chdtrc       V]]1Q',r?   c                 D    t        t        j                  dd      d       y NrT   r   )r   r8   chdtrir:   s    r<   test_chdtrizTestCephes.test_chdtri   r   r?   c                 D    t        t        j                  dd      d       y )Nr   r   )r   r8   chdtrivr:   s    r<   test_chdtrivzTestCephes.test_chdtriv   s    V^^Aa(-r?   c                    t        t        j                  ddd      d       t        j                  g dg dg dg dg dg d	g d
g dg dg dg dg dg dg      }t        j                  |d d df   |d d df   |d d df         }t        ||d d df   d       t        t        j                  t        j                  t        j                  d      d       t        t        j                  ddt        j                        d       t        t        j                  t        j                  t        j                  dd                   t        t        j                  t        j                  dt        j                  d                   t        t        j                  t        j                  ddt        j                                     y )Nr   rT   r   )      9@      4@  gL94)r          @   g7Fh9)MbP?r         D@ggåc;){Gz?r   r   g	;)r          @k   g8x@x>)g     6@r   r   gg1\>>)r   r   r   g`>)      @r   r   gp!P?)g     u@g     r@      $@g j
?)      Y@      +@r   g]?)g     @r   r   g4ۙ?)g     b@r   r   g?)g      d@r   r   r   rF   r   r|   rM   r      )r   r8   chndtrrY   r   r   r   r   r   r   nan)r;   valuescdfs      r<   test_chndtrzTestCephes.test_chndtr   s5   V]]1Qq)#.
 999:999666666
  mmF1a4L&A,q!tEVAqD\6FMM"&&"&&!<cBFMM!Q7=rvvq!456q"&&!456q!RVV456r?   c                 F    t        t        j                  ddd      d       y Nr   rT   r   )r   r8   	chndtridfr:   s    r<   test_chndtridfzTestCephes.test_chndtridf       V%%a!,S1r?   c                 F    t        t        j                  ddd      d       y r   )r   r8   	chndtrincr:   s    r<   test_chndtrinczTestCephes.test_chndtrinc   r   r?   c                 F    t        t        j                  ddd      d       y Nr   rT   r   )r   r8   chndtrixr:   s    r<   test_chndtrixzTestCephes.test_chndtrix       V__Qq+C0r?   c                 B    t        t        j                  d      d       y r   )r   r8   cosdgr:   s    r<   
test_cosdgzTestCephes.test_cosdg       V\\!_S)r?   c                 B    t        t        j                  d      d       y r   )r   r8   cosm1r:   s    r<   
test_cosm1zTestCephes.test_cosm1   r   r?   c                 B    t        t        j                  d      d       y N-   r   )r   r8   cotdgr:   s    r<   
test_cotdgzTestCephes.test_cotdg   s    FLL,S1r?   c                     t        t        j                  d      d       t        t        j                  d      d       y )Nr   r   gGz?gf?)r   r8   dawsnr   r:   s    r<   
test_dawsnzTestCephes.test_dawsn   s(    V\\!_S)T*,?@r?   c                 $   g d}t        j                  dt         j                  z  dz         j                  t         j                        }t        t        j                  ||      dd       t        j                  dt         j                  z  dz         j                  t         j                        }t        t        j                  ||      dd       t        j                  dt         j                  z  d	z         j                  t         j                        }t        t        j                  ||      dd       t        t         d
      rht        j                  dt         j                  z  dz         j                  t         j                        }t        t        j                  ||      dd       g d}t        j                  dt         j                  z  dz         j                  t         j                        }t        t        j                  ||      dd       t        j                  dt         j                  z  dt         j                  z  dt         j                  z        }g d}t        t        j                  |d      |d       y )N)rT   r      rF   g-C6
?r   rH   decimal&.>rv   V瞯<float128r|      )rF   rD            皙?)gg?gsOB?gsaL?g
7I^ʿr   )rY   r   r   astypefloat32r   r!   diricfloat64hasattrr  r   )r;   n_oddxn_evenoctave_results        r<   
test_diriczTestCephes.test_diric   s    HHQruuWt^$++BJJ7GMM!U3S!DHHQruuWt^$++BJJ7GMM!U3S"EHHQruuWu_%,,RZZ8GMM!U3S"E2z"2555)00=Aa 7bIHHQruuWt^$++BJJ7GMM!V4dBG IIc"%%iRUUCI6@GMM!Q/Kr?   c                 
   t        j                  d      }t        j                  g d      }t        t	        j
                  |d d t         j                  f   |      j                  |j                  |j                  fk(         y )Nr   )rT   r   rH   )	rY   r   r   r   r!   r  newaxisshapesize)r;   r  rb   s      r<   test_diric_broadcastingz"TestCephes.test_diric_broadcasting  sU    IIaLHHYa2::.288QVVQVV<LLMr?   c                 B    t        t        j                  d      d       y r   )r   r8   r"   r:   s    r<   test_ellipezTestCephes.test_ellipe      V]]1%c*r?   c                 D    t        t        j                  dd      d       y r   )r   r8   	ellipeincr:   s    r<   test_ellipeinczTestCephes.test_ellipeinc      V%%a*3/r?   c                 0    t        j                  dd       y Nr   rT   )r8   ellipjr:   s    r<   test_ellipjzTestCephes.test_ellipj"  s    ar?   c                 <    t        t        d      t        dz         y )Nr   rF   )r   r#   r   r:   s    r<   test_ellipkzTestCephes.test_ellipk%  s    q	2a4(r?   c                 D    t        t        j                  dd      d       y r   )r   r8   	ellipkincr:   s    r<   test_ellipkinczTestCephes.test_ellipkinc(  r&  r?   c                 B    t        t        j                  d      d       y r   r   r8   erfr:   s    r<   test_erfzTestCephes.test_erf+  s    VZZ]C(r?   c                 t    d}t        t        j                  |      t        j                  |       z   d       y )Ng#8x@r   r1  r;   r  s     r<   test_erf_symmetryzTestCephes.test_erf_symmetry.  s(    VZZ]VZZ^3S9r?   c                 B    t        t        j                  d      d       y r   )r   r8   erfcr:   s    r<   	test_erfczTestCephes.test_erfc2  s    V[[^S)r?   c                 B    t        t        j                  d      d       y )NrF   r   )r   r8   exp10r:   s    r<   
test_exp10zTestCephes.test_exp105  s    FLLOE2r?   c                 B    t        t        j                  d      d       y )NrF         @)r   r8   exp2r:   s    r<   	test_exp2zTestCephes.test_exp28  r   r?   c                    t        t        j                  d      d       t        t        j                  t        j                        t        j                         t        t        j                  t        j                         d       t        t        j                  t        j
                        t        j
                         y )Nr   r   rI   )r   r8   expm1rY   r   r   r:   s    r<   
test_expm1zTestCephes.test_expm1;  sc    V\\!_S)V\\"&&)2662V\\266'*B/V\\"&&)2662r?   c                 	   t         j                  }t         |d      d       t         |t        t        j
                  d            t        t        j
                  d             t         |t        t        j
                  d            t        t        j
                  t        j
                               t         |t        t        j
                  d            t        t        j
                   t        j
                               t         |t        t        j
                  d            t        t        j
                   t        j
                                t         |t        t        j
                  d            t        t        j
                  t        j
                                t         |t        dt        j
                              t        t        j                  t        j                               t         |t        dt        j
                              t        t        j                  t        j                               t         |t        t        j
                  t        j
                              t        t        j
                  t        j                               t         |t        t        j
                   t        j
                              t        dd             t         |t        t        j
                   t        j                              t        dd             t         |t        t        j
                  t        j                              t        t        j
                  t        j                               t         |t        dt        j                              t        t        j                  t        j                               t         |t        dt        j                              t        t        j                  t        j                               t         |t        t        j                  d            t        t        j                  t        j                               t         |t        t        j                  t        j                              t        t        j                  t        j                               y )N                r   rT   rF   rD   r   rI   )r8   rB  r   complexrY   r   r   )r;   rB  s     r<   test_expm1_complexzTestCephes.test_expm1_complexA  s   U6]F+U72661-.0BCU72661-.0GHU72661-.0HIU72661-."&&0IJU72661-.0HIU71bff-.0GHU71bff-.0GHU726626623WRVVRVV5LMU7BFF7BFF34gb!nEU7BFF7BFF34gb!nEU726626623WRVVRVV5LMU71bff-.0GHU71bff-.0GHU72661-.0GHU726626623WRVVRVV5LMr?   z-The real part of expm1(z) bad at these pointsreasonc                 p   t        j                  g d      }t        j                  t        j                  |             }|d|z  z   }t        j                  g d      }t	        j
                  |      }t        |j                  |j                  d       t        |j                  |j                  d       y )N)皙?r  333333?r      ri                 ?)y=Cw?yC7gg)gF<Ug?yQ<D*?yg:><sKy>񸣼$	Um>ly;Vl <@r   ri   )	rY   r   r   r
   r8   rB  r   imagr   )r;   r   r  zexpectedfounds         r<   test_expm1_complex_hardz"TestCephes.test_expm1_complex_hardT  s     HH/0VVBFF1I1H 88 J K Q&uzz8==!D&uzz8=="Er?   c                     t        t        j                  ddd      d       t        t        j                  ddd      dd	       y )
NrT   r   r   ư>r   
   g2?r|   rM   )r   r8   fdtrr   r:   s    r<   	test_fdtrzTestCephes.test_fdtri  s6    V[[Aq)3/D!R02D"	$r?   c                     t        t        j                  ddd      d       t        t        j                  ddd      dd	       y )
NrT   r   r   rF   rK  g    _BgDIXl?r|   rM   )r   r8   fdtrcr   r:   s    r<   
test_fdtrczTestCephes.test_fdtrco  s8    V\\!Q*C0 	QT24G"	$r?   c                     t        t        j                  ddddg      t        ddg      d       d}t        t        j                  d	d|      d
d       y )NrT   gV-?gx&1?g
}?g<zO'?rU  rM   g׀?rK  r   r|   )r   r8   fdtrir   )r;   ps     r<   
test_fdtrizTestCephes.test_fdtriv  sM    QE5>:y*56T	C %S!Q/?r?   zReturns nan on i686.c                 F    t        t        j                  ddd      d       y )NrT   r   )r   r8   r]  r:   s    r<   test_fdtri_mysterious_failurez(TestCephes.test_fdtri_mysterious_failure~  s    Q3/3r?   c                 F    t        t        j                  ddd      d       y r   )r   r8   fdtridfdr:   s    r<   test_fdtridfdzTestCephes.test_fdtridfd  r   r?   c                 B    t        t        j                  d      d       y Nr   r   r   )r   r8   fresnelr:   s    r<   test_fresnelzTestCephes.test_fresnel  s    V^^A&y1r?   c                 B    t        t        j                  d      d       y Nr         8@)r   r8   gammar:   s    r<   
test_gammazTestCephes.test_gamma  s    V\\!_T*r?   c                 D    t        t        j                  dd      d       y )Nr   rT   r   )r   r8   gammainccinvr:   s    r<   test_gammainccinvzTestCephes.test_gammainccinv  s    V((1-c2r?   c                 .    t        j                  d       y )NrV  )r8   gammalnr:   s    r<   test_gammalnzTestCephes.test_gammaln  s    rr?   c                     t        j                  g dt         j                        }t        t	        j
                  |      t        j                  t	        j                  |                   y )N)      gffffffrT   g@)rY   r   r  r   r8   gammasgnsignrgamma)r;   valss     r<   test_gammasgnzTestCephes.test_gammasgn  s<    xx0"**=6??40"''&--:M2NOr?   c                 F    t        t        j                  ddd      d       y r   )r   r8   gdtrr:   s    r<   	test_gdtrzTestCephes.test_gdtr      V[[1Q',r?   c                 b    t        t        j                  ddt        j                        d       y r   )r   r8   r~  rY   r   r:   s    r<   test_gdtr_infzTestCephes.test_gdtr_inf  s    V[[1RVV,S1r?   c                 F    t        t        j                  ddd      d       y r   )r   r8   gdtrcr:   s    r<   
test_gdtrczTestCephes.test_gdtrc      V\\!Aa(-r?   c                 F    t        t        j                  ddd      d       y r   )r   r8   gdtriar:   s    r<   test_gdtriazTestCephes.test_gdtria  r   r?   c                 2    t        j                  ddd       y NrT   r   )r8   gdtribr:   s    r<   test_gdtribzTestCephes.test_gdtrib  s    a!r?   c                 2    t        j                  ddd       y NrT   rK  )r8   gdtrixr:   s    r<   test_gdtrixzTestCephes.test_gdtrix  s    a"r?   c                 0    t        j                  dd       y rn   )r8   hankel1r:   s    r<   test_hankel1zTestCephes.test_hankel1      qr?   c                 0    t        j                  dd       y rn   )r8   hankel1er:   s    r<   test_hankel1ezTestCephes.test_hankel1e      !r?   c                 0    t        j                  dd       y rn   )r8   hankel2r:   s    r<   test_hankel2zTestCephes.test_hankel2  r  r?   c                 0    t        j                  dd       y rn   )r8   hankel2er:   s    r<   test_hankel2ezTestCephes.test_hankel2e  r  r?   c                     t        t        j                  ddd      t        d             t        t        j                  ddd      d       t        j                  ddd       y )NrT   r   r   rD   g㈮?)r   r8   hyp1f1r   r:   s    r<   test_hyp1f1zTestCephes.test_hyp1f1  sE    FMM!Aa0#c(;FMM!Ab13JKa!r?   c                 H    t        t        j                  dddd      d       y r   )r   r8   hyp2f1r:   s    r<   test_hyp2f1zTestCephes.test_hyp2f1      V]]1Qq+C0r?   c                 B    t        t        j                  d      d       y r   )r   r8   i0r:   s    r<   test_i0zTestCephes.test_i0      VYYq\#&r?   c                 B    t        t        j                  d      d       y r   )r   r8   i0er:   s    r<   test_i0ezTestCephes.test_i0e  r   r?   c                 B    t        t        j                  d      d       y r   )r   r8   i1r:   s    r<   test_i1zTestCephes.test_i1  r  r?   c                 B    t        t        j                  d      d       y r   )r   r8   i1er:   s    r<   test_i1ezTestCephes.test_i1e  r   r?   c                 .    t        j                  d       y rn   )r8   it2i0k0r:   s    r<   test_it2i0k0zTestCephes.test_it2i0k0      qr?   c                 .    t        j                  d       y rn   )r8   it2j0y0r:   s    r<   test_it2j0y0zTestCephes.test_it2j0y0  r  r?   c                 .    t        j                  d       y rn   )r8   
it2struve0r:   s    r<   test_it2struve0zTestCephes.test_it2struve0  s    !r?   c                 .    t        j                  d       y rn   )r8   itairyr:   s    r<   test_itairyzTestCephes.test_itairy      ar?   c                 B    t        t        j                  d      d       y rf  )r   r8   iti0k0r:   s    r<   test_iti0k0zTestCephes.test_iti0k0      V]]1%i0r?   c                 B    t        t        j                  d      d       y rf  )r   r8   itj0y0r:   s    r<   test_itj0y0zTestCephes.test_itj0y0  r  r?   c                 B    t        t        j                  d      d       y r   )r   r8   itmodstruve0r:   s    r<   test_itmodstruve0zTestCephes.test_itmodstruve0  s    V((+C0r?   c                 B    t        t        j                  d      d       y r   )r   r8   	itstruve0r:   s    r<   test_itstruve0zTestCephes.test_itstruve0  s    V%%a(-r?   c                 D    t        t        j                  dd      d       y r   )r   r8   ivr:   s    r<   test_ivzTestCephes.test_iv      VYYq^C(r?   c                 D    t        t        j                  dd      d       y r   )r   r8   iver:   s    r<   test_ivezTestCephes.test_ive      VZZ!_S)r?   c                 B    t        t        j                  d      d       y r   )r   r8   j0r:   s    r<   test_j0zTestCephes.test_j0  r  r?   c                 B    t        t        j                  d      d       y r   )r   r8   j1r:   s    r<   test_j1zTestCephes.test_j1  r  r?   c                 D    t        t        j                  dd      d       y r   )r   r8   jnr:   s    r<   test_jnzTestCephes.test_jn  r  r?   c                 D    t        t        j                  dd      d       y r   )r   r8   jvr:   s    r<   test_jvzTestCephes.test_jv  r  r?   c                 D    t        t        j                  dd      d       y r   )r   r8   jver:   s    r<   test_jvezTestCephes.test_jve  r  r?   c                 .    t        j                  d       y NrF   )r8   k0r:   s    r<   test_k0zTestCephes.test_k0      		!r?   c                 .    t        j                  d       y r  )r8   k0er:   s    r<   test_k0ezTestCephes.test_k0e      

1r?   c                 .    t        j                  d       y r  )r8   k1r:   s    r<   test_k1zTestCephes.test_k1  r  r?   c                 .    t        j                  d       y r  )r8   k1er:   s    r<   test_k1ezTestCephes.test_k1e  r  r?   c                 .    t        j                  d       y r  )r8   keir:   s    r<   test_keizTestCephes.test_kei  r  r?   c                 B    t        t        j                  d      d       y r   )r   r8   keipr:   s    r<   	test_keipzTestCephes.test_keip  r   r?   c                 .    t        j                  d       y r  )r8   kerr:   s    r<   test_kerzTestCephes.test_ker  r  r?   c                 .    t        j                  d       y r  )r8   kerpr:   s    r<   	test_kerpzTestCephes.test_kerp
  r>   r?   c                 .    t        j                  d       y r  )r8   kelvinr:   s    r<   test_kelvinzTestCephes.test_kelvin  r  r?   c                 0    t        j                  dd       y rn   )r8   knr:   s    r<   test_knzTestCephes.test_kn      		!Ar?   c                     t        t        j                  d      d       t        t	        j
                  t        j                  t        j                                     y r   )r   r8   kolmogir   rY   r   r   r:   s    r<   test_kolmogizTestCephes.test_kolmogi  s3    V^^A&s+/01r?   c                 B    t        t        j                  d      d       y r   )r   r8   
kolmogorovr:   s    r<   test_kolmogorovzTestCephes.test_kolmogorov  s    V&&q)3/r?   c                 B    t        t        j                  d      d       y )Nr          )r   r8   _kolmogpr:   s    r<   test_kolmogpzTestCephes.test_kolmogp  s    V__Q'.r?   c                 B    t        t        j                  d      d       y r   )r   r8   _kolmogcr:   s    r<   test_kolmogczTestCephes.test_kolmogc  s    V__Q'-r?   c                     t        t        j                  d      d       t        t	        j
                  t        j                  t        j                                     y r   )r   r8   	_kolmogcir   rY   r   r   r:   s    r<   test_kolmogcizTestCephes.test_kolmogci   s7    V%%a(#.))"&&123r?   c                 0    t        j                  dd       y rn   )r8   kvr:   s    r<   test_kvzTestCephes.test_kv$  r  r?   c                 0    t        j                  dd       y rn   )r8   kver:   s    r<   test_kvezTestCephes.test_kve'      

1Qr?   c                 &   t         j                  }t         |d      d       t         |d      t        j                          t         |d      t        j
                         t         |t        j                        t        j                         y )Nr   r   rI   )r8   log1pr   rY   r   r   )r;   r"  s     r<   
test_log1pzTestCephes.test_log1p*  sU    U1Xs#U2Y(U2Y'U266]BFF+r?   c           	      "   t         j                  }t        }t         |d      d       t         | |dd             |t        j
                   d             t               5 }|j                  t        d       t         | |dt        j
                               |t        j
                  t        j                  dz               t         | |dt        j                               |t        j                  t        j                               t         | |t        j
                   d             |t        j
                  t        j                               t         | |t        j
                  d             |t        j
                  d             t         | |t        j
                   t        j
                               |t        j
                  dt        j                  z  dz               t         | |t        j
                  t        j
                               |t        j
                  t        j                  dz               t         | |t        j
                  t        j                               |t        j
                  t        j                               t         | |t        j
                   t        j                               |t        j
                  t        j                               t         | |t        j                  t        j
                               |t        j
                  t        j                               t         | |t        j                  d             |t        j                  t        j                               t         | |t        j                  t        j                               |t        j                  t        j                               d d d        y # 1 sw Y   y xY w)	NrE  rI   r   z%invalid value encountered in multiplyrT   rF   r   rD   )r8   r"  rF  r   rY   r   r    filterRuntimeWarningr   r   r   )r;   r"  csups       r<   test_log1p_complexzTestCephes.test_log1p_complex1  sH   U6]F+U1R8_am4 CJJ~'NOE!Arvv,/26625571CDqBFF|,a.?@E!RVVGQ-0!BFFBEE2BCq|,al;E!RVVGRVV"45q2557KLE!BFFBFF"34aa6HIq011RVVRVV3DEq"&&"&&12Abffbff4EFq011RVVRVV3DEq|,a.?@q011RVVRVV3DE !  s   "NPPc                 F    t        t        j                  ddd      d       y )Nr   rT   r   )r   r8   lpmvr:   s    r<   	test_lpmvzTestCephes.test_lpmvD  r  r?   c                 D    t        t        j                  dd      d       y r   )r   r8   	mathieu_ar:   s    r<   test_mathieu_azTestCephes.test_mathieu_aG  r&  r?   c                 D    t        t        j                  dd      d       y r   )r   r8   	mathieu_br:   s    r<   test_mathieu_bzTestCephes.test_mathieu_bJ  r&  r?   c           
         t        t        j                  ddd      d       t        j                  d        }t        j
                  dd      }t        j                  dt        j                  ddd      f   }t        t        j                  |d d d f   |d d d f   d	      d    ||d d d f   |d d d f   d	      d
d       y )NrT   r   r   r   c                    |t         j                  dz  z  }| dk(  rddd|z  t        d|z        z  z
  z  S | dk(  r t        |      |dz  t        d|z        z  z
  S | dk(  r&t        d|z        |t        d	|z        d
z  dz
  z  z
  S t        | |z        |t        | dz   |z        d	| dz   z  z  t        | dz
  |z        d	| dz
  z  z  z
  z  z
  S )N   r   g;f?rT   r   rF      r   rD            ?)rY   r   r
   mqrP  s      r<   	ce_smallqz.TestCephes.test_mathieu_cem.<locals>.ce_smallqQ  s    sNAAv A1S1X$566a1v!c!A#h..a1Q3x!S1Xb[3%6"777 1Q3x!S!A#q\1ac7%;c1Q3'lAqQRsG>T%T"UUUr?   d   rV  rh|?+=rN   rX   )	r   r8   mathieu_cemrY   rw   r   r   rj   r   )r;   r=  r;  r<  s       r<   test_mathieu_cemzTestCephes.test_mathieu_cemM  s    V''!A.y9 
	V 
	V IIaEE!R[[b"--.**1QtV9aQiGJ!!AdF)QtAvY>"	,r?   c           
         t        t        j                  ddd      d       t        j                  d        }t        j
                  dd      }t        j                  dt        j                  ddd      f   }t        t        j                  |d d d f   |d d d f   d	      d    ||d d d f   |d d d f   d	      d
d       y )NrT   r   r   r   c                 V   |t         j                  dz  z  }| dk(  r t        |      |dz  t        d|z        z  z
  S | dk(  r#t        d|z        |t        d|z        z  dz  z
  S t        | |z        |t        | dz   |z        d| dz   z  z  t        | dz
  |z        d| dz
  z  z  z
  z  z
  S )Nr6  rT   r7  r   rF   rD   r8  )rY   r   r	   r:  s      r<   	se_smallqz.TestCephes.test_mathieu_sem.<locals>.se_smallqj  s    sNAAv1v!c!A#h..a1Q3x!C!H*R-// 1Q3x!S!A#q\1ac7%;c1Q3'lAqQRsG>T%T"UUUr?   r>  r?  r@  rV  rA  rB  rC  )	r   r8   mathieu_semrY   rw   r   r   rj   r   )r;   rI  r;  r<  s       r<   test_mathieu_semzTestCephes.test_mathieu_semf  s    V''!A.y9 

	V 

	V IIaEE!R[[b"--.**1QtV9aQiGJ!!AdF)QtAvY>"	,r?   c                 F    t        t        j                  ddd      d       y NrT   r   rg  )r   r8   mathieu_modcem1r:   s    r<   test_mathieu_modcem1zTestCephes.test_mathieu_modcem1|      V++Aa29=r?   c                 B   t        j                  ddd       t        j                  dd      d d d d f   }t        j                  t        j
                  ddd         d d d d f   }t        j                  ddd      d d d d f   }t        j                  |||       d   }t        j                  ||d      d    t        j                  ||d      d   z  }t        j                  |||      d    d|z  t        j                  |||      d   z  z
  }t        ||d	       y )
NrT   r   rD   r!  rF   rV  rH   rV   rM   )	r8   mathieu_modcem2rY   r   r   rj   linspacerN  r   r;   r;  r<  rP  y1fry2s          r<   test_mathieu_modcem2zTestCephes.test_mathieu_modcem2  s   q1% IIaOAd4K(EE"++b!R()$q+6KK1a d1-##Aq1"-a0$$Q1-a0063I3I!QPQ3RST3UU%%aA.q11"V++Aq!4Q778 	BU+r?   c                 F    t        t        j                  ddd      d       y rM  )r   r8   mathieu_modsem1r:   s    r<   test_mathieu_modsem1zTestCephes.test_mathieu_modsem1  rP  r?   c                 >   t        j                  ddd       t        j                  dd      d d d d f   }t        j                  t        j
                  ddd         d d d d f   }t        j                  ddd      d d d d f   }t        j                  |||       d   }t        j                  ||d      d   t        j                  ||d      d   z  }t        j                  |||      d   d|z  t        j                  |||      d   z  z
  }t        ||d	       y )
NrT   rD   r!  rF   rV  r   rH   rV   rM   )	r8   mathieu_modsem2rY   r   r   rj   rS  rZ  r   rT  s          r<   test_mathieu_modsem2zTestCephes.test_mathieu_modsem2  s   q1% IIaOAd4K(EE"++b!R()$q+6KK1a d1-##Aq1"-a0##Aq!,Q/&2H2HAq2QRS2TT$$Q1-a0"V++Aq!4Q778BU+r?   c                    t        t        j                  ddd      t        j                  t        j                  f       t        t        j
                  ddd      t        j                  t        j                  f       t        t        j                  ddd      t        j                  t        j                  f       t        t        j
                  ddd      t        j                  t        j                  f       t        t        j                  ddd      t        j                  t        j                  f       t        t        j                  ddd      t        j                  t        j                  f       t        t        j                  ddd      t        j                  t        j                  f       t        t        j                  ddd      t        j                  t        j                  f       y )N'  r   g?      ?)
r   r8   rD  rY   r   rJ  rN  rZ  rR  r]  r:   s    r<   test_mathieu_overflowz TestCephes.test_mathieu_overflow  s2   V''q#68HIV''q#68HIV''sC8266266:JKV''sC8266266:JKV++E3<rvvrvv>NOV++E3<rvvrvv>NOV++E3<rvvrvv>NOV++E3<rvvrvv>NOr?   c                     t        d      D ];  }t        j                  ddd      }t        |d   dd       t        |d	   d
d       = y )N<   rF   r>  rI   r   g.dS?rV   rM   rT   gGc?-C6?)rp   r8   r]  r   )r;   rc   vs      r<   test_mathieu_ticket_1847z#TestCephes.test_mathieu_ticket_1847  sH     rA&&q#r2AAaD":GAaD":F	 r?   c                 .    t        j                  d       y r7   )r8   modfresnelmr:   s    r<   test_modfresnelmzTestCephes.test_modfresnelm      1r?   c                 .    t        j                  d       y r7   )r8   modfresnelpr:   s    r<   test_modfresnelpzTestCephes.test_modfresnelp  rk  r?   c                 D    t        t        j                  dd      d       y r   )r   r8   	modstruver:   s    r<   test_modstruvezTestCephes.test_modstruve  r&  r?   c                 F    t        t        j                  ddd      d       y r   )r   r8   nbdtrr:   s    r<   
test_nbdtrzTestCephes.test_nbdtr  r  r?   c                 F    t        t        j                  ddd      d       y r   )r   r8   nbdtrcr:   s    r<   test_nbdtrczTestCephes.test_nbdtrc  r   r?   c                 F    t        t        j                  ddd      d       y r   )r   r8   nbdtrir:   s    r<   test_nbdtrizTestCephes.test_nbdtri  r   r?   c                 2    t        j                  ddd       y )NrT   rG   r   )r8   nbdtrikr:   s    r<   test_nbdtrikzTestCephes.test_nbdtrik  s    qBr?   c                 F    t        t        j                  ddd      d       y r   )r   r8   nbdtrinr:   s    r<   test_nbdtrinzTestCephes.test_nbdtrin  r   r?   c                 H    t        t        j                  dddd      d       y r   )r   r8   ncfdtrr:   s    r<   test_ncfdtrzTestCephes.test_ncfdtr  r  r?   c                     t        t        j                  dddd      d       g d}t        j                  ddd|      }t	        t        j                  ddd|      |       y )NrT   r   r   )r   rT   ra  rF   r   ra  )r   r8   ncfdtrir  r   )r;   fr^  s      r<   test_ncfdtrizTestCephes.test_ncfdtri  sM    V^^Aq!Q/5MM!QQ'q!S!4a8r?   c                     g d}t        j                  d|dd      }t        t        j                  d|dd      |       y )NrT   rF   r   rF   r9  rv   )r8   r  r   
ncfdtridfd)r;   dfdr^  s      r<   test_ncfdtridfdzTestCephes.test_ncfdtridfd  s6    MM!S$+))!Qb93?r?   c                     g d}t        j                  |ddd      }t        t        j                  |ddd      |d       y )N)rK  rT   rF   r   g     @rF   r9  rv   gh㈵>rM   )r8   r  r   
ncfdtridfn)r;   dfnr^  s      r<   test_ncfdtridfnzTestCephes.test_ncfdtridfn  s8    !MM#q$+))!Qb93TJr?   c                     g d}t        j                  dd|d      }t        t        j                  dd|d      |       y )N)r   ra  r   rF   r   rv   )r8   r  r   	ncfdtrinc)r;   ncr^  s      r<   test_ncfdtrinczTestCephes.test_ncfdtrinc  s6    MM!QB'((Aq"5r:r?   c           	      N   t        t        j                  ddd      d       t        t        j                  ddd      d       t        t        j                  t        j
                  dd      dd	       t        t	        j                  t        j                  d
t        j
                  d                   t        t        j                  d
dt        j
                        d       t        t	        j                  t        j                  t        j                  dd                   t        t	        j                  t        j                  d
t        j                  d                   t        t	        j                  t        j                  d
dt        j                                     y )NrT   r   r   	   i   r   r   r   r   r   r   )	r   r8   nctdtrr   rY   r   r   r   r   r:   s    r<   test_nctdtrzTestCephes.test_nctdtr  s    V]]1Qq)#.V]]1eR0#6FMM"&&"b93Br2663789FMM"b"&&92>rvvr2678r2662678r2rvv678r?   c                 2    t        j                  ddd       y )NrT   r   r   )r8   	nctdtridfr:   s    r<   test_nctdtridfzTestCephes.test_nctdtridf  s    3q!r?   c                 2    t        j                  ddd       y r  )r8   	nctdtrincr:   s    r<   test_nctdtrinczTestCephes.test_nctdtrinc  s    1Qr?   c                 2    t        j                  ddd       y )NrK  r  r   )r8   nctdtritr:   s    r<   test_nctdtritzTestCephes.test_nctdtrit  s    3r"r?   c                 F    t        t        j                  ddd      d       y )Nr   rT   r   )r   r8   nrdtrimnr:   s    r<   test_nrdtrimnzTestCephes.test_nrdtrimn  s    FOOC!4S9r?   c                 L    t        t        j                  ddd      ddd       y )Nr   r   r   rW   )r   r8   nrdtrisdr:   s    r<   test_nrdtrisdzTestCephes.test_nrdtrisd  s     C4ca	)r?   c                 4    t        j                  dddd       y r  )r8   obl_ang1r:   s    r<   test_obl_ang1zTestCephes.test_obl_ang1       !Aa r?   c                 r    t        j                  ddddd      }t        |d   d       t        |d   d       y )NrT   r   r   r   )r8   obl_ang1_cvr   )r;   results     r<   test_obl_ang1_cvzTestCephes.test_obl_ang1_cv  s6    ##Aa!A.F1Ic*F1Ic*r?   c                 F    t        t        j                  ddd      d       y NrT   r   r   )r   r8   obl_cvr:   s    r<   test_obl_cvzTestCephes.test_obl_cv  r   r?   c                 4    t        j                  dddd       y r  )r8   obl_rad1r:   s    r<   test_obl_rad1zTestCephes.test_obl_rad1  r  r?   c                 6    t        j                  ddddd       y r  )r8   obl_rad1_cvr:   s    r<   test_obl_rad1_cvzTestCephes.test_obl_rad1_cv      1Qq1%r?   c                 4    t        j                  dddd       y r  )r8   obl_rad2r:   s    r<   test_obl_rad2zTestCephes.test_obl_rad2  r  r?   c                 6    t        j                  ddddd       y r  )r8   obl_rad2_cvr:   s    r<   test_obl_rad2_cvzTestCephes.test_obl_rad2_cv  r  r?   c                 D    t        t        j                  dd      d       y )NrT   r   rG  )r   r8   pbdvr:   s    r<   	test_pbdvzTestCephes.test_pbdv  s    V[[1%i0r?   c                 0    t        j                  dd       y r  )r8   pbvvr:   s    r<   	test_pbvvzTestCephes.test_pbvv      Aar?   c                 0    t        j                  dd       y r  )r8   pbwar:   s    r<   	test_pbwazTestCephes.test_pbwa  r  r?   c                     t        j                  dd      }t        |t        j                  d             t        j                  g dd      }t        |g d       y )Nr   rT   rI   r   rT   rF   )rT   rT   rT   )r8   pdtrr   rY   r   r   r;   vals     r<   	test_pdtrzTestCephes.test_pdtr   s>    kk!QC,kk)Q'3	*r?   c                     t        j                  dd      }t        |dt        j                  d      z
         t        j                  g dd      }t        |g d       y )Nr   rT   rI   r  r   )r   r   r   )r8   pdtrcr   rY   r   r   r  s     r<   
test_pdtrczTestCephes.test_pdtrc'  sB    ll1a CRVVBZ0ll9c*3	*r?   c                     t               5 }|j                  t        d       t        j                  dd       d d d        y # 1 sw Y   y xY w)N-floating point number truncated to an integerr   )r    r%  r&  r8   pdtri)r;   r(  s     r<   
test_pdtrizTestCephes.test_pdtri.  s3     CJJ~'VWLLS! !  s   -AA
c                     t        j                  dd      }t        t        j                  |dz   d      d       t        j                  dgdgdggg d      }t	        |t        j                  d             y )Nr   rT   r   r9  ffffff?)r   #B;rU  )r   r   )r8   pdtrikr   	gammainccr   rY   r   r;   rc   s     r<   test_pdtrikzTestCephes.test_pdtrik3  s^    MM#q!F,,QUA6<MMA3/1AB1bhhv./r?   c                 4    t        j                  dddd       y r  )r8   pro_ang1r:   s    r<   test_pro_ang1zTestCephes.test_pro_ang1:  r  r?   c           	      \    t        t        j                  ddddd      t        d             y )NrT   r   r4  )r   r8   pro_ang1_cvr   r:   s    r<   test_pro_ang1_cvzTestCephes.test_pro_ang1_cv=  s'    !&"4"4Qq1Q"?"'	"2	4r?   c                 F    t        t        j                  ddd      d       y r  )r   r8   pro_cvr:   s    r<   test_pro_cvzTestCephes.test_pro_cvA  r   r?   c                 4    t        j                  dddd       y r  )r8   pro_rad1r:   s    r<   test_pro_rad1zTestCephes.test_pro_rad1D  s    !Ac"r?   c                 6    t        j                  ddddd       y r  )r8   pro_rad1_cvr:   s    r<   test_pro_rad1_cvzTestCephes.test_pro_rad1_cvG  r  r?   c                 4    t        j                  dddd       y r  )r8   pro_rad2r:   s    r<   test_pro_rad2zTestCephes.test_pro_rad2J  r  r?   c                 6    t        j                  ddddd       y r  )r8   pro_rad2_cvr:   s    r<   test_pro_rad2_cvzTestCephes.test_pro_rad2_cvM  r  r?   c                 .    t        j                  d       y rn   )r8   psir:   s    r<   test_psizTestCephes.test_psiP  r  r?   c                 F    t        t        j                  ddd      d       y r7   )r   r8   radianr:   s    r<   test_radianzTestCephes.test_radianS  s    V]]1Qq)!,r?   c                 B    t        t        j                  d      d       y r   )r   r8   rz  r:   s    r<   test_rgammazTestCephes.test_rgammaV  r"  r?   c                 x   t        t        j                  d      d       t        t        j                  d      d       t        t        j                  d      d       t        t        j                  d      d       t        t        j                  d	      d       t        t        j                  d
      d       y )N333333@r   333333      g@r>  gg            @rw  )r   r8   roundr:   s    r<   
test_roundzTestCephes.test_roundY  st    V\\#&s+V\\$'-V\\#&s+V\\$'-V\\#&s+V\\$'-r?   c                 .    t        j                  d       y rn   )r8   shichir:   s    r<   test_shichizTestCephes.test_shichia  r  r?   c                    t        j                  d       t        j                  t        j                        \  }}t	        |t        j
                  dz         t	        |d       t        j                  t        j                         \  }}t	        |t        j
                   dz         t        t        j                  |      d       y )NrT   r   r   z cosine integral(-inf) is not nan)r8   sicirY   r   r   r   r   r   )r;   sr'  s      r<   	test_sicizTestCephes.test_sicid  s~    A{{266"1Aruus{+Aq!{{BFF7#1Av|,?@r?   c                 B    t        t        j                  d      d       y NZ   r   )r   r8   sindgr:   s    r<   
test_sindgzTestCephes.test_sindgo      V\\"%c*r?   c                     t        t        j                  dd      d       t        t	        j
                  t        j                  dt        j                                     y )NrT   rK  ?)r   r8   smirnovr   rY   r   r   r:   s    r<   test_smirnovzTestCephes.test_smirnovr  s7    V^^Ab)#."&&123r?   c                 D   t        t        j                  dd      d       t        t        j                  dd      d       t        t        j                  dd      d       t        t	        j
                  t        j                  dt        j                                     y )	NrT   rK  rI   rF         ?      r   g      ȿ)r   r8   	_smirnovpr   rY   r   r   r:   s    r<   test_smirnovpzTestCephes.test_smirnovpv  sk    V%%a,b1V%%a.0@AV%%a.0@A))!RVV456r?   c                    t        t        j                  dd      d       t        t	        j
                  t        j                  dt        j                                     t	        j                  dddd      }t        t        j                  d|      dt        j                  d|      z
         t	        j                  dddd      }t        t        j                  d	|      dt        j                  d	|      z
         y )
NrT   rK  r   rM  Tendpointr   r   rD   )
r   r8   	_smirnovcr   rY   r   r   rS  r   r  )r;   x10x4s      r<   test_smirnovczTestCephes.test_smirnovc|  s    V%%a+C0))!BFF345kk!QT2F,,Q4aq#8N6NO[[Aq40F,,Q3Qv~~a7L5LMr?   c           	      T   t        t        j                  dt        j                  dd            d       t        t        j                  dt        j                  dd            d       t	        t        j                  t        j                  dt
        j                                     y NrT   rG   333333?)r   r8   r  smirnovir   rY   r   r   r:   s    r<   test_smirnovizTestCephes.test_smirnovi  sb    FNN1V__Qs-CDSIFNN1V__Qs-CDSI266234r?   c           	      T   t        t        j                  dt        j                  dd            d       t        t        j                  dt        j                  dd            d       t	        t        j                  t        j                  dt
        j                                     y r!  )r   r8   r  
_smirnovcir   rY   r   r   r:   s    r<   test_smirnovcizTestCephes.test_smirnovci  sl    F,,Qv/@/@3/GHMF,,Qv/@/@3/GHM**1RVV456r?   c                 B    t        t        j                  d      d       y r   )r   r8   spencer:   s    r<   test_spencezTestCephes.test_spence  r"  r?   c                     t        t        j                  dd      d       t        t        j                  dd      d       t        t        j                  dd      d       y )NrT   r   r   r  rF   gMoF?)r   r8   stdtrr   r:   s    r<   
test_stdtrzTestCephes.test_stdtr  sA    V\\!A&s+FLL1-t4FLL1-~>r?   c                 0    t        j                  dd       y )Nffffff?rT   )r8   stdtridfr:   s    r<   test_stdtridfzTestCephes.test_stdtridf  s    Ar?   c                 0    t        j                  dd       y )NrT   r/  )r8   stdtritr:   s    r<   test_stdtritzTestCephes.test_stdtrit  s    qr?   c                 D    t        t        j                  dd      d       y r   )r   r8   struver:   s    r<   test_struvezTestCephes.test_struve  r   r?   c                 B    t        t        j                  d      d       y r   )r   r8   tandgr:   s    r<   
test_tandgzTestCephes.test_tandg  r  r?   c                 D    t        t        j                  dd      d       y r   )r   r8   tklmbdar:   s    r<   test_tklmbdazTestCephes.test_tklmbda  s    FNN1Q/4r?   c                 .    t        j                  d       y rn   )r8   y0r:   s    r<   test_y0zTestCephes.test_y0  r  r?   c                 .    t        j                  d       y rn   )r8   rU  r:   s    r<   test_y1zTestCephes.test_y1  r  r?   c                 0    t        j                  dd       y rn   )r8   ynr:   s    r<   test_ynzTestCephes.test_yn  r  r?   c                 0    t        j                  dd       y rn   )r8   yvr:   s    r<   test_yvzTestCephes.test_yv  r  r?   c                 0    t        j                  dd       y rn   )r8   yver:   s    r<   test_yvezTestCephes.test_yve  r  r?   c                    t        dd      t        dd      t        dd      t        dd      t        dd	      t        dd
      t        dd      t        dd      t        dd      t        dd      t        dd      t        dd      t        dd      t        dd      t        dd      t        dd      g}t        dd      t        dd       t        d!d"      t        d#d$      t        d%d&      t        d'd(      t        d)d*      t        d+d,      t        d-d.      t        d/d      t        d0d1      t        d2d3      t        d4d5      t        d6d7      t        d8d9      t        d:d:      g}t        t        j                  ||d;<       y )=Ng@g+п皙ٿr   r"  r   r  r   g      "g      "@g4׵/Yg8EGr?r  gffffff@ig>@r   g|Pk?rM  rT   ir!  r  i   ig     j@  ļBg0"bgpتO#M?gMF>?g5-g`?g	S+?g6U?gǗʿgjD{?/,Gg` 0Gg!^?gnF5o{gI\Y?g7f8goC9	?gyhgEbr?g{g.
?ga~gT-s?gɤ,P&?g|bgޗY3g!ؑ-@gi$bghgy(V@^gһ>g>gx\h<rL   rM   )rF  r2   r8   wofz)r;   rP  ws      r<   	test_wofzzTestCephes.test_wofz  s   U8$gd2&6BS_gc#.B%f-ws3/?SG 4R]GCOWQs^R_gc#.T0B FFHGIKGHJHIKFFHGIKDGIHIKHIKJHGIHGIFFHFFHFFHFFH?!
D 	&++q!%8r?   N)__name__
__module____qualname__r=   rB   rf   rk   rx   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/  r3  r6  r9  r<  r@  rC  rG  r   markxfailrS  rX  r[  r_  ra  rd  ri  rn  rq  rt  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/  r2  rE  rK  rO  rX  r[  r^  rb  rg  rj  rn  rq  rt  rw  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  r  r  r  r  r  r  r  r  r  r	  r  r  r  r  r$  r'  r*  r-  r1  r4  r7  r:  r=  r@  rB  rE  rH  rK  rR   r?   r<   r5   r5   5   s   2.2*.G,/00/()()3

000,--.7<221**2AL2N
+0)0):*3)3N& [[MNF OF($$@ [[454 6412+3P-2./
1'('(111.)*''))*)20/.4,F&-00,2,,>, >,	PG0.// 019@
K
;

9" #:)!+
/!&!&1++"
0!4/#&!&-+.	A+47N5
7
+?
-+5*9r?   r5   c                       e Zd Zd Zd Zd Zd Zej                  j                  d      d        Z
ej                  j                  d      d        Zy)	TestAiryc                    t        j                  d      }t        |t        g d      d       t        j                  d      }t        |t        g d      d       t        j                  d      }t        |t        g d      d       y )NGz?)g*?gTk'kPĿge+?gyCyt?r7  g=
ףp=?)g'$'?geοgL?g
HVV?g
ףp=
׿)gl@D|?gV~׭ͿgU?g3{ɔ?)r!   r9   r   r   r5  s     r<   r=   zTestAiry.test_airy  sw     LL!@A	

 LL!?@	

 LL!@A	
r?   c                 f   t        j                  d      }t        j                  d      }d gdz  }t        d      D ]"  }||   t	        dt        d      z        z  ||<   $ t        dd      D ]5  }||   t	        t        t        dt        d      z                     z  ||<   7 t        ||d       y )Nr   rD   rF   gN贁N{?rJ   )	r!   rA   r9   rp   r   r   absr   r   )r;   abb1rb   s        r<   rB   zTestAiry.test_airye  s    MM$LLVAXqAaD\$t*455BqE qAaDc$|DJ'>"?@@AABqE !!Bq)r?   c                    t        j                  d      }t        ddg      t        ddg      t        ddg      t        dd	g      f}t        ||d
       t        j                  d      }t        |d   t        g d      d       t        |d   t        g d      d       t        |d   t        g d      d       t        |d   t        g d      d       y )NrF   glgoe2+
g(0[g X*JgUfݿg˰zU`?g4c1=C?gCuTrD   r   r   )g&g(.2+
gRg}`g%́rM  rT   )g7;1[ge*JgVwgL g<3rV  )gNݿg3%IQ`?gZyΌ׿gʀ11^?g33tտr   )gqM0=C?g7uTg\G`?gp⍞vg$.m?)r!   bi_zerosr   r   )r;   bibias      r<   test_bi_zeroszTestAiry.test_bi_zeros  s   a k:./k;/0k:./j+./1 	""S+a !"Q% /C )D EG		H 	""Q% /C )D EG		H 	""Q% /C )D EG		H 	""Q% /B )C DF		Gr?   c           	          t        j                  d      }t        |t        dg      t        dg      t        dg      t        dg      fd       y )NrT   gcqg!xLgMSt$?g ~:p?rD   )r!   ai_zerosr   r   )r;   ais     r<   test_ai_zeroszTestAiry.test_ai_zeros#  sK    a !"e[M&:%*K=%9%*F8_%*F8_&6 78	9r?   rF   c                    t        j                  d      \  }}}}t        j                  |      \  }}}}t        j                  |      \  }}	}}dt        |      dz  z  }
t        |      dz  }t	        ||d       t	        ||d       t	        ||
z  ddd       t	        |	|z  ddd       t	        |d d g d	d       t	        |d d g d
d       y )NP  rT   r9  rV   rM   r   rW   rJ   )guqgqHkZg4g9Ζ%gB~gL")gLgQO	gMQnGg3:g)}g )r!   rh  r9   r^  r   )r;   rP  zpai_zpxaip_zxai_zaip_z_ai_zpaip_zpai_envelopeaip_envelopes               r<   test_ai_zeros_bigzTestAiry.test_ai_zeros_big*  s     ' 0 0 72vv#LLOeQ%ll2.vq!A&2w 	E2E2 	[(!%a@|+QUC 	"1:@E	G 	2A:@E	Gr?   c                    t        j                  d      \  }}}}t        j                  |      \  }}}}t        j                  |      \  }}}}	dt        |      dz  z  }
t        |      dz  }t	        ||d       t	        ||d       t	        ||
z  ddd       t	        |	|z  ddd       t	        |d d g d	d       t	        |d d g d
d       y )Nrl  rT   r9  rV   rM   r   rW   rJ   )gx&gg-2+
gRgg`gu%́g{ )g K;1[g*JgVwg<w gd
3g/{
")r!   rc  r9   r^  r   )r;   rP  rm  bi_zpxbip_zxrr  bi_zbip_zbi_zpbip_zpbi_envelopebip_envelopes               r<   test_bi_zeros_bigzTestAiry.test_bi_zeros_bigC  s     ' 0 0 72vv#LLO1dE%ll2.1eVA&2w 	E2E2 	[(!%a@|+QUC 	"1:@E	G 	2A:@E	Gr?   N)rS  rT  rU  r=   rB   rf  rj  r   rV  	fail_slowrw  r  rX  r?   r<   rZ  rZ    sb    
,*GB9 [[1G G0 [[1G Gr?   rZ  c                       e Zd Zd Zy)TestAssocLaguerrec                     t        j                  dd      }t        j                  ddd      }t        | |d      d       t        j                  ddd      }t        | |d      d       y )NrM  rT   r  r7  )r!   genlaguerreassoc_laguerrer   )r;   a1a2s      r<   test_assoc_laguerrez%TestAssocLaguerre.test_assoc_laguerre^  s\      A&##Br!,!"RVA.##Ab+!"RU1-r?   N)rS  rT  rU  r  rX  r?   r<   r  r  ]  s    .r?   r  c                       e Zd Zd Zy)TestBesselpolyc                      y NrX  r:   s    r<   r   zTestBesselpoly.test_besselpolyg      r?   N)rS  rT  rU  r   rX  r?   r<   r  r  f  s    r?   r  c                   x    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zy)
TestKelvinc                 H    t        j                  d      }t        |dd       y )NrF   gT?r   )r!   r   r   )r;   mbeis     r<   r   zTestKelvin.test_beil  s    {{1~D"4Q7r?   c                 H    t        j                  d      }t        |dd       y )NrF   gD,X?r   )r!   r   r   )r;   mbeips     r<   r   zTestKelvin.test_beipp      QE"5a8r?   c                 H    t        j                  d      }t        |dd       y )NrF   gPA4?r   )r!   r   r   )r;   mbers     r<   r   zTestKelvin.test_bert  s    {{1~D!4Q7r?   c                 H    t        j                  d      }t        |dd       y )NrF   gii߿r   )r!   r   r   )r;   mberps     r<   r   zTestKelvin.test_berpx      QE"6q9r?   c                 ^    t        j                  d      }t        |t        g d      d       y )Nr   g&jj@g+"@g(rw+@gU2@g`<6@rD   )r!   	bei_zerosr   r   )r;   rd  s     r<   test_bei_zeroszTestKelvin.test_bei_zeros|  s-    q!!"U ,6 &7 89		:r?   c                 ^    t        j                  d      }t        |t        g d      d       y )Nr   )gyWo.@g╲ݏ @gנ{)@gK11@gWc"5@r7  )r!   
beip_zerosr   r   )r;   bips     r<   test_beip_zeroszTestKelvin.test_beip_zeros  s2      #!#e -C 'D EF		Gr?   c                 ^    t        j                  d      }t        |t        g d      d       y )Nr   g\@g6ُ@gӟHY'@g>"D0@ggaO;4@rD   )r!   	ber_zerosr   r   )r;   r   s     r<   test_ber_zeroszTestKelvin.test_ber_zeros  s-    "!#e -7 '8 9:		;r?   c                 ^    t        j                  d      }t        |t        g d      d       y )Nr   g '@gs%@gF ^-@gvۅj3@gB7@rD   )r!   
berp_zerosr   r   )r;   brps     r<   test_berp_zeroszTestKelvin.test_berp_zeros  s-      #!#e -7 '8 9:		;r?   c           
         t        j                  d      }t        |t        j                  d      t        j                  d      dz  z   t        j
                  d      t        j                  d      dz  z   t        j                  d      t        j                  d      dz  z   t        j                  d      t        j                  d      dz  z   fd       y )NrF   rN  r7  )r!   r  r   r   r   r  r  r   r   r   r  )r;   mkelvs     r<   r  zTestKelvin.test_kelvin  s    q!!%Q'++a.:K)K)0Q'++a.:K)K)0a7<<?2;M)M)0a7<<?2;M)M)O PQ	Rr?   c                 H    t        j                  d      }t        |dd       y )NrF   g>ɿr   )r!   r  r   )r;   mkeis     r<   r  zTestKelvin.test_kei  s    {{1~D!5a8r?   c                 H    t        j                  d      }t        |dd       y )NrF   gr@d"?r   )r!   r  r   )r;   mkeips     r<   r  zTestKelvin.test_keip  r  r?   c                 H    t        j                  d      }t        |dd       y )NrF   gܙUr   )r!   r  r   )r;   mkers     r<   r  zTestKelvin.test_ker  s    {{1~D!6q9r?   c                 H    t        j                  d      }t        |dd       y )NrF   g^.n3Jr   )r!   r   r   )r;   mkerps     r<   r  zTestKelvin.test_kerp  r  r?   c                 ^    t        j                  d      }t        |t        g d      d       y )Nr   gE>Q@gB= @gPN)@gm91@g
%5@rD   )r!   	kei_zerosr   r   )r;   r  s     r<   test_kei_zeroszTestKelvin.test_kei_zeros  s-    "!#e -8 '9 :;		<r?   c                 ^    t        j                  d      }t        |t        g d      d       y )Nr   gWf,@g?"@gFZ*o+@gOpN2@gEa6@rD   )r!   
keip_zerosr   r   )r;   r  s     r<   test_keip_zeroszTestKelvin.test_keip_zeros  -    !!!$!$u .: (; <=		>r?   c                    t        j                  d      }|\  }}}}}}}}	t        |t        g d      d       t        |t        g d      d       t        |t        g d      d       t        |t        g d      d       t        |t        g d      d       t        |t        g d      d       t        |t        g d	      d       t        |	t        g d
      d       y )Nr   r  rD   r  )#?Q5U@q89 %@ol`.@gO0q3@r  r  )gum.@gݏ @gs{)@g䠄11@gN(D!5@gS@g89@@g^C'@g1ZG0@g+ڇ4@r  )r!   kelvin_zerosr   r   )
r;   tmpberzbeizkerzkeizberpzbeipzkerpzkeipzs
             r<   test_kelvin_zeroszTestKelvin.test_kelvin_zeros  s   ""1%693T$tE%e!$u .9 (: ;<		=
 	"$u .9 (: ;<		=
 	"$u .9 (: ;<		=
 	"$u .9 (: ;<		=
 	"% /: ); <=		>
 	"% /: ); <=	> 	"% /: ); <=		>
 	"% /: ); <=		>r?   c                 ^    t        j                  d      }t        |t        g d      d       y )Nr   )r  r  r  r  gD;q3@rD   )r!   	ker_zerosr   r   )r;   r  s     r<   test_ker_zeroszTestKelvin.test_ker_zeros  s-    "!#e -9 ': ;<		=r?   c                 ^    t        j                  d      }t        |t        g d      d       y )Nr   r  rD   )r!   
kerp_zerosr   r   )r;   r   s     r<   test_kerp_zeroszTestKelvin.test_kerp_zeros  r  r?   N)rS  rT  rU  r   r   r   r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  rX  r?   r<   r  r  k  s_    898::G;;R99::<>,>\=>r?   r  c                       e Zd Zd Zy)TestBernoullic                 ^    t        j                  d      }t        |t        g d      d       y )Nr   )r   r  g-!lV?r   g镲r   rD   )r!   	bernoullir   r   )r;   brns     r<   test_bernoullizTestBernoulli.test_bernoulli  s-    "!#e -5 '6
 78	9r?   N)rS  rT  rU  r  rX  r?   r<   r  r    s    9r?   r  c                   "    e Zd ZdZd Zd Zd Zy)TestBetaz
    Test beta and betaln.
    c                    t        t        j                  dd      d       t        t        j                  dd      t        j                  d             t        t        j                  dd      ddd	
       t        j                  dd      }t        j                  d      t        j                  d      z  t        j                  d      z  }t        ||d       y )NrT   r   33333YN~h?   g6.8@rL   r   rC  rF   rD   rJ   rM   )r   r!   betar   rm  )r;   betbetgs      r<   	test_betazTestBeta.test_beta  s    W\\!Q'-VV4gmmF6KLVS13E"	, ll1a a q!117==3CCT.r?   c                 h    t        t        j                  t        j                  dd                   y )NrI   rF   )r   rY   isinfr!   r  r:   s    r<   test_beta_infzTestBeta.test_beta_inf  s    b!,-.r?   c                    t        t        j                  dd      d       t        t        j                  dd      t        j                  d             t        t        j                  dd      ddd	
       t        j                  dd      }t        t        t        j                  dd                  }t        ||d       y )NrT   r   r  r  r     gIs	@rB  r   rC  rF   rD   rL   rM   )r   r!   betalnr   rs  r   r^  r  )r;   betlnr  s      r<   test_betalnzTestBeta.test_betaln!  s    W^^Aq)3/vv6/	1vs35G"	, q!$#gll1a()*s/r?   N)rS  rT  rU  __doc__r  r  r  rX  r?   r<   r  r    s    //	0r?   r  c                      e Zd ZdZd Zej                  j                  dg d      d        Zej                  j                  dg d      d        Z	ej                  j                  dg d	      d
        Z
ej                  j                  dej                  ej                  ej                  ej                  g      ej                  j                  dg d      d               Zy)TestBetaIncz?
    Tests for betainc, betaincinv, betaincc, betainccinv.
    c                 F   t        j                  g d      }t        t        j                  dd|      |       t        t        j
                  dd|      |       t        t        j                  dd|      d|z
         t        t        j                  dd|      d|z
         y )N)r   r9  rT   rT   )rY   r   r   r!   betainc
betaincinvbetainccbetainccinvr5  s     r<   
test_a1_b1zTestBetaInc.test_a1_b12  sz    HH\"W__Q1-q1W''1a0!4W%%aA.A6W((Aq11q59r?   z
a, b, x, p))rF   rD   g@w?r   )r  g     `e@rV   g*?)r  r  g"Yx;r9  )g   `1?g    ئAg\aY4g    ?)rD   i g-߇)?g;?c                     t        j                  |||      }t        ||d       t        j                  |||      }t        ||d       y )Nr  rM   g-a=)r!   r  r   r  r;   r_  r`  r  r^  p1x1s          r<   test_betainc_betaincinvz#TestBetaInc.test_betainc_betaincinvI  sB     __Q1%AE*1a(AE*r?   ))      @r   r9  g     ?)      @g     *@      ?g&?)      ?r  g333333?gFoE?)r        2@rU  gg2$Z?)r  r  gZd;?g6)r  rl  r  g`<)      0@r  g?g<dEA>)g?g7Ê@g/3J?Hz>c                     t        j                  |||      }t        ||d       t        j                  |||      }t        ||d       y )N+<rM   gV瞯=)r!   r  r   r  r  s          r<   test_betaincc_betainccinvz%TestBetaInc.test_betaincc_betainccinv^  sD     aA&AE*  Aq)AE*r?   za, b, y, ref))cj,@r  ghHISOa gڭ Y;)g      ,@g      -@g둤g}c]춫;)r         .@gUv \U,gS^%:)r   g      ?gMoigKB;)r>  g    i@g1$-g\_cp:c                 N    t        j                  |||      }t        ||d       y )NrB  rM   )r!   r  r   )r;   r_  r`  r   refr  s         r<   test_betaincinv_tiny_yz"TestBetaInc.test_betaincinv_tiny_yp  s$    2 q!Q'3U+r?   funcargs))r  rF   r   )r   rF   r   )ra         r   )ra  r   r   )ra  r   333333ӿ)ra  r   皙?c                     t        j                  d      5  t        j                  t         j                  d      5  t        j
                  |  d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nraise)domainr  r   )r!   errstater   r   SpecialFunctionErrorr  )r;   r  r  s      r<   test_betainc_domain_errorsz&TestBetaInc.test_betainc_domain_errors  sP     W-w;;8L& M .-LL .-s"   &A-A!A-!A*	&A--A6N)rS  rT  rU  r  r  r   rV  parametrizer  r  r  r!   r  r  r  r  r  rX  r?   r<   r  r  -  s    :. [[	6
7+
7+ [[\
<=+=+ [[	7,,& [[Vgoow7I7I&-&6&68K8K&M N[[V &I J'JN
'r?   r  c                   6    e Zd Zd Zd Zd Zd Zd Zd Zd Z	y)	TestCombinatoricsc                    t        t        j                  ddgddg      ddg       t        t        j                  dd      d       t        t        j                  ddd      d       t        t        j                  dddd	      d
       t        t	        d      D cg c]  }t        j                  d|d       c}t        j                  dt        t	        d                  d       t        j                  t              j                  dz   }t        t        j                  ||dz
  d      |       d}t        j                  ddd      |k(  sJ y c c}w )NrV  r   rD         ^@g     @j@Texactx   )r  
repetition   rN  ri   r  rX   rT   l   hU7`S?Q r>  2   )
r   r!   combr   rp   listrY   iinforo   max)r;   rc   iirQ  s       r<   	test_combzTestCombinatorics.test_comb  s   b"X1v6tER+T2W\\"at4c:W\\"atEsK%)L)Qb!48)LReBi9	G XXc]"W\\"bd$7<1||C40H<<< Ms   Ec                     d}d}t        j                  |      }t        j                  |      }t        j                  ||d      }t        j                  ||d      }||k(  sJ y )NF   rP   Tr  )rY   int64r!   r$  )r;   rb   rc   np_nnp_kres_npres_pys          r<   test_comb_with_np_int64z)TestCombinatorics.test_comb_with_np_int64  sX    xx{xx{dD5a$/r?   c                 `   t        t        j                  ddd      d       t        t        j                  ddd      d       t        t        j                  ddd      d       t        t        j                  ddd      d       t        t        j                  g dg d	      g d
       y )NrF   r   Tr  r   rI   FrF   rI   rF   rV  r   r   rI   r   )r   r   r   r  )r   r!   r$  r   r:   s    r<   test_comb_zerosz!TestCombinatorics.test_comb_zeros  t    W\\!Qd3Q7W\\"at4a8W\\!Rt4a8W\\!Ru5q9^]CEWXr?   c                     d}t        j                  |      5  t        j                  ddd       d d d        y # 1 sw Y   y xY w)Nz`exact=True`r   r  rD   Tr  )r   r   r!   r$  )r;   msgs     r<   test_comb_exact_non_int_depz-TestCombinatorics.test_comb_exact_non_int_dep  s1    ###.LLat, /..s	   ;Ac                     t        t        j                  ddgddg      ddg       t        t        j                  dd      d       t	        t        j                  ddd      d       y )	NrV  r   rD        @g     @Tr  i  )r   r!   permr   r   r:   s    r<   	test_permzTestCombinatorics.test_perm  sO    b"X1v6uFGLLQ/6W\\"at4c:r?   c                 `   t        t        j                  ddd      d       t        t        j                  ddd      d       t        t        j                  ddd      d       t        t        j                  ddd      d       t        t        j                  g dg d	      g d
       y )NrF   r   Tr  r   rI   Fr3  r4  )r   r   r   r;  )r   r!   r<  r   r:   s    r<   test_perm_zerosz!TestCombinatorics.test_perm_zeros  r6  r?   c                    t        j                  t        d      5  t        j                  ddgddgd       d d d        t        j
                  d	      5  t        j                  d
dd       d d d        t        j
                  d	      5  t        j                  ddd       d d d        t        j
                  d	      5  t        j                  ddd       d d d        t        j                  t        d	      5  t        j                  dd
d       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   jxY w# 1 sw Y   y xY w)Nzscalar integersr   rT   rF   rD   r   Tr  zNon-integergffffff@rJ   gffffffr   g333333      @)r   r   
ValueErrorr!   r<  r   r:   s    r<   test_perm_ivzTestCombinatorics.test_perm_iv  s    ]]:->?LL!Q!Qt4 @
 ##-8LLat, 9##-8LLq- 9##-8LLD- 9
 ]]:];LLc. <; @?
 988888
 <;s;   D#D/D;EE#D,/D8;EEEN)
rS  rT  rU  r)  r1  r5  r9  r=  r?  rC  rX  r?   r<   r  r    s'    = Y-
;
Y/r?   r  c                   N    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zy)TestTrigonometricc                 J    t        j                  d      }d}t        ||       y )N   r   )r!   r   r   )r;   cbcbrls      r<   r   zTestTrigonometric.test_cbrt  s    \\"Bt$r?   c                 L    t        j                  d      }d}t        ||d       y )Ngfffff;@g鎖C@r7  )r!   r   r   )r;   cb1cbrl1s      r<   test_cbrtmorezTestTrigonometric.test_cbrtmore  s!    ll4 Ca(r?   c                 l    t        j                  d      }t        t        dz        }t	        ||d       y )Nr  r   r7  r!   r   r
   r   r   )r;   cdgcdgrls      r<   r   zTestTrigonometric.test_cosdg  s)    mmBBsFCa(r?   c                 l    t        j                  d      }t        t        dz        }t	        ||d       y NrP   rA  r7  rO  )r;   cdgmcdgmrls      r<   test_cosdgmorez TestTrigonometric.test_cosdgmore  s)    }}R RVD*r?   c                    t        j                  d      t        j                  d      t        j                  t        dz        f}t        d      dz
  t        d      dz
  t        t        dz        dz
  f}t	        ||d       y )Nr   rL  rV  rT   r7  )r!   r   r   r
   r   )r;   cscsrls      r<   r   zTestTrigonometric.test_cosm1  sa    mmAw}}R0r"u1EFAqR3r"u:a<0!"T!,r?   c                 r    t        j                  d      }t        t        dz        dz  }t	        ||d       y )NrP   rA  rI   r7  r!   r  r   r   r   )r;   ctctrls      r<   r  zTestTrigonometric.test_cotdg  s.    ]]22c6{R BtA&r?   c                 r    t        j                  d      }t        t        dz        dz  }t	        ||d       y )Nr   r>  rI   r7  r[  )r;   ct1ctrl1s      r<   test_cotdgmorez TestTrigonometric.test_cotdgmore  s.    mmBBsFb!Ca(r?   c                 D   t        t        j                  d      dd       t        t        j                  d      dd       t        t        j                  d      dd       t        t        j                  d      dd       t        t        j                  d	      dd       t        t        j                  d
      dd       t        t        j                  d      dd       t        t        j                  d      dd       t        t        j                  d      dd       t        t        j                  d      dd       t        t        j                  d      dd       t        t        j                  d      dd       t        t        j                  d      dd       y )Nr   r      r  r  r   i   y   i  i;  i  )r   r!   r  r:   s    r<   test_specialpointsz$TestTrigonometric.test_specialpoints   s   GMM"-sB7GMM#.b9GMM"-sB7GMM#.R8GMM#.b9GMM$/b9GMM#.R8GMM$/r:GMM#.R8GMM$/b9GMM#.b9GMM$/b9GMM#.R8r?   c                     t        t        j                  dg      d       t        t        j                  d      d       y )Nr   rT   r   r   )r   r!   sincr   r:   s    r<   	test_sinczTestTrigonometric.test_sinc  s*    7<<,a0W\\#&,r?   c                 F    t        j                  d      }t        |d       y r  )r!   r  r   )r;   sns     r<   r  zTestTrigonometric.test_sindg  s    ]]2Rr?   c                     t        j                  d      }t        t        dz        }t	        ||d       t        j                  d      }t        t        dz        }t	        ||d       y )NrP   rA  r7  r   r>  )r!   r  r	   r   r   )r;   snmsnmrlsnm1snmrl1s        r<   test_sindgmorez TestTrigonometric.test_sindgmore  P    mmBBsFCa(}}R RVD*r?   N)rS  rT  rU  r   rM  r   rV  r   r  ra  rk  rn  r  rv  rX  r?   r<   rE  rE    s9    %
)
)
+
-
'
)
9-
+r?   rE  c                       e Zd Zd Zd Zd Zy)	TestTandgc                 l    t        j                  d      }t        t        dz        }t	        ||d       y rS  r!   r9  r   r   r   )r;   tntnrls      r<   r:  zTestTandg.test_tandg#  s)    ]]22c6{BtA&r?   c                     t        j                  d      }t        t        dz        }t	        ||d       t        j                  d      }t        t        dz        }t	        ||d       y )Nr   r>  r7  rd  r   r{  )r;   tnmtnmrltnm1tnmrl1s        r<   test_tandgmorezTestTandg.test_tandgmore(  rw  r?   c                    t        t        j                  d      dd       t        t        j                  d      dd       t        t        j                  d      dd       t        t        j                  d      dd       t        t        j                  d	      dd       t        t        j                  d
      dd       t        t        j                  d      dd       t        t        j                  d      dd       t        t        j                  d      dd       t        t        j                  d      dd       t        t        j                  d      dd       y )Nr   r   rc  r   r   rd  r  re  rf  r6  iLrg  rh  ri  rj  )r   r!   r9  r:   s    r<   rk  zTestTandg.test_specialpoints0  s    GMM!,c26GMM"-sB7GMM#.b9GMM#.b9GMM$/b9GMM#.R8GMM$/b9GMM#.R8GMM$/r:GMM#.b9GMM$/b9r?   N)rS  rT  rU  r:  r  rk  rX  r?   r<   ry  ry  !  s    '
+:r?   ry  c                   B    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zy
)	TestEllipc                 L    t        j                  dt        j                         y)zRegression test for #912.r   N)r!   r)  rY   r   r:   s    r<   test_ellipj_nanzTestEllip.test_ellipj_nan?  s    sBFF#r?   c                 z    t        j                  dd      }t        d      t        d      ddg}t	        ||d       y )Nr  r   r      )r!   r)  r	   r
   r   )r;   elrels      r<   r*  zTestEllip.test_ellipjC  s4    ^^C"3xCT*!"S,r?   c                 V   t        j                  d      }t        |dd       t        t        j                  d      t
        j                         t        t        j                  d      t        dz         t        t        j                  t
        j                        d       t        t        j                  t
        j                        t
        j                         t        t        j                  d      t
        j                         t        t        j                  d      d	       y )
Nr  g;{yэ?rM  r   r   rF   rI   gN?)
r!   r#   r   r   r$   rY   r   r   r   r   )r;   elks     r<   r,  zTestEllip.test_ellipkH  s    nnR C 1"5W%%c*BFF3W%%c*BqD1W%%bff-s3W%%bff-rvv6W%%b)2662s+-?@r?   c                 R   t        j                  t        dz  d      }t        j                  d      }t	        ||d       dt        z  dz  }dt        z  dz  }t        |      dz  }t        j                  ||      }t	        |dd       t        t        j                  t        dz  d	      t        dz         t        t        j                  t        dz  d
      t        j                         t        t        j                  t        dz  t        j                         d	       t        t        j                  t        dz  t        j                        t        j                         t        t        j                  t        dz  d      t        j                         t        t        j                  dd      d	       t        t        j                  t        j                  d      t        j                         t        t        j                  t        j                   d      t        j                          t        t        j                  t        j                  t        j                        t        j                         t        t        j                  t        j                  t        j                         t        j                         t        t        j                  t        j                   t        j                         t        j                         t        t        j                  t        j                   t        j                        t        j                         t        t        j                  t        j                  d      t        j                         t        t        j                  t        j                  t        j                        t        j                         t        t        j                  dd      dd       t        t        j                  dd      d       y )NrF   r  rv   ri   r6  r   gfoKh?r7  r   r   r   r   gt?rT   rG   rB  rM   6<R!?r  gfON?)r!   r.  r   r#   r   r	   r   rY   r   r   r   )r;   elkincr  alphaphir;  s         r<   r/  zTestEllip.test_ellipkincS  s{   ""2a4+nnS!F3r*2c	eCiJM""3q)F:a0 	W&&r!tS12a48W&&r!tS1266:W&&r!tbffW5s;W&&r!tRVV4bff=W&&r!tQ/8W&&q#.4W&&rvvs3RVV<W&&w4rvvg>W&&rvvrvv6?W&&rvvw7@W&&w8"&&AW&&w7@W&&rvvs3RVV<W&&rvvrvv6?))*=qA3US))&#68KLr?   c                    d}d}t        j                  |d      }g }t        d      D ])  }|j                  |       t        j                  |d      }+ t	        j
                  ||      }t        |t        j                  |d      d       t	        j
                  |t        z   |      }t        |t        j                  |d      d       y )	N    ?Pag?r   rV  rT   gV^8j?g,j6Ƅ@rF   )	rY   	nextafterrp   appendr!   r.  r   	full_liker   r;   mbadr  r;  mvalsjr  f1s           r<   test_ellipkinc_2zTestEllip.test_ellipkinc_2p  s     # LLq!rALLOQ"A  c5)&q",,q:L*MqQsRx/&r2<<<N+OQRSr?   c                 
   t        j                  ddd      }t        j                  ddd      }t        j                  dt        dz  dd      }t	        t        j                  |d	      t        j                  t        j                  |            d
       t	        t        j                  |d	      t        j                  t        j                  |            d
       t	        t        j                  |d	      t        j                  t        j                  |            d
       t        t        j                  t         j                  dz  d	      t         j                         t	        t        j                  | d	      t        j                  t        j                  |             d
       t	        t        j                  | d	      t        j                  t        j                  |             d
       t	        t        j                  | d	      t        j                  t        j                  |             d
       t        t        j                  t         j                   dz  d	      t         j                         y )Niir  gFFg<rK  rF   Fr  rT   rO  rM   )rY   rj   rS  r   r   r!   r.  arcsinhr   r   r   )r;   xlogxlinxlin2s       r<   test_ellipkinc_singularz!TestEllip.test_ellipkinc_singular  s   {{4b){{5#r*CArE:))$2BJJrvvd|4L!	#))$2BJJrvvd|4L!	#))%3RZZu5N!	#W&&ruuQw2BFF;))4%3RZZu5N!	#))4%3RZZu5N!	#))5&!4bjj6P!	#W&&vax3RVV<r?   c                 X   t        j                  d      }t        |dd       t        t        j                  d      t        dz         t        t        j                  d      d       t        t        j                  t
        j                         t
        j                         t        t        j                  t
        j                        t
        j                         t        t        j                  d      t
        j                         t        t        j                  d      d       y )	Nr  gl?r7  r   rF   r   r  g?eg@)	r!   r"   r   r   r   rY   r   r   r   )r;   eles     r<   r!  zTestEllip.test_ellipe  s    nnR C 215W^^C("Q$/W^^C(#.W^^RVVG,bff5W^^BFF+RVV4W^^A&/s+-?@r?   c                    t        j                  t        dz  d      }t        j                  d      }t	        ||d       dt        z  dz  dt        z  dz  }}t        |      dz  }t        j                  ||      }t	        |dd       t        t        j                  t        dz  d	      t        dz         t        t        j                  t        dz  d
      d
       t        t        j                  t        dz  t        j                         t        j                         t        t        j                  t        dz  t        j                        t        j                         t        t        j                  t        dz  d      t        j                         t        t        j                  dd      d	       t        t        j                  t        j                  d      t        j                         t        t        j                  t        j                   d      t        j                          t        t        j                  t        j                  t        j                         t        j                         t        t        j                  t        j                   t        j                         t        j                          t        t        j                  t        j                  t        j                        t        j                         t        t        j                  t        j                   t        j                        t        j                         t        t        j                  t        j                  d      t        j                         t        t        j                  t        j                  t        j                        t        j                         t        t        j                  dd      d       y )NrF   r  rc  4   r6  #   g'?r7  r   r   r   r   r  r  gL@)r!   r$  r   r"   r   r	   r   rY   r   r   r   )r;   eleincr  r  r  r;  s         r<   r%  zTestEllip.test_ellipeinc  s`   ""2a4+nnS!F3r*U3Yr"uSysJM""3q)FJ2W&&r!tS12a48W&&r!tS137W&&r!tbffW5rvv>W&&r!tRVV4bff=W&&r!tQ/8W&&q#.4W&&rvvs3RVV<W&&w4rvvg>W&&rvvw7@W&&w8266'BW&&rvvrvv6?W&&w7@W&&rvvs3RVV<W&&rvvrvv6?))&#68JKr?   c                    d}d}t        j                  |d      }g }t        d      D ])  }|j                  |       t        j                  |d      }+ t	        j
                  ||      }t        |t        j                  |d      d       t	        j
                  |t        z   |      }t        |t        j                  |d      d	       y )
Nr  r  r   rV  rT   g%?rF   gXo
@rD   )	rY   r  rp   r  r!   r$  r   r  r   r  s           r<   test_ellipeinc_2zTestEllip.test_ellipeinc_2  s     # LLq!rALLOQ"A  c5)&q",,q:M*NPQRsRx/&r2<<<N+OQRSr?   N)rS  rT  rU  r  r*  r,  r/  r  r  r!  r%  r  rX  r?   r<   r  r  >  s5    $-
	AM:T =*	AL4Tr?   r  c                   r    e Zd ZdZd Zd Zd Zd Zd Ze	j                  j                  d      d	        Zy
)TestEllipCarlsonzTest for Carlson elliptic integrals ellipr[cdfgj].
    The special values used in these tests can be found in Sec. 3 of Carlson
    (1994), https://arxiv.org/abs/math/9409227
    c           	         t        t        dd      d       t        dt              dk(  sJ t        t        dd            sJ t        dt	        dt                    dk(  sJ t        ddgddgddgddgdd	gdd
gg      }t        t        j                  t        j                  d      ddt        j                  d      dz  dg      }t        |      D ]  \  }}t        t        | ||           y )NrT   r   r   r9  g      @r   rN               r  r  y
c?
cy=B?CGֿr   y檠f?P9lb?)
r   r%   r   r   rF  r   rY   r   r   	enumerater;   r  expected_resultsrt   arrs        r<   test_elliprczTestEllipCarlson.test_elliprc  s    1q)q##%%%WQ]###q'!S/*c111sDkSkDkdmTlTl$ % !"%%"$&&+">"C"$&&+"3"D"F G  oFAsGSM+;A+>? &r?   c           
         t        t        ddd      d       t        t        ddd      dz  d       t        ddt              dk(  sJ t        j                  t        ddd            sJ t        j                  t        ddt        dd                  sJ t        j                  t        ddt        dd                  sJ t        t        ddt        j                  t        j                        j                   dz              sJ t        t        ddt        dd                  sJ t        g d	g d
g dg dg dg dg      }t        g d      }t        |      D ]  \  }}t        t        | ||           y )NrT   r   rF   r   g`C+?r   r   rI   )r   r   r   r   r   r>  rN  r  r   r   rN  r  )r               ?rN  )y             r  r  )gfe_?gi+"?gP$M?ytgFU?7?@yR<8*y{62?z)r   r&   r   rY   r  rF  r   r   r  tinyr   r  r  s        r<   test_elliprdzTestEllipCarlson.test_elliprd  sM   1a(!,1a(3.0FGq!S!S(((xx1a()))xx1gam4555xx1gam4555WQBHHRZZ$8$=$=#=#CDEEEWQ72q>2333o%((,35 6 ! "D E  oFAsGSM+;A+>? &r?   c           
      6   t        t        ddd      d       t        t        ddd      d       t        dt        d      dk(  sJ t        j                  t        ddd            sJ t        t        ddd            sJ t        t        t              dd      dk(  sJ t        t        ddt        t         d                  sJ t        g dg dg d	g d
g dg dg dg      }t        g d      }t        |      D ]  \  }}t        t        | ||           y )NrT   r   rF   gPO?r   rI   )r   r   r   )rN  r  r   )r   r   r   r  rN  r   r  r  )r  rN        ?      )geQO?ʞu5J?r  yp\y?kg2ΰ?gHwд?y|pF?-6Fj)	r   r'   r   rY   r  r   rF  r   r  r  s        r<   test_elliprfzTestEllipCarlson.test_elliprf  s   1a(!,1a(*@Aq#q!S(((xx1a()))WQ2&'''ws|Q*c111WQ7C4#34555o(%,%(13 4 ! "F G  oFAsGSM+;A+>? &r?   c           	          t        t        ddd      d       t        t        ddd      d       t        t        ddd      d       t        j                  t        dt        d            sJ t        j                  t        t        t              dd            sJ t        g dg dg dg dg dg d	g      }t        t        j                  d
ddddg      }t        |      D ]  \  }}t        t        | ||           y )NrT   r   r   )r   r  r  r  r  r  )r  r  rN  )r   g8d`?r>  gL+?g}^?y旮0?ʋW?yjN?^?gt?)	r   r(   rY   r  r   rF  r   r   r  r  s        r<   test_elliprgzTestEllipCarlson.test_elliprg  s    1a(!,1a(#.1a(!,xx3*+++xxa3444'%(,.(* + !"%%"1"2"D"D"1"3 4  oFAsGSM+;A+>? &r?   c                    t        t        dddd      d       t        ddt        d      dk(  sJ t        t        dddd            sJ t        t        dddd            sJ t        dddt              dk(  sJ t	        g dg dg dg dg d	g d
g dg dg dg	      }t	        g d      }t        |      D ]  \  }}t        t        | ||           y )NrT   r   r   rI   )r   r   r   r   )r   r   r>  r   )r   r   r>  r  )rN  r  r   r   )r              r   r   )rN  r  r   r  )r  r  r   y            ?)r   r   r>  r  )r   r   r>        )	g @?gviM?ym?\Isؿg'4Ob?go0 ?yW7?xfOA?ybv㿘ܶ.gHQ?gjߡB7E)r   r)   r   r   r   r  r  s        r<   test_elliprjzTestEllipCarlson.test_elliprj*  s    1a+Q/q!S!$+++WQ1a()))WRAq)***q!Q$+++**0-62<++- . ! "5 6  oFAsGSM+;A+>? &r?   zInsufficient accuracy on 32-bitrH  c                 p    t        t        dddd      ddd       t        t        d	d
dd      ddd       y )Ng   gq>g   `W:g    HBg   @ۘ?gRy|>r  r  rC  g   ,@g    x=g   @e:g   `ݽ>g(HR)A)r   r)   r:   s    r<   test_elliprj_hardz"TestEllipCarlson.test_elliprj_hardE  sN     5 6 3 13 ;"	0 	 2 5 4 57 <"	0r?   N)rS  rT  rU  r  r  r  r  r  r  r   rV  rW  r  rX  r?   r<   r  r    sM    @(@0@2@*@6 [[?@0 A0r?   r  c                   (    e Zd ZdZd Zd Zd Zd Zy)"TestEllipLegendreCarlsonIdentitieszTest identities expressing the Legendre elliptic integrals in terms
    of Carlson's symmetric integrals.  These identities can be found
    in the DLMF https://dlmf.nist.gov/19.25#i .
    c                 b   t        j                  ddd      | _        t        t              j
                  | _        ddt        dt        j                  | j                         z   dd      z  z  | _        t        j                  | j                  g| j                  | j                  f      | _
        y )Nr  r   r   r   rI   r   )rY   r   m_n1_1r   r   minmax_neglog2
very_neg_mconcatenate
ms_up_to_1r:   s    r<   setup_classz.TestEllipLegendreCarlsonIdentities.setup_class[  s    iiR.V}((F2+-77DLL=+A,BCE+.%0 !0 0 ..4<<.*.//*.++*7 8r?   c                 b    | j                   }t        t        |      t        dd|z
  d             y)z5Test identity:
        K(m) = R_F(0, 1-m, 1)
        r   r   N)r  r   r#   r'   r;   r;  s     r<   test_kz)TestEllipLegendreCarlsonIdentities.test_kg  s(     OOq	72r!tR#89r?   c                     t        t              j                  }|dt        dt	        j
                  |             z  z  }t        t        |      t        d|d             y)z\Test identity:
        K(m) = R_F(0, 1-m, 1)
        But with the ellipkm1 function
        r   r   r   N)	r   r   r  r   rY   r  r   r$   r'   )r;   r  m1s      r<   test_km1z+TestEllipLegendreCarlsonIdentities.test_km1n  sJ     V}!!BrBGGDM>222gb"b&9:r?   c           	      h    | j                   }t        t        |      dt        dd|z
  d      z         y)z9Test identity:
        E(m) = 2*R_G(0, 1-k^2, 1)
        r   r   r   N)r  r   r"   r(   r  s     r<   test_ez)TestEllipLegendreCarlsonIdentities.test_ey  s-     OOq	2gb"Q$&;#;<r?   N)rS  rT  rU  r  r  r  r  r  rX  r?   r<   r  r  U  s    

8:	;=r?   r  c                   \    e Zd Zd Zd ZddZd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zy)TestErfc                 H    t        j                  d      }t        |dd       y )Nr9  g);T?r7  )r!   r2  r   )r;   ers     r<   r3  zTestErf.test_erf  s    [[B|A.r?   c                 b    t        j                  d      }t        g d      }t        ||d       y )Nr   )yTcJ5?=W?yo@n@y'ʷ@g	@y"[

@,y]+@yld&@-;'j'>@rD   )r!   	erf_zerosr   r   )r;   erzerzrs      r<   test_erf_zeroszTestErf.test_erf_zeros  s/    " - .
 	"#d1-r?   c                    t         j                  j                  d       d}t         j                  j                  d|      dt         j                  j	                  dd|      z  dz
  z  }t         j                  j                  d|      dt         j                  j	                  dd|      z  dz
  z  }|d|z  z   }t        j
                  d	      5   ||      }	 ||      j                  }
t        j                  |	      }|	|   }	||   }t        j                  |
      }|
|   }
||   }t        ||	|||
       t        ||
|||
       d d d        y # 1 sw Y   y xY w)NrO   r`  g{Gz?rF   r   rT   rN  ignoreallrC  )	rY   r_   r`   paretorandintr  r   isfiniter2   )r;   r  
other_funcrN   rX   rb   r  r   rP  rQ  w_realmasks               r<   _check_variant_funczTestErf._check_variant_func  s%   
		tIIT1%299+<+<Q1+E)E)IJIIT1%299+<+<Q1+E)E)IJ1H[[X&1A]''F;;q>D$A$A;;v&DD\F$A dAqt$?dFADtD '&&s   A9EEc                 L    | j                  t        j                  d dd       y )Nc                 2    dt        j                  |       z
  S rn   r8   r2  rP  s    r<   <lambda>z.TestErf.test_erfc_consistent.<locals>.<lambda>  s    a&**Q-'r?   r|   rB  rC  )r  r8   r8  r:   s    r<   test_erfc_consistentzTestErf.test_erfc_consistent  s%      KK'	 	! 	r?   c                 J    | j                  t        j                  d d       y )Nc                 ^    t        j                  | | z        t        j                  |       z  S r  )rY   r   r8   r8  r  s    r<   r  z/TestErf.test_erfcx_consistent.<locals>.<lambda>  s    bffQqSkFKKN2r?   r|   rM   )r  r8   erfcxr:   s    r<   test_erfcx_consistentzTestErf.test_erfcx_consistent  s"      LL2 	! 	r?   c                 J    | j                  t        j                  d d       y )Nc                 8    dt        j                  d| z        z  S )Nr  rN  r  r  s    r<   r  z.TestErf.test_erfi_consistent.<locals>.<lambda>  s    cFJJr!t,,r?   r|   rM   )r  r8   erfir:   s    r<   test_erfi_consistentzTestErf.test_erfi_consistent  s"      KK, 	! 	r?   c                 J    | j                  t        j                  d d       y )Nc                     t        t              dz  t        j                  |  | z        z  t	        j
                  |       z  S r  )r   r   rY   r   r8   r  r  s    r<   r  z/TestErf.test_dawsn_consistent.<locals>.<lambda>  s,    d2hqj2661"Q$</&++a.@r?   r|   rM   )r  r8   r  r:   s    r<   test_dawsn_consistentzTestErf.test_dawsn_consistent  s"      LL@ 	! 	r?   c                     t         j                  t         j                   t         j                  g}t         j                  ddg}t        t	        j
                  |      |d       y )NrI   rT   r  rM   )rY   r   r   r   r!   r2  r;   r{  rQ  s      r<   test_erf_nan_infzTestErf.test_erf_nan_inf  s@    (FFB?D)8%@r?   c                     t         j                  t         j                   t         j                  g}t         j                  ddg}t        t	        j
                  |      |d       y )NrF   r   r  rM   )rY   r   r   r   r!   r8  r  s      r<   test_erfc_nan_infzTestErf.test_erfc_nan_inf  s@    (FFAq>T*H5Ar?   c                     t         j                  t         j                   t         j                  g}t         j                  t         j                  dg}t        t	        j
                  |      |d       y )Nr   r  rM   )rY   r   r   r   r!   r  r  s      r<   test_erfcx_nan_infzTestErf.test_erfcx_nan_inf  sE    (FFBFFA&d+XEBr?   c                    t         j                  t         j                   t         j                  g}t         j                  t         j                   t         j                  g}t        t	        j
                  |      |d       y )Nr  rM   )rY   r   r   r   r!   r  r  s      r<   test_erfi_nan_infzTestErf.test_erfi_nan_inf  sK    (FFRVVGRVV,T*H5Ar?   c                     t         j                  t         j                   t         j                  g}t         j                  ddg}t        t	        j
                  |      |d       y )Nr  r   r  rM   )rY   r   r   r   r!   r  r  s      r<   test_dawsn_nan_infzTestErf.test_dawsn_nan_inf  sA    (FFD#&d+XEBr?   c                     t         j                  t         j                   t         j                  g}t         j                  t         j                  dz  z   ddg}t        t	        j
                  |      |d       y )NrN  rE  r  rM   )rY   r   r   r   r!   rP  r  s      r<   test_wofz_nan_infzTestErf.test_wofz_nan_inf  sN    (FFRVVc\)66:T*H5Ar?   N)r   )rS  rT  rU  r3  r  r  r  r  r   r  r  r  r
  r  r  r  rX  r?   r<   r  r    sJ    /.E.A
B
C
B
C
Br?   r  c                       e Zd Zd Zy)	TestEulerc                 R   t        j                  d      }t        j                  d      }t        j                  d      }t        |dgd       t        |ddgd       t        |g dd       t        j                  d      }g d}t        d	d
      }t	        dd      D ]1  }|dz  rt        ||          |d|z  <   t        ||         |d|z  <   3 t        j                  d      5  t        ||z
  |z        }t        |      }	d d d        t        	dd       y # 1 sw Y   xY w)Nr   rT   rF   r  rM   )rT   r   rI   r  )rT   rT   r   =   ii  iY  i=) il   Q~ l   10[l   $8gC
 l   2l   v}Ju: )r  dr  r  r  r   rc  )r!   eulerr   r   rp   rq   rY   r  r   r'  r   )
r;   eu0eu1eu2eu24	mathworldcorrectrc   errerrmaxs
             r<   
test_eulerzTestEuler.test_euler  s   mmAmmAmmAaSu-aV%0Ze4}}R +	 c"qAA %il 33!$Yq\2!	 
 [[X&d7lG34CXF ' 	FC, '&s   *DD&N)rS  rT  rU  r  rX  r?   r<   r  r    s    -r?   r  c                   0    e Zd Zd Zd Zd Zd Zd Zd Zy)TestExpc                 J    t        j                  d      }d}t        ||       y )NrF   rD   )r!   r?  r   r;   exexrls      r<   r@  zTestExp.test_exp2  s    \\!_Rr?   c                 L    t        j                  d      }d}t        ||d       y )Nr  g;f@r7  )r!   r?  r   r;   exmexmrls      r<   test_exp2morezTestExp.test_exp2more  s!    ll3Ca(r?   c                 J    t        j                  d      }d}t        ||       y )NrF   r>  )r!   r;  r   r#  s      r<   r<  zTestExp.test_exp10  s    ]]1Bt$r?   c                 L    t        j                  d      }d}t        ||d       y )Nr  gYs@r7  )r!   r;  r   r'  s      r<   test_exp10morezTestExp.test_exp10more  s!    mmC Ca(r?   c                     t        j                  d      t        j                  d      t        j                  d      f}t        d      dz
  t        d      dz
  t        d      dz
  f}t        ||d       y )NrF   r   rD   rT   r7  r!   rB  r   r   r#  s      r<   rC  zTestExp.test_expm1  sY    mmAw}}Q/a0@AAqQ#a&(+!"T!,r?   c                     t        j                  d      t        j                  d      t        j                  d      f}t        d      dz
  t        d      dz
  t        d      dz
  f}t        ||d       y )NrF    @皙@rT   r7  r/  )r;   ex1exrl1s      r<   test_expm1morezTestExp.test_expm1more  sY    }}Qc 27==3EFQ#c(1*SXaZ0!#eA.r?   N)	rS  rT  rU  r@  r*  r<  r-  rC  r5  rX  r?   r<   r!  r!    s     
)
%
)
-
/r?   r!  c                      e Zd Zej                  j                  dddg      d        Zej                  j                  dg d      ej                  j                  dddg      d               Zej                  j                  dddg      d        Zej                  j                  dddg      ej                  j                  d	e	j                  d
 e	j                  d      gg d      d               Zej                  j                  d edd            ej                  j                  dddg      d               Zej                  j                  dddg      ej                  j                  dd
ee	j                   e	j"                  e	j$                  e	j&                  e	j(                  e	j*                  e	j,                  e	j.                  g
      ej                  j                  d edd            d                      Zej                  j                  dddg      ej                  j                  d edd            d               Zej                  j                  d eddd            d        Zej                  j                  d e edd             e eddd            z         d        Zd Zej                  j                  de	j&                  e	j<                  e	j>                  e g      ej                  j                  dddg      ej                  j                  d edd            ej                  j                  d	g dgd ge	j                  ge	j                  dggg d!      d"                             Z!ej                  j                  dddg      ej                  j                  ddd d#e	j                  d
gg d$      d%               Z"ej                  j                  d eddd&            d'        Z#ej                  j                  d e edd             e eddd&            z         d(        Z$ej                  j                  de	j&                  e	j<                  e	j>                  e g      ej                  j                  dddg      ej                  j                  d edd            ej                  j                  d	g dge	j                  ge	j                  dggg d)      d*                             Z%ej                  j                  dddg      ej                  j                  ddd d#e	j                  d
gg d$      d+               Z&ej                  j                  d, edd            ej                  j                  d ed-d.d/            d0               Z'ej                  j                  d, e edd            dd.gz         ej                  j                  d e edd             e edd1d&            z         d2               Z(ej                  j                  de	j&                  e	j<                  e	j>                  e g      ej                  j                  dddg      ej                  j                  d edd            ej                  j                  d	g dge	j                  ge	j                  dggg d)      d3                             Z)ej                  j                  dg d4      ej                  j                  d, edd            ej                  j                  ddd d#e	j                  d
gg d$      d5                      Z*ej                  j                  d,dd e	j                  d6g      d7        Z+ej                  j                  dddg      ej                  j                  d, edd8            d9               Z,d: Z-y
);TestFactorialFunctionsr  TFc                    t        j                  t        j                  d|            sJ t        j                  t        j                  d|            sJ t        j                  t        j
                  dd|            sJ y )NrT   r  r   )rY   isscalarr!   	factorial
factorial2
factorialk)r;   r  s     r<   "test_factorialx_scalar_return_typez9TestFactorialFunctions.test_factorialx_scalar_return_type  sa    {{7,,Qe<==={{7--au=>>>{{7--a%@AAAr?   rb   )rI   r!  c                     t        t        j                  ||      d       t        t        j                  ||      d       t        t        j                  |d|      d       y )Nr  r   r   )r   r!   r:  r;  r<  )r;   r  rb   s      r<   test_factorialx_negativez/TestFactorialFunctions.test_factorialx_negative#  sK     	W&&q6:W''7;W''1E:A>r?   c                     |rt         nt        } |t        j                  g d|      g d        |t        j                  g d|      g d        |t        j
                  g dd|      g d       y )N)rv  r   rT   r  )r   r   rT   rT   r   )r   r   r!   r:  r;  r<  )r;   r  assert_funcs      r<   test_factorialx_negative_arrayz5TestFactorialFunctions.test_factorialx_negative_array*  s\    ,1(G%%nEB 	"G&&~UC 	"G&&~qF 	"r?   contentNnat)NaNNoneNaT)idsc                    t        j                  ||      t        j                  u sJ t        j                  ||      t        j                  u sJ t        j
                  |d|      t        j                  u sJ |t        j                  ur=t        j                  t        d      5  t        j                  |g|       d d d        no|r=t        j                  t        d      5  t        j                  |g|       d d d        n0t        j                  t        j                  |g|      d         sJ t        j                  t        d      5  t        j                  |g|       d d d        t        j                  t        d      5  t        j
                  |gd|       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   _xY w# 1 sw Y   y xY w)	Nr  r   zUnsupported datatype.*r   factorial with `exact=Tr.*r   zfactorial2 does not support.*zfactorialk does not support.*)
r!   r:  rY   r   r;  r<  r   r   rB  r   )r;   rE  r  s      r<   test_factorialx_nanz*TestFactorialFunctions.test_factorialx_nan5  sf   
   6"&&@@@!!'7266AAA!!'1E:bffDDD"&& z1IJ!!7)59 KJz1MN!!7)59 ON 88G--wiuEaHIII]]:-LMy6 N]]:-LMy!59 NM KJ ON
 NMMMs0   *F5)GGG5F>G
GG"levelsrT   r   c                    dfd	fd}t        j                   ddg            }dt        j                  d      gdt	        j
                  dd	
      gdt	        j                  ddd	
      gd} |t	        j                  ||
      |d           |t	        j
                  ||
      |d           |t	        j                  |d|
      |d          y )NrT   c                 .    |dk(  r| S  | | g|dz
        S )z
            Double x and nest it k times

            For example:
            >>> _nest_me([3, 4], 2)
            [[[3, 4], [3, 4]], [[3, 4], [3, 4]]]
            r   rT   rX  r  rc   _nest_mes     r<   rR  zDTestFactorialFunctions.test_factorialx_array_shape.<locals>._nest_meQ  s&     AvA!,,r?   c                     t        j                   |      t              }t        | j	                  t         j
                         |j                  t         j
                               y )Nrc   dtype)rY   r   objectr   r  r  )resnucleusr   rR  rN  s      r<   _checkzBTestFactorialFunctions.test_factorialx_array_shape.<locals>._check^  sB    ((8Gv6fEC CJJrzz2JCJJrzz4JKr?   r   r  rT  r  rv   Tr  rV  r   r  rF   rT   )rY   r   mathr:  r!   r;  r<  )r;   rN  r  rZ  rb   exp_nucleusrR  s    `    @r<   test_factorialx_array_shapez2TestFactorialFunctions.test_factorialx_array_shapeN  s    	-	L HHXq"g01r 23w11"DABw11"atDEG
 	w  %0+a.Aw!!!51;q>Bw!!!Qe4k!nEr?   rV  dimr   c                    t        j                  d||      }dddd}t        t        j                  ||      t        j                  |d   |	             t        t        j
                  ||      t        j                  |d
   |	             t        t        j                  |d|      t        j                  |d   |	             y )Nr   )rV  ndminr  rv   rV  r  r  rT   ra  rF   r   )rY   r   r   r!   r:  r;  r<  )r;   r_  rV  r  rb   r   s         r<   test_factorialx_array_dimensionz6TestFactorialFunctions.test_factorialx_array_dimensionn  s     HHQe3/"$))!59Qs3	5**1E:Qs3	5**1au=Qs3	5r?   levelc                    dfd	 dg|dz
        }dddd}|rt         nt        } |t        j                  ||	      t	        j
                  |d   |
              |t        j                  ||	      t	        j
                  |d   |
              |t        j                  |d|	      t	        j
                  |d   |
             y )NrT   c                 ,    |dk(  r| S  | g|dz
        S r(  rX  rQ  s     r<   rR  zCTestFactorialFunctions.test_factorialx_array_like.<locals>._nest_me  s"    AvQqS))r?   r   rT  r  rv   rV  r  r  rb  rF   r   r[  )r   r   r!   r:  rY   r   r;  r<  )r;   rd  r  rb   r]  rC  rR  s         @r<   test_factorialx_array_likez1TestFactorialFunctions.test_factorialx_array_like~  s    	* aSE!G$",,1(G%%au5HH[^59	;G&&q6HH[^59	;G&&q!59HH[^59	;r?   rP   r6  rV  c                 N   t         j                  dk(  rdnd}t        t        t	        j
                  |d            t	        j
                  |d      |       t        t	        j
                  |gd      j                  t              t	        j
                  |gd      |       y )Nwin32t0=r  Tr  FrM   )sysplatformr   rq   r!   r:  r  r;   rb   rN   s      r<   test_factorial_accuracyz.TestFactorialFunctions.test_factorial_accuracy  s~    
 /uUg//>?))!59	F))1#T:AA%H))1#U;$	Hr?      c                    t        j                  |      }t        |t        j                  |d             t        |t        j                  |gd      d          t        j
                  dk(  rdnd}t        t        |      t        j                  |d      |       t        t        |      t        j                  |gd      d   |       y )NTr   ri  rj  r  FrM   )r\  r:  r   r!   rk  rl  r   rq   )r;   rb   r  rN   s       r<   test_factorial_int_referencez3TestFactorialFunctions.test_factorial_int_reference  s     ..#7G$5$5a$>?7G$5$5qc4$@$CD/uUg(9(9!U(C!	#g(9(91#u(Ea(H!	#r?   c                     d } |dd        |dd        |dd        |dd	        |d
d        |dd        |dd        |dd        |dd       y )Nc                    t        t        j                  |       |       t        t        j                  | g      d   |       t        j                  d      5  t        t        j                  | d      |       d d d        t        j
                  t        d      5  t        j                  | gd       d d d        y # 1 sw Y   FxY w# 1 sw Y   y xY w)Nr   Non-integer values.*r   Tr  rL  )r   r!   r:  r   r   r   rB  )rb   rQ  s     r<   rZ  zETestFactorialFunctions.test_factorial_float_reference.<locals>._check  s    G--a0(;G--qc215x@''.DE 1 1!4 @(K F z1MN!!1#T2 ON FE ONs   "C C C	Cr   gr?g(\?gc?g333333@g4s@g333333&@gމOAgfffff@@g	²Gg     K@gC$JOglS@g }WgX@gX>%`g\CSe@gG=rX  )r;   rZ  s     r<   test_factorial_float_referencez5TestFactorialFunctions.test_factorial_float_reference  sl    	3 	t23t23t23t23t67t67t78t78x78r?   r  )[][1]z[1.1][NaN][NaN, 1]c                 P   |t         j                  k(  r't        d |D              rt        j                  d       |dkD  st        |      dk7  r|n|d   }t        j                  |||      }d }|st        j                  ||      }nt        j                  |j                  t         j                        sjt        j                  |j                  t         j                        s<t        j                  t        d      5  t        j                  ||       d d d        n|rjt        j                  |j                  t         j                        s<t        j                  t        d	      5  t        j                  ||       d d d        nt        j                  ||      }d
 }|e|j                  r|j!                         n|}|j"                  rt        j                  ||      ng }	t        j                  |	||      }
 |||
       y y # 1 sw Y   txY w# 1 sw Y   xY w)Nc              3   F   K   | ]  }t        j                  |        y wr  rY   r   .0r  s     r<   	<genexpr>zKTestFactorialFunctions.test_factorial_array_corner_cases.<locals>.<genexpr>       $B'QRXXa['   !impossible combinationr   rT   ra  rV  r  Unsupported datatype*r   zfactorial with `exact=.*c                     t        |       t        |      k(  sJ dt        |        dt        |              t        | |       y )Nztypes not equal: z, )typer   r  r   s     r<   assert_really_equalzUTestFactorialFunctions.test_factorial_array_corner_cases.<locals>.assert_really_equal  s=    7d1g%O):47)2d1gY'OO%Ar?   )rY   r,  anyr   skiplenr   r!   r:  
issubdtyperV  integerfloatingr   rB  ndimr^   r  )r;   rE  r_  r  rV  rb   r  r  n_flatr  rQ  s              r<   !test_factorial_array_corner_casesz8TestFactorialFunctions.test_factorial_array_corner_cases  s    BHH$B'$B!BKK01!AgW):'HHWCu5&&q6F--4]]177BKK8z1HI!!!51 JI2=="**=z1KL!!!51 ML &&q6F	 "#&&QWWYaF<=FF'##F%8C xx3e<H1  JI MLs   H-HHH%y       @       @)1z1.1z2+2jrG  rH  c                 0   |l|t         j                  u sZt        j                  t        |      t         j                        s-t        j                  t        |      t         j
                        rt        j                  t        |      t         j
                        rK|rI|t         j                  ur7t        j                  d      5  t        j                  ||      }d d d        nt        j                  ||      }|t         j                  u s|t         j                  nt        j                  |      }t        |       y t        j                  t        d      5  t        j                  ||       d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nrt  r   r  r  )rY   r   r  r  r  r  r   r   r!   r:  r   r   rB  r;   rb   r  r  r   s        r<   "test_factorial_scalar_corner_casesz9TestFactorialFunctions.test_factorial_scalar_corner_cases  s	    Ibffd1grzz(J==a"++6d1gr{{3++2HI$..q>F JI !**1E:K19"&&':K:KA:NC%z1HI!!!51 JI JI JIs   F F F	FrM  c                 N   t         j                  dk(  rdnd}t        t        t	        j
                  |d            t	        j
                  |d      |       t        t	        j
                  |gd      j                  t              t	        j
                  |gd      |       y )Nri  g+=r  Tr  FrM   )rk  rl  r   rq   r!   r;  r  rm  s      r<   test_factorial2_accuracyz/TestFactorialFunctions.test_factorial2_accuracy	  s~    
 /uUg00$?@**1E:	G**A3d;BB5I**A3e<4	Ir?   c           
         t        j                  t        j                  t	        t        |dd            d      }t        |t        j                  |d             t        |t        j                  |gd      d          t        t        |      t        j                  |d             t        t        |      t        j                  |gd      d          y )Nr   r!  rT   TF)	functoolsreduceoperatormulr%  rp   r   r!   r;  r   rq   )r;   rb   r  s      r<   test_factorial2_int_referencez4TestFactorialFunctions.test_factorial2_int_reference	  s     ""8<<eAq"o1FJ7G$6$6q$$?@7G$6$6sD$A!$DEg(:(:1e(DEg(:(:A3(Fq(IJr?   )rv  rw  rx  ry  c                 *   |t         j                  k(  r't        d |D              rt        j                  d       |dkD  st        |      dk7  r|n|d   }t        j                  |||      }t        j                  |j                  t         j                        s|s1t        j                  ||      }|s|st        nt        } |||       y t        j                  t        d      5  t        j                  |d	       d d d        y # 1 sw Y   y xY w)
Nc              3   F   K   | ]  }t        j                  |        y wr  r|  r}  s     r<   r  zLTestFactorialFunctions.test_factorial2_array_corner_cases.<locals>.<genexpr>$	  r  r  r  r   rT   r  r  factorial2 does not*r   r   )rY   r,  r  r   r  r  r   r  rV  r  r!   r;  r   r   r   rB  )r;   rE  r_  r  rV  rb   r  r  s           r<   "test_factorial2_array_corner_casesz9TestFactorialFunctions.test_factorial2_array_corner_cases	  s     BHH$B'$B!BKK01!AgW):'HHWCu5=="**-g''7F $)<DOz1GH""1a( IHHs   )D		Dc                    |?|t         j                  u s-t        j                  t        |      t         j                        r]t        j                  ||      }|t         j                  u s|t         j                  nt        j                  |      }t        ||       y t        j                  t        d      5  t        j                  ||       d d d        y # 1 sw Y   y xY w)Nr  r  r   )rY   r   r  r  r  r!   r;  r:  r   r   r   rB  r  s        r<   #test_factorial2_scalar_corner_casesz:TestFactorialFunctions.test_factorial2_scalar_corner_cases4	  s     9RVVr}}T!Wbjj'I''7FK19"&&':K:KA:NC%z1GH""1E2 IHHs   :CC$rc   r  ri   ic           	          t        t        t        j                  ||d            t        j                  ||d             t        t        j                  |g|d      j	                  t              t        j                  |g|d             y )NTrc   r  F)r   rq   r!   r<  r  )r;   rb   rc   s      r<   test_factorialk_accuracyz/TestFactorialFunctions.test_factorialk_accuracyA	  sp     	g00atDE**1?	A**A3!4@GGN**A3!5A	Cr?   r>  c           
         t        j                  t        j                  t	        t        |d|             d      }t        |t        j                  ||d             t        |t        j                  |g|d      d          t        t        |      t        j                  ||d             t        t        |      t        j                  |g|d      d          y )Nr   rT   TF)r  r  r  r  r%  rp   r   r!   r<  r   rq   )r;   rb   rc   r  s       r<   test_factorialk_int_referencez4TestFactorialFunctions.test_factorialk_int_referenceO	  s     ""8<<eAq1"o1FJ7G$6$6q!T$BC7G$6$6sAt$DQ$GHg(:(:1a(GHg(:(:A35(I!(LMr?   c                 6   |t         j                  k(  r't        d |D              rt        j                  d       |dkD  st        |      dk7  r|n|d   }t        j                  |||r|nt         j                        }t        j                  |j                  t         j                        s|s#t        t        j                  |d|      |       y t        j                  t        d	      5  t        j                  |d|       d d d        y # 1 sw Y   y xY w)
Nc              3   F   K   | ]  }t        j                  |        y wr  r|  r}  s     r<   r  zLTestFactorialFunctions.test_factorialk_array_corner_cases.<locals>.<genexpr>g	  r  r  r  r   rT   r  r   r  factorialk does not*r   )rY   r,  r  r   r  r  r   r  r  rV  r  r   r!   r<  r   rB  )r;   rE  r_  r  rV  rb   s         r<   "test_factorialk_array_corner_casesz9TestFactorialFunctions.test_factorialk_array_corner_cases_	  s     BHH$B'$B!BKK01!AgW):'HHWCu2::N=="**-g++Aq>Bz1GH""1au5 IHHs   -DD)TFNc                    |?|t         j                  u s-t        j                  t        |      t         j                        r|8t        j                  d      5  t        j                  |||      }d d d        nt        j                  |||      }|t         j                  u xs |d u }|rt         j                  nd}t        |       y t        j                  t        d      5  t               5 }|j                  t        d       t        j                  |||       d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nzfactorialk will default.*r   r  rT   r  zfactorialk will default)rY   r   r  r  r  r   r   r!   r<  r   r   rB  r    r%  DeprecationWarning)r;   rb   rc   r  r  nan_condrQ  r(  s           r<   #test_factorialk_scalar_corner_casesz:TestFactorialFunctions.test_factorialk_scalar_corner_casess	  s    
 9RVVr}}T!Wbjj'I}++2MN$//QeDF ON !++A%@BFF{/a4iH!)rvvqH*z1GH&(CJJ13LM&&qAU; ) IH ON )( IHs0   D3(E3/D?"E3D<?E	EEr  c                     t        j                  t        d      5  t        j                  d|       d d d        y # 1 sw Y   y xY w)Nzk must be a positive integer*r   rT   )r   r   rB  r!   r<  r  s     r<   test_factorialk_raises_kz/TestFactorialFunctions.test_factorialk_raises_k	  s.    ]]:-LMq!$ NMMs	   <Ar8  c                 X   ||d}|r|t        j                         v rt        j                  t        |   g      }t        t        j                  |fi |j                  t               t        t        j                  |dz   fi |j                  t        j                         t        j                  |dz   fi |t        j                  t        j                        j                  kD  sJ t        j                  t         |   g      }t        t        j                  |fi |j                  t        j                         t        t        j                  |dz   fi |j                  t               t        j                  |dz   fi |t        j                  t        j                        j                  kD  sJ y t        j                  t        j                  |d      g      }|rt        nt        j                   }t        t        j                  |fi |j                  |       y )Nr  rT   )r/   keysrY   r   r0   r   r!   r<  rV  r-   r,  r&  int32r'  rW  getr  )r;   rc   r  kwrb   rV  s         r<   test_factorialk_dtypez,TestFactorialFunctions.test_factorialk_dtype	  s    u%Q388::3A678A++A44::GD++AE8R8>>I%%a!e2r2RXXbhh5G5K5KKKK3A678A++A44::BHHE++AE8R8>>G%%a!e2r2RXXbhh5G5K5KKKK3771=>?A $FE++A44::EBr?   c                    t        j                  t         j                  dddt         j                  g      }t        j                  t         j                  dddt         j                  g      }t        t	        j
                  |d      |       t        j                  t        d      5  t	        j
                  |d	       d d d        y # 1 sw Y   y xY w)
NrT   rF   r   rJ   Fr  zfactorial with `exact=True.*r   T)	rY   r   r   r   r!   r:  r   r   rB  )r;   r  rQ  s      r<   test_factorial_mixed_nan_inputsz6TestFactorialFunctions.test_factorial_mixed_nan_inputs	  s    HHbffaArvv./88RVVQ1bff56W&&q6A]]:-KLat, MLLs   )C

C).rS  rT  rU  r   rV  r  r=  r@  rD  rY   r   
datetime64rM  rp   r^  ro   int8int16r  r,  uint8uint16uint32uint64rc  rg  rn  r%  rq  ru  r  
complex128rW  r  r  r  r  r  r  r  r  r  r  r  r  r  rX  r?   r<   r7  r7    s   [[WtUm4B 5B
 [[S,/[[WtUm4? 5 0?
 [[WtUm4" 5" [[WtUm4[[Y}r}}U7K(L!7  9:9 5:, [[XuQ{3[[WtUm4F 5 4F< [[WtUm4[[Wc277BHHbhh
"))RYY		'  [[UE!QK05 1	 55 [[WtUm4[[WeAqk2; 3 5;$ [[S%C"45	H 6	H [[S!%2,/$uRb7I2JJL
#L
#9. [[Wrxx')}}f'> ?[[WtUm4[[UE!QK0[[Y 1#urvvhD!L  N!2N 1 5?!2F [[WtUm4[[S1c62664"@!D  F2F 52" [[S%C"45	I 6	I [[S!%2,/$uRb7I2JJL
KL
K [[Wrxx')}}f'> ?[[WtUm4[[UE!QK0[[YaS266(RVVQK(H!C  E)E 1 5?)" [[WtUm4[[S1c62664"@!D  F3F 53 [[S%1+. [[S%R"56C 7 /C [[S$uQ{"3r2h">?[[S!%2,/$uRb7I2JJLNL @N [[Wrxx')}}f'> ?[[WtUm4[[UE!QK0[[YaS266(RVVQK(H!C  E6E 1 5?6 [[W&9:[[S%1+.[[S1c62664"@!D  F<F / ;<& [[S1c2663"78% 9% [[WtUm4[[S%2,/C 0 5C(-r?   r7  c                       e Zd Zej                  j                  ddddddddd	d
ej                  ddfej                   ddfg      d        Zd Z	d Z
d Zy)TestFresnelzz, s, c)r   gN?ց[?)y      ?        r  r  )y       ?yn<ӿj<Cy)BR;߿ux7Q?)y      yھ|}-2?y/?!ۿ)rA  GM?pBR?)y      @        r  r  )y              @y       GMܿy        pBR?)y              gGMܿgpBR߿)y             y        GM?y       pBR߿r   r  c                 p    t        t        j                  |            }t        |t        ||g      d       y )Nr7  )r   r!   rh  r   )r;   rP  r  r'  frss        r<   test_fresnel_valueszTestFresnel.test_fresnel_values	  s,    @ GOOA&'!#uaV}a8r?   c                 (   t        j                  d      \  }}t        |t        g d      d       t        |t        g d      d       t        j                  |      d   }t        j                  |      d   }t        |dd       t        |dd       y )Nr   )y @X9v?y^I@48E?y=
ףp@+?y@eX?yO@Ǻ?r   )y.1?ǘ?yʡE6@:#J{/?yq-
@y&1?yh o@߾3?yW2q@qh?r   rT   rc  )r!   fresnel_zerosr   r   rh  )r;   szoczovals1vals2s        r<   test_fresnel_zeroszTestFresnel.test_fresnel_zeros	  s    ((+S!#"' ): #; <=	> 	"#"' ): #; <=	> $Q'$Q'!%"-!%"-r?   c                 x    t        j                  d      \  }}t        j                  d      }t        ||d       y )NrJ   r8  )r!   r  fresnelc_zerosr   )r;   r  r  frcs       r<   test_fresnelc_zeroszTestFresnel.test_fresnelc_zeros	  2    ((+S$$Q'!#c"-r?   c                 x    t        j                  d      \  }}t        j                  d      }t        ||d       y )Nr   r8  )r!   r  fresnels_zerosr   )r;   r  r  r  s       r<   test_fresnels_zeroszTestFresnel.test_fresnels_zeros	  r  r?   N)rS  rT  rU  r   rV  r  rY   r   r  r  r  r  rX  r?   r<   r  r  	  sx    [[Y7=	

	
 	&,)/*	c
&&$;) >9?>9.&.
.r?   r  c                   J    e Zd Zd Zd Zd Zed        Zed        Zd Z	d Z
y)		TestGammac                 F    t        j                  d      }t        |d       y rk  )r!   rm  r   )r;   gams     r<   rn  zTestGamma.test_gamma	  s    mmASr?   c                     t        j                  d      }t        t        j                  d            }t	        ||d       y )Nr   r7  )r!   rs  r   rm  r   )r;   gamlnlngams      r<   rt  zTestGamma.test_gammaln	  s/    "GMM!$%E%*r?   c                 v    t        j                  dd      }t        j                  dd      }t        ||d       y )Nr   r7  )r!   rp  gammaincinvr   )r;   gccinvgcinvs      r<   rq  zTestGamma.test_gammainccinv	  s2    %%b,##Br*F5+r?   c                 N   t        j                  dd      }t        j                  d|      }t        |dd       t        j                  dd      }t        j                  dd      }t        d|d       t        |dd       t        j                  dd      }t        d	|d       y )
NrG   rT   rV  g?g`	\;r  r#  gmb<g      &@)r!   r  gammaincr   r;   r   r  s      r<   test_gammaincinvzTestGamma.test_gammaincinv 
  s    2&R"Ac!$R&$:;D!R0A5rB$JKD!R0r?   c                     dt        j                  dd      dt        j                  dd      dg}|D ]<  }t        j                  d|      }t        j                  d|      }t        ||d       > y )	Nr9  r   gCs?rT   g^F    ?rG   r|   rM   )rY   r  r!   r  r  r   )r;   ptsxpr   r  s        r<   test_975zTestGamma.test_975
  sj    
 ||D!$l||D!$l4 B##B+A  a(AAr. r?   c                 x    t        j                  d      }dt        j                  d      z  }t        ||d       y )Nr7  rT   )r!   rz  rm  r   )r;   rgamrlgams      r<   r  zTestGamma.test_rgamma
  s/    ~~a '--""Dq)r?   c                     t        t        j                  t        j                  d                   t        t        j                  d      d       y )NrI   r   )r   rY   r  r!   rm  r   rz  r:   s    r<   test_infinityzTestGamma.test_infinity
  s/    r*+,W^^B'+r?   N)rS  rT  rU  rn  rt  rq  r1   r  r  r  r  rX  r?   r<   r  r  	  sC    +
,
 	1 	1 
/ 
/*
,r?   r  c                   <    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
y	)

TestHankelc                 p    t        t        j                  dd      t        j                  dd       d       y Nr>  rF   r   rc  )r   r!   r  r:   s    r<   
test_negv1zTestHankel.test_negv1%
  '    GOOBq1GOOAa4H3H"Mr?   c                     t        j                  dd      }t        j                  dd      t        j                  dd      dz  z   }t	        ||d       y NrT   rK  rN  r7  )r!   r  r  rG  r   )r;   hank1hankrls      r<   r  zTestHankel.test_hankel1(
  sC    "%**Qr"WZZ"%5b%88E&+r?   c                 p    t        t        j                  dd      t        j                  dd       d       y r  )r   r!   r  r:   s    r<   test_negv1ezTestHankel.test_negv1e-
  +    G,,R2W5E5Ea5J4JBOr?   c                     t        j                  dd      }t        j                  dd      t        d      z  }t	        ||d       y )NrT   rK  y       r7  )r!   r  r  r   r   )r;   hank1ehankrles      r<   r  zTestHankel.test_hankel1e0
  s9    !!!B'//!B'D	1F71-r?   c                 p    t        t        j                  dd      t        j                  dd       d       y r  )r   r!   r  r:   s    r<   
test_negv2zTestHankel.test_negv25
  r  r?   c                     t        j                  dd      }t        j                  dd      t        j                  dd      dz  z
  }t	        ||d       y r  )r!   r  r  rG  r   )r;   hank2hankrl2s      r<   r  zTestHankel.test_hankel28
  sC    "%::a#gjj2&6r&99E'!,r?   c                 p    t        t        j                  dd      t        j                  dd       d       y r  )r   r!   r  r:   s    r<   
test_neg2ezTestHankel.test_neg2e=
  r  r?   c                 v    t        j                  dd      }t        j                  dd      }t        ||d       y )NrT   rK  r7  )r!   r  r   )r;   hank2ehankrl2es      r<   test_hankl2ezTestHankel.test_hankl2e@
  s2    !!!B'##Ab)F8A.r?   N)rS  rT  rU  r  r  r  r  r  r  r	  r  rX  r?   r<   r  r  #
  s.    N,
P.
N-
P/r?   r  c                   H    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zy)	TestHyperc                     t        j                  dd      }t        j                  dd      t        j                  dd      dz  z   }t	        ||d       y r  )r!   h1vpjvpyvpr   )r;   h1h1reals      r<   	test_h1vpzTestHyper.test_h1vpG
  C    \\!B++a#gkk!B&7&::Bva(r?   c                     t        j                  dd      }t        j                  dd      t        j                  dd      dz  z
  }t	        ||d       y r  )r!   h2vpr  r  r   )r;   h2h2reals      r<   	test_h2vpzTestHyper.test_h2vpL
  r  r?   c                    t        t        j                  dd      dd       t        t        j                  dd      dd       t        j                  d	g d
      }t        j                  g d      }t        ||d       t        j                  d	t        j                  g d
      dz         }t        ||j                  t              d       g d}g d}t        j                  ||      }g d}t        ||d       t        j                  t        j                  |gdz        |      }t        |t        j                  |gdz        d       t        t        t        j                  t        j                  |gdz        ddg       y )Nr  r   Qvo?r|   rM   r   r   r  r   )g      rI   r   rT   ra  )g̷?g3|t-Ք?r   go?g{h?rE  r   ra  r  )r   rT   r   )r   gc?r  rF   r   rT   )
r   r!   hyp0f1rY   r   r  rF  vstackassert_raisesrB  )r;   r  rQ  r  x2s        r<   test_hyp0f1zTestHyper.test_hyp0f1Q
  s*   sC02BOsA.%@ NN3 5688 A B8%0 NN3)> ?# EF8??73%@ NN2r">8%0NN299bTAX.3299hZ!^45Aj'..iiq)Aq6	3r?   c                 H    t        j                  dd      }t        |d       y )N皙?      ?      ?y;EG?uM?)r!   r   r   )r;   rX  s     r<   test_hyp0f1_gh5764zTestHyper.test_hyp0f1_gh5764k
  s     nnS,/C!LMr?   c                    t        j                  ddd      }t        |dd       t        g g dg dg dg dg d	g d
g dg dg dg dg dg dg dg dg dg dg dg dg dg dg dg dg dg dg dg dg dg d g d!g d"g d#g d$g d%g d&g d'g d(g d)g d*g d+g d,g d-g d.g d/g d0g d1g d2g d3g d4g d5g d6g d7g d8g d9g d:g d;g d<g d=g d>g d?g d@g dAg dBg dCg dDg dEg dFg dGg dHg dIg dJg dKg dLg dMg dNg dOg dPg dQg dRg dSg dTg dUg dVg dWg dXg dYg dZg d[g d\g d]g d^g d_g d`g dag dbg dcg ddg deg dfg dgg dh      }|D ];  \  }}}}t        j                  |||      }t	        t        ||z
        |z  dik         = y )jNrK  rL  g?rH   )g{*= g˱a)g5=gvX@)g)AI@gDAhg$Pj)g~٭@)g,qUp,g@=&?gX 3@gZ@)g\@g88*@g\ֳ!=@g   ƞA)gAZ;gOFA'gxŝO<g_Dc D)g^g@g V*E7g4)3@g7-XtD)gΧU(@g2Tj8g$@g  LhB)ge;@gJgogr@g `屫B)g5'.@gqZ=g7߈Y.g8w)gB,@g"^#@grT[	R3@g  B)gYgN],*@g*!j,g1@)g#r @gq{874*gWs%o.@gMdD)g8|.2@g*!,g?I(#@gJ
r .)gu8g#=)@g*'1g)ψvA)g%0N:@gUx1@gx@gr),c@)g:M8@gGb+=@g3ҜV/@gX9ҙim@)g"dxz@gqKgv7##@g  >B)g kx-gD8L+8@g܈2g72LU@)gtd@Q4h6@g%@}gr3b @gu߯ѡ)g򋷺?g"p$`E2@gY|T3g\D?)gV-(+@g$[3@g;/@gEQwв@)g[fgLL4gQV@g0#.@)g;@g/?jvgx.<N&@g^I)g+9gX[?gbZSH%@g5/)@)g}RgŢ	@g},*@g6@g1w-@)gRA(g_@g5A} :=g   FA)gQz5@gq.#gTq&gc ?)gφ%#gZV@
g%@0@g   Syd)gB۽ܟ%@g*>8gV@'g	ʦ)g/H:gn@S g)bǙ9@g  9)gT쁹3!gD gkLFr%@g3333`4A)g:k
g\=)'gi,k9gbx?)giXwg-CwU5@g'jin9gX5@)gb@gTy4#/@g]pH=gIw?)g63@g2XxM:@g~?^0gW1?)g37g R{@gicx.4?gmm?)gv܏%7@g9Ma%=g}ygGr##@)gG8-xы.@gǂ@ghb(@g  A)gw1@gq2@gO],@g0ɷ-X@)g2@g́y#<@gͣx?g]?)g];˄f$@g1}0g_9g8ڃ@)g:!ω1g)q(@gg2gv%)A)gYN:+gn	Ȱ-?g>gZd|I.A)gr/K@g\}L9@g*gΙ?)gQq5V@g?)@g'@0@glۭ`@)gVn:gRQ0gT&g QC)gR4 8gi+gK @g{G)gtiq+g(O?3g	1=@g  8cB)g|>oϘg\!<@g"?4V?g%c\q?)g gpfP!gAO:@g,\)g=R8@g%;gz3@g~0G)g.CVl@ge< .@g9@gkq1A)g=~$gpR7@g 77g,ǆ@)g^g{)gRA2@g  dL)gf=4,R@gyO-g#ޕ~8@g)g|ݩ%P4g:<9@gKzs4g$(~O4@)g2y3@g1$6g&TpxA6gG!JA)gf^XH
^;@g7r:@g`,/@gi{dA)gihx@g!B8(@g7j*@gh@)glmF<gpO4@g`2"@g-)gnV3!2@g.mq1g!Z{.@grOE)gs`m@gzAUguC=V#@g  \)gPL-(@g,9$"9g6u7@geRF)gw8gv=5@gjRW+g(\-@)gyg~=@g4MVgwz:@)g^0g+7%g-@j81g5ׂ,j)gj4gz0g-</;gݽ]
D)gN43@g}W6@gLUS!9gɍF>)g Q4@g=}gȮ5@g]nhgF)gV9g9gf9,#gF|}fv?)g=^ee;@gy}2g'T> g#o@)g+5g;gN8Cg8@g   bkA)gSx+26@g@gI0gSMC)gT*0@g`<6gWy5@gǟRj)gӰk
g/:?gJLHR"@gxu-)gKu@g6gt8_x7@gd;=')g+:;@gBͤ10@g";gK$?)gp @g dg	=@g=6` F)gTbR.g9:g3@gUfgRbKZ@)g!g%P73;g]?gr	y?)g)Yv2gȹq@g/3g   A)g?j/|g7:@g#~oݽ?g8pE?)gPj/gS"X)gYgt0N?)ggo&	xT7@g-hT@#@g.;%r?)g'_@gɖ@7g:Kڞ$@g [B)gk5ں9gѼ:gk%tp;@g  .<^)gf:OI&gO/g#01|2gf`Y)gqv~@guFd9@gz+S7gF1/$?)gx3g~[6:g;s9@gKw*1@)gP@gv;K,gҬd&<@g!s)gֈ`|.gOwx=@g+MK<gUU@)gکI@g©jG1g4g؃66@g(4ν4E)gS>?gD-lgSL,c<gԉE4?)gd?A g3$)glx^?gs>|T?)g(%@g:ĉ$@g~^gv2gJHF&?)g}r":@g3\z;@go)@g+hA)g@')"gVv/@guQU-gfy2yt@)gM6y%$g/;R#@g):@gw%",6Կ)g%x'g$6g5gu$9?)glkC9g<tF8gp?g ?re  )r!   r  r   r   r   r^  )r;   hyp1ref_datar_  r`  r'  rQ  r  s           r<   r  zTestHyper.test_hyp1f1r
  s   ~~bB'D"4Q7  e
Oe
Ne
 Ne
 M	e

 Pe
 Ne
 Ne
 Ne
 Pe
 Me
 Oe
 Ne
 Oe
 Oe
 Me
  M!e
" N#e
$ O%e
& O'e
( N)e
* M+e
, O-e
. O/e
0 N1e
2 M3e
4 O5e
6 O7e
8 P9e
: P;e
< P=e
> O?e
@ PAe
B OCe
D NEe
F NGe
H NIe
J OKe
L MMe
N MOe
P MQe
R OSe
T OUe
V OWe
X NYe
Z M[e
\ Q]e
^ P_e
` Oae
b Nce
d Pee
f Nge
h Mie
j Oke
l Pme
n Ooe
p Oqe
r Ose
t Mue
v Mwe
x Oye
z N{e
| O}e
~ Ne
@ OAe
B OCe
D QEe
F PGe
H NIe
J NKe
L PMe
N OOe
P OQe
R OSe
T OUe
V OWe
X OYe
Z N[e
\ N]e
^ O_e
` Oae
b Oce
d Nee
f Pge
h Nie
j Nke
l Pme
n Qoe
p Nqe
r Ose
t Oue
v Owe
x Nye
z O{e
| O}e
~ Ne
@ MAe
B OCe
D OEe
F PGe
H OIe
 eN 'NAa(^^Aa*FC6)*83d:; 'r?   c                 z    t        j                  ddd      }t        j                  ddd      }t        ||d       y )Nr   ra  g7B.g|:B.r8  r!   r  r   )r;   r*  hyp2s      r<   test_hyp1f1_gh2957zTestHyper.test_hyp1f1_gh2957
  s2    ~~c38~~c38D$+r?   c                 L    t        j                  ddd      }t        |dd       y )Nr   ra  ig<`?r8  r-  )r;   hyps     r<   test_hyp1f1_gh2282zTestHyper.test_hyp1f1_gh2282
  s!    nnS#u-C!5r:r?   c                 *   dddddt        d      z  gdddddt        d	      z  gddd
d	dt        d      z  gg ddddt        d	      d
z  t        d      gddddt	        j
                  d      t	        j
                  d      z  t	        j
                  d      z  t	        j
                  d      z  gdd
d
ddt        t              z  t	        j
                  d
      z  t	        j
                  d      z  t	        j
                  d      z  gdd
dddt        t              z  t	        j
                  d      z  t	        j
                  d      z  t	        j
                  d      z  gdddddt	        j
                  d      z  t	        j
                  d      z  t	        j
                  d      z  t	        j
                  d      z  gg dg d g d!g d"g d#d$d%g}t        |      D ]5  \  }\  }}}}}t	        j                  ||||      }t        ||dd&|z  '       7 y )(Nr   rT   ra  |Gz?r  g?g|Gzr   r  rF   r  r&  )r   r   ra  r4  gYi2?r>  r   g433333?rD   r7  r   rI   r  r   g      ?r         @g      gUUUUUUտg  @gUUUUUU?g)ra  r  r         $gEciH!@)r!  r   rT   r  gzG?)rF   r>  rT   r  gy&1|)r  r   rT   r  g"nN%@?)rF   rB  rT   r  g!J)rV  |      %@r\  gzS;)rV  r7  g      %r\  g[B.VP<test #%derr_msg)r   r   r	   r
   r!   rm  r   r   r  r  r   )	r;   r   rt   r_  r`  r'  r  rf  cvs	            r<   r  zTestHyper.test_hyp2f1
  s    !S&'#o*>">?!S'6&+#561c6#e*,-MCS1c'l31a]]1e 44}}S!"$+MM#$678 5"T"Xe 44}}Y'(*1--	*BCD 5"T"Xe 44}}Y'(*1--	*BCD wGMM$//'--2HH}}T"#%,]]8%<=>
 ; &&GH9
< #,F"3A1aA1a+BAq*q.A #4r?   c                 L   t        j                  ddd      }t        |dd       g dg d}}t        |      t        |      }}d}t        j                  |||      }t        t        t        |z        z  t        j                  |||      t        j                  d|z   |z
        t        j                  |      z  z  |d|z
  z  t        j                  d|z   |z
  d	|z
  |      z  t        j                  |      t        j                  d	|z
        z  z  z
  z  }t        ||d
       y )NrT   rK  r>  g D?rH   )rL  r"  333333?g)ra  g	@rM  g	r   rF   r8  )	r!   hyperur   r   r   r	   r  rm  r   )r;   val1r_  r`  rP  hypuhprls          r<   test_hyperuzTestHyper.test_hyperu  s   ~~aC(D1- !4!aj'!*!~~a!$3r!t9w~~a!4 'ac!e 4W]]15E E G 1Q3xqs1uQqS(CC")--"27==13E"E G G H 	"$tB/r?   c                 H    t        t        j                  ddd      dd       y )NrT   ra  g3333334@g(¨?r8  )r   r!   r?  r:   s    r<   test_hyperu_gh2287zTestHyper.test_hyperu_gh2287   s    GNN1c480"	6r?   N)rS  rT  rU  r  r  r$  r(  r  r/  r2  r  rC  rE  rX  r?   r<   r  r  F
  s9    )
)
34Nr<h,
;"BH06r?   r  c                      e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!d  Z"d! Z#d" Z$d# Z%d$ Z&d% Z'd& Z(d' Z)d( Z*d) Z+d* Z,d+ Z-d, Z.d- Z/d. Z0d/ Z1d0 Z2d1 Z3dRd3Z4e5jl                  jo                   e8jr                         d4k(  d56      d7        Z:e5jl                  jo                   e8jr                         d4k(  d56      d8        Z;d9 Z<d: Z=e5jl                  j|                  d;        Z?d< Z@d= ZAd> ZBd? ZCd@ ZDdA ZEdB ZFdSdCZGdD ZHdE ZIdF ZJdG ZKdH ZLdI ZMdJ ZNdK ZOdL ZPdM ZQdN ZRdO ZSdP ZTdQ ZUy2)T
TestBesselc                 p    t        t        j                  d            }t        |t        ddg      d       y )Nr  gbɃ?gΝJ ֿr7  )r   r!   r  r   )r;   it0s     r<   r  zTestBessel.test_itj0y0&  s2    GNN2&'!&(<=>	
r?   c                 p    t        t        j                  d            }t        |t        ddg      d       y )Nr  gbqTtt?g/]ooۿr7  )r   r!   r  r   )r;   it2s     r<   r  zTestBessel.test_it2j0y0.  s2    GOOB'(!(*>?@	
r?   c                 l    t        t        j                  dd      t        j                  dd             y Nr   rF   r>  )r   r!   r  r:   s    r<   test_negv_ivzTestBessel.test_negv_iv6  s!    WZZ!_gjjA&67r?   c                 t    t        j                  d      }t        j                  dd      }t        ||d       y NrK  r   r7  )r!   r  r  r   r;   ozozrs      r<   r  zTestBessel.test_j09  +    ZZ^jj2Bs1%r?   c                 t    t        j                  d      }t        j                  dd      }t        ||d       y NrK  rT   r7  )r!   r  r  r   r;   o1o1rs      r<   r  zTestBessel.test_j1>  rT  r?   c                 J    t        j                  dd      }t        |dd       y )NrT   r  ;x?r7  )r!   r  r   )r;   jnnrs     r<   r  zTestBessel.test_jnC  s    zz!BD!5a8r?   c                 p    t        t        j                  dd      t        j                  dd       d       y r  )r   r!   r  r:   s    r<   test_negv_jvzTestBessel.test_negv_jvG  &    GJJr!,wzz!A.>Cr?   c                     g dg dg dg dg dg}t        |      D ]1  \  }\  }}}t        j                  ||      }t        ||dd|z         3 y )	N)r   rK  g
Ye?)UUUUUU?:0yE>g˿+>)ra  rV   g)%->)g@rV   g5c)!9)ra  r>  g%,Ϳr7  r9  r:  )r  r!   r  r   )r;   r   rt   rf  r  r   ycs          r<   r  zTestBessel.test_jvJ  sU    /5662	 &f-LAy1aAq!BAq*q.A .r?   c                 p    t        t        j                  dd      t        j                  dd       d       y r  )r   r!   r  r:   s    r<   test_negv_jvezTestBessel.test_negv_jveU  '    GKK1-Aa0@/@"Er?   c                     t        j                  dd      }t        |dd       t        j                  dd      }d}t        j                  d|      t	        t        |j                               z  }t        ||d       y )NrT   r  r[  r7  ?      ?)r!   r  r   r  r   r^  rO  )r;   jvexpjvexp1rP  jvexprs        r<   r  zTestBessel.test_jveX  sc    Ab!E"6q9Qu%Aac!&&k\!22F6!,r?   c                 x   t        j                  dd      }t        j                  dd      }t        |t        g d      d       t        |t        g d      d       t        j                  dd      }t	        |t        g d      d	
       t        j                  dd      }t	        |t        g d      d	
       y )Nr   r   rT   )go@.=@gzj,[@glN!@g5/ D'@gh>-@rD   gW@g0@gQX$@g*@g8*5{x0@rS   )gEk[@g~Cju]@gYrʝ^@g, `@gf	`@rL   rM   -  )gts@g&ǭr3t@gWt@g,$Y&u@gu@)r!   jn_zerosr   r   r   )r;   jn0jn1jn102jn301s        r<   test_jn_zeroszTestBessel.test_jn_zeros`  s    q#q#!#e -= '> ?@		A
 	"#e -8 '9 :;		<   Q'u &>  ? FK		L   Q'u &>  ? FK		Lr?   c                    t        j                  dd      }t        |d   dd       t        |d   dd       t        |d	   d
d       t        j                  dd      }t        |d   dd       t        |d   dd       t        |d	   dd       t        j                  dd      }t        |t        g d      d       y )Nr   rh   i  g;@rL   rM   i  g8v@i+  gׂMm@rV  gxi@g	,@gи{>@i  r   )gUDX@g!@g*HS@gz5 @g@2;@rb  )r!   ro  r   r   )r;   rp  jn10jn3010s       r<   test_jn_zeros_slowzTestBessel.test_jn_zeros_slow|  s    q#&E
$9FE
$9FE
$9FC(U%:GU%:GU%:G!!$q) ': !; BF		Gr?   c                 8  
 t         j                  

fd}t        dd      D ]u  }t        j                  |      \  }}}}t	        |||      D ]I  \  }}}	|	dk(  rt         
||      dd       "|	dk(  rt         |||      dd       =t        d|z         w y )Nc                 <     | dz
  |       | dz   |      z
  dz  S )NrT   rF   rX  )rb   r  r  s     r<   jnpz(TestBessel.test_jnjnp_zeros.<locals>.jnp  s'    qs1I1Q3q	)1,,r?   rT   rP   r   rU  r"  zInvalid t return for nt=%d)r!   r  rp   jnjnp_zeroszipr   AssertionError)r;   r{  ntrP  rb   r;  tzznnttr  s             @r<   test_jnjnp_zeroszTestBessel.test_jnjnp_zeros  s    ZZ	-2,B ,,R0JAq!Q!!Ql
B7#Br2J=1W#CBK>()E)JKK + r?   c                     t        j                  dd      }t        |t        g d      d       t        j                  dd      }t	        t        j
                  d|      dd       y )	NrT   r   g(yu?gOXeS@ga!@gxi'@g'Nw(-@rD     r   r  r"  )r!   	jnp_zerosr   r   r   r  )r;   r{  s     r<   test_jnp_zeroszTestBessel.test_jnp_zeros  sZ    !$!#u .: (; <=		>
 A&C-qu=r?   c           
          t        j                  dd      }t        |t        g d      t        g d      t        g d      t        g d      fd       y )NrT   r   rm  r  )"@g+@g-9(1!@gȘ'@g>tA}-@)g0v@gjt@gH.?$@g}"O*@gGŧp0@)r!   
jnyn_zerosr   r   )r;   jnzs     r<   test_jnyn_zeroszTestBessel.test_jnyn_zeros  sa      1%!#u .: (;
 (- .: (;
 (- .: (;
 (- .: (;'<& =>'	?r?   c                     t        j                  dd      }t        j                  dd      t        j                  dd      z
  dz  }t        ||d       y )NrF   rT   r   rV  )r!   r  r  r   )r;   jvprimjv0s      r<   test_jvpzTestBessel.test_jvp  sA    Qq!zz!Awzz!A.1F3r*r?   c                 t    t        j                  d      }t        j                  dd      }t        ||d       y rP  )r!   r  r  r   )r;   ozkozkrs      r<   r  zTestBessel.test_k0  +    jjnzz!BCQ'r?   c                 t    t        j                  d      }t        j                  dd      }t        ||d       y rP  )r!   r  r  r   )r;   ozkeozkers      r<   r  zTestBessel.test_k0e  +    {{2Ab!Dq)r?   c                 t    t        j                  d      }t        j                  dd      }t        ||d       y rV  )r!   r  r  r   )r;   o1ko1krs      r<   r  zTestBessel.test_k1  r  r?   c                 t    t        j                  d      }t        j                  dd      }t        ||d       y rV  )r!   r  r  r   )r;   o1keo1kers      r<   r  zTestBessel.test_k1e  r  r?   c                 @   dt         j                  j                         z  dz
  }dt         j                  j                         z  dz
  }t        j                  d||      }t        j                  d||      }t        j                  d||      }t        j                  d||      }t	        |j
                  dgd       t	        |j
                  t        ||z   dz   ||z
  g      dz  d       ||z   dz   ||z   dz   z  d||z   dz   z  |dz   z  d|dz   z  |dz   z  g}|d   |d   d|d   z  z
  |d   |d   z
  |d   z   g}t	        |j
                  t        |      d	z  d       ||z   dz   ||z   dz   z  ||z   d
z   z  d
||z   dz   z  ||z   dz   z  |dz   z  d||z   dz   z  |dz   z  |dz   z  d|dz   z  |dz   z  |dz   z  g}|d   |d   d|d   z  z
  |d   d|d   z  z
  d|d   z  z   |d   |d   z
  |d   z   |d   z
  g}	t	        |j
                  t        |	      dz  d       y )Nr   rT   r   rF   r   r  r   rD   r   rJ   r8  r7  g      H@)rY   r_   r!   jacobir   r'  r   )
r;   r_  r`  P0P1P2P3cpp2cp3cs
             r<   test_jacobizTestBessel.test_jacobi  sO   bii  1$bii  1$^^Aa"^^Aa"^^Aa"^^Aa"!"$$s2.!"$$uac!eAaC['9#'=bAs1uqs1uoq!A#a%y!A#1Q31>!uRU1RU7]2a5A;r!u#45!"$$uSz#~b9s1uqs1uoqs1u%a1Qi1Q&71&=!A#a%j!A#!$Q!Wac]AaC%8:!uRU1RU7]2a52a5=2a5#8Ar!uRU9J2a59PQ!"$$uSz$r:r?   c                 J    t        j                  dd      }t        |dd       y )Nr   r  _2?r7  )r!   r  r   )r;   kn1s     r<   r  zTestBessel.test_kn  s    jj2C 215r?   c                 l    t        t        j                  dd      t        j                  dd             y Nr   r2  r  r   r!   r  r:   s    r<   test_negv_kvzTestBessel.test_negv_kv  s"    WZZS)7::dC+@Ar?   c                 J    t        j                  dd      }t        |dd       y )Nr   r  r  rV  r!   r  r   )r;   kv0s     r<   test_kv0zTestBessel.test_kv0  s    jj2C!3R8r?   c                 J    t        j                  dd      }t        |dd       y )NrT   r  gKދ@rV  r  )r;   kv1s     r<   test_kv1zTestBessel.test_kv1      jj3C!2B7r?   c                 J    t        j                  dd      }t        |dd       y )NrF   r  g)lHH@rV  r  )r;   kv2s     r<   test_kv2zTestBessel.test_kv2  r  r?   c                 D    t        t        j                  dd      d       y )N    rT   g.Ք"H)r   r!   r  r:   s    r<   test_kn_largeorderzTestBessel.test_kn_largeorder  s    

2q)+ABr?   c                 D    t        t        j                  dd      d       y )Nr   g =`XCr  r:   s    r<   test_kv_largeargzTestBessel.test_kv_largearg  s    WZZ4(!,r?   c                 l    t        t        j                  dd      t        j                  dd             y r  )r   r!   r  r:   s    r<   test_negv_kvezTestBessel.test_negv_kve  s"    W[[c*GKKc,BCr?   c                    t        j                  dd      }t        j                  dd      t        d      z  }t	        ||d       d}t        j                  d|      }t        j                  d|      t        |      z  }t	        ||d       y )Nr   r  r7  rh  )r!   r  r  r   r   )r;   kve1r  rP  kve2r  s         r<   r  zTestBessel.test_kve  sp    {{1R jj2s2w&DQ'{{1Qjj1oc!f$DQ'r?   c                 x    d}t        t        j                  d|       t        j                  d|d      d       y )Nr2  rT   r   rb   rV  )r   r!   r  kvp)r;   rP  s     r<   test_kvp_v0n1zTestBessel.test_kvp_v0n1  s-    WZZ!_,gkk!A.CRHr?   c                     d}d}t        j                  |dz   |       ||z  t        j                  ||      z  z   }t        j                  ||d      }t        ||d       y )Nr   r2  rT   r  rV  r!   r  r  r   r;   rf  rP  xcr  s        r<   test_kvp_n1zTestBessel.test_kvp_n1  sY    jj1Q!A#gjj1o"55KK!q!B2&r?   c                     d}d}|dz  |dz  z   |z
  |dz  z  t        j                  ||      z  t        j                  |dz   |      |z  z   }t        j                  ||d      }t        ||d       y )Nr   r2  rF   rT   r  rV  r  r  s        r<   test_kvp_n2zTestBessel.test_kvp_n2  sp    d1a4ik1a4'**Qq/1GJJqs14Ea4GGKK1"B2&r?   c                 t    t        j                  d      }t        j                  dd      }t        ||d       y rP  )r!   r?  rD  r   rQ  s      r<   r@  zTestBessel.test_y0   rT  r?   c                 t    t        j                  d      }t        j                  dd      }t        ||d       y rV  )r!   rU  rD  r   rW  s      r<   rB  zTestBessel.test_y1%  rT  r?   c                 B   t        j                  d      \  }}t        j                  dd      \  }}t        ||f   }t        ||f   }t        t	        t        j
                  d|            dd       t        t	        t        j
                  d|      |z
        dd       y )NrF   rT   rF  r   rM  )r!   y0_zerosr   r   r^  rG  )r;   yoypozozpor  allvals          r<   test_y0_zeroszTestBessel.test_y0_zeros*  s    !!!$3!!!A.3BiCG!#gjjS&9":3rB!#gjj3&7&>"?BGr?   c                 t    t        j                  d      }t        |t        dg      t        dg      fd       y )NrT   r  gѮBO?r   )r!   y1_zerosr   r   )r;   rU  s     r<   test_y1_zeroszTestBessel.test_y1_zeros2  s1    a !"eWI&6ugY7G%HKr?   c                 x    t        j                  dd      }t        |t        dg      t        dg      fd       y )NrT   r  yL
F%u?!rh?y;OnгY?r   )r!   	y1p_zerosr   r   )r;   y1ps     r<   test_y1p_zeroszTestBessel.test_y1p_zeros6  s9    !,!M?#UO+<%=>	
r?   c                     t        j                  dd      }t        |t        ddg      d       t        j                  dd      }t	        |g dd	       y )
NrD   rF   g3@g(A&"@r   r  )g]E.+"|@gH(|@gff|}@g&b`~@gHO_~@r  rM   )r!   yn_zerosr   r   r   )r;   ans     r<   test_yn_zeroszTestBessel.test_yn_zeros>  sP    a"!"UGW+=%>qAc!$ 4
 #	%r?   c                 @   t        j                  dd      }t        |t        ddg      d       t        j                  dd      }t	        t        j
                  d|      dd	       t        j                  d
d      }t	        t        j
                  d
|      dd	       y )Nr   rF   gQhվ@gzN@rJ   +   r   r  r"  r  r
  )r!   	ynp_zerosr   r   r   r  r;   aos     r<   test_ynp_zeroszTestBessel.test_ynp_zerosI  s|    q#!"UJ
+C%DQGr!$B+QU;s1%C,ad;r?   c                 t    t        j                  dd      }t        t        j                  d|      dd       y )Nr  r   r   rB  r"  )r!   r  r   r  r  s     r<   test_ynp_zeros_large_orderz%TestBessel.test_ynp_zeros_large_orderQ  s+    s1%C,ae<r?   c                 J    t        j                  dd      }t        |dd       y NrT   r  5,1
r7  )r!   rD  r   )r;   yn2ns     r<   rE  zTestBessel.test_ynU  s    zz!BD!4Q7r?   c                 \    t        j                  dd      }|t        j                   k(  sJ y )NrR   rT   )r8   rD  rY   r   )r;   observeds     r<   test_yn_gh_20405zTestBessel.test_yn_gh_20405Y  s&    99S!$BFF7"""r?   c                 p    t        t        j                  dd      t        j                  dd       d       y r  )r   r!   rG  r:   s    r<   test_negv_yvzTestBessel.test_negv_yv^  r_  r?   c                 J    t        j                  dd      }t        |dd       y r  )r!   rG  r   )r;   yv2s     r<   rH  zTestBessel.test_yva  s    jj2C 3A6r?   c                 p    t        t        j                  dd      t        j                  dd       d       y r  )r   r!   rJ  r:   s    r<   test_negv_yvezTestBessel.test_negv_yvee  rf  r?   c                     t        j                  dd      }t        |dd       t        j                  dd      t	        d      z  }t        j                  dd      }t        ||d       y )NrT   r  r  r7  rh  rI   )r!   rJ  r   rG  r   )r;   yve2yve2ryve22s       r<   rK  zTestBessel.test_yveh  sT    {{1R D!4Q7

1U#CG+Ae$E%*r?   c                     t        j                  dd      t        j                  dd      z
  dz  }t        j                  dd      }t        ||d       y )NrT   r  r   r   rF   rV  )r!   rG  r  r   )r;   yvpryvp1s      r<   test_yvpzTestBessel.test_yvpo  sC    

1R 7::a#33S8{{1R !$tB/r?   c              #      K   g d}g d}t        j                  ||      E d{    t        j                  dt        dd      z   dg      E d{    y7 17 w)z>Yield points at which to compare Cephes implementation to AMOS)ir        4r6  r  r  r   r   {G(@r  rn  )ir  rI   r   r        i@g     y@g     Ă@g@  i'  Nr   ird  r   )	itertoolsproductr   )r;   rf  rP  s      r<   _cephes_vs_amos_pointsz!TestBessel._cephes_vs_amos_pointst  s\      K$$Q*** $$S6#r?%:SEBBB	 	+ 	Cs!   "AA+AAAANc                    | j                         D ]  \  }}|
 |||      r |||       |||dz          |t        |      |      }
}	}t        j                  |      r%t	        t        j
                  |	      dk\  ||f       st        j                  |      rt	        |	j                  dk7  ||f       t        ||	||f||       |t        |      k(  st        |
|	||f||        y )NrE  u <7~r   )r;  rN   rX   )	r  ro   rY   r  r   r^  r   rO  r   )r;   r  f2rN   rX   r  rf  rP  c1c2c3s              r<   check_cephes_vs_amoszTestBessel.check_cephes_vs_amos  s    //1DAqDAJAq2a":r#a&!}BBxx|r
e+aV4"1q!f-BATMA;#BQF*.T; 2r?   ppc64lezfails on ppc64lerH  c                 f    | j                  t        j                  t        j                  dd       y )NrV   u5% rC  )r  r!   r  r  r:   s    r<   test_jv_cephes_vs_amosz!TestBessel.test_jv_cephes_vs_amos  #     	!!'**gjju6!Rr?   c                 f    | j                  t        j                  t        j                  dd       y )Ndy=r  rC  r  r!   rG  rD  r:   s    r<   test_yv_cephes_vs_amosz!TestBessel.test_yv_cephes_vs_amos  r  r?   c                 n    d }| j                  t        j                  t        j                  dd|       y )Nc                     t        |       dkD  S )Nr#  )r^  )rf  rP  s     r<   skipperzDTestBessel.test_yv_cephes_vs_amos_only_small_orders.<locals>.skipper  s    q6B;r?   r  r  )rN   rX   r  r  )r;   r   s     r<   (test_yv_cephes_vs_amos_only_small_ordersz3TestBessel.test_yv_cephes_vs_amos_only_small_orders  s-    	!!'**gjju6'. 	" 	0r?   c                     t        j                  d      5  | j                  t        j                  t        j                  dd       d d d        y # 1 sw Y   y xY w)Nr  r  g:0y5>r  rC  )rY   r  r  r!   r  r:   s    r<   test_iv_cephes_vs_amosz!TestBessel.test_iv_cephes_vs_amos  s9    [[X&%%gjj'**4f%U '&&s   2AAc                    d}t         j                  j                  d       t         j                  j                  d|      dt         j                  j	                  d|      z  z  }t         j                  j                  d|      dt         j                  j	                  d|      z  z  }t         j                  j	                  d|      d	k(  }||   j                  t         j                        ||<   t        j                  d
      5  t        j                  ||      }t        j                  ||dz         }t         j                  |t        |      dkD  <   t         j                  |t        |      dkD  <   d	|t        |      dk  <   d	|t        |      dk  <   t        ||z  dz
        }d	|t        j                  |      <   d d d        t        j                        }t        ||   dk  ||   ||   t        j                  ||   ||         t        j                  ||   ||   dz         f       y # 1 sw Y   rxY w)Ni@B rT   r   rI   rF   r  r  r7  r   r  r  rE  r  gYngH׊>)rY   r_   r`   r  r  r  r,  r  r!   r  r   r^  r   argmaxr   )	r;   Nrf  r  imskr  r  dcrc   s	            r<    test_iv_cephes_vs_amos_mass_testz+TestBessel.test_iv_cephes_vs_amos_mass_test  s   
		qIIS!$RYY->->qq->-I'IIIIS!$RYY->->qq->-I'II		!!!!!,1D'..*$[[X&Aq!BAqt$B #%&&Bs2w"$&&Bs2w#$Bs2w #$Bs2w RUQYB Brxx| ' IIbM 	qEDLqT1Q4AaD!A$/AaD!A$r'1JK	
# '&s   B9H55H>c                     | j                  t        j                  t        j                  dd       | j                  t        j                  t        j                  dd       y )Nr
  r  rC  )r  r!   r  r  r:   s    r<   test_kv_cephes_vs_amosz!TestBessel.test_kv_cephes_vs_amos  s@    !!'**gjjt&!Q!!'**gjjt&!Qr?   c                     t        t        j                  dd      d       t        t        j                  dd      d       t        t        j                  dd      d       y )	Nr   rD   gP?rn  r
  g~Omʒ?gY8E@@gKSn)r   r!   r  r:   s    r<   test_ticket_623zTestBessel.test_ticket_623  sD    

1a(*=>

3-/AB

3	24GHr?   c           	      <
   t        t        j                  dd      d       t        t        j                  dd      d       t        t        j                  dd      d       t        t        j                  dd      d       t        t        j                  dd      d       t        t        j                  dd      d	       t        t        j
                  dd      d
       t        t        j
                  dd      d       t        t        j                  dd      d       t        t        j                  dd      d       t        t        j                  dd      d       t        t        j
                  dd      d       t        t        j                  dd      d       t        t        j                  dd      d       t        t        j                  dd      d       t        t        j                  dd      d       t        t        j                  dd      d       t        t        j                  dd      d	       t        t        j
                  dd      d
       t        t        j
                  dd      d       t        t        j                  dd      d       t        t        j                  dd      d       t        t        j                  dd      d       t        t        j                  dd      d       t        t        j                  dd      d       t        t        j                  dd      d       t        t        j
                  dd      d       t        t        j
                  dd      d       t        t        j                  dd      t        j                  dd      t        d      z         t        t        j                  dd      t        j                  dd      t        d      z         t        t        j                  dd      t        j                  dd      t        d      z         t        t        j                  dd      t        j
                  dd      t        d      z         t        t        j                  dd      t        j                  dd      dt        j                  dd      z  z          t        t        j                  dd      t        j                  dd      dt        j                  dd      z  z
         y)zNegative-order BesselsrI   rT   gl)ܿr!  gPj?gk?g%E*2ig敋?gw--`?gÉB?gW?r  g޴?gz|?a?gpx%?y      ?              ?      ?yYD?`{1wy6x?B]#Ӯ?y ?b>?y.}9d?8kؿy      ?333333?r  y333333?      ?rN  N)r   r!   r  rG  r  r  r  r   rJ  r  r  r  r  r:   s    r<   test_ticket_853zTestBessel.test_ticket_853  s    	

2q)+>?

2q)+=>

2q)+=>

2q)+=>

2q)+=>

2q)+=>

2q)+=>

2q)+<=

4+-CD

4+-?@

4+->?

4+-?@

2t,.AB

2t,.@A

2t,.@A

2t,.@A

2t,.@A

2t,.@A

2t,.@A

2t,.?@

4.0FG

4.0UV

4.0BC

4.0UV

4.0AB

4.0RS

4.0BC

4.0RSD0'**T62J3t92TUD0'**T62J3t92TUD0'**T62J3t92TUD0'**T62J3v;2VWOOD$'JJtT"R

4(=%==	
 	OOD$'JJtT"R

4(=%==	
r?   c                    t        t        t        j                  dd                   t        t        t        j                  dd                   t        t        t        j
                  dd                   t        t        t        j
                  dd                   t        t        t        j                  dd                   t        t        t        j                  dd                   t        t        t        j                  dd                   t        t        t        j                  dd                   t        t        t        j                  dd                   t        t        t        j                  dd                   t        t        t        j                  dd                   t        t        t        j                  dd                   t        t        t        j                  d      dd       j                         t        j                  d             t        t        t        j                  d      dd       j                          t        j                  d             y)zReal-valued Bessel domainsr   rI   rT   r   rF   rD   N)r   r   r!   r  r  rG  r  r  r  rJ  r  rA   r  r  r:   s    r<   test_ticket_854zTestBessel.test_ticket_854  s   gjjb)*+gjjb)*+gjjb)*+gjjB'()gjjb)*+gjjB'()gkk#r*+,gkk#r*+,gkk#r*+,gkk!R()*gkk#r*+,gkk!R()*gmmB'!,-113W]]25FGE'--+Aa015577r9JKr?   c                     t        t        j                  dd      t        j                  k(         t        t        j
                  dd      t        j                  k(         y )Nra  r   )r   r!   r  rY   r   r  r:   s    r<   test_gh_7909zTestBessel.test_gh_7909  s:    

3"bff,-C#rvv-.r?   c                     t        t        j                  dd      d       t        t        j                  dd      d       y)zReal-valued Bessel I overflowrT   i  g~rQ   i`  g ?los~Nr   r!   r  r:   s    r<   test_ticket_503zTestBessel.test_ticket_503  s.    

1c*,AB

4.0EFr?   c                 D    t        t        j                  dd      d       y )Nr  rT   r0  r8  r:   s    r<   test_iv_hyperg_poleszTestBessel.test_iv_hyperg_poles  s    

4+->?r?   c                    t        d|      j                  t              }|d|z  z   t        d|z        z  t	        j
                  |dz         z
  t	        j
                  ||z   dz         z
  }t        |t        |      <   t        |      }t        |      j                         t        t              j                  z  |z  t        |d         dz  z   }|j                         |fS )Nr   rF   r   rT   rI   rV  )r   r  r   r   r!   rs  r   r   r   r^  r'  r   epssumr;   rf  rP  rb   rc   rr  s          r<   	iv_serieszTestBessel.iv_series  s    1aL'qsUC1I! 44wqs1u7MM%(F!fjjlU6]...2S2Z]Buuw|r?   c                     dD ]9  }| j                  d|      \  }}t        t        j                  |      |||       ; y )Nr   r   r	  r   rX   r;  )rA  r   r!   r  r;   rP  valuer  s       r<   test_i0_serieszTestBessel.test_i0_series#  6    !A1-JE3GJJqM5sAF "r?   c                     dD ]9  }| j                  d|      \  }}t        t        j                  |      |||       ; y )NrC  rT   rD  )rA  r   r!   r  rE  s       r<   test_i1_serieszTestBessel.test_i1_series(  rH  r?   c           	          dD ]C  }dD ]<  }| j                  ||      \  }}t        t        j                  ||      ||||f       > E y )N)r  r6  r  r   r   r  r  )r   r   r	  y             @rD  )rA  r   r!   r  r;   rf  rP  rF  r  s        r<   test_iv_serieszTestBessel.test_iv_series-  sG    7A,!^^Aq1
s

1a 0%cAq6R - 8r?   c           	          ddgddgddgddgddgd	d
gddgddgg}t        |      D ]<  \  }\  }}t        j                  |      t        |       z  }t	        ||dd|z         > y )Nr   r   rV   rK  g0oO?r   g!?grb?r  gpH?r   gC~?r   ggo?r7  r9  r:  )r  r!   r  r   r   r;   r   rt   r  rf  r<  s         r<   r  zTestBessel.test_i03  s    *#,%%%%%& #6*IAv1AaR(BAq*q.A +r?   c                 t    t        j                  d      }t        j                  dd      }t        ||d       y rP  )r!   r  r  r   )r;   oizeoizers      r<   r  zTestBessel.test_i0eA  r  r?   c                     ddgddgddgddgdd	gd
dgddgg}t        |      D ]<  \  }\  }}t        j                  |      t        |       z  }t	        ||dd|z         > y )Nr   rV   gj|=rK  gȕ![1?r   g;͘?r   gRΜ?r   g|?r   g}f?r7  r9  r:  )r  r!   r  r   r   rO  s         r<   r  zTestBessel.test_i1F  s    *01%%%%& #6*IAv1AaR(BAq*q.A +r?   c                 t    t        j                  d      }t        j                  dd      }t        ||d       y rV  )r!   r  r  r   )r;   oi1eoi1ers      r<   r  zTestBessel.test_i1eS  r  r?   c                 p    t        t        j                  d            }t        |t        ddg      d       y )Nr   gїJB?@g*u?)r   r!   r  r   )r;   iti0s     r<   r  zTestBessel.test_iti0k0X  s2    W^^A&'!%'9:;	
r?   c                 ^    t        j                  d      }t        |t        ddg      d       y )NrK  gݳɄ|T?gVƥ
@rJ   )r!   r  r   r   )r;   it2ks     r<   r  zTestBessel.test_it2i0k0`  s-    r"!(*<=>	
r?   c                 b    t        j                  dd      t        d      z  }t        |dd       y )Nr   rK  皙gv M?rV  )r!   r  r   r   )r;   iv1s     r<   r  zTestBessel.test_ivh  s(    jj2s3x'C 3B7r?   c                 l    t        t        j                  dd      t        j                  dd             y rM  )r   r!   r  r:   s    r<   test_negv_ivezTestBessel.test_negv_ivel  s"    W[[1%w{{2a'89r?   c                     t        j                  dd      }t        j                  dd      t        d      z  }t	        ||d       y )Nr   rK  r\  rV  )r!   r  r  r   r   )r;   ive1r]  s      r<   r  zTestBessel.test_iveo  s7    {{1R jj2s3x'DR(r?   c                 n    t        t        j                  dd      t        j                  dd      d       y )NrT   rF   r   rV  )r   r!   r  ivpr:   s    r<   	test_ivp0zTestBessel.test_ivp0t  s#    GJJqOW[[1-=rBr?   c                     t        j                  dd      t        j                  dd      z   dz  }t        j                  dd      }t        ||d       y )Nr   rF   rT   rV  )r!   r  rc  r   r  s      r<   test_ivpzTestBessel.test_ivpw  sA    ZZ!_wzz!A.1KK!Aa#r?   )r  r   N)   )VrS  rT  rU  r  r  rN  r  r  r  r^  r  re  r  rt  rx  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r@  rB  r  r  r  r  r  r  rE  r  r  rH  r  rK  r  r  r  r   rV  rW  rl  machiner  r  r!  r#  slowr*  r,  r.  r2  r4  r6  r9  r;  rA  rG  rJ  rM  r  r  r  r  r  r  r  r_  r  rd  rf  rX  r?   r<   rG  rG  %  s.   

8&
&
9D	BF-L8G$L>?.+
(
*
(
*
;$6B988C-D(I''&
&
HL
	%<=8#
D7F+0

C; [['x'')Y60  2S2S [['x'')Y60  2S2S0V [[
 
>RI
0
dL"/G
@G
G
SB*
B*


8:)
C$r?   rG  c                       e Zd Zd Zd Zy)TestLaguerrec                    t        j                  d      }t        j                  d      }t        j                  d      }t        j                  d      }t        j                  d      }t        j                  d      }t        |j                  dgd       t        |j                  ddgd       t        |j                  t	        g d	      d
z  d       t        |j                  t	        g d      dz  d       t        |j                  t	        g d      dz  d       t        |j                  t	        g d      dz  d       y )Nr   rT   rF   r   rD   r   r  rI   )rT   rv  rF   r   )rI   r  irJ   rA  )rT   iH   ir  rl  )rI   r  i8iX  ir  r  )r!   laguerrer   r'  r   )r;   lag0lag1lag2lag3lag4lag5s          r<   test_laguerrezTestLaguerre.test_laguerre~  s    """"""!$&&!R0!$&&"Q3!$&&x)<R@!$&&|)<S)@D!$&&/@)A$)FrJ!$&&/H)I%)OPRSr?   c                 V   dt         j                  j                         z  dz
  }t        j                  d|      }t        j                  d|      }t        j                  d|      }t        j                  d|      }t	        |j
                  dg       t	        |j
                  d|dz   g       t        |j
                  t        dd|dz   z  |d	z   |d
z   z  g      d
z         t        |j
                  t        dd|dz   z  d|dz   z  |dz   z  |dz   |dz   z  |dz   z  g      dz         y )Nr   r  r   rT   rF   r   rI   r!  r   r   r>  rA  )rY   r_   r!   r  r   r'  r   r   )r;   rc   ro  rp  rq  rr  s         r<   test_genlaguerrezTestLaguerre.test_genlaguerre  s   bii  3&""1Q'""1Q'""1Q'""1Q'TVVaS!TVVb!a%[)FF1R1Xqtadm,-c1	
 	FF2a1gb!A#h!nacAaC[!A#->?@D	
r?   N)rS  rT  rU  ru  rw  rX  r?   r<   rk  rk  }  s    T
r?   rk  c                       e Zd Zd Zej
                  j                  dg d      ej
                  j                  dg d      ej
                  j                  dg d      d                      Zy	)
TestLegendrec                    t        j                  d      }t        j                  d      }t        j                  d      }t        j                  d      }t        j                  d      }t        j                  d      }t        |j                  dg       t        |j                  ddg       t	        |j                  t        g d      dz  d	
       t	        |j                  t        g d      dz         t	        |j                  t        g d      dz         t	        |j                  t        g d      dz         y )Nr   rT   rF   r   rD   r   )r   r   rI   r   r  r  )r   r   r>  r   )r  r   r?  r   r   r   )?   r   ir   rv   r   )r!   legendrer   r'  r   r   )r;   leg0leg1leg2leg3leg4leg5s          r<   test_legendrezTestLegendre.test_legendre  s    """"""TVVaS!TVVaU#DFFE(OC$7DDFFE*$5c$9:DFFE.$9#$=>DFFE*;$<S$@Ar?   rb   )rT   rF   r   rD   r   zr)g?g{ɚ)@gue#gbLd?g7f?zi)go^#@g"1?g7ܘ~ @g^26g6n"c                     t        j                  |||dz  z         }t        j                  d|||dz  z         }t        |d   |d   d          t        |d   |d   d          y )NrN  r   rT   )r!   lpnclpmnr   )r;   rb   r  r  reslpnresclpmns         r<   test_lpn_against_clpmnz#TestLegendre.test_lpn_against_clpmn  sb     QRU
+==Ar"R%x0q	8A;q>2q	8A;q>2r?   N)rS  rT  rU  r  r   rV  r  r  rX  r?   r<   ry  ry    si    B [[S/2[[T $: ;[[T $0 131; 3
3r?   ry  c                       e Zd Zd Zy)
TestLambdac           
      p   t        j                  dd      }t        t        j                  dd      dt        j                  dd      z  dz  g      t        t        j                  dd      dt        j
                  dd      z  dz  dt        j                  dd      z  dz  z   g      f}t        ||d       y )NrT   rK  r   rF   r!  r   r7  )r!   lmbdar   r  r  r  r   )r;   lamlamrs      r<   
test_lmbdazTestLambda.test_lmbda  s    mmAb!7::a#Qwzz!B'7%7%:;<7;;q$bAb)9&9#&='++aPRBS@STV@V&VWX
 	"#d1-r?   N)rS  rT  rU  r  rX  r?   r<   r  r    s    .r?   r  c                       e Zd Zd Zd Zy)	TestLog1pc                     t        j                  d      t        j                  d      t        j                  d      f}t        d      t        d      t        d      f}t        ||d       y )NrV  rM  r8  r  r7  r!   r"  r   r   )r;   l1pl1prls      r<   r#  zTestLog1p.test_log1p  sM    }}R '--"3W]]25FGR#b'3r7+!#eA.r?   c                     t        j                  d      t        j                  d      t        j                  d      f}t        d      t        d      t        d      f}t        ||d       y )NrT   r  r>  rF   r1  r2  r7  r  )r;   l1pml1pmrls      r<   test_log1pmorezTestLog1p.test_log1pmore  sM    a '--"4gmmC6HIa&S#c(+!$va0r?   N)rS  rT  rU  r#  r  rX  r?   r<   r  r    s    /
1r?   r  c            	          e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zej"                  j%                  dej(                  ej*                  g      ej"                  j%                  dg d      ej"                  j%                  dddg      ej"                  j%                  dddg      ej"                  j%                  dg d      d                                    Zej"                  j%                  dej.                  g      ej"                  j%                  dg d      ej"                  j%                  dddg      ej"                  j%                  dg d      d                             Zej"                  j%                  dej2                  ej.                  g      ej"                  j%                  dg d      ej"                  j%                  dg d      d                      Zy)TestLegendreFunctionsc                    d}t        j                  dd|d      }t        |t        d|dd|z  |z  dz
  z  gdt	        ||z  dz
        d|z  t	        ||z  dz
        z  gddd||z  dz
  z  gg      t        ddd|z  gd|t	        ||z  dz
        z  dd|z  |z  dz
  z  t	        ||z  dz
        z  gddd|z  gg      fd	       y )
Ny      ?333333?rF   r   r   r   rT   r   rJ   rH   )r!   r  r   r   r   )r;   rP  clps      r<   
test_clpmnz TestLegendreFunctions.test_clpmn  s    mmAq!Q'!#FAsAaCE!G}5"D1QK1T!A#a%[A"FAqs1uI68 9 FFAaC0"Ad1Q3q5kM1ac!eAg;tAaCE{3JK"FAaC02 34 	r?   c                 F   d}d}d}d}t        j                  |||d|z  z   d      d   ||f   }t        j                  |||d|z  z
  d      d   ||f   }t        t        ||g      t        t        j                  |||      t        j                  |||      g      d       y )	NrV   rT   r   r   rN  rF   r   rH   )r!   r  r   r   r+  r;   r=  r;  rb   r  clp_plus	clp_minuss          r<   test_clpmn_close_to_real_2z0TestLegendreFunctions.test_clpmn_close_to_real_2  s    ==AqCx3A6q!t<MM!Q"S&!4Q71=	!%9(=">"'aA)>)0aA)>)@ #A"#	%r?   c                    d}d}d}d}t        j                  |||d|z  z   d      d   ||f   }t        j                  |||d|z  z
  d      d   ||f   }t        t        ||g      t        t        j                  |||      t        j                  d|z  t
        j                  z        z  t        j                  |||      t        j                  d|z  t
        j                  z        z  g      d	       y )
NrV   rT   r   r   rN  r   y                           ?rH   )r!   r  r   r   r+  rY   r   r   r  s          r<   test_clpmn_close_to_real_3z0TestLegendreFunctions.test_clpmn_close_to_real_3  s    ==AqCx3A6q!t<MM!Q"S&!4Q71=	!%9(=">"'aA)>rvveAgbeem?T)T)0aA)>rvvd1fRUUl?S)S)U #V"#	%r?   c                     d}d}d}d}dD ]W  }t        t        j                  |||d|z  z   |      d   ||f   t        j                  |||d|z  z
  |      d   ||f   d       Y y )Nr  rT   rN  rF   r   r   rJ   )r   r!   r  )r;   r=  r;  rb   r  r  s         r<   test_clpmn_across_unit_circlez3TestLegendreFunctions.test_clpmn_across_unit_circle  sz    DaAbfHd CA Fq!t L#MM!Q"S&$?B1a4H!M r?   c                    dD ]  }t        d      D ]  }t        d|      D ]  }t        j                  |||      }t        t	        j
                  |d   ddd f         j                                t        j                  |||      }t        t	        j
                  |d   ddd f         j                                   y )N)rT   rI   rD   rT   )rp   r!   r  r   rY   r  r  lpmn)r;   rP  rb   r;  lps        r<   test_infzTestLegendreFunctions.test_inf  s    A1Xq!A q!Q/BBHHRU1QR4[15578 aA.BBHHRU1QR4[15578	 %  r?   c                    g d}d}d}dD ]}  }|D ]v  }dD ]o  }t        j                  |||d|z  z   |      d   t        j                  |||d|z  z
  |      d   z
  |z  }t        t        j                  ||||      d   |d	
       q x  y )N)r'  y            ?y            y      ?      r1  r  r  r  rF   r   r  )r   y        MbP?r   r   rT   re  rM   )r!   r  r   )r;   zvalsr;  rb   r  rP  happrox_derivatives           r<   test_deriv_clpmnz&TestLegendreFunctions.test_deriv_clpmn  s    +D&A)0q!Qs1uWd)KA)N+2==AqQw+Ma+P*QRS)T%#GMM!Q4$@$C$5)-/ '  r?   c                     t        j                  ddd      }t        |t        g dg      t        g dg      fd       y )Nr   rF   r   r   r         r   r   ra  rD   )r!   r  r   r   r;   r  s     r<   	test_lpmnzTestLegendreFunctions.test_lpmn  sV    \\!Ab!!"e .@ -A 'B ', .? -@ 'A&B
 CD	Er?   c                 z    t        j                  dd      }t        |t        g d      t        g d      fd       y )NrF   r   r  r  rD   )r!   r  r   r   )r;   lpnfs     r<   test_lpnzTestLegendreFunctions.test_lpn  sH    {{1R !$ /B )C ', -? '@(A
 BC	Dr?   c                 b   t        j                  ddd      }t        |dd       t        j                  ddd      }t        |dd       t        j                  d	
      5  t        j                  ddd      }d d d        t        |dk7  xs t        j                  |             y # 1 sw Y   /xY w)Nr   rF   r   r  rH   (   r   gI?r  r  rI   )r!   r+  r   rY   r  r   r   r  s     r<   r,  zTestLegendreFunctions.test_lpmv(  s    \\!Ab!Bva(\\!Bt$B1!4 [[X&bD)B 'a'288B<( '&s   B%%B.c                     t        j                  ddd      }t        j                  dd      }t        |d   d   |d   d       t        |d   d   |d   d       y )Nr   rF   r   rD   rT   )r!   lqmnlqnr   )r;   lqmnflqfs      r<   	test_lqmnzTestLegendreFunctions.test_lqmn4  sT    Qq$kk!B!%(1+c!fQ7!%(1+c!fQ7r?   c                     d}d}||z
  ||z   fD ]6  }t        j                  dd|      d   d   }d||z  dz
  z  }t        ||       8 y)znalgorithm for real arguments changes at 1.0001
           test against analytical result for m=2, n=1
        gqh ?h㈵>rF   rT   r   )rI   rI   N)r!   r  r   )r;   x0deltar  lqrQ  s         r<   test_lqmn_gt1z#TestLegendreFunctions.test_lqmn_gt1:  s\     U(BuH%AaA&q)&1B!A#a%yHH- &r?   c                    t        j                  ddd      \  }}t        |j                  d       t        |j                  d       t        j                  ddd      \  }}t        |j                  d       t        |j                  d       y )NrD   r  )r   r   r   )r   rT   )r!   r  r   r  )r;   r_  r`  s      r<   test_lqmn_shapez%TestLegendreFunctions.test_lqmn_shapeE  sf    ||Aq#&1QWWf%QWWf%||Aq#&1QWWf%QWWf%r?   c                 z    t        j                  dd      }t        |t        g d      t        g d      fd       y )NrF   r   )gk+ݓ?g=yX5gW2)g|a2U?g~jt?gڊerD   )r!   r  r   r   )r;   r  s     r<   test_lqnzTestLegendreFunctions.test_lqnN  s7    kk!B!#u-G'H',-E'F'HHI	Kr?   functionrb   )rT   rF   rD   r7     r  	z_complexFT	z_inexactinput_shape)rX  r[  rF   rF   rT   rT   rF   rF   rF   rF   rF   rT   )rF   rF   rF   c                 *   t         j                  j                  d      }|r|j                  dd|      }n|j	                  dd|      }|rd|z  d|z  z   } |||      \  }}	|j
                  |dz   f|z   k(  sJ |	j
                  |dz   f|z   k(  sJ y	)
z Tests for correct output shapes.rO   r>  r   r%  rI   rT   rN  r  NrY   r_   default_rngintegersuniformr  )
r;   r  rb   r  r  r  rngrP  P_zP_d_zs
             r<   test_array_inputs_lxnz+TestLegendreFunctions.test_array_inputs_lxnS  s     ii##D)R5AB4AQ!Aa^
UyyQUI3333{{q1ui+5555r?   zm,n)r{   r  )rT   rD   )r   r7  )rM  r  )r  r  )rX  r[  r  r  r  r  r  c                 "   t         j                  j                  d      }|r|j                  dd|      }n|j	                  dd|      } ||||      \  }}	|j
                  |dz   |dz   f|z   k(  sJ |	j
                  |dz   |dz   f|z   k(  sJ y)+Tests for correct output shapes and dtypes.rO   r>  r   r%  rI   rT   Nr  )
r;   r  r;  rb   r  r  r  rP  r  r  s
             r<   test_array_inputs_lxmnz,TestLegendreFunctions.test_array_inputs_lxmnl  s     ii##D)R5AB4AaA&
UyyQUAEN[8888{{q1ua!en{::::r?   c                 
   t         j                  j                  d      }|j                  dd|      }d|z  d|z  z   } ||||      \  }}|j                  |dz   |dz   f|z   k(  sJ |j                  |dz   |dz   f|z   k(  sJ y)r  rO   rI   rT   r%  rN  r  N)rY   r_   r  r  r  )	r;   r  r;  rb   r  r  rP  r  r  s	            r<   test_array_inputs_clxmnz-TestLegendreFunctions.test_array_inputs_clxmn  s     ii##D)KKAKK0FTAXaA&
UyyQUAEN[8888{{q1ua!en{::::r?   N)rS  rT  rU  r  r  r  r  r  r  r  r  r,  r  r  r  r  r   rV  r  r!   r  r  r  r  r  r  r  rX  r?   r<   r  r    s   

%
%M9/ED
)8	.&K
 [[Z'++w{{)CD[[S"67[[[5$-8[[[5$-8[[	
6 9 9 8 E6 [[Z',,8[[< [[[5$-8[[ 


; 9	 9
; [[Z'--)FG[[< [[ 

;	 H;r?   r  c                       e Zd Zd Zd Zd Zy)TestMathieuc                      y r  rX  r:   s    r<   r/  zTestMathieu.test_mathieu_a  r  r?   c                 0    t        j                  dd       y )NrF   r   )r!   r+   r:   s    r<   test_mathieu_even_coefz"TestMathieu.test_mathieu_even_coef  s    !!!A&r?   c                      y r  rX  r:   s    r<   test_mathieu_odd_coefz!TestMathieu.test_mathieu_odd_coef  s    r?   N)rS  rT  rU  r/  r  r  rX  r?   r<   r  r    s    'r?   r  c                       e Zd Zd Zd Zy)TestFresnelIntegralc                      y r  rX  r:   s    r<   rn  z$TestFresnelIntegral.test_modfresnelp  r  r?   c                      y r  rX  r:   s    r<   rj  z$TestFresnelIntegral.test_modfresnelm  r  r?   N)rS  rT  rU  rn  rj  rX  r?   r<   r  r    s    r?   r  c                       e Zd Zd Zy)TestOblCvSeqc                 b    t        j                  ddd      }t        |t        g d      d       y )Nr   r   rT   )g~T~Oֿgt_J?gm{@g@j'&@r   )r!   
obl_cv_seqr   r   )r;   obls     r<   test_obl_cv_seqzTestOblCvSeq.test_obl_cv_seq  s1      1Q'!#e -9 ': ;<	=r?   N)rS  rT  rU  r  rX  r?   r<   r  r    s    =r?   r  c                   6    e Zd Zd Zd Zd Zd Zd Zd Zd Z	y)	TestParabolicCylinderc                 z    t        j                  dd      }t        |t        ddg      t        ddg      fd       y )NrT   rK  gQ?gx$(~?gx$(~g(\?rD   )r!   pbdn_seqr   r   )r;   pbs     r<   test_pbdn_seqz#TestParabolicCylinder.test_pbdn_seq  sK    a#!"eV.4-6 '7&+W-3-5 '6&7 89	:r?   c                     t        j                  dd       dt        j                  dd      d   z  t        j                  dd      d   z
   y )NrT   r  rK  r   )r!   r  r:   s    r<   r  zTestParabolicCylinder.test_pbdv  s=    Qra#A&&a);A)>>r?   c                     t        j                  dd      }t        j                  dd      }t        |t	        |d         t	        |d         fd       y )NrT   rK  r   rD   )r!   r  pbdv_seqr   r   )r;   pbnpbvs      r<   test_pbdv_seqz#TestParabolicCylinder.test_pbdv_seq  sG    q$q$!#tCF|DQL&A!Dr?   c                    t        j                  ddd      }d|dz  z  t        j                  t         j                        z  t	        j
                  dd|z  z
        z  }t        t	        j                  |d      d   |dd	       t        t	        j                  d
d      d   dd       t        t	        j                  dd      d   dd       y )Nr  rV  r   rF   r   r   r   rB  rC  gGz$@gq=
ףp4@gHQ9r|   rM   g(\#gQ@gkS a>)rY   rS  r   r   r!   rm  r   r  )r;   etarP  s      r<   test_pbdv_pointsz&TestParabolicCylinder.test_pbdv_points  s    kk#r1%AJrwwruu~%gmmBr#vI&>>S"-a0!%eL 	UE2157JQVWUD1!46JQVWr?   c                 l   t        j                  ddd      d d d f   }t        j                  ddd      d d d f   }t        j                  ||      }ddt	        |      z  z   }t        j                  |||z         d   t        j                  |||z
        d   z
  |z  d	z  }t        |d
   |dd       y Nrv  rD   r7  r  rV  r   r  r   r   rT   rU  rC  )rY   rS  r!   r  r^  r   r;   r  r  r^  r=  dps         r<   test_pbdv_gradientz(TestParabolicCylinder.test_pbdv_gradient      KKAq!!D&)kk#r1%d1f-LLa T#a&[ ll3C(+gll3C.H.KKsRUWW!bt$7r?   c                 l   t        j                  ddd      d d d f   }t        j                  ddd      d d d f   }t        j                  ||      }ddt	        |      z  z   }t        j                  |||z         d   t        j                  |||z
        d   z
  |z  d	z  }t        |d
   |dd       y r
  )rY   rS  r!   r  r^  r   r  s         r<   test_pbvv_gradientz(TestParabolicCylinder.test_pbvv_gradient  r  r?   c                     t        j                  dd      \  }}t        |t        j                  g d             t        |t        j                  g d             y )NrF   r   )g:4@g1{н?g7,%n?)gX@g=<'?gʠ?)r!   pbvv_seqr   rY   r   )r;   res1res2s      r<   test_pbvv_seqz#TestParabolicCylinder.test_pbvv_seq  sN    %%a+
dbhh (< = 	> 	bhh (; < 	=r?   N)
rS  rT  rU  r  r  r  r  r  r  r  rX  r?   r<   r  r    s'    :?E
X88=r?   r  c                       e Zd Zd Zy)TestPolygammac           	      d   t        j                  dd      }t        j                  dd      }t        |dd       t        |dd       g d}t        t        j                  d|      t        j                  |             g d	}g d
}g d}t        t        j                  ||      |       t	        j
                  |gdz        }t        t        j                  |t	        j
                  |gdz              |       t        t        j                  t	        j
                  |gdz        |      |       y )NrF   rT   r   gX];rV  gOV,@@)rF   r   g  8Br   r  r  )g2}jg.M?g}2;ο)r!   	polygammar   r  rY   r!  )r;   poly2poly3r  rb   rQ  s         r<   test_polygammazTestPolygamma.test_polygamma  s    !!!A&!!!A&E-3E,r2 G--a3W[[^D *G--a3X>99hZ\*G--aA3q51AB$	&G--biiA.>B$	&r?   N)rS  rT  rU  r  rX  r?   r<   r  r    s    &r?   r  c                       e Zd Zd Zy)TestProCvSeqc                 b    t        j                  ddd      }t        |t        g d      d       y )Nr   r   rT   )g"~j?g6?Ң@g)u8F"@g2g)@r   )r!   
pro_cv_seqr   r   )r;   prols     r<   test_pro_cv_seqzTestProCvSeq.test_pro_cv_seq
  s1    !!!Aa(!$u .: (; <=	>r?   N)rS  rT  rU  r"  rX  r?   r<   r  r  	  s    >r?   r  c                       e Zd Zd Zy)TestPsic                 H    t        j                  d      }t        |dd       y )NrT   goxr7  )r!   r  r   )r;   pss     r<   r  zTestPsi.test_psi  s    [[^B3A6r?   N)rS  rT  rU  r  rX  r?   r<   r$  r$    s    7r?   r$  c                       e Zd Zd Zd Zy)
TestRadianc                 Z    t        j                  ddd      }t        |t        dz  d       y )Nr  r   r   r   r!   r  r   r   )r;   rads     r<   r  zTestRadian.test_radian  s$    nnR!$C3q)r?   c                 `    t        j                  ddd      }t        |t        dz  dz   d       y )Nr  rT   rd  rF   gC?r   r*  )r;   rad1s     r<   test_radianmorezTestRadian.test_radianmore  s*    ~~b2&DA&;!;A>r?   N)rS  rT  rU  r  r.  rX  r?   r<   r(  r(    s    *?r?   r(  c                       e Zd Zd Zd Zy)TestRiccatic                 (   d\  }}t        j                  ||f      }t        |      D ]G  }t        j                  ||      }t        j                  ||d      }||z  |d|f<   ||z  |z   |d|f<   I t        |t        j                  |      d       y N)rF   r  T)
derivativer   rT   r7  )rY   emptyrp   r!   spherical_jnr   
riccati_jn)r;   r'  r  Srb   r  jps          r<   test_riccati_jnzTestRiccati.test_riccati_jn#      1HHaVqA$$Q*A%%at<BqSAacFrTAXAacF	 
 	"!W%7%71%=qAr?   c                 (   d\  }}t        j                  ||f      }t        |      D ]G  }t        j                  ||      }t        j                  ||d      }||z  |d|f<   ||z  |z   |d|f<   I t        |t        j                  |      d       y r2  )rY   r4  rp   r!   spherical_ynr   
riccati_yn)r;   r'  r  Crb   r   yps          r<   test_riccati_ynzTestRiccati.test_riccati_yn-  r:  r?   N)rS  rT  rU  r9  r@  rX  r?   r<   r0  r0  "  s    BBr?   r0  c                       e Zd Zd Zy)	TestRoundc                     t        t        t        t        j                  d      t        j                  d      t        j                  d      t        j                  d      f            }d}t        ||       y )Ng333333$@g$@r8  g333333%@)rV  rV  rV  rM  )r%  mapro   r!   r  r   )r;   rndrndrls      r<   r  zTestRound.test_round9  sZ    3sW]]40$]]40$]]40$]]402 3 4 3u%r?   N)rS  rT  rU  r  rX  r?   r<   rB  rB  8  s    &r?   rB  c            	         t         j                  } t        j                  }t        j                  }t        j
                  }t        j                  }t        j                  }t         | dddd      d ||      z         t         | ddd|dz        d |dd	|z  z        z   ||dz        d	z  z         t         | ddd|dz        d |dd	|z  z        z         t         | dd||dz        d |d
d	|z  z        z   |dd	|z  dz  z         z   ||d	z        d	z  z         t         | dd|dz  |dz        d |dd	|z  z        z   |dd	|z  dz  dz  z         z   ||dz        d	z  z  d ||dz        d	z  z  dz
  z         t         | dd|dz  |dz        d |dd	|z  z        z   |dd|z  dz  dz  z         z   ||dz        dz  z         y )Nr   r   r!  rF   r   rD   r9  r	  r   rv   rN  r>  r   r   r   g      @rT   r   rA  g      ?g     A@)	r!   sph_harmrY   r   r   r   r	   r
   r   )shr   r   r   r	   r
   s         r<   test_sph_harmrJ  H  s    
		B	B
&&C77D
&&C
&&Cb1QqktBx<bAbA.S"R%[!!1I? bAbA.S"R%[!!#b1R1oRBZ  qBrz?r"u:r>*+ b1RU2b514BrE
##qBr"}r"u:r> s2b5z2~a!"
 b1RU2b51Dbe%%qBr"}!"R%j"n-.r?   c                  j   t        j                  t         j                        } t        t	        j
                  dddd      j                  |        t        t	        j
                  dgddd      j                  |        t        t	        j
                  ddgdd      j                  |        t        t	        j
                  dddgd      j                  |        t        t	        j
                  ddddg      j                  |        t        t	        j
                  dgdgdgdg      j                  |        y r7   )rY   rV  r  r   r!   rH  )dts    r<   "test_sph_harm_ufunc_loop_selectionrM  e  s    	"--	 B!!!Q1-33R8!!1#q!Q/55r:!!!aS!Q/55r:!!!QQ/55r:!!!QA3/55r:!!1#sQC!5;;R@r?   c                   &    e Zd ZddZd Zd Zd Zy)
TestStruvec                 B   t        d|      }d|z  d|z  d|z  |z   dz   z  z  t        j                  |dz         z  t        j                  ||z   dz         z  }t        |      j	                         t        t              j                  z  |z  }|j                         |fS )z?Compute Struve function & error estimate from its power series.r   rI   r   rF   rT   ra  )	r   r!   rm  r^  r'  r   r   r=  r>  r?  s          r<   _serieszTestStruve._seriesq  s    1aL!Gr!tqs1uQw''ae(<<W]]1Q3s7=SS!fjjlU6]...2uuw|r?   c                     dD ]E  }dD ]>  }| j                  ||      \  }}t        t        j                  ||      |d|      ||ff @ G y)z-Check Struve function versus its power series)
ir  (\r  rI   r   rT   r  r  r  )rT   rV  r  rN  rP   r   rC  N)rQ  r   r!   r6  rL  s        r<   test_vs_serieszTestStruve.test_vs_seriesx  sP    BA(!\\!Q/
sq! 4e!#NQRTUPVV ) Cr?   c                 \   t        t        j                  dd      dd       t        t        j                  dd      dd       t        t        j                  d	d
      dd       t        t        j                  dd      dd       t        t        j                  dd      t        j                  dd              t        t        j                  dd      t        j                  dd              t        t        j                  dd      t        j                  dd             t        t        j                  dd      t        j                  dd             t	        t        t        j                  dd                   t	        t        t        j                  dd                   y )NrS  rN  g;cv=?r  rM   gQ g< j?rb  r  rg  g?r|   g       igzz?r  i)   r8  r  rM  gffffffrI   g333333$)r   r!   r6  r   r   r   r:   s    r<   test_some_valueszTestStruve.test_some_values  s   ub1?Nub1?NtS1?OtS1?OW^^C-sB0G/GHW^^C-sB0G/GHW^^C-sB0G/GHW^^C-sB0G/GHgnnT2./0gnnUB/01r?   c                 <   t        t        j                  dd      t        j                  dd             t        t        j                  dd      t        j                  dd             t        t        j                  dd      t        j                  dd             y)zRegression test for #679r  g3@g*   4@r  g333333N)r   r!   r6  r:   s    r<   test_regression_679zTestStruve.test_regression_679  sk    tY7tY7	9tY7tY7	9tY7tY7	9r?   N)r>  )rS  rT  rU  rQ  rT  rW  rY  rX  r?   r<   rO  rO  p  s    W29r?   rO  c                  D    t        t        j                  dd      d       y )Nr"  r   gdX	
?)r   r!   r   rX  r?   r<   test_chi2_smalldfr[    s    c!,.?@r?   c                  `    t        t        j                  dt        j                        d       y )Nr/  r   )r   r!   r   rY   r   rX  r?   r<   test_ch2_infr]    s    s266*C0r?   c                  D    t        t        j                  dd      d       y )Nr"  r   yj_?)r   r!   r   rX  r?   r<   test_chi2c_smalldfr`    s    s1-/BCr?   c                  D    t        t        j                  dd      d       y )Nr"  r_  r   )r   r!   r   rX  r?   r<   test_chi2_inv_smalldfrb    s    s+>?Cr?   c            	         d} t        dt        j                  dt        j                  d            z  d|        d}d}d}t        t        j                  dgd	ggg d
      d||g|d	|gg|        d}t        t        j                  dd      ||        t        t        j                  dd      ||        t        t        j                  dd      | |        t        t        j                  dd      d|        t        t        j                  dd      d|        t        t        j                  dd      d|        t        t        j                  dd      d|        t        t        j                  dd      d|        t        t        j                  dd      d|        t        t        j                  dd      d|        t        j
                  d      }t        t        j                  |j                  |j                        d |        t        t        j                  d!|j                  z  |j                        d"|        t        t        j                  |j                  d	|j                  z        d#|        t        t        j                  d$d$      d$       t        t        j                  d%d$      d$       t        t        j                  dd&      t        j                         t        t        j                  d$t        j                        t        j                         t        t        j                  t        j                  d$      t        j                         t        t        j                  d$t        j                         t        j                         t        t        j                  t        j                   d$      t        j                         t        t        j                  t        j                  t        j                         t        j                         t        t        j                  t        j                   t        j                        t        j                         t        t        j                  dt        j                        t        j                         t        t        j                  t        j                  d      t        j                         t        t        j                  dt        j                        t        j                         t        t        j                  t        j                  d      t        j                         t        t        j                  dt        j                         t        j                          t        t        j                  t        j                   d      t        j                          y )'NrL   rT   rF   gDSYC?rM   gQ_?g?@g>;,
i}@r   )rT   r   r   g=O?rI   r!  r  rJ   gXs*@r  g   V4oAgO1eAgꌠ9Y>)FgEg^ 9^;gd-?gP.5_gsTNNeg6dgu?j/ g]XC}KdgѧRg"!x{{ r   g][#!Rr  gٍS1gN_ r   c   rV  )r   r!   agmrY   r   r   r  r'  r   r   r   )rN   agm13agm15agm35agm12fis         r<   test_agm_simplerk    s   D Agkk!RWWQZ002F
 EEEGKK!qc
I6&Q&(.24 EGKK1%u48GKK1%u48GKKB'%d;GKKA&(:FGKKK02DGKKa(*?dKGKKq)+?dKGKKu-/EGKKv.0GGKK/1H	#BGKK02IGKKRVVRVV46LGKK27735L Q"A&R#Q'R$bff-Q'0RVVQ'0Q("&&1bffWa("&&1RVVbffW-rvv6bffWbff-rvv6Q'0RVVR("&&1Q'0RVVQ'0R"&&)BFF73bffWb)BFF73r?   c            	      "   t               5 } | j                  t        d       t        t	        j
                  dd      t	        j
                  dd             t        t	        j                  ddd      t	        j                  ddd             t        t	        j                  ddd      t	        j                  ddd             t        t	        j                  ddd      t	        j                  ddd             t        t	        j                  dd      t	        j                  dd             t        t	        j                  dd      t	        j                  dd             t        t	        j                  dd      t	        j                  dd             t        t	        j                  dd      t	        j                  dd             t        t	        j                  dd      t	        j                  dd             d d d        y # 1 sw Y   y xY w)Nr  rT   rL  g?rF   gffffff@)r    r%  r&  r   r!   expnrv  rs  ry  r  r  rD  r  r#  )r(  s    r<   test_legacyrn    sU   		

>#RSW\\!S)7<<S+ABW^^Aq#.sC0MNW]]1a-w}}S#s/KLW^^Aq#.sC0MNW]]1c*GMM#s,CDWZZ3'C)=>WZZ3'C)=>W__Q,gooc3.GHW%%a-w/?/?S/IJ 
		s   G1HHc                  X    t        t        j                  t        j                  dd       y )NrT   y        .B}T)r"  r!   r  r  rX  r?   r<   test_error_raisingrp    s    '..

AuEr?   c                     d } t        j                  ddt         j                  fdt         j                  fdgt              }t         j
                  |ddgf   } t        j                  |       |d d df   |d d df         }t        t        j                  ||d	d	
        t        j                  |       |d d df   |d d df         }t        t        j                  ||d	d	
       y )Nc                     t        j                  d      5  | dk(  r t        j                  |      s| cd d d        S | t        j                  |      z  cd d d        S # 1 sw Y   y xY wNr  )invalidr   )rY   r  r   r   r  s     r<   xfuncztest_xlogy.<locals>.xfunc  sG    [[*Avbhhqk +* {	 +**   AAA'r   r   r   r   r   rU  )r   rN  )rT   rN  rT   rL   rC  )
rY   r   r   r   rq   r   rw   r2   r!   xlogy)ru  z1z2w1w2s        r<   
test_xlogyr~    s    # 
UQK!RVVjA	OB	rGW%%	&B	e	R!Wb1g	.BgmmR%eD	e	R!Wb1g	.BgmmR%eDr?   c                     d } t        j                  ddt         j                  fdt         j                  fddgt              } t        j
                  |       |d d df   |d d df         }t        t        j                  ||dd	       y )
Nc                     t        j                  d      5  | dk(  r t        j                  |      s| cd d d        S | t        j                  |      z  cd d d        S # 1 sw Y   y xY wrs  )rY   r  r   r"  r  s     r<   ru  ztest_xlog1py.<locals>.xfunc	  sG    [[*Avbhhqk +* 288A;	 +**rv  rw  r   rx  )rT   gKH9rU  rT   rL   rC  )	rY   r   r   r   rq   rw   r2   r!   xlog1py)ru  rz  r|  s      r<   test_xlog1pyr    su    ' 
UQK!RVVj!(-
/B	e	R!Wb1g	.Bgoor2EFr?   c                  l   d } dddt         j                  f}ddg}g }t        j                  ||      D ]  \  }}|j	                  ||z          t        j
                  |t              } t        j                  | t         j                  g      |      }t        t        j                  ||d	d	
       y )Nc                 \    | dk  rt         j                   S t        j                  | |        S r7   )rY   r   r!   ry  )r  s    r<   ru  ztest_entr.<locals>.xfunc  s(    q5FF7NMM!Q'''r?   r   r   r   rI   rT   rU  otypesrL   rC  )rY   r   r  r  r  r   rq   rw   r  r2   r!   entr)ru  r   signsr  sgnrf  rP  rQ  s           r<   	test_entrr    s    (
 c266"FGE
C##E62Q

37 3
E"A0UBJJ<03AgllAqu5Ar?   c                  x   d } d}ddg}g }t        j                  ||||      D ]   \  }}}}|j                  ||z  ||z  f       " t        j                  |t
              } t        j                  | t        j                  g      |d d df   |d d df         }	t        t        j                  |	|dd	       y )
Nc                 
   | dk  s|dk  s
|dk(  r| dk7  rt         j                  S t        j                  |       st        j                  |      rt         j                  S | dk(  r|S t        j                  | | |z        | z
  |z   S r7   )rY   r   isposinfr!   ry  r  s     r<   ru  ztest_kl_div.<locals>.xfunc'  sm    q5AEa1fa66M[[^r{{1~66M!VH==AaC(1,q00r?   r   r   r   rI   rT   rU  r  r   rL   rC  )r  r  r  rY   r   rq   rw   r  r2   r!   kl_div
ru  r   r  r  sgnavasgnbvbrP  rQ  s
             r<   test_kl_divr  &  s    
1 FGE
C'//vufMb$

DGT"W%& N
E"A0UBJJ<01Q31Q3@AgnnaUCr?   c                  x   d } d}ddg}g }t        j                  ||||      D ]   \  }}}}|j                  ||z  ||z  f       " t        j                  |t
              } t        j                  | t        j                  g      |d d df   |d d df         }	t        t        j                  |	|dd	       y )
Nc                 ~    | dkD  r|dkD  rt        j                  | | |z        S | dk(  r|dk\  ryt        j                  S r7   )r!   ry  rY   r   r  s     r<   ru  ztest_rel_entr.<locals>.xfunc=  s=    q5QU==AaC((!VQ66Mr?   r  rI   rT   rU  r  r   rL   rC  )r  r  r  rY   r   rq   rw   r  r2   r!   rel_entrr  s
             r<   test_rel_entrr  <  s     FGE
C'//vufMb$

DGT"W%& N
E"A0UBJJ<01Q31Q3@Ag&&15uEr?   c                     t        t        j                  dd      t        j                         t        t        j                  dd      dt        j                  d      z         t        t        j                  dd      d       d } t        j                  j                  dd      } t        j                  | t        j                  g	      |d d d
f   |d d df         }t        t        j                  ||dd       y )NrI   ra  rF   r   r  r   c                     | dk  rt         j                  S t        j                  |      | k  rdt        j                  |      z  S | t        j                  |      d| z  z
  z  S )Nr   r   )rY   r   r^  squarer  r@  s     r<   ru  ztest_huber.<locals>.xfuncS  sQ    1966MVVAY1%%BFF1Ie344r?   rV  r  r   rT   rL   rC  )r   r!   huberrY   r   r   r  r_   randnrw   r  r2   ru  rP  rQ  s      r<   
test_huberr  N  s    r3'0GMM!S)33+?@GMM!S)+>?5 			AA0UBJJ<01Q31Q3@AgmmQEBr?   c                  P   d } t        j                  t         j                  j                  dd      j	                         ddgddggz         } t        j
                  | t         j                  g      |d d df   |d d df         }t        t        j                  ||dd	       y )
Nc                     | dk  rt         j                  S | r|sy| dz  t        j                  d|| z  dz  z         dz
  z  S )Nr   rF   rT   )rY   r   r   r  s     r<   ru  z test_pseudo_huber.<locals>.xfunca  sD    1966M!8rwwqAeGa<'781<==r?   rV  rF   r   r   r  rT   rL   rC  )
rY   r   r_   r  tolistrw   r  r2   r!   pseudo_huberr  s      r<   test_pseudo_huberr  `  s    > 	Q'..0QHsAh3GGHA0UBJJ<01Q31Q3@Ag**Aqu5Ir?   c                  X    d} d}t        j                  | |      }d}t        ||d       y )Nr   gC]r2<gs.-De8rL   rM   )r!   r  r   )r  r@  r   rQ  s       r<   test_pseudo_huber_small_rr  n  s1    EAUA&A &HAxe,r?   c                      t        j                  t        d      5  t        dd       d d d        t        j                  t        d      5  t	        dd       d d d        y # 1 sw Y   :xY w# 1 sw Y   y xY w)NzToo many predicted coefficientsr   rQ   )r   warnsr&  r*   r+   rX  r?   r<   test_runtime_warningr  {  sh    	n>
@t$
@ 
n>
@$%
@ 
@
@ 
@
@ 
@s   A"A."A+.A7c                      e Zd Zdgddgg dg dg dg dg dg dg d	g d
g dgZej
                  j                  ddei fdeddifg      d        Z	ej
                  j                  ddei fdeddifg      d        Z
ej
                  j                  ddei fdeddifg      d        Zej
                  j                  ddei fdeddifg      d        Zej
                  j                  ddei fdeddifg      d        Zd Zd Zej
                  j                  dddddej"                  g      ej
                  j                  dg d      ej
                  j                  d ddg      d!                      Zej
                  j                  d ddg      d"        Zej
                  j                  ddei fdeddifg      d#        Zej
                  j                  ddei fdeddifg      d$        Zd% Zy&)'TestStirling2rT   r   )r   rT   rT   )r   rT   r   rT   )r   rT   rH   rJ   rT   )r   rT   rv   r  rV  rT   )r   rT      r  A   rv   rT   )r   rT   r{  rn  i^     rN  rT   )	r   rT      i  i    i
     rT   )
r   rT      i  iZ  i'  iV
  i  $   rT   )r   rT   rz   r$  i9  i  i+Y    i  r   rT   zis_exact, comp, kwargsTFrN   r|   c           	          t        dt        | j                              D ]?  }t        t        |dz               }| j                  |   } ||t	        |g||      fi | A y )NrT   r  )rp   r  tabler%  r,   )r;   is_exactcompkwargsrb   k_valuesrows          r<   test_table_caseszTestStirling2.test_table_cases  sV    
 q#djj/*AE!A#J'H**Q-CiXX>I&I +r?   c                      |t        dd|      | j                  d   d   fi |  |t        dd|      | j                  d   d   fi |  |t        dd|      dfi |  |t        dgdg|      dgfi | y )Nr   r  rD   rF   r   r   r  )r,   r  r;   r  r  r  s       r<   test_valid_single_integerz'TestStirling2.test_valid_single_integer  s    
 	Yq!8,djjmA.>I&IYq!8,djjmA.>I&I 	Yq!8,b;F;YsQCx02$A&Ar?   c                      |t        dd|      dfi |  |t        dd|      dfi |  |t        dd|      dfi | y )NrI   r  r   rF   r,   r  s       r<   test_negative_integerz#TestStirling2.test_negative_integer  sL     	Yr2X.<V<Yr1H-q;F;Yq"H-q;F;r?   c           	      *   | j                   d   d   | j                   d   d   g} |t        t        ddg      t        ddg      |      |        |t        ddgt        ddg      |      |        |t        t        ddg      ddg|      |       y )NrV  r   rD   r  )r  r,   r   )r;   r  r  r  anss        r<   test_array_inputszTestStirling2.test_array_inputs  s    
 zz"~a $**R."34YwBx(&1v%-/ 	 	YBx&1v%-/ 	 	YwBx( !1v%-/ 	r?   rL   c                 H    g d}g d}g d} |t        |||      |fi | y )N)r   rT   r   r  r  r  r  )rI   r   r   r   r7  rV  rV  )r!  r   rF   r   r   rH   r   r  r  r;   r  r  r  r  rb   rc   s          r<   test_mixed_valueszTestStirling2.test_mixed_values  s+     .$"Yq!8,c<V<r?   c                     dt        j                  d      }}t        t        ||d      dz  |D cg c]'  }t	        j
                  ||dz  z
  dz
  ||z
        dz  ) c}       yc c}w )z{Test parity follows well known identity.

        en.wikipedia.org/wiki/Stirling_numbers_of_the_second_kind#Parity
        r>  e   Tr  rF   rT   N)rY   r   r   r,   r\  r$  )r;   rb   Krc   s       r<   test_correct_parityz!TestStirling2.test_correct_parity  sd    
 BIIcN1a$'!+=>?QTYYqAF|a'Q/!3Q?	
?s   ,A%
c                     t        ddg      }ddg}ddg}t        t        ||d      |      sJ t        d	d
g      }ddg}ddg}t        t        ||d      |      sJ y )Nl   V^;. l   k4-Tr  rP   rE   rD   Tr  l	   D,"SBXp!N l   wY)H_1e_*   r     )r   r   r,   )r;   r  rb   rc   s       r<   test_big_numberszTestStirling2.test_big_numbers  s}    ~'89:HG9Q6<<<<:< =HH9Q6<<<r?   r'  r5  r   y      @      ?12r  )r   r   2Nr  c                 |    t        j                  t              5  t        |||       d d d        y # 1 sw Y   y xY w)Nr  )r   r   	TypeErrorr,   )r;   r'  r  r  s       r<   test_unsupported_input_typesz*TestStirling2.test_unsupported_input_types  s(    
 ]]9%a(+ &%%s   2;c                    t        | j                  d   dd        }t        g dt              }t        g dt              }t        j                  t
              5  t        t        |||      |       d d d        y # 1 sw Y   y xY w)NrD   rT   rD   rD   rD   rD   rU  rT   rF   r   rD   r  )r   r  rW  r   r   r  r   r,   )r;   r  r  rb   rc   s        r<   !test_numpy_array_int_object_dtypez/TestStirling2.test_numpy_array_int_object_dtype  s`     djjmAB'(L/L/]]9%	!Qh7= &%%s   A==Bc                     t        | j                  d   dd        }t        g dt              }t        g dt              } |t        ||d      |fi | y )NrD   rT   r  rU  r  Fr  )r   r  r.   r,   r  s          r<   #test_numpy_array_unsigned_int_dtypez1TestStirling2.test_numpy_array_unsigned_int_dtype  sM     djjmAB'(L1L1Yq!5)39&9r?   c                 P   t        g dg dg      }t        g dg dg      }t        g d      } |t        |||      |fi | t        dgdgdgdgdgg      }t        g d      }t        t        d	      D cg c]  }g d
 c}      } |t        ||d      |fi | y c c}w )N)rT   rv   r  rV  )rT   rH   rJ   rT   )r   r   r   r   r  r  r  rD   )r   rT   rF   r   rD   r   r   )r   rT   rH   rJ   rT   r   F)r   r,   rp   )r;   r  r  r  r  rb   rc   rr  s           r<   "test_broadcasting_arrays_correctlyz0TestStirling2.test_broadcasting_arrays_correctly  s     56\<01L!Yq!8,c<V<aS1#sQC!-.&'58<8a)8<=Yq!5)39&9 =s   :B#c                    t        t        ddd            }|D ]k  }t        t        d|dz               }t        |g|d      }|t        |g|d      z
  }t        j                  t        j
                  ||z              dk  rkJ  y )	N3   r  r   rT   Tr  Fr  )r%  rp   r,   rY   r'  r^  )r;   r  rb   	k_entriesdenomrr   s         r<   test_temme_rel_max_errorz&TestStirling2.test_temme_rel_max_error  s~     r3"#AU1ac]+Iqc9D9E)QC%@@C66"&&u-.555	 r?   N)rS  rT  rU  r  r   rV  r  r   r   r  r  r  r  r  r  r  rY   r   r  r  r  r  r  rX  r?   r<   r  r    s   	
	
A!(07@E [[5	|R 	&%18 J	J [[5	|R 	&%18 B	B [[5	|R 	&%18 <	< [[5	|R 	&%18 	 [[5	|R 	&%18 =	=	
= [[S3D$"?@[[S"56[[Z$7, 8 7 A,
 [[Z$7> 8> [[5	|R 	&%18 :	: [[5	|R 	&%18 :	:6r?   r  )~r  r  r  rl  rk  numpyrY   r   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r"  numpy.testingr   r   r   r   r   r   r   r   r    scipyr!   scipy.special._ufuncs_ufuncsr8   scipy.specialr"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   scipy._lib._utilr-   r.   scipy.special._basicr/   r0   scipy.special._testutilsr1   r2   r3   r\  r5   rZ  r  r  r  r  r  r  r  rE  ry  r  r  r  r  r  r!  r7  r  r  r  r  rG  rk  ry  r  r  r  r  r  r  r  r  r  r$  r(  r0  rB  rJ  rM  rO  r[  r]  r`  rb  rk  rn  rp  r~  r  r  r  r  r  r  r  r  r  rX  r?   r<   <module>r     s  (     
        *  
  & & 2 2 E E H H .! ! i9 i9XyG yGx. . 
V> V>r9 90 0<g' g'TB/ B/JB+ B+J: ::JT JTZG0 G0T)= )=X_B _BD- -2/ /@N- N-bA. A.H/, /,d /  /F\6 \6~U	$ U	$p
 
D3 36. .	1 	1F; F;R  = =4= 4=n& &2> >7 7? ?B B,& & .:A#9 #9LA1DD:4zK F FE"GB D,F$C$J
-&[6 [6r?   