+
    0i             	          ^ RI t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIHtH	t	H
t
HtHtHtHtHtHtHtHtHtHtHtHtHtHtHtHtHt ^ RIt^ RIHt ^ RIH t H!t!H"t"H#t#H$t$ ^ RI%H&t& ^ RI'H&u H(t) ^ RI*H+t+H,t,H-t- ^ RI*H.t.H/t/H0t0H1t1H2t2 ^ RI*H3t3 ^ R	I*H4t4H5t5H6t6 ^ R
I7H8t8H9t9 ^ RI:H;t;H<t<H=t= ^ RI>H?t?H@t@HAtA ^ RIBHCtCHDtDHEtE ^ RIFHGtG ^ RIHtH]P                  R8X  g   ]P                  ! 4       ^ ,          R8X  d   ]P                  M]P                  tL ! R R4      tM ! R R4      tN ! R R4      tO ! R R4      tP ! R R4      tQ ! R R4      tR ! R R4      tS ! R R 4      tT ! R! R"4      tU ! R# R$4      tV ! R% R&4      tW ! R' R(4      tX ! R) R*4      tY ! R+ R,4      tZ ! R- R.4      t[ ! R/ R04      t\ ! R1 R24      t]R}R3 lt^ ! R4 R54      t_ ! R6 R74      t` ! R8 R94      ta ! R: R;4      tb ! R< R=4      tc ! R> R?4      td ! R@ RA4      te ! RB RC4      tf ! RD RE4      tgRF thRG ti ! RH RI4      tj ! RJ RK4      tk ! RL RM4      tl ! RN RO4      tm ! RP RQ4      tn ! RR RS4      to ! RT RU4      tp ! RV RW4      tq ! RX RY4      tr ! RZ R[4      ts ! R\ R]4      tt ! R^ R_4      tuR` tvRa tw]P                  P                  Rb]P,                  ) R~RRc]P,                  ]P                  .4      Rd 4       t{]P                  P                  Re]P,                  ) R~RRc]P,                  ]P                  .4      Rf 4       t|]P                  P                  Rb]P,                  ) R~RRc]P,                  ]P                  .4      Rg 4       t}]P                  P                  Re]P,                  ) R~RRc]P,                  ]P                  .4      Rh 4       t~Ri tRj tRk tRl tRm t]EP                  Rn 4       t]CRo 4       tRp tRq tRr tRs tRt tRu tRv tRw tRx tRy tRz t ! R{ R|4      tR# )    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_array_equalassert_assert_allcloseassert_array_almost_equal_nulp)special)ellipeellipkellipkm1)elliprcelliprdelliprfelliprgelliprj)softplus)mathieu_odd_coefmathieu_even_coef	stirling2)np_longnp_ulong)xp_assert_closexp_assert_equalSCIPY_ARRAY_API)_FACTORIALK_LIMITS_64BITS_FACTORIALK_LIMITS_32BITS_is_subdtype)with_special_errorsassert_func_equalFuncData)quadwin3232bitc                     a  ] tR t^;t o R tR tR tR tR tR t	R t
R tR	 tR
 tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR t R t!R t"R  t#R! t$R" t%R# t&R$ t'R% t(R& t)R' t*]+PX                  P[                  R(R)7      R* 4       t.R+ t/R, t0R- t1R. t2R/ t3R0 t4R1 t5R2 t6R3 t7R4 t8R5 t9R6 t:R7 t;R8 t<R9 t=R: t>R; t?R< t@R= tAR> tBR? tCR@ tDRA tERB tFRC tGRD tHRE tIRF tJRG tKRH tLRI tMRJ tNRK tORL tPRM tQRN tRRO tSRP tTRQ tURR tVRS tWRT tXRU tYRV tZRW t[RX t\RY t]RZ t^R[ t_R\ t`R] taR^ tbR_ tcR` tdRa teRb tfRc tgRd thRe tiRf tjRg tkRh tlRi tm]+PX                  P                  Rj. RO4      Rk 4       toRl tp]+PX                  P                  Rj. RO4      Rm 4       tqRn trRo tsRp ttRq tuRr tvRs twRt txRu tyRv tzRw t{Rx t|Ry t}Rz t~R{ tR| tR} tR~ tR t]+PX                  P[                  RR)7      R 4       t]+PX                  P[                  RR)7      R 4       t]+PX                  P[                  RR)7      R 4       tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tRtV tR# )
TestCephesc                2    \         P                  ! ^ 4       R# r   N)cephesairyselfs   &\/var/www/html/photoedit/myenv/lib/python3.14/site-packages/scipy/special/tests/test_basic.py	test_airyTestCephes.test_airy<       A    c                2    \         P                  ! ^ 4       R# r;   )r<   airyer>   s   &r@   
test_airyeTestCephes.test_airye?   s    QrD   c                   \         P                  ! . R	O4      p\         P                  ! . R
O4      p\         P                  ! \         P                  ! VR,          VR,          4      4      P                  ^R4      P                  p\         P                  ! . RO. RO. RO. RO.4      p\        \        P                  VP                  4       VRR7       \         P                  P                  R4      p\         P                  \         P                  ! R^4      RVP                  ^4      ,          R,
          3,          p\         P                  ! ^ ^f4      p\         P                  ! \         P                  ! VR,          VR,          4      4      P                  ^R4      P                  p\        \        P                  \        P                  ! VR,          VR,          R,          4      VRRR7       R# )L7A`?NvIh%<=rtol      绽|=atolrM   )rJ      g@   )   皙?   gffffff
@NNNNNrZ   )g޸g	TշJ?g	7?geLF)   g*+ @r   gM{@)gףp=
%@gϔ>@g<wg$@)   g,y3@iK  g5@irZ   r   rZ           ?)npr   broadcast_arraysreshapeTr3   r<   binomravelrandomRandomStater   r   rand)r?   nknkrknownrngs   &     r@   
test_binomTestCephes.test_binomB   sT   HH()HH%&XXb))!F)QvY? 2qq 	 ##QF@B C 	&,,G ii##D)EE"))B#T#((2,%6%<<=IIaXXb))!F)QvY? 2qq 	 	&,, ,,r#w390EF$5	2rD   c                   \         P                  P                  R 4       \         P                  \         P                  ! ^R^4      ,          p\         P
                  ! ^ ^f4      p\         P                  ! \         P                  ! VR,          VR,          4      4      P                  ^R4      P                  p\        \        P                  \        P                  ! VR,          VR	,          R
,          4      VRRR7       R# )rN   ,  NrQ   rR   rY   r[   r\   r_   r`   rb   )rc   ri   seedr   logspacer   r   rd   re   rf   r3   r<   rg   )r?   rl   rm   rn   s   &   r@   test_binom_2TestCephes.test_binom_2Y   s    
		tEE"++ab)*IIaXXb))!F)QvY? 2qq 	 	&,, ,,r#w390EF$5	2rD   c                
   \         P                  R  4       p\         P                  P                  R4       \         P                  ! ^^4      p\         P                  ! ^ ^4      p\         P
                  ! \         P                  ! VR,          VR,          4      4      P                  ^R4      P                  pWDR,          VR,          8  ,          p\        \        P                  V! VR,          VR,          4      V^ ^ R7       R# )	c                     \        V 4      p \        V4      p^p^p\        ^V^,           4       F!  pW$V ,           V,
          ,          pW4,          pK#  	  \        W#,          4      # ra   )intrangefloat)rl   rm   numdenis   &&   r@   	binom_int.TestCephes.test_binom_exact.<locals>.binom_intg   sW    AAAACC1ac]1uqy  # >!rD   rN   NrR   rY   r[   r\   r_   r`   )rc   	vectorizeri   ru   r   r   rd   re   rf   r3   r<   rg   )r?   r   rl   rm   rn   s   &    r@   test_binom_exactTestCephes.test_binom_exactf   s    		" 
	" 			tIIaIIaXXb))!F)QvY? 2qq 	32c7"#&,,#BsGRW5 q	*rD   c                    . ROp\         P                  ! V4      p\        \        P                  VR^RR7      P                  4        R# )rO   -q=rL   N))rO   rP   gwP~)i  i  gii9~)  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   ra   )rc   r   r4   r<   rg   check)r?   datasets   & r@   test_binom_nooverflow_8346%TestCephes.test_binom_nooverflow_8346}   s6    
" **W%w>DDFrD   c                J    \        \        P                  ! ^^R4      R4       R# )ra         ?      ?N)r   r<   bdtrr>   s   &r@   	test_bdtrTestCephes.test_bdtr   s    V[[1S)#.rD   c                J    \        \        P                  ! ^^R4      R4       R# ra   r   N)r   r<   bdtrir>   s   &r@   
test_bdtriTestCephes.test_bdtri       V\\!Ac*3/rD   c                J    \        \        P                  ! ^^R4      R4       R# r   )r   r<   bdtrcr>   s   &r@   
test_bdtrcTestCephes.test_bdtrc   r   rD   c                J    \        \        P                  ! ^^ ^4      R4       R# ra         @N)r   r<   bdtrinr>   s   &r@   test_bdtrinTestCephes.test_bdtrin       V]]1Qq)#.rD   c                6    \         P                  ! ^^R4       R# r   )r<   bdtrikr>   s   &r@   test_bdtrikTestCephes.test_bdtrik   s    a#rD   c                F    \        \        P                  ! ^ 4      R4       R# r           N)r   r<   beir>   s   &r@   test_beiTestCephes.test_bei       VZZ]3'rD   c                F    \        \        P                  ! ^ 4      R4       R# r   )r   r<   beipr>   s   &r@   	test_beipTestCephes.test_beip       V[[^C(rD   c                F    \        \        P                  ! ^ 4      R4       R# r   r   N)r   r<   berr>   s   &r@   test_berTestCephes.test_ber   r   rD   c                F    \        \        P                  ! ^ 4      R4       R# r   )r   r<   berpr>   s   &r@   	test_berpTestCephes.test_berp   r   rD   c                J    \        \        P                  ! ^ ^ ^ 4      R4       R# r   )r   r<   
besselpolyr>   s   &r@   test_besselpolyTestCephes.test_besselpoly   s    V&&q1-c2rD   c                L    \        \        P                  ! ^4      RR^ R7       R# )ra   r   ư>rR   N)r   r<   cbrtr>   s   &r@   	test_cbrtTestCephes.test_cbrt   s    A$Q?rD   c                H    \        \        P                  ! ^^ 4      R4       R# ra   r   N)r   r<   chdtrr>   s   &r@   
test_chdtrTestCephes.test_chdtr   s    V\\!A&s+rD   c                H    \        \        P                  ! ^^ 4      R4       R# ra   r   N)r   r<   chdtrcr>   s   &r@   test_chdtrcTestCephes.test_chdtrc       V]]1Q',rD   c                H    \        \        P                  ! ^^4      R4       R# r   )r   r<   chdtrir>   s   &r@   test_chdtriTestCephes.test_chdtri   r   rD   c                J    \        \        P                  ! ^ ^^ 4      R4       R# r   )r   r<   chndtrixr>   s   &r@   test_chndtrixTestCephes.test_chndtrix       V__Qq+C0rD   c                F    \        \        P                  ! ^ 4      R4       R# r   )r   r<   cosdgr>   s   &r@   
test_cosdgTestCephes.test_cosdg       V\\!_S)rD   c                F    \        \        P                  ! ^ 4      R4       R# r   )r   r<   cosm1r>   s   &r@   
test_cosm1TestCephes.test_cosm1   r   rD   c                L    \        \        P                  ! ^-4      RR^ R7       R# )-   r   v!>rR   N)r   r<   cotdgr>   s   &r@   
test_cotdgTestCephes.test_cotdg   s    R(#FCrD   c                    \        \        P                  ! ^ 4      R4       \        \        P                  ! R4      R4       R# )r   r   gGz?gf?N)r   r<   dawsnr   r>   s   &r@   
test_dawsnTestCephes.test_dawsn   s(    V\\!_S)T*,?@rD   c                   . ROp\         P                  ! ^\         P                  ,          R,           4      P                  \         P                  4      p\        \        P                  ! W!4      RR^ R7       \         P                  ! ^\         P                  ,          R,           4      P                  \         P                  4      p\        \        P                  ! W!4      RR^ R7       \         P                  ! ^\         P                  ,          R,           4      P                  \         P                  4      p\        \        P                  ! W!4      RR^ R7       \        \         R4      '       ds   \         P                  ! ^\         P                  ,          R	,           4      P                  \         P                  4      p\        \        P                  ! W!4      RR
^ R7       . ROp\         P                  ! ^\         P                  ,          R,           4      P                  \         P                  4      p\        \        P                  ! W#4      RR^ R7       \         P                  ! R\         P                  ,          R\         P                  ,          R\         P                  ,          4      p. ROp\        \        P                  ! V^4      VR^ R7       R# )ra   g-C6
?r   r   rR   &.> [n<V瞯<float128r   g"<皙?N)ra         )rV   rT            )gg?gsOB?gsaL?g
7I^ʿ)rc   r   r   astypefloat32r   r   diricfloat64hasattrr   r   )r?   n_oddxn_evenoctave_results   &    r@   
test_diricTestCephes.test_diric   s    HHQruuWt^$++BJJ7a/6JHHQruuWt^$++BJJ7a/7KHHQruuWu_%,,RZZ8a/7K2z""2555)00=AGMM!3SwQOHHQruuWt^$++BJJ7a0$W1M IIc"%%iRUUCI6@a+]qQrD   c                   \         P                  ! ^4      p\         P                  ! . RO4      p\        \        P
                  ! VR\         P                  3,          V4      P                  VP                  VP                  38H  4       R# )r   rZ   N)ra      rX   )	rc   r   r   r   r   r   newaxisshapesize)r?   r   rl   s   &  r@   test_diric_broadcasting"TestCephes.test_diric_broadcasting   sU    IIaLHHYa2::.288QVVQVV<LLMrD   c                F    \        \        P                  ! ^4      R4       R# r   )r   r<   r   r>   s   &r@   test_ellipeTestCephes.test_ellipe       V]]1%c*rD   c                H    \        \        P                  ! ^ ^4      R4       R# r   )r   r<   	ellipeincr>   s   &r@   test_ellipeincTestCephes.test_ellipeinc       V%%a*3/rD   c                4    \         P                  ! ^ ^4       R# r;   )r<   ellipjr>   s   &r@   test_ellipjTestCephes.test_ellipj   s    arD   c                F    \        \        ^ 4      \        ^,          4       R# r;   )r   r   r   r>   s   &r@   test_ellipkTestCephes.test_ellipk   s    q	2a4(rD   c                H    \        \        P                  ! ^ ^ 4      R4       R# r   )r   r<   	ellipkincr>   s   &r@   test_ellipkincTestCephes.test_ellipkinc   r  rD   c                F    \        \        P                  ! ^ 4      R4       R# r   r   r<   erfr>   s   &r@   test_erfTestCephes.test_erf   s    VZZ]C(rD   c                    R p\        \        P                  ! V4      \        P                  ! V) 4      ,           R4       R# )g#8x@r   Nr   r?   r   s   & r@   test_erf_symmetryTestCephes.test_erf_symmetry   s(    VZZ]VZZ^3S9rD   c                F    \        \        P                  ! ^ 4      R4       R# r   )r   r<   erfcr>   s   &r@   	test_erfcTestCephes.test_erfc  s    V[[^S)rD   c                L    \        \        P                  ! ^4      RR^ R7       R# )rV   g      Y@r   rR   N)r   r<   exp10r>   s   &r@   
test_exp10TestCephes.test_exp10  s    QTBrD   c                F    \        \        P                  ! ^4      R4       R# )rV         @N)r   r<   exp2r>   s   &r@   	test_exp2TestCephes.test_exp2  r   rD   c                   \        \        P                  ! ^ 4      R4       \        \        P                  ! \        P                  4      \        P                  4       \        \        P                  ! \        P                  ) 4      R4       \        \        P                  ! \        P
                  4      \        P
                  4       R# )r   r   Nr\   )r   r<   expm1rc   r   nanr>   s   &r@   
test_expm1TestCephes.test_expm1
  sc    V\\!_S)V\\"&&)2662V\\266'*B/V\\"&&)2662rD   c                	   \         P                  p\        V! R4      R4       \        V! \        \        P
                  ^ 4      4      \        \        P
                  ^ 4      4       \        V! \        \        P
                  ^4      4      \        \        P
                  \        P
                  4      4       \        V! \        \        P
                  ^4      4      \        \        P
                  ) \        P
                  4      4       \        V! \        \        P
                  ^4      4      \        \        P
                  ) \        P
                  ) 4      4       \        V! \        \        P
                  ^4      4      \        \        P
                  \        P
                  ) 4      4       \        V! \        ^\        P
                  4      4      \        \        P                  \        P                  4      4       \        V! \        ^ \        P
                  4      4      \        \        P                  \        P                  4      4       \        V! \        \        P
                  \        P
                  4      4      \        \        P
                  \        P                  4      4       \        V! \        \        P
                  ) \        P
                  4      4      \        R^ 4      4       \        V! \        \        P
                  ) \        P                  4      4      \        R^ 4      4       \        V! \        \        P
                  \        P                  4      4      \        \        P
                  \        P                  4      4       \        V! \        ^ \        P                  4      4      \        \        P                  \        P                  4      4       \        V! \        ^\        P                  4      4      \        \        P                  \        P                  4      4       \        V! \        \        P                  ^4      4      \        \        P                  \        P                  4      4       \        V! \        \        P                  \        P                  4      4      \        \        P                  \        P                  4      4       R# )r                   Nr\   )r<   r6  r   complexrc   r   r7  )r?   r6  s   & r@   test_expm1_complexTestCephes.test_expm1_complex  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MrD   z-The real part of expm1(z) bad at these pointsreasonc                   \         P                  ! . RO4      p\         P                  ! \         P                  ! V4      4      ) pVRV,          ,           p\         P                  ! . RO4      p\        P
                  ! V4      p\        VP                  VP                  ^4       \        VP                  VP                  ^4       R# )皙?              ?N)rB  r   333333?r         )y=Cw?yC7gg)gF<Ug?yQ<D*?yg:><sKy>񸣼$	Um>ly;Vl <@)	rc   r   r   r
   r<   r6  r   imagr   )r?   yr   zexpectedfounds   &     r@   test_expm1_complex_hard"TestCephes.test_expm1_complex_hard#  s     HH/0VVBFF1I1H 88 J K Q&uzz8==!D&uzz8=="ErD   c                    \        \        P                  ! ^^^ 4      R4       \        \        P                  ! R^^
4      RRR7       R# )ra   r   r   g2?r   rL   N)r   r<   fdtrr   r>   s   &r@   	test_fdtrTestCephes.test_fdtr8  s6    V[[Aq)3/D!R02D"	$rD   c                    \        \        P                  ! ^^^ 4      R4       \        \        P                  ! ^RR4      RRR7       R# )ra   r   rB  g    _BgDIXl?r   rL   N)r   r<   fdtrcr   r>   s   &r@   
test_fdtrcTestCephes.test_fdtrc>  s8    V\\!Q*C0 	QT24G"	$rD   c                    \        \        P                  ! ^^RR.4      \        RR.4      RR7       Rp\        \        P                  ! R^V4      ^R	R7       R
# )ra   gV-?gx&1?g
}?g<zO'?r   rL   g׀?rB  r   N)r   r<   fdtrir   )r?   ps   & r@   
test_fdtriTestCephes.test_fdtriE  sM    QE5>:y*56T	C %S!Q/?rD   c                    ^RRr2p\        \        P                  ! W\        P                  ! WV4      4      VRR7       R# )ra   P  g\/չ=@r   rL   N)r   r<   rW  rO  )r?   dfddfnr   s   &   r@   test_gh20835TestCephes.test_gh20835M  s1     1!Sv{{3Q/GH!RWXrD   c                J    \        \        P                  ! ^^R4      ^4       R# r   )r   r<   rW  r>   s   &r@   test_fdtri_mysterious_failure(TestCephes.test_fdtri_mysterious_failureR  s    Q3/3rD   c                J    \        \        P                  ! ^^ ^ 4      R4       R# r   )r   r<   fdtridfdr>   s   &r@   test_fdtridfdTestCephes.test_fdtridfdU  r   rD   c                F    \        \        P                  ! ^ 4      R4       R# r   Nr   r   )r   r<   fresnelr>   s   &r@   test_fresnelTestCephes.test_fresnelX  s    V^^A&y1rD   c                F    \        \        P                  ! ^4      R4       R# r         8@N)r   r<   gammar>   s   &r@   
test_gammaTestCephes.test_gamma[  s    V\\!_T*rD   c                H    \        \        P                  ! ^^4      R4       R# )r   r   N)r   r<   gammainccinvr>   s   &r@   test_gammainccinvTestCephes.test_gammainccinv^  s    V((1-c2rD   c                2    \         P                  ! ^
4       R# )
   N)r<   gammalnr>   s   &r@   test_gammalnTestCephes.test_gammalna  s    rrD   c                p   \         P                  ! \         P                  ) RRRRR^R\         P                  .	\         P                  4      p\         P                  ! \         P                  \         P                  RR	R	RRRR.	\         P                  4      p\        \        P                  ! V4      V4       R# )
rT   r   g@r   N      gffffff       r   )rc   r   r   r   r7  r   r<   gammasgn)r?   vals	references   &  r@   test_gammasgnTestCephes.test_gammasgnd  s    xxffWb$dCC@"**
 HHVVRVVS$c3SA2::
	 	6??40)<rD   c                J    \        \        P                  ! ^^^ 4      R4       R# r   )r   r<   gdtrr>   s   &r@   	test_gdtrTestCephes.test_gdtrm      V[[1Q',rD   c                f    \        \        P                  ! ^^\        P                  4      R4       R# r   )r   r<   r  rc   r   r>   s   &r@   test_gdtr_infTestCephes.test_gdtr_infp  s    V[[1RVV,S1rD   c                J    \        \        P                  ! ^^^ 4      R4       R# r   )r   r<   gdtrcr>   s   &r@   
test_gdtrcTestCephes.test_gdtrcs      V\\!Aa(-rD   c                J    \        \        P                  ! ^ ^^4      R4       R# r   )r   r<   gdtriar>   s   &r@   test_gdtriaTestCephes.test_gdtriav  r   rD   c                6    \         P                  ! ^^ ^4       R# ra   N)r<   gdtribr>   s   &r@   test_gdtribTestCephes.test_gdtriby  s    a!rD   c                6    \         P                  ! ^^R4       R# ra   rB  N)r<   gdtrixr>   s   &r@   test_gdtrixTestCephes.test_gdtrix}  s    a"rD   c                4    \         P                  ! ^^4       R# r  )r<   hankel1r>   s   &r@   test_hankel1TestCephes.test_hankel1      qrD   c                4    \         P                  ! ^^4       R# r  )r<   hankel1er>   s   &r@   test_hankel1eTestCephes.test_hankel1e      !rD   c                4    \         P                  ! ^^4       R# r  )r<   hankel2r>   s   &r@   test_hankel2TestCephes.test_hankel2  r  rD   c                4    \         P                  ! ^^4       R# r  )r<   hankel2er>   s   &r@   test_hankel2eTestCephes.test_hankel2e  r  rD   c                    \        \        P                  ! ^^^4      \        R4      R^ R7       \        \        P                  ! ^^R4      RR^ R7       \        P                  ! ^^^4       R# )ra   r   r   rR   g㈮?N)r   r<   hyp1f1r   r>   s   &r@   test_hyp1f1TestCephes.test_hyp1f1  sP    aA.Ct!LaB/1H!	+a!rD   c                L    \        \        P                  ! ^^^^ 4      R4       R# r   )r   r<   hyp2f1r>   s   &r@   test_hyp2f1TestCephes.test_hyp2f1      V]]1Qq+C0rD   c                F    \        \        P                  ! ^ 4      R4       R# r   )r   r<   i0r>   s   &r@   test_i0TestCephes.test_i0      VYYq\#&rD   c                F    \        \        P                  ! ^ 4      R4       R# r   )r   r<   i0er>   s   &r@   test_i0eTestCephes.test_i0e  r   rD   c                F    \        \        P                  ! ^ 4      R4       R# r   )r   r<   i1r>   s   &r@   test_i1TestCephes.test_i1  r  rD   c                F    \        \        P                  ! ^ 4      R4       R# r   )r   r<   i1er>   s   &r@   test_i1eTestCephes.test_i1e  r   rD   c                2    \         P                  ! ^4       R# r  )r<   it2i0k0r>   s   &r@   test_it2i0k0TestCephes.test_it2i0k0      qrD   c                2    \         P                  ! ^4       R# r  )r<   it2j0y0r>   s   &r@   test_it2j0y0TestCephes.test_it2j0y0  r  rD   c                2    \         P                  ! ^4       R# r  )r<   
it2struve0r>   s   &r@   test_it2struve0TestCephes.test_it2struve0  s    !rD   c                2    \         P                  ! ^4       R# r  )r<   itairyr>   s   &r@   test_itairyTestCephes.test_itairy      arD   c                F    \        \        P                  ! ^ 4      R4       R# ri  )r   r<   iti0k0r>   s   &r@   test_iti0k0TestCephes.test_iti0k0      V]]1%i0rD   c                F    \        \        P                  ! ^ 4      R4       R# ri  )r   r<   itj0y0r>   s   &r@   test_itj0y0TestCephes.test_itj0y0  r  rD   c                F    \        \        P                  ! ^ 4      R4       R# r   )r   r<   itmodstruve0r>   s   &r@   test_itmodstruve0TestCephes.test_itmodstruve0  s    V((+C0rD   c                F    \        \        P                  ! ^ 4      R4       R# r   )r   r<   	itstruve0r>   s   &r@   test_itstruve0TestCephes.test_itstruve0  s    V%%a(-rD   c                H    \        \        P                  ! ^^ 4      R4       R# r   )r   r<   ivr>   s   &r@   test_ivTestCephes.test_iv      VYYq^C(rD   c                H    \        \        P                  ! ^^ 4      R4       R# r   )r   r<   iver>   s   &r@   test_iveTestCephes.test_ive      VZZ!_S)rD   c                F    \        \        P                  ! ^ 4      R4       R# r   )r   r<   j0r>   s   &r@   test_j0TestCephes.test_j0  r  rD   c                F    \        \        P                  ! ^ 4      R4       R# r   )r   r<   j1r>   s   &r@   test_j1TestCephes.test_j1  r  rD   c                H    \        \        P                  ! ^ ^ 4      R4       R# r   )r   r<   jnr>   s   &r@   test_jnTestCephes.test_jn  r  rD   c                H    \        \        P                  ! ^ ^ 4      R4       R# r   )r   r<   jvr>   s   &r@   test_jvTestCephes.test_jv  r  rD   c                H    \        \        P                  ! ^ ^ 4      R4       R# r   )r   r<   jver>   s   &r@   test_jveTestCephes.test_jve  r  rD   c                2    \         P                  ! ^4       R# rV   N)r<   k0r>   s   &r@   test_k0TestCephes.test_k0      		!rD   c                2    \         P                  ! ^4       R# r  )r<   k0er>   s   &r@   test_k0eTestCephes.test_k0e      

1rD   c                2    \         P                  ! ^4       R# r  )r<   k1r>   s   &r@   test_k1TestCephes.test_k1  r  rD   c                2    \         P                  ! ^4       R# r  )r<   k1er>   s   &r@   test_k1eTestCephes.test_k1e  r  rD   c                2    \         P                  ! ^4       R# r  )r<   keir>   s   &r@   test_keiTestCephes.test_kei  r  rD   c                F    \        \        P                  ! ^ 4      R4       R# r   )r   r<   keipr>   s   &r@   	test_keipTestCephes.test_keip  r   rD   c                2    \         P                  ! ^4       R# r  )r<   kerr>   s   &r@   test_kerTestCephes.test_ker  r  rD   c                2    \         P                  ! ^4       R# r  )r<   kerpr>   s   &r@   	test_kerpTestCephes.test_kerp  rC   rD   c                2    \         P                  ! ^4       R# r  )r<   kelvinr>   s   &r@   test_kelvinTestCephes.test_kelvin  r  rD   c                4    \         P                  ! ^^4       R# r  )r<   knr>   s   &r@   test_knTestCephes.test_kn      		!ArD   c                    \        \        P                  ! ^4      R4       \        \        P
                  ! \        P                  ! \        P                  4      4      4       R# r   )r   r<   kolmogir   rc   r   r7  r>   s   &r@   test_kolmogiTestCephes.test_kolmogi  s3    V^^A&s+/01rD   c                F    \        \        P                  ! ^ 4      R4       R# r   )r   r<   
kolmogorovr>   s   &r@   test_kolmogorovTestCephes.test_kolmogorov  s    V&&q)3/rD   c                F    \        \        P                  ! ^ 4      R4       R# )r   Nr  )r   r<   _kolmogpr>   s   &r@   test_kolmogpTestCephes.test_kolmogp  s    V__Q'.rD   c                F    \        \        P                  ! ^ 4      R4       R# r   )r   r<   _kolmogcr>   s   &r@   test_kolmogcTestCephes.test_kolmogc  s    V__Q'-rD   c                    \        \        P                  ! ^ 4      R4       \        \        P
                  ! \        P                  ! \        P                  4      4      4       R# r   )r   r<   	_kolmogcir   rc   r   r7  r>   s   &r@   test_kolmogciTestCephes.test_kolmogci  s7    V%%a(#.))"&&123rD   c                4    \         P                  ! ^^4       R# r  )r<   kvr>   s   &r@   test_kvTestCephes.test_kv  r:  rD   c                4    \         P                  ! ^^4       R# r  )r<   kver>   s   &r@   test_kveTestCephes.test_kve       

1QrD   c                (   \         P                  p\        V! ^ 4      R4       \        V! R4      \        P                  ) 4       \        V! R4      \        P
                  4       \        V! \        P                  4      \        P                  4       R# )r   r   Nr\   )r<   log1pr   rc   r   r7  )r?   rZ  s   & r@   
test_log1pTestCephes.test_log1p  sU    U1Xs#U2Y(U2Y'U266]BFF+rD   c           
        \         P                  p\        p\        V! R4      R4       \        V! V! R^ 4      4      V! \        P
                  ) ^ 4      4       \        P                  ! 4       ;_uu_ 4        \        P                  ! RR\        4       \        V! V! ^\        P
                  4      4      V! \        P
                  \        P                  ^,          4      4       \        V! V! ^\        P                  4      4      V! \        P                  \        P                  4      4       \        V! V! \        P
                  ) ^4      4      V! \        P
                  \        P                  4      4       \        V! V! \        P
                  ^4      4      V! \        P
                  ^ 4      4       \        V! V! \        P
                  ) \        P
                  4      4      V! \        P
                  ^\        P                  ,          ^,          4      4       \        V! V! \        P
                  \        P
                  4      4      V! \        P
                  \        P                  ^,          4      4       \        V! V! \        P
                  \        P                  4      4      V! \        P
                  \        P                  4      4       \        V! V! \        P
                  ) \        P                  4      4      V! \        P
                  \        P                  4      4       \        V! V! \        P                  \        P
                  4      4      V! \        P
                  \        P                  4      4       \        V! V! \        P                  ^4      4      V! \        P                  \        P                  4      4       \        V! V! \        P                  \        P                  4      4      V! \        P                  \        P                  4      4       RRR4       R#   + '       g   i     R# ; i)r   r;  ignorez%invalid value encountered in multiplyNr\   )r<   rZ  r<  r   rc   r   warningscatch_warningsfilterwarningsRuntimeWarningr   r   r7  )r?   rZ  cs   &  r@   test_log1p_complexTestCephes.test_log1p_complex
  sZ   U6]F+U1R8_am4$$&&##A>S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   5N0P//Q 	c                J    \        \        P                  ! ^ ^ ^4      R4       R# r   )r   r<   lpmvr>   s   &r@   	test_lpmvTestCephes.test_lpmv  r  rD   c                    \         P                  ! . RO4      p\        \        P                  ! V^ 4      V^,          4       R# ra   N)ra   rV   r   )rc   r   r   r<   	mathieu_ar?   ms   & r@   test_mathieu_a_q0TestCephes.test_mathieu_a_q0!  +    HHYV%%a+QT2rD   z	m, q, refc                L    \         P                  ! W4      p\        WCR R7       R# r   rL   N)r<   rl  r   r?   rn  qrefrH  s   &&&& r@   test_mathieu_aTestCephes.test_mathieu_a(       Q"U+rD   c                    \         P                  ! . RO4      p\        \        P                  ! V^ 4      V^,          4       R# rk  )rc   r   r   r<   	mathieu_brm  s   & r@   test_mathieu_b_q0TestCephes.test_mathieu_b_q03  rq  rD   c                L    \         P                  ! W4      p\        WCR R7       R# rs  )r<   r{  r   rt  s   &&&& r@   test_mathieu_bTestCephes.test_mathieu_b:  ry  rD   c                   \        \        P                  ! ^^ ^ 4      R4       \        P                  R 4       p\        P
                  ! ^ ^d4      p\        P                  ^ \        P                  ! RR^
4      3,          p\        \        P                  ! VR	,          VR
,          R4      ^ ,          V! VR	,          VR
,          R4      R^ R7       R# )ra   c                    V\         P                  ^,          ,          pV ^ 8X  d/   R^RV,          \        ^V,          4      ,          ,
          ,          # V ^8X  d1   \        V4      V^,          \        ^V,          4      ,          ,
          # V ^8X  d?   \        ^V,          4      V\        ^V,          4      ^,          R,
          ,          ,
          # \        W,          4      V\        V ^,           V,          4      ^V ^,           ,          ,          \        V ^,
          V,          4      ^V ^,
          ,          ,          ,
          ,          ,
          # )   r   g;f?      ?)rc   r   r
   rn  ru  rI  s   &&&r@   	ce_smallq.TestCephes.test_mathieu_cem.<locals>.ce_smallqI  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 13x!S!A#q\1ac7%;c1Q3'lAqQRsG>T%T"UUUrD   Nrh|?+=rM   rS   r   r   rY   r[   )	r   r<   mathieu_cemrc   r   r   r   rv   r   )r?   r  rn  ru  s   &   r@   test_mathieu_cemTestCephes.test_mathieu_cemE  s    V''!A.y9 
	V 
	V IIaEE!R[[b"--.**1V9aiGJ!!F)QvY>"	,rD   c                   \        \        P                  ! ^^ ^ 4      R4       \        P                  R 4       p\        P
                  ! ^^d4      p\        P                  ^ \        P                  ! RR^
4      3,          p\        \        P                  ! VR	,          VR
,          R4      ^ ,          V! VR	,          VR
,          R4      R^ R7       R# )ra   c                 $   V\         P                  ^,          ,          pV ^8X  d1   \        V4      V^,          \        ^V,          4      ,          ,
          # V ^8X  d8   \        ^V,          4      V\        ^V,          4      ,          ^,          ,
          # \        W,          4      V\        V ^,           V,          4      ^V ^,           ,          ,          \        V ^,
          V,          4      ^V ^,
          ,          ,          ,
          ,          ,
          # )r  )rc   r   r	   r  s   &&&r@   	se_smallq.TestCephes.test_mathieu_sem.<locals>.se_smallqb  s    sNAAv1v!c!A#h..a1Q3x!C!H*R-// 13x!S!A#q\1ac7%;c1Q3'lAqQRsG>T%T"UUUrD   Nr  r  r  r   r   r  r  rY   r[   )	r   r<   mathieu_semrc   r   r   r   rv   r   )r?   r  rn  ru  s   &   r@   test_mathieu_semTestCephes.test_mathieu_sem^  s    V''!A.y9 

	V 

	V IIaEE!R[[b"--.**1V9aiGJ!!F)QvY>"	,rD   c                J    \        \        P                  ! ^^ ^ 4      R4       R# ra   Nrj  )r   r<   mathieu_modcem1r>   s   &r@   test_mathieu_modcem1TestCephes.test_mathieu_modcem1t      V++Aa29=rD   c                   \         P                  ! ^^^4       \        P                  ! ^ ^4      R,          p\        P                  \        P
                  ! R^^
4      ,          R,          p\        P                  ! ^ ^^4      R,          p\         P                  ! WV) 4      ^ ,          p\         P                  ! W^ 4      ^ ,          ) \         P                  ! W^ 4      ^ ,          ,          p\         P                  ! WV4      ^ ,          ) ^V,          \         P                  ! WV4      ^ ,          ,          ,
          p\        WFRR7       R# ra   NrQ   rL   )rZ   NNrY  )NrZ   N)NNrZ   )	r<   mathieu_modcem2rc   r   r   rv   linspacer  r   r?   rn  ru  rI  y1fry2s   &      r@   test_mathieu_modcem2TestCephes.test_mathieu_modcem2w  s    q1% IIaOK(EE"++b!R()+6KK1a -##A1"-a0$$Q1-a0063I3I!PQ3RST3UU%%aA.q11"V++A!4Q778 	U+rD   c                J    \        \        P                  ! ^^ ^ 4      R4       R# r  )r   r<   mathieu_modsem1r>   s   &r@   test_mathieu_modsem1TestCephes.test_mathieu_modsem1  r  rD   c                   \         P                  ! ^^^4       \        P                  ! ^^4      R,          p\        P                  \        P
                  ! R^^
4      ,          R,          p\        P                  ! ^ ^^4      R,          p\         P                  ! WV) 4      ^ ,          p\         P                  ! W^ 4      ^,          \         P                  ! W^ 4      ^,          ,          p\         P                  ! WV4      ^ ,          ^V,          \         P                  ! WV4      ^ ,          ,          ,
          p\        WFRR7       R# r  )	r<   mathieu_modsem2rc   r   r   rv   r  r  r   r  s   &      r@   test_mathieu_modsem2TestCephes.test_mathieu_modsem2  s    q1% IIaOK(EE"++b!R()+6KK1a -##A1"-a0##A!,Q/&2H2Hq2QRS2TT$$Q1-a0"V++A!4Q778U+rD   c                   \        \        P                  ! R ^ R4      \        P                  \        P                  34       \        \        P
                  ! R ^ R4      \        P                  \        P                  34       \        \        P                  ! R RR4      \        P                  \        P                  34       \        \        P
                  ! R RR4      \        P                  \        P                  34       \        \        P                  ! R RR4      \        P                  \        P                  34       \        \        P                  ! R RR4      \        P                  \        P                  34       \        \        P                  ! R RR4      \        P                  \        P                  34       \        \        P                  ! R RR4      \        P                  \        P                  34       R# )'  g?      ?N)
r   r<   r  rc   r7  r  r  r  r  r  r>   s   &r@   test_mathieu_overflow 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OrD   c                    \        ^<4       FE  p\        P                  ! ^^dR4      p\        V^ ,          RRR7       \        V^,          RRR7       KG  	  R# )<   g.dS?rQ   rL   gGc?-C6?Nr\   )r}   r<   r  r   )r?   rm   vs   &  r@   test_mathieu_ticket_1847#TestCephes.test_mathieu_ticket_1847  sH     rA&&q#r2AAaD":GAaD":F	 rD   c                2    \         P                  ! ^ 4       R# r;   )r<   modfresnelmr>   s   &r@   test_modfresnelmTestCephes.test_modfresnelm      1rD   c                2    \         P                  ! ^ 4       R# r;   )r<   modfresnelpr>   s   &r@   test_modfresnelpTestCephes.test_modfresnelp  r  rD   c                H    \        \        P                  ! ^^ 4      R4       R# r   )r   r<   	modstruver>   s   &r@   test_modstruveTestCephes.test_modstruve  r  rD   c                J    \        \        P                  ! ^^^4      R4       R# r   )r   r<   nbdtrr>   s   &r@   
test_nbdtrTestCephes.test_nbdtr  r  rD   c                J    \        \        P                  ! ^^^4      R4       R# r   )r   r<   nbdtrcr>   s   &r@   test_nbdtrcTestCephes.test_nbdtrc  r   rD   c                J    \        \        P                  ! ^^^4      R4       R# r   )r   r<   nbdtrir>   s   &r@   test_nbdtriTestCephes.test_nbdtri  r   rD   c                6    \         P                  ! ^RR4       R# )ra   rW   r   N)r<   nbdtrikr>   s   &r@   test_nbdtrikTestCephes.test_nbdtrik  s    qBrD   c                J    \        \        P                  ! ^^ ^ 4      R4       R# r   )r   r<   nbdtrinr>   s   &r@   test_nbdtrinTestCephes.test_nbdtrin  s    V^^Aa*3/rD   c                L    \        \        P                  ! ^^^^ 4      R4       R# r   )r   r<   ncfdtrr>   s   &r@   test_ncfdtrTestCephes.test_ncfdtr  r  rD   c                    \        \        P                  ! ^^^^ 4      R4       . ROp\        P                  ! ^^RV4      p\	        \        P                  ! ^^RV4      V4       R# )ra   r   r  N)r   ra   r  )r   r<   ncfdtrir  r   )r?   frX  s   &  r@   test_ncfdtriTestCephes.test_ncfdtri  sM    V^^Aq!Q/5MM!QQ'q!S!4a8rD   zpncfdtr uses a Boost math implementation but ncfdtridfdinverts the less accurate cdflib implementation of ncfdtr.c                    . ROp\         P                  ! ^VR^4      p\        \         P                  ! ^VR^4      V4       R# )ra   r  N)ra   rV   r  )r<   r  r   
ncfdtridfd)r?   r]  rX  s   &  r@   test_ncfdtridfdTestCephes.test_ncfdtridfd  s8     MM!S$+))!Qb93?rD   zpncfdtr uses a Boost math implementation but ncfdtridfninverts the less accurate cdflib implementation of ncfdtr.c                    . ROp\         P                  ! V^R^4      p\        \         P                  ! V^R^4      VRR7       R# )rB  r  gh㈵>rL   N)rB  ra   rV   r  g     @)r<   r  r   
ncfdtridfn)r?   r^  rX  s   &  r@   test_ncfdtridfnTestCephes.test_ncfdtridfn  s:     "MM#q$+))!Qb93TJrD   zoncfdtr uses a Boost math implementation but ncfdtrincinverts the less accurate cdflib implementation of ncfdtr.c                    . ROp\         P                  ! ^^V^4      p\        \         P                  ! ^^V^4      V4       R# )r   N)r   r         @)r<   r  r   	ncfdtrinc)r?   ncrX  s   &  r@   test_ncfdtrincTestCephes.test_ncfdtrinc  s8     MM!QB'((Aq"5r:rD   c           	     r   \        \        P                  ! ^^ ^ 4      R4       \        \        P                  ! ^	R^-4      R4       \        \        P                  ! \        P
                  RR4      RR^ R7       \        \        P                  ! \        P                  ! R\        P
                  R4      4      4       \        \        P                  ! RR\        P
                  4      RR	^ R7       \        \        P                  ! \        P                  ! \        P                  RR4      4      4       \        \        P                  ! \        P                  ! R\        P                  R4      4      4       \        \        P                  ! \        P                  ! RR\        P                  4      4      4       R
# )ra   r   i   r   r   r  rR   r        $@r   N)	r   r<   nctdtrr   rc   r   r   r   r7  r>   s   &r@   test_nctdtrTestCephes.test_nctdtr  s    V]]1Qq)#.V]]1eR0#6bffb"5sANr2663789b"bff5r1Mrvvr2678r2662678r2rvv678rD   c                6    \         P                  ! ^R^ 4       R# r   )r<   	nctdtridfr>   s   &r@   test_nctdtridfTestCephes.test_nctdtridf  s    3q!rD   c                6    \         P                  ! ^^ ^ 4       R# r  )r<   	nctdtrincr>   s   &r@   test_nctdtrincTestCephes.test_nctdtrinc  s    1QrD   c                6    \         P                  ! R RR4       R# )rB  r   r   N)r<   nctdtritr>   s   &r@   test_nctdtritTestCephes.test_nctdtrit   s    3r"rD   c                P    \        \        P                  ! R ^^4      RR^ R7       R# )r   r   r   rR   N)r   r<   nrdtrimnr>   s   &r@   test_nrdtrimnTestCephes.test_nrdtrimn  s    Q2CdKrD   c                P    \        \        P                  ! R R R 4      R^ ^ R7       R# )r   r   rR   N)r   r<   nrdtrisdr>   s   &r@   test_nrdtrisdTestCephes.test_nrdtrisd  s     C4ca	)rD   c                8    \         P                  ! ^^^^ 4       R# r  )r<   obl_ang1r>   s   &r@   test_obl_ang1TestCephes.test_obl_ang1
      !Aa rD   c                    \         P                  ! ^^^^^ 4      p\        V^ ,          RR^ R7       \        V^,          RR^ R7       R# )ra   r   r   rR   r   N)r<   obl_ang1_cvr   )r?   results   & r@   test_obl_ang1_cvTestCephes.test_obl_ang1_cv  s>    ##Aa!A.q	3V!<q	3V!<rD   c                J    \        \        P                  ! ^^^ 4      R4       R# ra   r  N)r   r<   obl_cvr>   s   &r@   test_obl_cvTestCephes.test_obl_cv  r   rD   c                8    \         P                  ! ^^^^ 4       R# r  )r<   obl_rad1r>   s   &r@   test_obl_rad1TestCephes.test_obl_rad1  r  rD   c                :    \         P                  ! ^^^^^ 4       R# r  )r<   obl_rad1_cvr>   s   &r@   test_obl_rad1_cvTestCephes.test_obl_rad1_cv      1Qq1%rD   c                8    \         P                  ! ^^^^ 4       R# r  )r<   obl_rad2r>   s   &r@   test_obl_rad2TestCephes.test_obl_rad2  r  rD   c                :    \         P                  ! ^^^^^ 4       R# r  )r<   obl_rad2_cvr>   s   &r@   test_obl_rad2_cvTestCephes.test_obl_rad2_cv  r$  rD   c                H    \        \        P                  ! ^^ 4      R4       R# )ra   Nr  )r   r<   pbdvr>   s   &r@   	test_pbdvTestCephes.test_pbdv!  s    V[[1%i0rD   c                4    \         P                  ! ^^ 4       R# r  )r<   pbvvr>   s   &r@   	test_pbvvTestCephes.test_pbvv$      AarD   c                4    \         P                  ! ^^ 4       R# r  )r<   pbwar>   s   &r@   	test_pbwaTestCephes.test_pbwa'  r5  rD   c                    \         P                  ! ^ ^4      p\        V\        P                  ! R4      R^ R7       \         P                  ! . RO^ 4      p\        V. RO4       R# )r   r   rR   Nr\   r   ra   rV   )ra   ra   ra   )r<   pdtrr   rc   r   r   r?   vals   & r@   	test_pdtrTestCephes.test_pdtr*  sB    kk!QRVVBZf1=kk)Q'3	*rD   c                    \         P                  ! ^ ^4      p\        V^\        P                  ! R4      ,
          R^ R7       \         P                  ! . ROR4      p\        V. RO4       R# )r   r   rR   r   Nr\   r;  )r   r   r   )r<   pdtrcr   rc   r   r   r=  s   & r@   
test_pdtrcTestCephes.test_pdtrc1  sF    ll1a Q^&qAll9c*3	*rD   c                    \         P                  ! 4       ;_uu_ 4        R p\         P                  ! RV\        4       \        P
                  ! RR4       RRR4       R#   + '       g   i     R# ; i)-floating point number truncated to an integerr^  r   N)r_  r`  ra  rb  r<   pdtrir?   msgs   & r@   
test_pdtriTestCephes.test_pdtri8  sE    $$&&AC##Hc>BLLS! '&&&s   6AA/	c                8    \         P                  ! ^^^^ 4       R# r  )r<   pro_ang1r>   s   &r@   test_pro_ang1TestCephes.test_pro_ang1?  r  rD   c           	     f    \        \        P                  ! ^^^^^ 4      \        R4      R^ R7       R# )ra   r   rR   Nr  )r   r<   pro_ang1_cvr   r>   s   &r@   test_pro_ang1_cvTestCephes.test_pro_ang1_cvB  s+    **1aAq95;L#!	-rD   c                J    \        \        P                  ! ^^^ 4      R4       R# r  )r   r<   pro_cvr>   s   &r@   test_pro_cvTestCephes.test_pro_cvF  r   rD   c                8    \         P                  ! ^^^R4       R# r  )r<   pro_rad1r>   s   &r@   test_pro_rad1TestCephes.test_pro_rad1I  s    !Ac"rD   c                :    \         P                  ! ^^^^^ 4       R# r  )r<   pro_rad1_cvr>   s   &r@   test_pro_rad1_cvTestCephes.test_pro_rad1_cvL  r$  rD   c                8    \         P                  ! ^^^^ 4       R# r  )r<   pro_rad2r>   s   &r@   test_pro_rad2TestCephes.test_pro_rad2O  r  rD   c                :    \         P                  ! ^^^^^ 4       R# r  )r<   pro_rad2_cvr>   s   &r@   test_pro_rad2_cvTestCephes.test_pro_rad2_cvR  r$  rD   c                2    \         P                  ! ^4       R# r  )r<   psir>   s   &r@   test_psiTestCephes.test_psiU  r  rD   c                J    \        \        P                  ! ^ ^ ^ 4      ^ 4       R# r;   )r   r<   radianr>   s   &r@   test_radianTestCephes.test_radianX  s    V]]1Qq)!,rD   c                F    \        \        P                  ! ^4      R4       R# r   )r   r<   rgammar>   s   &r@   test_rgammaTestCephes.test_rgamma[  r  rD   c                   \        \        P                  ! R 4      R4       \        \        P                  ! R4      R4       \        \        P                  ! R4      R4       \        \        P                  ! R4      R	4       \        \        P                  ! R4      R4       \        \        P                  ! R
4      R	4       R# )333333@      @g@r1        @N333333      gg      r  )r   r<   roundr>   s   &r@   
test_roundTestCephes.test_round^  st    V\\#&s+V\\$'-V\\#&s+V\\$'-V\\#&s+V\\$'-rD   c                2    \         P                  ! ^4       R# r  )r<   shichir>   s   &r@   test_shichiTestCephes.test_shichif  r  rD   c                   \         P                  ! ^4       \         P                  ! \        P                  4      w  r\	        V\        P
                  R,          R^ R7       \	        V^ R^ R7       \         P                  ! \        P                  ) 4      w  r\	        V\        P
                  ) R,          R^ R7       \        \        P                  ! V4      R4       R# )ra   r   r   rR   z cosine integral(-inf) is not nanN)r<   sicirc   r   r   r   r   r   )r?   src  s   &  r@   	test_siciTestCephes.test_sicii  s    A{{266"2553;V!<162{{BFF7#BEE6C<f1=?@rD   c                F    \        \        P                  ! ^Z4      R4       R# Z   r   N)r   r<   sindgr>   s   &r@   
test_sindgTestCephes.test_sindgt      V\\"%c*rD   c                    \        \        P                  ! ^R4      R4       \        \        P
                  ! \        P                  ! ^\        P                  4      4      4       R# )ra   rB  ?N)r   r<   smirnovr   rc   r   r7  r>   s   &r@   test_smirnovTestCephes.test_smirnovw  s7    V^^Ab)#."&&123rD   c                P   \        \        P                  ! ^R4      R4       \        \        P                  ! ^R4      R4       \        \        P                  ! ^R4      R4       \        \        P
                  ! \        P                  ! ^\        P                  4      4      4       R# )ra   rB        ?Nr\         g      ȿ)r   r<   	_smirnovpr   rc   r   r7  r>   s   &r@   test_smirnovpTestCephes.test_smirnovp{  sk    V%%a,b1V%%a.0@AV%%a.0@A))!RVV456rD   c                4   \        \        P                  ! ^R4      R4       \        \        P
                  ! \        P                  ! ^\        P                  4      4      4       \        P                  ! ^ ^^RR7      p\        \        P                  ! ^V4      ^\        P                  ! ^V4      ,
          R^ R7       \        P                  ! ^ ^^RR7      p\        \        P                  ! ^V4      ^\        P                  ! ^V4      ,
          R^ R7       R# )ra   rB  Tendpointr   rR   N)
r   r<   	_smirnovcr   rc   r   r7  r  r   r  )r?   x10x4s   &  r@   test_smirnovcTestCephes.test_smirnovc  s    V%%a+C0))!BFF345kk!QT2((C0!fnnQ6L2L#!	-[[Aq40((B/V^^Ar5J1J#!	-rD   c           	     n   \        \        P                  ! ^\        P                  ! ^R4      4      RR^ R7       \        \        P                  ! ^\        P                  ! ^R4      4      RR^ R7       \	        \
        P                  ! \        P                  ! ^\
        P                  4      4      4       R# ra   rW   r   rR   333333?N)r   r<   r  smirnovir   rc   r   r7  r>   s   &r@   test_smirnoviTestCephes.test_smirnovi  sp    q&//!S*ABC#!	-q&//!S*ABC#!	-266234rD   c           	     n   \        \        P                  ! ^\        P                  ! ^R4      4      RR^ R7       \        \        P                  ! ^\        P                  ! ^R4      4      RR^ R7       \	        \
        P                  ! \        P                  ! ^\
        P                  4      4      4       R# r  )r   r<   r  
_smirnovcir   rc   r   r7  r>   s   &r@   test_smirnovciTestCephes.test_smirnovci  sz    ((F,=,=a,EF#!	-((F,=,=a,EF#!	-**1RVV456rD   c                F    \        \        P                  ! ^4      R4       R# r   )r   r<   spencer>   s   &r@   test_spenceTestCephes.test_spence  r  rD   c                    \        \        P                  ! ^^ 4      R4       \        \        P                  ! ^^4      RR^ R7       \        \        P                  ! ^^4      RR^ R7       R# )ra   r   r  r   rR   gMoF?N)r   r<   stdtrr   r>   s   &r@   
test_stdtrTestCephes.test_stdtr  sI    V\\!A&s+Q*DvAFQ*NaPrD   c                4    \         P                  ! R ^4       R# )ffffff?N)r<   stdtridfr>   s   &r@   test_stdtridfTestCephes.test_stdtridf  s    ArD   c                4    \         P                  ! ^R4       R# )ra   r  N)r<   stdtritr>   s   &r@   test_stdtritTestCephes.test_stdtrit  s    qrD   c                H    \        \        P                  ! ^ ^ 4      R4       R# r   )r   r<   struver>   s   &r@   test_struveTestCephes.test_struve  r   rD   c                F    \        \        P                  ! ^-4      R4       R# )r   r   N)r   r<   tandgr>   s   &r@   
test_tandgTestCephes.test_tandg  r  rD   c                N    \        \        P                  ! ^^4      RR^ R7       R# )ra   r   r   rR   N)r   r<   tklmbdar>   s   &r@   test_tklmbdaTestCephes.test_tklmbda  s    q!,cQGrD   c                2    \         P                  ! ^4       R# r  )r<   y0r>   s   &r@   test_y0TestCephes.test_y0  r  rD   c                2    \         P                  ! ^4       R# r  )r<   r  r>   s   &r@   test_y1TestCephes.test_y1  r  rD   c                4    \         P                  ! ^^4       R# r  )r<   ynr>   s   &r@   test_ynTestCephes.test_yn  r:  rD   c                4    \         P                  ! ^^4       R# r  )r<   yvr>   s   &r@   test_yvTestCephes.test_yv  r:  rD   c                4    \         P                  ! ^^4       R# r  )r<   yver>   s   &r@   test_yveTestCephes.test_yve  rW  rD   c                   \        R R#4      \        R$R4      \        RR4      \        R%R4      \        R%R&4      \        R%R4      \        R'R4      \        R(R4      \        R)R4      \        R	R
4      \        ^^4      \        R*R+4      \        ^	R,4      \        ^R-4      \        RR4      \        RR4      .p\        R.R4      \        RR/4      \        RR4      \        RR04      \        RR4      \        RR14      \        RR24      \        RR34      \        RR44      \        RR	4      \        RR4      \        R5R64      \        RR4      \        R7R84      \        RR4      \        RR4      .p\        \        P                  W!R R!7       R"# )9g@rv  r  r  r   g      "@g8EGr?gffffff@g>@r   g|Pk?g     j@  ļBgpتO#M?gMF>?g`?g	S+?g6U?gjD{?/,Gg` 0Gg!^?gI\Y?goC9	?gEbr?g.
?ga~gT-s?gɤ,P&?g!ؑ-@gi$bgһ>g>gx\h<rK   rL   Ng+п皙ٿr   g      "g4׵/Yry  iirY  iig0"bg5-gǗʿgnF5o{g7f8gyhg{g|bgޗY3ghgy(V@^)r<  r3   r<   wofz)r?   rI  ws   &  r@   	test_wofz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%8rD    N))r      gs66%)r  r  g:$Zb"@)r   r  g5`VU 9@)r  gq^A3P@))ra      g*|2T6)r   r  gkBv/9@)	   r  ggf@T@)ry  gY@)__name__
__module____qualname____firstlineno__rA   rG   rq   rw   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  r8  r=  pytestmarkxfailrL  rP  rT  rY  r_  rb  rf  rl  rr  rv  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,  r0  r4  r8  r=  rA  rE  rI  rM  rQ  rU  r[  rd  rh  ro  parametrizerw  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/  r3  r8  r?  rC  rJ  rN  rR  rV  rZ  r^  rb  rf  rj  rn  rr  r{  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  __static_attributes____classdictcell____classdict__s   @r@   r9   r9   ;   s    2.2*.G,/00/()()3@,--1**DAR2N
+0)0):*C)3N& [[MNF OF($$@Y
412+3=-2./1'('(111.)*''))*)20/.4,F(-3 [[	.,,3 [[	,,,,2,,>, >,	PG0.// 019 [[I  @@
 [[I  KK
 [[I  ;;

9" #L)!=
/!&!&1++"!-/#&!&-+.	A+47-57+Q
-+H*9 *9rD   r9   c                      a  ] tR tRt o R tR tR tR t]P                  P                  ^4      R 4       t]P                  P                  ^4      R 4       tRtV tR	# )
TestAiryr   c                &   \         P                  ! R 4      p\        V\        . RO4      R^ R7       \         P                  ! R4      p\        V\        . RO4      R^ R7       \         P                  ! R4      p\        V\        . RO4      R^ R7       R# )	Gz?+i)+P>rR   g=
ףp=?N)g*?gTk'kPĿge+?gyCyt?)g'$'?geοgL?g
HVV?g
ףp=
׿)gl@D|?gV~׭ͿgU?g3{ɔ?)r   r=   r   r   r%  s   & r@   rA   TestAiry.test_airy  ss     LL5!RS#!	-LL5!QR#!	-LL5!OP#!	-rD   c                   \         P                  ! R 4      p\         P                  ! R 4      pR.^,          p\        ^4       F-  pW$,          \	        R\        R 4      ,          4      ,          W4&   K/  	  \        ^^4       F@  pW$,          \	        \        \        R\        R 4      ,          4      4      ) 4      ,          W4&   KB  	  \        WR^ R7       R# ){Gz?NTqs*>rR   gN贁N{?)	r   rF   r=   r}   r   r   absr   r   )r?   abb1rl   s   &    r@   rG   TestAiry.test_airye  s    MM$LLVAXqAD\$t*455BE qADc$|DJ'>"?@@AABE F3rD   c                   \         P                  ! ^4      p\        RR	.4      \        R
R.4      \        RR.4      \        RR.4      3p\        WR^ R7       \         P                  ! ^4      p\        V^ ,          \        . RO4      R^ R7       \        V^,          \        . RO4      R^ R7       \        V^,          \        . RO4      R^ R7       \        V^,          \        . RO4      R^ R7       R# )rV   g˰zU`?g4c1=C?a2U0*#?rR   p~=La㧝=Nglgoe2+
g(0[g X*JgUfݿgCuT)g&g(.2+
gRg}`g%́)g7;1[ge*JgVwgL g<3)gNݿg3%IQ`?gZyΌ׿gʀ11^?g33tտ)gqM0=C?g7uTg\G`?gp⍞vg$.m?)r   bi_zerosr   r   )r?   bibias   &  r@   test_bi_zerosTestAiry.test_bi_zeros  s    a k:./k;/0k:./j+./1 	f15a 1u &:  ;
 %1	. 	1u &:  ;
 %1	. 	1u &:  ;
 %1	. 	1u &9  :
 %1	.rD   c           	         \         P                  ! ^4      p\        V\        R.4      \        R.4      \        R.4      \        R.4      3R^ R7       R# )ra   gMSt$?g ~:p?r  rR   Ngcqg!xL)r   ai_zerosr   r   )r?   ais   & r@   test_ai_zerosTestAiry.test_ai_zeros)  sM    a UK=1"K=1"F8_"F8_. $!		-rD   c                   \         P                  ! R 4      w  rr4\         P                  ! V4      w  rV p\         P                  ! V4      w  r p^\        V4      R,          ,          p
\        V4      R,          p\	        W8RR7       \	        WFRR7       \	        WZ,          ^ R^ R7       \	        W,          ^ R^ R7       \	        VR,          . RORR7       \	        VR,          . RORR7       R# )	r\  rQ   rL   rR   Nr]   NNr  )guqgqHkZg4g9Ζ%gB~gL")gLgQO	gMQnGg3:g)}g )r   r  r=   r  r   )r?   rI  zpai_zpxaip_zxai_zaip_z_ai_zpaip_zpai_envelopeaip_envelopes   &           r@   test_ai_zeros_bigTestAiry.test_ai_zeros_big1  s     ' 0 0 7v#LLOQ%ll2.q!A&2w 	E2E2 	(!%a@+QUC 	":@E	G 	2:@E	GrD   c                   \         P                  ! R 4      w  rr4\         P                  ! V4      w   rVp\         P                  ! V4      w   rXp	^\        V4      R,          ,          p
\        V4      R,          p\	        W8RR7       \	        WGRR7       \	        Wj,          ^ R^ R7       \	        W,          ^ R^ R7       \	        VR,          . RORR7       \	        VR,          . RORR7       R# )	r\  rQ   rL   rR   r  Nr  )gx&gg-2+
gRgg`gu%́g{ )g K;1[g*JgVwg<w gd
3g/{
")r   r  r=   r  r   )r?   rI  r  bi_zpxbip_zxr  bi_zbip_zbi_zpbip_zpbi_envelopebip_envelopes   &           r@   test_bi_zeros_bigTestAiry.test_bi_zeros_bigJ  s     ' 0 0 7v#LLO1E%ll2.1VA&2w 	E2E2 	(!%a@+QUC 	":@E	G 	2:@E	GrD   r  N)r  r  r  r  rA   rG   r  r  r  r  	fail_slowr  r&  r  r  r  s   @r@   r  r    sd     -4#.J- [[1G G0 [[1G GrD   r  c                   &   a  ] tR tRt o R tRtV tR# )TestAssocLaguerreid  c                    \         P                  ! ^^4      p\         P                  ! R^^4      p\        W!! R4      R^ R7       \         P                  ! ^^^4      p\        W!! ^4      R^ R7       R# )rE  r   r  rR   N)r   genlaguerreassoc_laguerrer   )r?   a1a2s   &  r@   test_assoc_laguerre%TestAssocLaguerre.test_assoc_laguerree  s`      A&##Br!,BrFa8##Ab+BqEQ7rD   r  N)r  r  r  r  r0  r  r  r  s   @r@   r*  r*  d  s     8 8rD   r*  c                   &   a  ] tR tRt o R tRtV tR# )TestBesselpolyim  c                    R # Nr  r>   s   &r@   r   TestBesselpoly.test_besselpolyn      rD   r  N)r  r  r  r  r   r  r  r  s   @r@   r3  r3  m  s      rD   r3  c                      a  ] tR tRt o R tR tR tR tR tR t	R t
R	 tR
 tR tR tR tR tR tR tR tR tR tRtV tR# )
TestKelvinir  c                P    \         P                  ! ^4      p\        VRR^ R7       R# )rV   gT?iUMu>rR   N)r   r   r   )r?   mbeis   & r@   r   TestKelvin.test_beis  s    {{1~0vAFrD   c                P    \         P                  ! ^4      p\        VRR^ R7       R# )rV   gD,X?r;  rR   N)r   r   r   )r?   mbeips   & r@   r   TestKelvin.test_beipx  s    Q2aHrD   c                P    \         P                  ! ^4      p\        VRR^ R7       R# )rV   gPA4?r;  rR   N)r   r   r   )r?   mbers   & r@   r   TestKelvin.test_ber}  s    {{1~1QGrD   c                P    \         P                  ! ^4      p\        VRR^ R7       R# )rV   r;  rR   Ngii߿)r   r   r   )r?   mberps   & r@   r   TestKelvin.test_berp  s    Q3&qIrD   c                f    \         P                  ! ^4      p\        V\        . RO4      R^ R7       R# )r   r  rR   Ng&jj@g+"@g(rw+@gU2@g`<6@)r   	bei_zerosr   r   )r?   r  s   & r@   test_bei_zerosTestKelvin.test_bei_zeros  s/    q!E #- .
 $!	-rD   c                f    \         P                  ! ^4      p\        V\        . RO4      R^ R7       R# )r   r  rR   N)gyWo.@g╲ݏ @gנ{)@gK11@gWc"5@)r   
beip_zerosr   r   )r?   bips   & r@   test_beip_zerosTestKelvin.test_beip_zeros  s/      #U $8 9
 $!	-rD   c                f    \         P                  ! ^4      p\        V\        . RO4      R^ R7       R# )r   r  rR   Ng\@g6ُ@gӟHY'@g>"D0@ggaO;4@)r   	ber_zerosr   r   )r?   r   s   & r@   test_ber_zerosTestKelvin.test_ber_zeros  /    "U $. /
 $!	-rD   c                f    \         P                  ! ^4      p\        V\        . RO4      R^ R7       R# )r   r  rR   Ng '@gs%@gF ^-@gvۅj3@gB7@)r   
berp_zerosr   r   )r?   brps   & r@   test_berp_zerosTestKelvin.test_berp_zeros  s/      #U $. /
 $!	-rD   c           
        \         P                  ! ^4      p\        V\         P                  ! ^4      \         P                  ! ^4      R,          ,           \         P
                  ! ^4      \         P                  ! ^4      R,          ,           \         P                  ! ^4      \         P                  ! ^4      R,          ,           \         P                  ! ^4      \         P                  ! ^4      R,          ,           3R^ R7       R# )rV   rC  r  rR   N)r   r3  r   r   r   r+  r#  r   r   r/  r'  )r?   mkelvs   & r@   r4  TestKelvin.test_kelvin  s    q!AQ1B B 'AQ1B B 'Q',,q/"2D D 'Q',,q/"2D D F $!		-rD   c                P    \         P                  ! ^4      p\        VRR^ R7       R# )rV   r;  rR   Ng>ɿ)r   r#  r   )r?   mkeis   & r@   r$  TestKelvin.test_kei  s    {{1~2aHrD   c                P    \         P                  ! ^4      p\        VRR^ R7       R# )rV   gr@d"?r;  rR   N)r   r'  r   )r?   mkeips   & r@   r(  TestKelvin.test_keip  s    Q2aHrD   c                P    \         P                  ! ^4      p\        VRR^ R7       R# )rV   r;  rR   NgܙU)r   r+  r   )r?   mkers   & r@   r,  TestKelvin.test_ker  s    {{1~3&qIrD   c                P    \         P                  ! ^4      p\        VRR^ R7       R# )rV   r;  rR   Ng^.n3J)r   r/  r   )r?   mkerps   & r@   r0  TestKelvin.test_kerp  s    Q3&qIrD   c                f    \         P                  ! ^4      p\        V\        . RO4      R^ R7       R# )r   r  rR   NgE>Q@gB= @gPN)@gm91@g
%5@)r   	kei_zerosr   r   )r?   r#  s   & r@   test_kei_zerosTestKelvin.test_kei_zeros  rV  rD   c                f    \         P                  ! ^4      p\        V\        . RO4      R^ R7       R# )r   r  rR   NgWf,@g?"@gFZ*o+@gOpN2@gEa6@)r   
keip_zerosr   r   )r?   r'  s   & r@   test_keip_zerosTestKelvin.test_keip_zeros  /    !!!$e %/ 0
 $!	-rD   c                   \         P                  ! ^4      pVw  r#rErgr\        V\        . RO4      R^ R7       \        V\        . RO4      R^ R7       \        V\        . RO4      R^ R7       \        V\        . RO4      R^ R7       \        V\        . RO4      R^ R7       \        V\        . R	O4      R^ R7       \        V\        . R
O4      R^ R7       \        V	\        . RO4      R^ R7       R# )r   r  rR   NrR  rH  )#?Q5U@q89 %@ol`.@gO0q3@rm  rX  )gum.@gݏ @gs{)@g䠄11@gN(D!5@gS@g89@@g^C'@g1ZG0@g+ڇ4@rr  )r   kelvin_zerosr   r   )
r?   tmpberzbeizkerzkeizberpzbeipzkerpzkeipzs
   &         r@   test_kelvin_zerosTestKelvin.test_kelvin_zeros  s   ""1%=@:Dee %/ 0
 $!	- 	e %/ 0
 $!	- 	e %/ 0
 $!	- 	e %/ 0
 $!	- 	u &0  1
 $!	- 	u &0  1 $!	- 	u &0  1
 $!	- 	u &0  1
 $!	-rD   c                f    \         P                  ! ^4      p\        V\        . RO4      R^ R7       R# )r   r  rR   N)rx  ry  rz  r{  gD;q3@)r   	ker_zerosr   r   )r?   r+  s   & r@   test_ker_zerosTestKelvin.test_ker_zeros  rV  rD   c                f    \         P                  ! ^4      p\        V\        . RO4      R^ R7       R# )r   r  rR   Nr|  )r   
kerp_zerosr   r   )r?   r/  s   & r@   test_kerp_zerosTestKelvin.test_kerp_zeros  rv  rD   r  N)r  r  r  r  r   r   r   r   rJ  rO  rT  r[  r4  r$  r(  r,  r0  ro  rt  r  r  r  r  r  r  s   @r@   r9  r9  r  sm     G
I
H
J
-----IIJJ--4-l-- -rD   r9  c                   &   a  ] tR tRt o R tRtV tR# )TestBernoullii   c                f    \         P                  ! ^4      p\        V\        . RO4      R^ R7       R# )r   r  rR   N)r   r  g-!lV?r   g镲r   )r   	bernoullir   r   )r?   brns   & r@   test_bernoulliTestBernoulli.test_bernoulli!  s/    "U $, - $!	-rD   r  N)r  r  r  r  r  r  r  r  s   @r@   r  r     s     - -rD   r  c                   6   a  ] tR tRt o RtR tR tR tRtV t	R# )TestBetai,  z
Test beta and betaln.
c                   \        \        P                  ! ^^4      R4       \        \        P                  ! R	R4      \        P                  ! R4      4       \        \        P                  ! R^4      RR^ R7       \        P                  ! ^^4      p\        P                  ! ^4      \        P                  ! ^4      ,          \        P                  ! ^4      ,          p\        WRR7       R# )
ra   r   N~h?g6.8@rK   r  rL   N33333Y)r   r   betar   rq  )r?   betbetgs   &  r@   	test_betaTestBeta.test_beta1  s    W\\!Q'-VV4gmmF6KLVS13E"	, ll1a a q!117==3CC.rD   c                n    \        \        P                  ! \        P                  ! R^4      4      4       R# ra   Nr\   )r   rc   isinfr   r  r>   s   &r@   test_beta_infTestBeta.test_beta_inf;  s    b!,-.rD   c                   \        \        P                  ! ^^4      R4       \        \        P                  ! R
R4      \        P                  ! R4      4       \        \        P                  ! R^4      RR^ R7       \        P                  ! ^^4      p\        \        \        P                  ! ^^4      4      4      p\        WRR7       R	# )ra   r   r  r  gIs	@r  r  rK   rL   Nr  )r   r   betalnr   rz  r   r  r  )r?   betlnr  s   &  r@   test_betalnTestBeta.test_betaln>  s    W^^Aq)3/vv6/	1vs35G"	, q!$#gll1a()*/rD   r  N)
r  r  r  r  __doc__r  r  r  r  r  r  s   @r@   r  r  ,  s     //	0 	0rD   r  c                   "	  a  ] tR tRt o RtR t]P                  P                  R. RO4      R 4       t	]P                  P                  R. RO4      R 4       t
]P                  P                  R. RO4      R	 4       t]P                  P                  R
]P                  ]P                  ]P                  ]P                   ]P"                  ]P$                  .4      ]P                  P                  R. RO4      R 4       4       t]P                  P                  RR]P*                  3R ]P*                  3R!]P*                  3]P,                  ]P,                  R3]P*                  3]P,                  ]P,                  R3]P*                  3]P,                  ]P,                  R3]P*                  3R"R#R$R%R&R'R]P,                  R3R3R]P,                  R3R3R]P,                  R3R3]P,                  RR3R3]P,                  RR3R3]P,                  RR3R3R]P,                  R3R3R]P,                  R3R3R]P,                  R3R3]P,                  RR3R3]P,                  RR3R3]P,                  RR3R3.4      R 4       t]P                  P                  RR]P*                  3R ]P*                  3R!]P*                  3]P,                  ]P,                  R3]P*                  3]P,                  ]P,                  R3]P*                  3]P,                  ]P,                  R3]P*                  3R(R)R*R+R,R-R]P,                  R3R3R]P,                  R3R3R]P,                  R3R3]P,                  RR3R3]P,                  RR3R3]P,                  RR3R3R]P,                  R3R3R]P,                  R3R3R]P,                  R3R3]P,                  RR3R3]P,                  RR3R3]P,                  RR3R3.4      R 4       t]P                  P                  R]P2                  ]P4                  .4      R 4       t]P                  P                  R]P2                  R3]P4                  R3.4      ]P                  P                  RR.R/.4      R 4       4       tRtV tR# )0TestBetaInciJ  z7
Tests for betainc, betaincinv, betaincc, betainccinv.
c                b   \         P                  ! . RO4      p\        \        P                  ! ^^V4      V4       \        \        P
                  ! ^^V4      V4       \        \        P                  ! ^^V4      ^V,
          4       \        \        P                  ! ^^V4      ^V,
          4       R# )r   N)r   r  ra   )rc   r   r   r   betainc
betaincinvbetainccbetainccinvr%  s   & r@   
test_a1_b1TestBetaInc.test_a1_b1O  sz    HH\"W__Q1-q1W''1a0!4W%%aA.A6W((Aq11q59rD   z
a, b, x, pr   c                &   \         P                  ! WV4      p\        WTR R7       \         P                  ! WV4      p\        WcRR7       \         P                  ! WBV4      p\        WqRR7       \         P
                  ! WV4      p\        WRR7       R# )r   rL   g-a=rK   N)r   r  r   r  btdtriabtdtrib)	r?   r  r  r   rX  p1x1r.  r  s	   &&&&&    r@   test_betainc_and_inverses%TestBetaInc.test_betainc_and_inversesf  sn     __Q1%E*a(E*__Q1%E*__Q1%E*rD   c                    \         P                  ! WV4      p\        WTR R7       \         P                  ! WV4      p\        WcRR7       R# )+<rL   gV瞯=N)r   r  r   r  )r?   r  r  r   rX  r  r  s   &&&&&  r@   test_betaincc_betainccinv%TestBetaInc.test_betaincc_betainccinv  s<     aA&E*  q)E*rD   za, b, y, refc                N    \         P                  ! WV4      p\        WTR R7       R# )r  rL   N)r   r  r   )r?   r  r  rH  rv  r   s   &&&&& r@   test_betaincinv_tiny_y"TestBetaInc.test_betaincinv_tiny_y  s     2 qQ'U+rD   funcargsr   c           	        \         P                  ! R R7      ;_uu_ 4        \        P                  ! \         P                  RR7      ;_uu_ 4        V! V!   RRR4       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; i)raise)domainr  matchN)r   errstater  r   SpecialFunctionError)r?   r  r  s   &&&r@   test_betainc_domain_errors&TestBetaInc.test_betainc_domain_errors  sT     W--w;;8LLd M .-LL .--s#   /A;A(	A;(A83A;;B	zargs,expectedr   c                D    \         P                  ! V!  p\        W24       R # r5  )r   r  r   r?   r  rJ  observeds   &&& r@   test_betainc_edge_cases#TestBetaInc.test_betainc_edge_cases  s    < ??D)X(rD   c                D    \         P                  ! V!  p\        W24       R # r5  )r   r  r   r  s   &&& r@   test_betaincc_edge_cases$TestBetaInc.test_betaincc_edge_cases  s    < ##T*X(rD   dtypec                    \         P                  ! R .VR7      p\         P                  ! R.VR7      p\        P                  ! W"V4      p\	        WC^
\         P
                  ! V4      P                  ,          R7       R# )r   r  r   rL   N)rc   r   r   r  r   r   eps)r?   r  r  r   r  s   &&   r@   test_gh21426TestBetaInc.test_gh21426  sW     HHbT'HHcU%(##A!,RXXe_-@-@(@ArD   zdtype, rtolr  r   za, b, x, referencec                    \         P                  ! WR 7      p\         P                  ! W%R 7      p\         P                  ! W5R 7      p\        P                  ! WV4      p\	        WtVR7       R# )r  rL   N)rc   r   r   r  r   )r?   r  r  r   r  r  rM   ress   &&&&&&& r@   test_gh22682TestBetaInc.test_gh22682  sH     HHQ$HHQ$HHQ$ooaA&T2rD   r  N))rV   rT   g@w?r   )r  g     `e@rQ   g*?)r     g"Yx;r  )g   `1?g    ئAg\aY4g    ?)rT   i g-߇)?g;?))      @rv  r  g     ?)      @g     *@g      ?g&?)      ?r  g333333?gFoE?)r        2@r   gg2$Z?)r  r  gZd;?g6)r  rp  r  g`<)      0@r  g?g<dEA>)g?g7Ê@g/3J?Hz>))cj,@r  ghHISOa gڭ Y;)g      ,@g      -@g둤g}c]춫;)rw  g      .@gUv \U,gS^%:)r  g      ?gMoigKB;)r1  g    i@g1$-g\_cp:))r   rV   r   )r         r   )r  r  333333ӿ)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   )#B;gO
;r   gE]tE?)r   gؗҜ<r   gF]tE?)r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r  r  r  rc   r7  r   r  r  r   r   r  r  r  r  r  s   @r@   r  r  J  s    :. [[	6
7+
7+ [[\
<=+=+ [[	7,,& [[Vgoow7I7I&-oow&-&6&68K8K&M N [[V &I JJN

 [[bff%bff%bff%ffbffc"BFF+ffbffc"BFF+ffbffc"BFF+""""""2663%2663%2663%ffc3%ffc3%ffc3%2663%2663%2663%ffc3%ffc3%ffc3%1	
:);:) [[bff%bff%bff%ffbffc"BFF+ffbffc"BFF+ffbffc"BFF+""""""2663%2663%2663%ffc3%ffc3%ffc3%2663%2663%2663%ffc3%ffc3%ffc3%1	
:);:) [[Wrzz2::&>?B @B [[]!zz40!zz5134 [[1EFHI3I43rD   r  c                      a  ] tR tRt o R tR tR tR t]P                  P                  R. RO4      ]P                  P                  RRR	.4      R
 4       4       tR tR tR tR tRtV tR# )TestCombinatoricsi  c                   \        \        P                  ! ^
^
.^^.4      RR.4       \        \        P                  ! ^
^4      R4       \        \        P                  ! ^
^RR7      ^x4       \        \        P                  ! ^
^RRR7      ^4       \        \	        ^4       Uu. uF  p\        P                  ! ^VRR7      NK  	  up\        P                  ! ^\        \	        ^4      4      4      RR7       \        P                  ! \        4      P                  ^,           p\        \        P                  ! W"^,
          RR7      V4       Rp\        P                  ! ^d^2RR7      V8X  g   Q hR	# u upi )
ry        ^@g     @j@Texactr  
repetitionr   rS   l   hU7`S?Q N)
r   r   combr   r}   listrc   iinfor|   max)r?   rm   iirJ  s   &   r@   	test_comb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\\"d$7<1||C40H<<< Ms   ""E-c                    ^Fp^p\         P                  ! V4      p\         P                  ! V4      p\        P                  ! W4RR7      p\        P                  ! WRR7      pWV8X  g   Q hR# )F   Tr  N)rc   int64r   r  )r?   rl   rm   np_nnp_kres_npres_pys   &      r@   test_comb_with_np_int64)TestCombinatorics.test_comb_with_np_int64!  sR    xx{xx{d5a$/rD   c                l   \        \        P                  ! ^^RR7      ^ 4       \        \        P                  ! R^RR7      ^ 4       \        \        P                  ! ^RRR7      ^ 4       \        \        P                  ! ^RRR7      ^ 4       \        \        P                  ! . RO. RO4      . RO4       R# )	rV   Tr  FNr\   rV   r\   rV   ry  r  r  r\   r  )r   r   r   r  )r   r   r  r   r>   s   &r@   test_comb_zeros!TestCombinatorics.test_comb_zeros*  t    W\\!Qd3Q7W\\"at4a8W\\!Rt4a8W\\!Ru5q9^]CEWXrD   c                p   R p\         P                  ! \        VR7      ;_uu_ 4        \        P                  ! R^RR7       RRR4       \         P                  ! \        VR7      ;_uu_ 4        \        P                  ! ^RRR7       RRR4       R#   + '       g   i     LX; i  + '       g   i     R# ; i)z`exact=True`r  ru  Tr  Ng@)r  r   
ValueErrorr   r  rH  s   & r@   test_comb_exact_non_int_error/TestCombinatorics.test_comb_exact_non_int_error1  si    ]]:S11LLat, 2]]:S11LLCt, 21 21111s   B-B$B!	$B5	Nr  TFc                    \         P                  ! V^ VRR7      pV^8X  g   Q hV'       d   \        V4      \        J g   Q h\        P
                  '       g   Q hR# R# )r   Tr  N)r   r  typer|   rc   r   )r?   r  r  actuals   &&& r@   test_comb_repetition_k_zero-TestCombinatorics.test_comb_repetition_k_zero8  sK    
 a%DA{{&+tF|s";;;;"rD   c                    \         P                  ! . RO4      p\        P                  ! V^ RRR7      p\         P                  ! . RO4      p\	        W#4       R# )r   FTr  Nr   r   ry  )r   r   r   )rc   r   r   r  r   )r?   r  r  rJ  s   &   r@   !test_comb_repetition_k_zero_array3TestCombinatorics.test_comb_repetition_k_zero_arrayA  s:    HHZ a%DA88O,V&rD   c                    \        \        P                  ! ^
^
.^^.4      RR.4       \        \        P                  ! ^
^4      RR^ R7       \        \        P                  ! ^
^RR7      R4       R# )	ry       @g     @r   rR   Tr  i  N)r   r   permr   r>   s   &r@   	test_permTestCombinatorics.test_permH  sS    b"X1v6uFR+TQGW\\"at4c:rD   c                l   \        \        P                  ! ^^RR7      ^ 4       \        \        P                  ! R^RR7      ^ 4       \        \        P                  ! ^RRR7      ^ 4       \        \        P                  ! ^RRR7      ^ 4       \        \        P                  ! . RO. RO4      . RO4       R# )	rV   Tr  FNr\   r  r  )r   r   r   r"  )r   r   r#  r   r>   s   &r@   test_perm_zeros!TestCombinatorics.test_perm_zerosM  r  rD   c                   \         P                  ! \        R R7      ;_uu_ 4        \        P                  ! ^^.^^.RR7       RRR4       \         P                  ! \        RR7      ;_uu_ 4        \        P                  ! R^RR7       RRR4       \         P                  ! \        RR7      ;_uu_ 4        \        P                  ! R^RR7       RRR4       \         P                  ! \        RR7      ;_uu_ 4        \        P                  ! ^R	RR7       RRR4       \         P                  ! \        RR7      ;_uu_ 4        \        P                  ! RRRR7       RRR4       R#   + '       g   i     EL+; i  + '       g   i     L; i  + '       g   i     L; i  + '       g   i     L; i  + '       g   i     R# ; i)
zscalar integersr  Tr  NzNon-integergffffff@      @gffffffg333333)r  r   r  r   r#  r>   s   &r@   test_perm_ivTestCombinatorics.test_perm_ivT  s    ]]:->??LL!Q!Qt4 @ ]]:];;LLat, <]]:];;LLq- <]]:];;LLD- <]]:];;LLc. <; @?? <;;;;;;;;s;   E%/E95F;FF2%E6	9F		F	F/	2G	r  Nr  )r  r  r  r  r  r  r  r  r  r  r  r  r  r$  r'  r+  r  r  r  s   @r@   r  r    sv     = Y- [[S*-[[WtUm4< 5 .<';
Y/ /rD   r  c                   b   a  ] tR tRt o R tR tR tR tR tR t	R t
R	 tR
 tR tR tRtV tR# )TestTrigonometricic  c                R    \         P                  ! ^4      pRp\        WR^ R7       R# )   rv  r   rR   Nr   r   r   )r?   cbcbrls   &  r@   r   TestTrigonometric.test_cbrtd  s!    \\"vA6rD   c                R    \         P                  ! R 4      pRp\        WR^ R7       R# )gfffff;@r  rR   Ng鎖C@r1  )r?   cb1cbrl1s   &  r@   test_cbrtmoreTestTrigonometric.test_cbrtmorei  s!    ll4 a8rD   c                z    \         P                  ! ^Z4      p\        \        R,          4      p\	        WR^ R7       R# )r  r  r  rR   Nr   r   r
   r   r   )r?   cdgcdgrls   &  r@   r   TestTrigonometric.test_cosdgn  s)    mmBBsFa8rD   c                z    \         P                  ! ^4      p\        \        R,          4      p\	        WR^ R7       R#    r*  r  rR   Nr;  )r?   cdgmcdgmrls   &  r@   test_cosdgmore TestTrigonometric.test_cosdgmores  s)    }}R RV6:rD   c                :   \         P                  ! ^ 4      \         P                  ! R4      \         P                  ! \        ^
,          4      3p\        ^ 4      ^,
          \        R4      ^,
          \        \        ^
,          4      ^,
          3p\	        WR^ R7       R# )r   rD  r  rR   N)r   r   r   r
   r   )r?   cscsrls   &  r@   r   TestTrigonometric.test_cosm1x  sa    mmAw}}R0r"u1EFAqR3r"u:a<0vA6rD   c                    \         P                  ! ^4      p\        \        R,          4      R,          p\	        WR^ R7       R# )rA  r*  r  rR   Nr\   r   r   r   r   r   )r?   ctctrls   &  r@   r   TestTrigonometric.test_cotdg}  s.    ]]22c6{R vA6rD   c                    \         P                  ! ^-4      p\        \        R,          4      R,          p\	        WR^ R7       R# )r   r1  r  rR   Nr\   rK  )r?   ct1ctrl1s   &  r@   test_cotdgmore TestTrigonometric.test_cotdgmore  s.    mmBBsFb!a8rD   c                   \        \        P                  ! ^-4      RR^ R7       \        \        P                  ! R	4      R
R^ R7       \        \        P                  ! ^Z4      RR^ R7       \        \        P                  ! R4      RR^ R7       \        \        P                  ! ^4      R
R^ R7       \        \        P                  ! R4      RR^ R7       \        \        P                  ! ^4      RR^ R7       \        \        P                  ! R4      R
R^ R7       \        \        P                  ! R4      RR^ R7       \        \        P                  ! R4      RR^ R7       \        \        P                  ! R4      R
R^ R7       \        \        P                  ! R4      RR^ R7       \        \        P                  ! R4      RR^ R7       R# )r   r   t=rR   r   i  ;  i  Nr   iyi)r   r   r   r>   s   &r@   test_specialpoints$TestTrigonometric.test_specialpoints  s-   b)3W1Ec*DwQGb)3W1Ec*CgAFc*DwQGd+SwQGc*CgAFd+TaHc*CgAFd+SwQGc*DwQGd+SwQGc*CgAFrD   c                    \        \        P                  ! ^ .4      ^4       \        \        P                  ! R4      R4       R# )r   r   r   N)r   r   sincr   r>   s   &r@   	test_sincTestTrigonometric.test_sinc  s*    7<<,a0W\\#&,rD   c                J    \         P                  ! ^Z4      p\        VR4       R# r  )r   r  r   )r?   sns   & r@   r  TestTrigonometric.test_sindg  s    ]]2RrD   c                    \         P                  ! ^4      p\        \        R,          4      p\	        WR^ R7       \         P                  ! ^-4      p\        \        R,          4      p\	        W4R^ R7       R# )rA  r*  r  rR   r1  N)r   r  r	   r   r   )r?   snmsnmrlsnm1snmrl1s   &    r@   test_sindgmore TestTrigonometric.test_sindgmore  P    mmBBsFa8}}R RV6:rD   r  N)r  r  r  r  r   r8  r   rD  r   r   rR  r[  r_  r  ri  r  r  r  s   @r@   r.  r.  c  sB     7
9
9
;
7
7
9
G-
; ;rD   r.  c                   2   a  ] tR tRt o R tR tR tRtV tR# )	TestTandgi  c                z    \         P                  ! ^4      p\        \        R,          4      p\	        WR^ R7       R# r@  r   r  r   r   r   )r?   tntnrls   &  r@   r  TestTandg.test_tandg  s)    ]]22c6{vA6rD   c                    \         P                  ! ^-4      p\        \        R,          4      p\	        WR^ R7       \         P                  ! ^<4      p\        \        R,          4      p\	        W4R^ R7       R# )r   r1  r  rR   rv  Nro  )r?   tnmtnmrltnm1tnmrl1s   &    r@   test_tandgmoreTestTandg.test_tandgmore  rk  rD   c                   \        \        P                  ! ^ 4      RR^ R7       \        \        P                  ! ^-4      RR^ R7       \        \        P                  ! R4      RR^ R7       \        \        P                  ! ^4      RR^ R7       \        \        P                  ! R	4      RR^ R7       \        \        P                  ! ^4      RR^ R7       \        \        P                  ! R
4      RR^ R7       \        \        P                  ! ^4      RR^ R7       \        \        P                  ! R4      RR^ R7       \        \        P                  ! R4      RR^ R7       \        \        P                  ! R4      RR^ R7       R# )r   r   rU  rR   r   rV  NrW  r   rX  iLrY  rZ  )r   r   r  r>   s   &r@   r[  TestTandg.test_specialpoints  s    a(#G!Db)3W1Ec*DwQGc*DwQGd+SwQGc*CgAFd+SwQGc*CgAFd+TaHc*DwQGd+SwQGrD   r  N)	r  r  r  r  r  rx  r[  r  r  r  s   @r@   rm  rm    s     7
;H HrD   rm  c                   V   a  ] tR tRt o R tR tR tR tR tR t	R t
R	 tR
 tRtV tR# )	TestEllipi  c                P    \         P                  ! R\        P                  4       R# )zRegression test for #912.r   N)r   r  rc   r7  r>   s   &r@   test_ellipj_nanTestEllip.test_ellipj_nan  s    sBFF#rD   c                    \         P                  ! R ^ 4      p\        R 4      \        R 4      RR .p\	        WR^ R7       R# )r   r   7QE=rR   N)r   r  r	   r
   r   )r?   elrels   &  r@   r  TestEllip.test_ellipj  s4    ^^C"3xCT*gA6rD   c                r   \         P                  ! R 4      p\        VRR^ R7       \        \         P                  ! R4      \
        P                  4       \        \         P                  ! R4      \        ^,          4       \        \         P                  ! \
        P                  4      R4       \        \         P                  ! \
        P                  4      \
        P                  4       \        \         P                  ! R4      \
        P                  4       \        \         P                  ! R	4      R4       R# )
r   g;{yэ?r  rR   r   r   gN?Nr\   r  )	r   r   r   r   r    rc   r   r   r7  )r?   elks   & r@   r  TestEllip.test_ellipk  s    nnR .W1EW%%c*BFF3W%%c*BqD1W%%bff-s3W%%bff-rvv6W%%b)2662s+-?@rD   c                   \         P                  ! \        ^,          R4      p\         P                  ! R4      p\	        WR^ R7       ^\        ,          ^,          p^-\        ,          ^,          p\        V4      ^,          p\         P                  ! WE4      p\	        VRR^ R7       \        \         P                  ! \        ^,          R4      \        ^,          4       \        \         P                  ! \        ^,          R4      \        P                  4       \        \         P                  ! \        ^,          \        P                  ) 4      R4       \        \         P                  ! \        ^,          \        P                  4      \        P                  4       \        \         P                  ! \        ^,          ^4      \        P                  4       \        \         P                  ! ^ R4      R4       \        \         P                  ! \        P                  R4      \        P                  4       \        \         P                  ! \        P                  ) R4      \        P                  ) 4       \        \         P                  ! \        P                  \        P                  4      \        P                  4       \        \         P                  ! \        P                  \        P                  ) 4      \        P                  4       \        \         P                  ! \        P                  ) \        P                  ) 4      \        P                  4       \        \         P                  ! \        P                  ) \        P                  4      \        P                  4       \        \         P                  ! \        P                  R4      \        P                  4       \        \         P                  ! \        P                  \        P                  4      \        P                  4       \	        \         P                  ! R	^4      R
RR7       \	        \         P                  ! RR4      R4       R# )rV   r   r   rR   gfoKh?r  r   r   r   gt?rW   r  rL   6<R!?gfON?Nr  )
r   r  r   r   r   r	   r   rc   r   r7  )r?   elkincr  alphaphirn  s   &     r@   r  TestEllip.test_ellipkinc  s{   ""2a4+nnS!':2c	eCiJM""3)
a@ 	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LrD   c                   R pRp\         P                  ! V^ 4      p. p\        ^
4       F+  pVP                  V4       \         P                  ! V^4      pK-  	  \        P
                  ! W$4      p\        V\         P                  ! VR4      ^4       \        P
                  ! V\        ,           V4      p\        V\         P                  ! VR4      ^4       R# )    ?Pag?gV^8j?g,j6Ƅ@N)	rc   	nextafterr}   appendr   r  r   	full_liker   r?   mbadr  rn  mvalsjr  f1s   &       r@   test_ellipkinc_2TestEllip.test_ellipkinc_2  s     # LLq!rALLOQ"A  c)&q",,q:L*MqQsRx/&r2<<<N+OQRSrD   c                R   \         P                  ! RR	^4      p\         P                  ! RR^4      p\         P                  ! R\        ^,          ^RR7      p\	        \
        P                  ! V^4      \         P                  ! \         P                  ! V4      4      RR7       \	        \
        P                  ! V^4      \         P                  ! \         P                  ! V4      4      RR7       \	        \
        P                  ! V^4      \         P                  ! \         P                  ! V4      4      RR7       \        \
        P                  ! \         P                  ^,          ^4      \         P                  4       \	        \
        P                  ! V) ^4      \         P                  ! \         P                  ! V) 4      4      RR7       \	        \
        P                  ! V) ^4      \         P                  ! \         P                  ! V) 4      4      RR7       \	        \
        P                  ! V) ^4      \         P                  ! \         P                  ! V) 4      4      RR7       \        \
        P                  ! \         P                  ) ^,          ^4      \         P                  4       R# )
rt   gFFg<rB  Fr  r  rL   Nii)rc   rv   r  r   r   r   r  arcsinhr   r   r   )r?   xlogxlinxlin2s   &   r@   test_ellipkinc_singular!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<rD   c                t   \         P                  ! R 4      p\        VRR^ R7       \        \         P                  ! R4      \        ^,          4       \        \         P                  ! R4      R4       \        \         P                  ! \
        P                  ) 4      \
        P                  4       \        \         P                  ! \
        P                  4      \
        P                  4       \        \         P                  ! ^4      \
        P                  4       \        \         P                  ! R4      R4       R# )	r   gl?r  rR   r   r   g?eg@Nr  )r   r   r   r   r   rc   r   r7  )r?   eles   & r@   r  TestEllip.test_ellipe  s    nnR /f1EW^^C("Q$/W^^C(#.W^^RVVG,bff5W^^BFF+RVV4W^^A&/s+-?@rD   c                   \         P                  ! \        ^,          R4      p\         P                  ! R4      p\	        WR^ R7       ^4\        ,          ^,          ^#\        ,          ^,          rC\        V4      ^,          p\         P                  ! WE4      p\	        VRR^ R7       \        \         P                  ! \        ^,          R4      \        ^,          4       \        \         P                  ! \        ^,          R4      R4       \        \         P                  ! \        ^,          \        P                  ) 4      \        P                  4       \        \         P                  ! \        ^,          \        P                  4      \        P                  4       \        \         P                  ! \        ^,          ^4      \        P                  4       \        \         P                  ! ^ R4      R4       \        \         P                  ! \        P                  R4      \        P                  4       \        \         P                  ! \        P                  ) R4      \        P                  ) 4       \        \         P                  ! \        P                  \        P                  ) 4      \        P                  4       \        \         P                  ! \        P                  ) \        P                  ) 4      \        P                  ) 4       \        \         P                  ! \        P                  \        P                  4      \        P                  4       \        \         P                  ! \        P                  ) \        P                  4      \        P                  4       \        \         P                  ! \        P                  R4      \        P                  4       \        \         P                  ! \        P                  \        P                  4      \        P                  4       \	        \         P                  ! R	R4      R
4       R# )rV   r   rU  rR   g'?r  r   r   r   r  gL@Nr  )
r   r  r   r   r   r	   r   rc   r   r7  )r?   eleincr  r  r  rn  s   &     r@   r  TestEllip.test_ellipeinc'  s^   ""2a4+nnS!':U3Yr"uSysJM""3)
a@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KrD   c                   R pRp\         P                  ! V^ 4      p. p\        ^
4       F+  pVP                  V4       \         P                  ! V^4      pK-  	  \        P
                  ! W$4      p\        V\         P                  ! VR4      ^4       \        P
                  ! V\        ,           V4      p\        V\         P                  ! VR4      ^4       R# )r  r  g%?gXo
@N)	rc   r  r}   r  r   r  r   r  r   r  s   &       r@   test_ellipeinc_2TestEllip.test_ellipeinc_2A  s     # LLq!rALLOQ"A  c)&q",,q:M*NPQRsRx/&r2<<<N+OQRSrD   r  N)r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  s   @r@   r}  r}    s>     $7
	AM:T =*	AL4T TrD   r}  c                      a  ] tR tRt o RtR tR tR tR tR t	]
P                  P                  RR	7      R
 4       tRtV tR# )TestEllipCarlsoniR  zTest 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           	        \        \        ^^4      ^4       \        ^\        4      R8X  g   Q h\        \        ^^ 4      4      '       g   Q h\        ^\	        ^\        4      4      R8X  g   Q h\        RR.RR.RR.RR.RR	.RR
..4      p\        \        P                  \        P                  ! R4      RR\        P                  ! R4      R,          R.4      p\        V4       F  w  r4\        \        V!  W#,          4       K   	  R# )ra   r   r  g      @r  rC  rv  N             r  r   y
c?
cy=B?CGֿy檠f?P9lb?)
r   r!   r   r   r<  r   rc   r   r   	enumerater?   r  expected_resultsr   arrs   &    r@   test_elliprcTestEllipCarlson.test_elliprcW  s    1q)q##%%%WQ]####q'!S/*c111sDkSkDkdmTlTl$ % !"%%"$&&+">"C"$&&+"3"D"F G  oFAGSM+;+>? &rD   c           
     `   \        \        ^^^4      ^4       \        \        ^ ^^4      R,          R4       \        ^^\        4      R8X  g   Q h\        P                  ! \        ^^^ 4      4      '       g   Q h\        P                  ! \        ^^\        ^ ^ 4      4      4      '       g   Q h\        P                  ! \        ^ ^\        ^ ^ 4      4      4      '       g   Q h\        \        ^^\        P                  ! \        P                  4      P                  ) R,          4      4      '       g   Q h\        \        ^^\        R^ 4      4      4      '       g   Q h\        . RO. RO. R	O. R
O. RO. RO.4      p\        . RO4      p\        V4       F  w  r4\        \        V!  W#,          4       K   	  R# )ra   rv  g`C+?r   r  Nr\   )r   r  r   r  rv  r1  rC  r  r  r   rC  r  )r               ?rC  )y             r  r  )gfe_?gi+"?gP$M?ytgFU?7?@yR<8*y{62?z)r   r"   r   rc   r  r<  r   r   r   tinyr   r  r  s   &    r@   test_elliprdTestEllipCarlson.test_elliprdk  sX   1a(!,1a(3.0FGq!S!S(((xx1a())))xx1gam45555xx1gam45555WQBHHRZZ$8$=$=#=#CDEEEEWQ72q>23333o%((,35 6 ! "D E  oFAGSM+;+>? &rD   c           
     p   \        \        ^^^4      ^4       \        \        ^ ^^4      R4       \        ^\        ^4      R8X  g   Q h\        P                  ! \        ^ ^^ 4      4      '       g   Q h\        \        ^^R4      4      '       g   Q h\        \        \        4      ^ ^4      R8X  g   Q h\        \        ^^\        \        ) ^4      4      4      '       g   Q h\        . RO. RO. RO. RO. R	O. R
O. RO.4      p\        . RO4      p\        V4       F  w  r4\        \        V!  W#,          4       K   	  R# )ra   gPO?r   Nr\   )r   r  r   )rC  r  r   )r   r   r   r  rC  r   r  r  )r  rC        ?      )geQO?ʞu5J?r  yp\y?kg2ΰ?gHwд?y|pF?-6Fj)	r   r#   r   rc   r  r   r<  r   r  r  s   &    r@   test_elliprf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5o(%,%(13 4 ! "F G  oFAGSM+;+>? &rD   c           	     (   \        \        ^^^4      ^4       \        \        ^ ^ ^4      R4       \        \        ^ ^ ^ 4      ^ 4       \        P                  ! \        ^\        ^4      4      '       g   Q h\        P                  ! \        \        \        4      ^^4      4      '       g   Q h\        . RO. RO. RO. R	O. R
O. RO.4      p\        \        P                  RRRRR.4      p\        V4       F  w  r4\        \        V!  W#,          4       K   	  R# )ra   r   gL+?g}^?gt?N)r   r  r  r  r  r  )r  r  rC  )r   g8d`?r1  y旮0?ʋW?yjN?^?)	r   r$   rc   r  r   r<  r   r   r  r  s   &    r@   test_elliprgTestEllipCarlson.test_elliprg  s    1a(!,1a(#.1a(!,xx3*++++xxa34444'%(,.(* + !"%%"1"2"D"D"1"3 4  oFAGSM+;+>? &rD   c                   \        \        ^^^^4      ^4       \        ^^\        ^4      R8X  g   Q h\        \        ^^ ^ ^ 4      4      '       g   Q h\        \        R^^^4      4      '       g   Q h\        ^^^\        4      R8X  g   Q h\	        . RO. RO. RO. RO. RO. R	O. R
O. RO. RO.	4      p\	        . RO4      p\        V4       F  w  r4\        \        V!  W#,          4       K   	  R# )ra   r   Nr\   )r   r   r  rv  )r  rv  r1  r   )r  rv  r1  r  )rC  r  r   r  )r              r   r  )rC  r  r   r  )r  r  r   y            ?)r  rv  r1  r  )r  rv  r1        )	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_elliprjTestEllipCarlson.test_elliprj  s    1a+Q/q!S!$+++WQ1a())))WRAq)****q!Q$+++**0-62<++- . ! "5 6  oFAGSM+;+>? &rD   zInsufficient accuracy on 32-bitr?  c                r    \        \        R RRR4      RRRR7       \        \        RR	R
R4      RRRR7       R# )g   gq>g   `W:g    HBg   @ۘ?gRy|>r  r  r  g   ,@g    x=g   @e:g   `ݽ>g(HR)AN)r   r%   r>   s   &r@   test_elliprj_hard"TestEllipCarlson.test_elliprj_hard  sN     5 6 3 13 ;"	0 	 2 5 4 57 <"	0rD   r  N)r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  s   @r@   r  r  R  sP     @(@0@2@*@6 [[?@0 A0rD   r  c                   <   a  ] tR tRt o RtR tR tR tR tRt	V t
R# )	"TestEllipLegendreCarlsonIdentitiesi  zTest 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                   \         P                  ! RR R4      V n        \        \        4      P
                  V n        RR\        R\         P                  ! V P                  ) 4      ,           RR4      ,          ,          V n        \         P                  ! V P                  .V P                  V P                  34      V n
        R# )r   r  r  r   Nr   r\   )rc   r   m_n1_1r   r   minmax_neglog2
very_neg_mconcatenate
ms_up_to_1r>   s   &r@   setup_class.TestEllipLegendreCarlsonIdentities.setup_class  s    iiR.V}((F2+-77DLL=+A,BCE+.%0 !0 0 ..4<<.*.//*.++*7 8rD   c                l    V P                   p\        \        V4      \        RRV,
          R4      4       R# )z%Test identity:
K(m) = R_F(0, 1-m, 1)
r   r   N)r  r   r   r#   rm  s   & r@   test_k)TestEllipLegendreCarlsonIdentities.test_k  s(     OOq	72r!tR#89rD   c                    \        \        4      P                  pVR\        R\        P
                  ! V4      ) 4      ,          ,          p\        \        V4      \        RVR4      4       R# )zDTest identity:
K(m) = R_F(0, 1-m, 1)
But with the ellipkm1 function
r  r   r   N)	r   r   r  r   rc   r  r   r    r#   )r?   r  m1s   &  r@   test_km1+TestEllipLegendreCarlsonIdentities.test_km1  sJ     V}!!BrBGGDM>222gb"b&9:rD   c           	     z    V P                   p\        \        V4      R\        RRV,
          R4      ,          4       R# )z)Test identity:
E(m) = 2*R_G(0, 1-k^2, 1)
r  r   r   N)r  r   r   r$   rm  s   & r@   test_e)TestEllipLegendreCarlsonIdentities.test_e   s-     OOq	2gb"Q$&;#;<rD   )r  r  r  r  N)r  r  r  r  r  r  r  r  r  r  r  r  s   @r@   r  r    s#     

8:	;= =rD   r  c                   r   a  ] tR tRt o R tR tRR ltR tR tR t	R t
R	 tR
 tR tR tR tR tRtV tR# )TestErfi  c                P    \         P                  ! R 4      p\        VRR^ R7       R# )r  g);T?r  rR   N)r   r!  r   )r?   ers   & r@   r"  TestErf.test_erf
  s    [[LvA>rD   c                h    \         P                  ! ^4      p\        . RO4      p\        WR^ R7       R# )r   r  rR   N)yTcJ5?=W?yo@n@y'ʷ@g	@y"[

@,y]+@yld&@-;'j'>@)r   	erf_zerosr   r   )r?   erzerzrs   &  r@   test_erf_zerosTestErf.test_erf_zeros  s/    " - .
 	Q7rD   c           
        \         P                  P                  R 4      pRpVP                  RV4      ^VP	                  ^ ^V4      ,          ^,
          ,          pVP                  RV4      ^VP	                  ^ ^V4      ,          ^,
          ,          pVRV,          ,           p	\         P
                  ! RR7      ;_uu_ 4        V! V	4      p
V! V4      P                  p\         P                  ! V
4      pW,          p
W,          p	\         P                  ! V4      pW,          pW|,          p\        WWVR7       \        WWsVR7       RRR4       R#   + '       g   i     R# ; i)rN   r  g{Gz?rC  r^  allr  N)	rc   ri   rj   paretorandintr  r   isfiniter3   )r?   r  
other_funcrM   rS   rp   rl   r   rH  rI  r  w_realmasks   &&&&&        r@   _check_variant_funcTestErf._check_variant_func  s   ii##D)JJtQ1S[[Aq%9#9A#=>JJtQ1S[[Aq%9#9A#=>1H[[X&&1A]''F;;q>DAA;;v&D\FA dq$?dAtD '&&&s   BEE	c                N    V P                  \        P                  R  RRR7       R# )c                 <    ^\         P                  ! V 4      ,
          # r{   r<   r!  rI  s   &r@   <lambda>.TestErf.test_erfc_consistent.<locals>.<lambda>1  s    a&**Q-'rD   r   r  r  N)r  r<   r)  r>   s   &r@   test_erfc_consistentTestErf.test_erfc_consistent.  s%      KK'	 	! 	rD   c                L    V P                  \        P                  R  RR7       R# )c                 p    \         P                  ! W ,          4      \        P                  ! V 4      ,          # r5  )rc   r   r<   r)  r  s   &r@   r  /TestErf.test_erfcx_consistent.<locals>.<lambda>9  s    bffQSkFKKN2rD   r   rL   N)r  r<   erfcxr>   s   &r@   test_erfcx_consistentTestErf.test_erfcx_consistent6  s"      LL2 	! 	rD   c                L    V P                  \        P                  R  RR7       R# )c                 J    R\         P                  ! R V ,          4      ,          # )rC  r  r  r  s   &r@   r  .TestErf.test_erfi_consistent.<locals>.<lambda>@  s    cFJJr!t,,rD   r   rL   N)r  r<   erfir>   s   &r@   test_erfi_consistentTestErf.test_erfi_consistent=  s"      KK, 	! 	rD   c                L    V P                  \        P                  R  RR7       R# )c                     \        \        4      ^,          \        P                  ! V ) V ,          4      ,          \        P
                  ! V 4      ,          # )rV   )r   r   rc   r   r<   r  r  s   &r@   r  /TestErf.test_dawsn_consistent.<locals>.<lambda>G  s,    d2hqj2661"Q$</&++a.@rD   r   rL   N)r  r<   r   r>   s   &r@   test_dawsn_consistentTestErf.test_dawsn_consistentD  s"      LL@ 	! 	rD   c                    \         P                  \         P                  ) \         P                  .p\         P                  R^.p\        \        P
                  ! V4      VRR7       R# )ra   r   rL   Nr\   )rc   r7  r   r   r   r!  r?   r  rJ  s   &  r@   test_erf_nan_infTestErf.test_erf_nan_infK  s@    (FFB?D)8%@rD   c                    \         P                  \         P                  ) \         P                  .p\         P                  ^^ .p\        \        P
                  ! V4      VRR7       R# )rV   r   rL   N)rc   r7  r   r   r   r)  r  s   &  r@   test_erfc_nan_infTestErf.test_erfc_nan_infP  s@    (FFAq>T*H5ArD   c                    \         P                  \         P                  ) \         P                  .p\         P                  \         P                  ^ .p\        \        P
                  ! V4      VRR7       R# )r   r   rL   N)rc   r7  r   r   r   r  r  s   &  r@   test_erfcx_nan_infTestErf.test_erfcx_nan_infU  sE    (FFBFFA&d+XEBrD   c                
   \         P                  \         P                  ) \         P                  .p\         P                  \         P                  ) \         P                  .p\        \        P
                  ! V4      VR R7       R# rs  )rc   r7  r   r   r   r  r  s   &  r@   test_erfi_nan_infTestErf.test_erfi_nan_infZ  sK    (FFRVVGRVV,T*H5ArD   c                    \         P                  \         P                  ) \         P                  .p\         P                  RR .p\        \        P
                  ! V4      VRR7       R# )r   r   rL   Nr  )rc   r7  r   r   r   r   r  s   &  r@   test_dawsn_nan_infTestErf.test_dawsn_nan_inf_  sA    (FFD#&d+XEBrD   c                   \         P                  \         P                  ) \         P                  .p\         P                  \         P                  R ,          ,           RR.p\        \        P
                  ! V4      VRR7       R# )rC  r;  r   rL   Ny               )rc   r7  r   r   r   r  r  s   &  r@   test_wofz_nan_infTestErf.test_wofz_nan_infd  sN    (FFRVVc\)66:T*H5ArD   r  Nr   )r  r  r  r  r"  r  r  r  r  r  r  r  r  r  r  r"  r%  r  r  r  s   @r@   r  r    sS     ?8E.A
B
C
B
C
B BrD   r  c                   &   a  ] tR tRt o R tRtV tR# )	TestEulerij  c                   \         P                  ! ^ 4      p\         P                  ! ^4      p\         P                  ! ^4      p\        V^.RR7       \        V^^ .RR7       \        V. R
ORR7       \         P                  ! ^4      p. ROp\        RR4      p\	        ^ ^4       FK  pV^,          '       d   \        WW,          4      ) V^V,          &   K0  \        WW,          4      V^V,          &   KM  	  \        P                  ! RR7      ;_uu_ 4        \        WF,
          V,          4      p\        V4      p	RRR4       \        X	RR^ R	7       R#   + '       g   i     L!; i)r   r   rL   dr^  r  Nr   rU  rR   )ra   r   r\   )ra   ra   r   =   ii  iY  i=) il   Q~ l   10[l   $8gC
 l   2l   v}Ju: )r   )
r   eulerr   r   r}   r~   rc   r  r   r   )
r?   eu0eu1eu2eu24	mathworldcorrectrm   errerrmaxs
   &         r@   
test_eulerTestEuler.test_eulerk  s   mmAmmAmmAaSu-aV%0Ze4}}R +	 c"qAA %il 33!$Y\2!	 
 [[X&&dlG34CXF ' 	': '&s   $EE	r  N)r  r  r  r  r6  r  r  r  s   @r@   r)  r)  j  s     ; ;rD   r)  c                   D   a  ] tR tRt o R tR tR tR tR tR t	Rt
V tR	# )
TestExpi  c                L    \         P                  ! ^4      p^p\        W4       R# r  )r   r2  r   r?   exexrls   &  r@   r3  TestExp.test_exp2  s    \\!_RrD   c                R    \         P                  ! R 4      pRp\        WR^ R7       R# )r  r  rR   Ng;f@)r   r2  r   r?   exmexmrls   &  r@   test_exp2moreTestExp.test_exp2more  s!    ll3a8rD   c                R    \         P                  ! ^4      p^dp\        WR^ R7       R# )rV   r   rR   Nr   r-  r   r;  s   &  r@   r.  TestExp.test_exp10  s!    ]]1t!4rD   c                R    \         P                  ! R 4      pRp\        WR^ R7       R# )r  r  rR   NgYs@rF  r@  s   &  r@   test_exp10moreTestExp.test_exp10more  s!    mmC a8rD   c                   \         P                  ! ^4      \         P                  ! ^4      \         P                  ! ^4      3p\        ^4      ^,
          \        ^4      ^,
          \        ^4      ^,
          3p\        WR^ R7       R# )rV   r  rR   Nr   r6  r   r   r;  s   &  r@   r8  TestExp.test_expm1  sY    mmAa 0'--2BCA
CFQJA
3vA6rD   c                   \         P                  ! ^4      \         P                  ! R4      \         P                  ! R4      3p\        ^4      ^,
          \        R4      ^,
          \        R4      ^,
          3p\        WR^ R7       R# )rV    @皙@r  rR   NrL  )r?   ex1exrl1s   &  r@   test_expm1moreTestExp.test_expm1more  sY    }}Qs!3W]]35GHQ!SX\3s8a<8a8rD   r  N)r  r  r  r  r3  rC  r.  rI  r8  rS  r  r  r  s   @r@   r9  r9    s(     
9
5
9
7
9 9rD   r9  c                  a V3R lpR p\        V 4      \        V4      J g    Q R\        V 4       R\        V4       24       h\        V \        P                  4      '       df   V P                  VP                  8X  g   Q hV! W4       \        V P                  4       VP                  4       4       F  w  rV\        WVSR7       K  	  R# \        P                  ! V 4      '       dU   \        P                  ! V4      '       d9   \        \        V 4      R4      '       d   V! V 4      ;'       d    V! V4       R#  R# V! W4       R# )a  
Sharper assertion function that is stricter about matching types, not just values

This is useful/necessary in some cases:
  * dtypes for arrays that have the same _values_ (e.g. element 1.0 vs 1)
  * distinguishing complex from real NaN
  * result types for scalars

We still want to be able to allow a relative tolerance for the values though.
The main logic comparison logic is handled by the xp_assert_* functions.
c                 D   < Sf   \        W4       R # \        WSR7       R # )NrL   )r-   r,   )r   rH  rM   s   &&r@   assert_func(assert_really_equal.<locals>.assert_func  s    !%?1d3SrD   c                     \         P                  ! V P                  4      '       d'   \         P                  ! V P                  4      '       g   Q hR # r5  )rc   r   r   rG  r   s   &r@   assert_complex_nan/assert_really_equal.<locals>.assert_complex_nan  s0    xxBHHQVV$4$444$4rD   ztypes not equal: z, rL   rc  N)
r  
isinstancerc   ndarrayr  ziprh   assert_really_equalr   r1   )r   rH  rM   rW  r[  elem_xelem_ys   &&f    r@   r`  r`    s    T5 7d1gG!247)2d1gYGG !RZZ  ww!''!!!A!!'')QWWY7NFT: 8	!!d1gs)C)C177"4Q"77 	ArD   c                     a  ] tR tRt o R t]P                  P                  R. R@O4      R 4       t]P                  P                  R	. RBO4      ]P                  P                  R
RR.4      R 4       4       t	]P                  P                  R
RR.4      R 4       t
]P                  P                  R	. RCO4      R 4       t]P                  P                  R^ R.4      ]P                  P                  R. RBO4      R 4       4       t]P                  P                  RRR.4      ]P                  P                  RRR.4      ]P                  P                  R	]P                  ]P                  ! R4      ]P                  ]P                  R,          ,           ]P                   ! R4      ]P"                  ]P"                  R,           ]P"                  ) ]P"                  ) R,           R]P$                  ! R4      .
. RDOR7      ]P                  P                  R]P(                  ]P*                  ]P,                  .4      R 4       4       4       4       t]P                  P                  R^ R]P                  R.4      R 4       t]P                  P                  R ]! ^^4      4      ]P                  P                  R
RR.4      R! 4       4       t]P                  P                  R
RR.4      ]P                  P                  R"R]]P8                  ]P:                  ]P<                  ]P>                  ]P@                  ]PB                  ]PD                  ]PF                  .
4      ]P                  P                  R#]! ^ ^4      4      R$ 4       4       4       t$]P                  P                  R
RR.4      ]P                  P                  R%]! ^^4      4      R& 4       4       t%]P                  PM                  ^4      ]P                  P                  R"]P@                  ]PB                  ]PD                  ]PF                  .4      ]P                  P                  R. R@O4      R' 4       4       4       t']P                  P                  R	]! ^^^
4      4      R( 4       t(]P                  P                  R	])! ]! ^ ^4      4      ])! ]! ^^^
4      4      ,           4      R) 4       t*R* t+R+ t,]P                  P                  R"]P>                  ]P                  ]P                   ]-.4      ]P                  P                  RRR.4      ]P                  P                  R
RR.4      ]P                  P                  R#]! ^ ^4      4      ]P                  P                  R,. ^.R.]P                  .]P                  ]P                  R,          ,           .]P                  ^... REOR7      R- 4       4       4       4       4       t.]P                  P                  RRR.4      ]P                  P                  R
RR.4      ]P                  P                  R	^RRF]P                  ]P                  ]P                  R,          ,           R.. RGOR7      R. 4       4       4       t/]P                  P                  R	]! ^^^4      4      R/ 4       t0]P                  P                  R	])! ]! ^ ^4      4      ])! ]! ^^^4      4      ,           4      R0 4       t1R1 t2]P                  P                  R"]P>                  ]P                  ]P                   ]-.4      ]P                  P                  RRR.4      ]P                  P                  R
RR.4      ]P                  P                  R#]! ^ ^4      4      ]P                  P                  R,. ^.R.]P                  .]P                  ]P                  R,          ,           .]P                  ^... REOR7      R2 4       4       4       4       4       t3]P                  P                  RRR.4      ]P                  P                  R
RR.4      ]P                  P                  R	^RRF]P                  ]P                  ]P                  R,          ,           R.. RGOR7      R3 4       4       4       t4]P                  P                  R4]! ^^4      4      ]P                  P                  R	]! ^^RH4      4      R5 4       4       t5]P                  P                  R4])! ]! ^^4      4      ^
^.,           4      ]P                  P                  R	])! ]! ^ ^4      4      ])! ]! ^^d^4      4      ,           4      R6 4       4       t6R7 t7]P                  P                  R"]P>                  ]P                  ]P                   ]-.4      ]P                  P                  RRR.4      ]P                  P                  R
RR.4      ]P                  P                  R#]! ^ ^4      4      ]P                  P                  R,. ^.R.]P                  .]P                  ]P                  R,          ,           .]P                  ^... REOR7      R8 4       4       4       4       4       t8]P                  P                  RRR.4      ]P                  P                  R
RR.4      ]P                  P                  R4]! ^^4      4      ]P                  P                  R	^RRF]P                  ]P                  ]P                  R,          ,           R.. RGOR7      R9 4       4       4       4       t9]P                  P                  RRR.4      ]P                  P                  R. R@O4      ]P                  P                  R4RARI^ R:RR]P                  .4      R; 4       4       4       t:]P                  P                  RRR.4      ]P                  P                  R. R@O4      ]P                  P                  R4R]P$                  ! R4      .RR.R7      R< 4       4       4       t;]P                  P                  R. R@O4      ]P                  P                  R4]! ^^4      4      R= 4       4       t<R> t=R?t>V t?R# )JTestFactorialFunctionsi  c                   V'       d   \         P                  ! WR R7      # VR8X  d   \        P                  ! W4      M^p\        P                  ! W!V,
          V,          4      \         P
                  ! W,          ^,           4      ,          \         P                  ! WR,          ^,           4      ,          pV\        P                  ! V^4      ,          # )Trm   r  zero)r   
factorialkrc   modpowerrq  rq  maximum)r?   rl   rm   r  extendrr  s   &&&&&  r@   factorialk_ref%TestFactorialFunctions.factorialk_ref  s    %%aD99"f,BFF1L!xxE19%acAg(>>PQPSVWPWAXXbjjA&&&rD   zexact,extendTrg  Fr<  c                B   R VRV/p\         P                  ! \        P                  ! R/ VB 4      '       g   Q h\         P                  ! \        P                  ! R/ VB 4      '       g   Q h\         P                  ! \        P
                  ! RR^/VB 4      '       g   Q hR# )r  rl  rm   Nr{   )rc   isscalarr   	factorial
factorial2rh  )r?   r  rl  kws   &&& r@   "test_factorialx_scalar_return_type9TestFactorialFunctions.test_factorialx_scalar_return_type  s     uh/{{7,,5"56666{{7--6267777{{7--;1;;<<<<rD   rl   r  c                    R V/p\        \        P                  ! V3/ VB ^ 4       \        \        P                  ! V3/ VB ^ 4       \        \        P                  ! V3R^/VB ^ 4       R# )r  rm   N)r   r   rr  rs  rh  )r?   r  rl   rt  s   &&& r@   $test_factorialx_negative_extend_zero;TestFactorialFunctions.test_factorialx_negative_extend_zero  sa     uW&&q/B/3W''0R0!4W''5Q5"5q9rD   c                V   R V/pRp. ROp\         P                  ! . ROV'       d   \        M\         P                  R7      p\	        \
        P                  ! V3/ VB WSR7       \	        \
        P                  ! V3/ VB WSR7       \	        \
        P                  ! V3R^/VB WSR7       R# )r  r   r  rL   rm   N)r~  r   ra   )r   r   ra   ra   )	rc   r   
native_intr   r`  r   rr  rs  rh  )r?   r  rt  rM   rl   rJ  s   &&    r@   *test_factorialx_negative_extend_zero_arrayATestFactorialFunctions.test_factorialx_negative_extend_zero_array  s    u88Le
TG--a626LG..q7B7MG..q<A<<hRrD   r  c                f   R R/pR
RRRRR/pR
RRRRR/pR
RRRRR/pRp\        \        P                  ! V3/ VB W1,          VR7       \        \        P                  ! V3/ VB WA,          VR7       \        \        P                  ! V3R^/VB WQ,          VR7       \        \        P                  ! V.3/ VB ^ ,          W1,          VR7       \        \        P                  ! V.3/ VB ^ ,          WA,          VR7       \        \        P                  ! V.3R^/VB ^ ,          WQ,          VR7       R	# )rl  r<  g:\Oag@go	08G)?gNy?g=u? [n<rL   rm   N皙gRc/a_%皙ffffff
g*BZ'goNb]gMxcQg7K)r   r   rr  rs  rh  )r?   rl   rt  exp_1exp_2exp_krM   s   &&     r@   'test_factorialx_negative_extend_complex>TestFactorialFunctions.test_factorialx_negative_extend_complex  s5   	"-..0 --.0 .--/ ))!2r2EH4H**133UXDI**188R8%(N))1#44Q7M**A35"5a8%(N**A3:!:r:1=uxdSrD   rG  r;  n_outerc                d   a R R/oV3R lpV! W,           4       V! RV,          V,           4       R# )rl  r<  c                 z  < \        \        V 4      R 4      p\        P                  ! R4      pV'       d   \        P                  ! R4      M\        P                  ! R4      p\        \        P                  ! V 3/ SB V4       \        \        P                  ! V ^,          3/ SB V4       \        \        P                  ! V ^,          3R^/SB V4       Rp\        \        P                  ! W,          3RV/SB V4       \        \        P                  ! V .3/ SB ^ ,          V4       \        \        P                  ! V ^,          .3/ SB ^ ,          V4       \        \        P                  ! V ^,          .3R^/SB ^ ,          V4       \        \        P                  ! W,          .3RV/SB ^ ,          V4       R# )rc  nan+nanjr7  rm   Ny      ?       )
r1   r  rc   
complex128r   r`  r   rr  rs  rh  )rl   
complexifycomplex_nanr   rc  rt  s   &    r@   _checkTTestFactorialFunctions.test_factorialx_negative_extend_complex_poles.<locals>._check	  sU   %d1gs3J--
3K/9"--
+rzz%?PC 1 1! :r :C@ 2 21q5 ?B ?E 2 21q5 DA D DcJA 2 215 DA D DkR 1 11# < <Q ?E 2 2AE7 Ab A! DcJ 2 2AE7 Fa F2 Fq I3O 2 2AE7 Fa F2 Fq I;WrD   i Nr  )r?   r  rG  r  rt  s   &&& @r@   -test_factorialx_negative_extend_complex_polesDTestFactorialFunctions.test_factorialx_negative_extend_complex_poles 	  s3     	"	X( 	w~w 4'(rD   boxedrl  r7  rC  r  NnatNaT)ids
factorialxc                x   R RRV/pV\         P                  8X  d   ^VR&   V'       d   . ROMRRR\        R4      .pV\         P                  8X  d   RMRR.p\	        \        V4      V4      '       gD   \
        P                  ! \        RR	7      ;_uu_ 4        T! V'       d   V.MT3/ VB  RRR4       R# \	        \        V4      V4      '       dK   VR
8w  dD   \
        P                  ! \        RR	7      ;_uu_ 4        T! V'       d   V.MT3/ VB  RRR4       R# VR
8H  ;'       d    \	        \        V4      R4      pV'       d   \        P                  ! R4      M\        P                  ! R4      p	\	        \        V4      R4      '       d[   \        P                  ! V4      '       d?   \        P                  ! VR8X  d   ^ MR4      p
V^ 8  d   \        P                  ! R4      MT
p	V'       d   V! V.3/ VB ^ ,          MV! V3/ VB p\        W4       R#   + '       g   i     R# ; i  + '       g   i     R# ; i)r  Frl  rm   r   r  rc  NUnsupported data type.*r  r<  In order to use non-integer.*r  r7  rg  r   r   r  rc  )r   rh  r  rr  r1   r  r   r  rc   r  r   r  r`  )r?   r  rl   rl  r  rt  permissible_typestypes_need_complex_extr  rJ  neg_inf_resultr  s   &&&&&       r@   test_factorialx_inf_nan.TestFactorialFunctions.test_factorialx_inf_nan	  s   & uh/+++BsG 05O3S$t*:U(2g6G6G(GcSVZDG%677z1JKK%A3Q5"5 LK$q'#9::v?Rz1PQQ%A3Q5"5 RQ !I-MM<Q3MJ 5?r}}Z0BJJuDUHDGS))bhhqkk!#&F2BA!O12Q2::e,^16Z*r*1-Jq<OB<OF1% LKK RQQs   H;H(H%	(H9	stringc           	        \         P                  ! \        R R7      ;_uu_ 4        \        P                  ! ^VR7       RRR4       \         P                  ! \        R R7      ;_uu_ 4        \        P
                  ! ^VR7       RRR4       \         P                  ! \        R R7      ;_uu_ 4        \        P                  ! ^^RVR7       RRR4       R#   + '       g   i     L; i  + '       g   i     Ll; i  + '       g   i     R# ; i)zargument `extend` must be.*r  )rl  NT)rm   r  rl  )r  r   r  r   rr  rs  rh  )r?   rl  s   &&r@   test_factorialx_raises_extend4TestFactorialFunctions.test_factorialx_raises_extendN	  s    ]]:-JKKa/ L]]:-JKKq0 L]]:-JKKqAT&A LK	 LKKKKKKs#   C*C'/C:C$	'C7	:D	levelsc                  aa RV3R lloVV3R lp\         P                  ! S! ^^.SR7      4      p^^x\        P                  ! ^4      .^^\        P
                  ! ^RR7      .^^
\        P                  ! ^^RR7      ./pV! \        P                  ! WBR7      V^,          4       V! \        P
                  ! WBR7      V^,          4       V! \        P                  ! V^VR7      V^,          4       R# )ra   c                8   < V^ 8X  d   V # S! W .V^,
          4      # )zi
Double x and nest it k times

For example:
>>> _nest_me([3, 4], 2)
[[[3, 4], [3, 4]], [[3, 4], [3, 4]]]
r  r   rm   _nest_mes   &&r@   r  DTestFactorialFunctions.test_factorialx_array_shape.<locals>._nest_meZ	  s$     Av!,,rD   c                    < \         P                  ! S! VSR 7      \        R7      p\        V P	                  \         P
                  4      VP                  ! \         P
                  4      4       R# )rm   r  N)rc   r   objectr   r   r   )r  nucleusr   r  r  s   && r@   r  BTestFactorialFunctions.test_factorialx_array_shape.<locals>._checkg	  s@    ((8Gv6fEC CJJrzz2CJJrzz4JKrD   r  Tr  Nr{   )rc   r   mathrr  r   rs  rh  )r?   r  r  r  rl   exp_nucleusr  s   &f&   @r@   test_factorialx_array_shape2TestFactorialFunctions.test_factorialx_array_shapeW	  s    	-	L HHXq"g013r 232w11"DAB2w11"atDEG
 	w  0+a.Aw!!!1;q>Bw!!!Qe4k!nErD   r  dimc                   \         P                  ! ^W!R7      p^^x^^^^
/p\        \        P                  ! WCR7      \         P                  ! V^,          VR7      4       \        \        P
                  ! WCR7      \         P                  ! V^,          VR7      4       \        \        P                  ! V^VR7      \         P                  ! V^,          VR7      4       R# )r   )r  ndminr  r  N)rc   r   r   r   rr  rs  rh  )r?   r  r  r  rl   r   s   &&&&  r@   test_factorialx_array_dimension6TestFactorialFunctions.test_factorialx_array_dimensionw	  s     HHQe/#q"a$))!9Qs3	5**1:Qs3	5**1au=Qs3	5rD   levelc                  a RV3R lloS! ^.V^,
          R7      p^^x^^^^
/pV'       d   \         M\        pV! \        P                  ! W2R7      \        P
                  ! V^,          VR7      4       V! \        P                  ! W2R7      \        P
                  ! V^,          VR7      4       V! \        P                  ! V^VR7      \        P
                  ! V^,          VR7      4       R# )ra   c                 8   < V^ 8X  d   V # S! V .V^,
          4      # r'  r  r  s   &&r@   r  CTestFactorialFunctions.test_factorialx_array_like.<locals>._nest_me	  s"    AvQqS))rD   r  r  r  Nr{   )r   r   r   rr  rc   r   rs  rh  )r?   r  r  rl   r  rW  r  s   &&&   @r@   test_factorialx_array_like1TestFactorialFunctions.test_factorialx_array_like	  s    	* aSE!G$#q"a,,1(G%%a5HH[^59	;G&&q6HH[^59	;G&&q!59HH[^59	;rD   c                  aa R VRV/oV'       d   \         M\        oVV3R lpVV3R lpV! V! ^ 4      4       V! V! ^4      4       V! \        P                  ! ^ VR7      4       V! \        P                  ! ^ ^.VR7      4       V! \        P                  ! V4      P
                  4      pV\        P                  8X  d   V'       d   R# \        P                  P                  \        P                  4      R8  dc   V! V! V^,
          4      4       V! \        P                  ! V^,
          VR7      4       V! \        P                  ! V^,
          .VR7      4       R# R# V\        P                  \        P                  39   g	   V'       ge   V! V^,
          4       V! \        P                  ! V^,
          VR7      4       V! \        P                  ! V^,
          V^,
          .VR7      4       R# R# )r  rl  c                   < \        V \        P                  4      '       d    V P                  \        P                  4      M\        P                  ! V 4      pS! \
        P                  ! V 3/ SB \
        P                  ! V3/ SB 4       S! \
        P                  ! V 3/ SB \
        P                  ! V3/ SB 4       S! \
        P                  ! V 3R ^/SB \
        P                  ! V3R ^/SB 4       R# )rm   N)	r]  rc   r^  r   r  r   rr  rs  rh  )rl   n_refrW  rt  s   & r@   r  ;TestFactorialFunctions.test_factorialx_uint.<locals>._check	  s    *4Q

*C*CAHHRXX&RSE))!2r2G4E4Ee4Rr4RS**133W5G5G5TQS5TU**188R8**5<A<<>rD   c                 z  < \         P                  ! 4       ;_uu_ 4        \         P                  ! R \        4       V ^ ,          pRRR4       S! \        P
                  ! V 3/ SB X4       S! \        P                  ! V 3/ SB V4       S! \        P                  ! V 3R^/SB V4       R#   + '       g   i     Ln; i)r^  Nrm   )r_  r`  simplefilterrb  r   rr  rs  rh  )rl   
shaped_infrW  rt  s   & r@   
_check_inf?TestFactorialFunctions.test_factorialx_uint.<locals>._check_inf	  s    ((**%%h?U
 + ))!2r2J?**133Z@**188R8*E +*s   %B**B:	r  z2.0.0N)r   r   rc   r   r  r   uint64libNumpyVersion__version__uint8uint16)	r?   r  rl  r  r  r  r  rW  rt  s	   &&&&   @@r@   test_factorialx_uint+TestFactorialFunctions.test_factorialx_uint	  sX    uh/,1(	>	F 	uQxuQxrxx'(rxxAe,-"((5/%%&BII$$R^^4?51:&288AaCu56288QqSE78	 @
 rxx++5 1Q3K288AaCu-.288QqS!A#Je45 49rD   c           	     \   \         P                  R 8X  d   RMRp\        \        \        P
                  ! VRR7      4      \        P
                  ! VRR7      VR7       \        \        P
                  ! V.RR7      P                  \        4      \        P
                  ! V.RR7      VR7       R# )r6   t0=r   Tr  FrL   N)sysplatformr   r~   r   rr  r   r?   rl   rM   s   && r@   test_factorial_accuracy.TestFactorialFunctions.test_factorial_accuracy	  s~    
 /uUg//>?))!59	F))1#T:AA%H))1#U;$	HrD   c                Z   \         P                  ! V4      p\        V\        P                  ! VR R7      4       \        V\        P                  ! V.R R7      ^ ,          4       \        P
                  R8X  d   RMRp\        V4      p\        V\        P                  ! VRR7      VR7       \        V\        P                  ! V.RR7      ^ ,          VR7       RRRR	/p\        V\        P                  ! V3/ VB VR7       \        V\        P                  ! V.3/ VB ^ ,          VR7       R
# )Tr  r6   +6=r   FrL   r  rl  r<  N)r  rr  r   r   r  r  r~   r   r?   rl   r3  rM   rt  s   &&   r@   test_factorial_int_reference3TestFactorialFunctions.test_factorial_int_reference	  s     ..#7G$5$5at$DE7G$5$5qc$Fq$IJ/uU.!2!21E!BN!2!2A3e!DQ!GdS uh	2!2!21!;!;$G!2!2A3!="!=a!@tLrD   c                    R  pV! RR4       V! RR4       V! RR4       V! RR4       V! R	R
4       V! RR4       V! RR4       V! RR4       V! RR4       R# )c                 0   \         P                  R 8X  d   RMRp\        \        P                  ! V 4      WR7       \        \        P                  ! V .4      ^ ,          WR7       \
        P                  ! \        RR7      ;_uu_ 4        \        P                  ! V RR7       RRR4       \
        P                  ! \        RR7      ;_uu_ 4        \        P                  ! V .RR7       RRR4       R#   + '       g   i     LX; i  + '       g   i     R# ; i)	r6   r  r   rL   `exact=True` only supports.*r  Tr  N)r  r  r   r   rr  r  r   r  )rl   rJ  rM   s   && r@   r  ETestFactorialFunctions.test_factorial_float_reference.<locals>._check	  s    LLG35DG--a0(FG--qc215xKz1OPP!!!40 Qz1OPP!!1#T2 QP QPPPPs   C1D1D	D	r  gr?g(\?gc?g333333@g4s@g333333&@gމOAfffff@@g	²Gg     K@gC$JOglS@g }WgX@gX>%`g\CSe@gG=Nr  r?   r  s   & r@   test_factorial_float_reference5TestFactorialFunctions.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8rD   c                p    R  pV! RRR7       V! RRR7       V! RR	R7       V! R
RR7       V! RRR7       R# )c                     \         P                  R 8X  d   RMRpRRRR/p\        \        P                  ! V 3/ VB WR7       \        \        P                  ! V .3/ VB ^ ,          WR7       R# )	r6   r  V瞯<r  Frl  r<  rL   N)r  r  r   r   rr  rl   rJ  rM   rt  s   &&  r@   r  GTestFactorialFunctions.test_factorial_complex_reference.<locals>._check
  s]    LLG35D5(I6BG--a626LG--qc8R8;XQrD   gkﴑ[?rJ  gK	!@Nr                ykﴑ[?               @       @yB}ۿ?gH.y      -C6?yI{xQr  r  s   & r@    test_factorial_complex_reference7TestFactorialFunctions.test_factorial_complex_reference 
  sA    	R 	t34y#=>v QRw!56|&STrD   contentc                &   V\         J d#   \        '       d   \        P                  ! R 4       V\        P
                  J dQ   \        ;QJ d    R V 4       F  '       g   K   RM	  RM! R V 4       4      '       d   \        P                  ! R4       V\        P                  8X  dQ   \        ;QJ d    R V 4       F  '       g   K   RM	  RM! R V 4       4      '       d   \        P                  ! R4       RVRV/pV^ 8  g   \        V4      ^8w  d   TMV^ ,          p\        P                  ! WVR7      pR	pVR
8X  dO   V'       dG   \        P                  ! \        RR7      ;_uu_ 4        \        P                  ! V3/ VB  R	R	R	4       EMK\        VP                  . RO4      '       gF   \        P                  ! \        RR7      ;_uu_ 4        \        P                  ! V3/ VB  R	R	R	4       M\        VP                  R4      '       dM   VR
8w  dF   \        P                  ! \        RR7      ;_uu_ 4        \        P                  ! V3/ VB  R	R	R	4       MV'       db   \        VP                  R4      '       gF   \        P                  ! \        RR7      ;_uu_ 4        \        P                  ! V3/ VB  R	R	R	4       M\        P                  ! V3/ VB pVe   VP!                  4        U	u. uF  p	\        P                  ! V	3/ VB NK  	  p
p	\        V
4      ^8X  d
   V
^ ,          MT
p
VP"                  '       dZ   VR
8H  ;'       d    \        VP                  R4      pV'       d   \        P$                  MV'       d   \&        M\        P                  p\        P                  ! WVR7      p\)        WRR7       R	# R	#   + '       g   i     L; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL3; iu up	i )z+object arrays unsupported in array API modec              3   z   "   T F1  p\         P                  ! V4      ;'       g    V\        V4      8g  x  K3  	  R # 5ir5  rc   r   r|   .0r   s   & r@   	<genexpr>KTestFactorialFunctions.test_factorial_array_corner_cases.<locals>.<genexpr>
  +     $S7aRXXa[%A%AQ#a&[%A7   !;;TFimpossible combinationc              3   L   "   T F  p\        \        V4      R 4      x  K  	  R# 5irc  Nr1   r  r  s   & r@   r  r  !
       &S7a|DGS'A'A7   "$r  rl  r  r  Nr<  Incompatible options:.*r  r   rc  r  r  r  r   rL   r  )r  r.   r  skiprc   r  anyr   lenr   r   r  r   rr  r1   r  rh   r  r  r|  r`  r?   r  r  r  rl  r  rt  rl   r  r   rv  cxrJ  s   &&&&&&       r@   !test_factorial_array_corner_cases8TestFactorialFunctions.test_factorial_array_corner_cases
  s    F?KKEFBHH$S7$S$S7$S!S!SKK01BJJ33&S7&S333&S7&S#S#SKK01uh/!AgW):'HHWu5Y5z1JKK!!!*r* LKagg77z1JKK!!!*r* LK!''3''Fi,?z1PQQ!!!*r* RQ<55z1OPP!!!*r* QP &&q/B/F78wwyAy!7$$Q-"-yCAHM#a&sC vvv	)II|AGGS/I)+*2::xxe<Hu=  LK LKK RQQ QPP Bs6   +N?O7O& O:. P?O	O#	&O7	:P	c           	        R VRV/pVR8X  dO   V'       dG   \         P                  ! \        RR7      ;_uu_ 4        \        P                  ! V3/ VB  RRR4       R# \        \        V4      RRR\        R4      .4      '       gG   \         P                  ! \        R	R7      ;_uu_ 4        \        P                  ! V3/ VB  RRR4       R# \        \        V4      R4      '       dN   VR8w  dG   \         P                  ! \        R
R7      ;_uu_ 4        \        P                  ! V3/ VB  RRR4       R# Ve   \        P                  ! V4      '       dz   VR8H  ;'       d    \        \        V4      R4      pV'       d   \        P                  ! R4      M\        P                  ! R4      p\        \        P                  ! V3/ VB V4       R# V'       db   \        \        V4      R4      '       dG   \         P                  ! \        RR7      ;_uu_ 4        \        P                  ! V3/ VB  RRR4       R# \        \        P                  ! V3/ VB \        P                  ! V^,           4      4       R#   + '       g   i     R# ; i  + '       g   i     R# ; i  + '       g   i     R# ; i  + '       g   i     R# ; i)r  rl  r<  r  r  Nr   r  rc  r  r  r  r7  r  )r  r   r  r   rr  r1   r  rc   r   r  r   r`  r   rq  r?   rl   r  rl  rt  r  rJ  s   &&&&   r@   "test_factorial_scalar_corner_cases9TestFactorialFunctions.test_factorial_scalar_corner_casesF
  s   
 uh/Y5z1JKK!!!*r* LKd1gS#tDz'BCCz1JKK!!!*r* LK$q'3''Fi,?z1PQQ!!!*r* RQY"((1++ I-MM<Q3MJ4>r}}Z0BJJuDUH 1 1! :r :HE|DGS11z1OPP!!!*r* QP **133W]]1q55IJ# LKK LKK RQQ QPPs/   I2(JJJ.2J	J	J+	.J?	c           	     \   \         P                  R 8X  d   RMRp\        \        \        P
                  ! VRR7      4      \        P
                  ! VRR7      VR7       \        \        P
                  ! V.RR7      P                  \        4      \        P
                  ! V.RR7      VR7       R# )r6   +=r   Tr  FrL   N)r  r  r   r~   r   rs  r   r  s   && r@   test_factorial2_accuracy/TestFactorialFunctions.test_factorial2_accuracya
  s~    
 /uUg00$?@**1E:	G**A3d;BB5I**A3e<4	IrD   c           
        \         P                  ! \        P                  \	        \        V^ R4      4      ^4      p\        V\        P                  ! VRR7      4       \        V\        P                  ! V.RR7      ^ ,          4       \        P                  R8X  d   RMRp\        V4      p\        V\        P                  ! VRR7      VR7       \        V\        P                  ! V.RR7      ^ ,          VR7       RRR	R
/pV^,          ^8X  dQ   \        V\        P                  ! V3/ VB VR7       \        V\        P                  ! V.3/ VB ^ ,          VR7       R# R# )r   Tr  r6   r  r   FrL   r  rl  r<  NrY  )	functoolsreduceoperatormulr  r}   r   r   rs  r  r  r~   r   r  s   &&   r@   test_factorial2_int_reference4TestFactorialFunctions.test_factorial2_int_referencem
  s    ""8<<eAq"o1FJ7G$6$6q$EF7G$6$6s$$G$JK/uU.!3!3AU!C$O!3!3QCu!Ea!HtT uh	2q5A:GW%7%7%@R%@tLGW%7%7%Br%B1%EDQ rD   c                   R  pV! ^^R7       V! ^\         P                  ! ^4      \        P                  ! ^\        P                  ,          4      ,          R7       V! ^\         P                  ! ^4      \        P                  ! ^\        P                  ,          4      ,          R7       V! RRR7       V! RRR7       V! RR	R7       V! R
RR7       V! RRR7       R# )c                     R pRRRR/p\        \        P                  ! V 3/ VB WR7       \        \        P                  ! V .3/ VB ^ ,          WR7       R# )r  r  Frl  r<  rL   N)r   r   rs  r  s   &&  r@   r  HTestFactorialFunctions.test_factorial2_complex_reference.<locals>._check
  sP    D5(I6BG..q7B7MG..s9b9!<hRrD   r  g^D]?JO?gtQ*@Nr  r  y^D]?JO?        y      @      @y&0!:?gSt$y       -C6?yqj?x*)r   rs  r  r   r   r  s   & r@   !test_factorial2_complex_reference8TestFactorialFunctions.test_factorial2_complex_reference
  s    	S 	q1q7--a0499Q[3IIJrG..r2TYYq477{5KKLt45y#>?v OPw!67|&UVrD   c                   V\         P                  8X  dQ   \        ;QJ d    R  V 4       F  '       g   K   RM	  RM! R  V 4       4      '       d   \        P                  ! R4       V\         P
                  8X  dQ   \        ;QJ d    R V 4       F  '       g   K   RM	  RM! R V 4       4      '       d   \        P                  ! R4       RVRV/pV^ 8  g   \        V4      ^8w  d   TMV^ ,          p\         P                  ! WVR7      pRpVR	8X  dN   V'       dF   \        P                  ! \        R
R7      ;_uu_ 4        \        P                  ! V3/ VB  RRR4       M\        VP                  . RO4      '       gF   \        P                  ! \        RR7      ;_uu_ 4        \        P                  ! V3/ VB  RRR4       M\        VP                  RR.4      '       dM   VR	8w  dF   \        P                  ! \        RR7      ;_uu_ 4        \        P                  ! V3/ VB  RRR4       M\        P                  ! V3/ VB pVe   VP                  4        U	u. uF  p	\        P                  ! V	3/ VB NK  	  p
p	\        V
4      ^8X  d
   V
^ ,          MT
p
VP                  '       dZ   VR	8H  ;'       d    \        VP                  R4      pV'       d   \         P                   MV'       d   \"        M\         P
                  p\         P                  ! WVR7      p\%        WRR7       R# R#   + '       g   i     L; i  + '       g   i     EL; i  + '       g   i     EL; iu up	i )c              3   z   "   T F1  p\         P                  ! V4      ;'       g    V\        V4      8g  x  K3  	  R # 5ir5  r  r  s   & r@   r  LTestFactorialFunctions.test_factorial2_array_corner_cases.<locals>.<genexpr>
  r  r  TFr  c              3   L   "   T F  p\        \        V4      R 4      x  K  	  R# 5ir  r  r  s   & r@   r  r  
  r  r  r  rl  r   Nr<  r  r  r  rc  r  r  r  rL   r  )rc   r  r  r  r  r   r  r   r   r  r   rs  r1   r  rh   r  r  r|  r`  r  s   &&&&&&       r@   "test_factorial2_array_corner_cases9TestFactorialFunctions.test_factorial2_array_corner_cases
  sW    BHH$S7$S$S7$S!S!SKK01BJJ33&S7&S333&S7&S#S#SKK01uh/!AgW):'HHWu5Y5z1JKK""1++ LKagg77z1JKK""1++ LK!''C:..6Y3Fz1PQQ""1++ RQ ''0R0F89	B	17%%a.2.	CBHM#a&sC vvv	)II|AGGS/I)+*2::xxe<Hu=  LK LKK RQQ Cs*    L,#L?M M',L<	?M	M$	c           	        R VRV/pVR8X  dO   V'       dG   \         P                  ! \        RR7      ;_uu_ 4        \        P                  ! V3/ VB  RRR4       R# \        \        V4      RRR\        R4      .4      '       gG   \         P                  ! \        R	R7      ;_uu_ 4        \        P                  ! V3/ VB  RRR4       R# \        \        V4      RR.4      '       dN   VR8w  dG   \         P                  ! \        R
R7      ;_uu_ 4        \        P                  ! V3/ VB  RRR4       R# Ve   \        P                  ! V4      '       dz   VR8H  ;'       d    \        \        V4      R4      pV'       d   \        P                  ! R4      M\        P                  ! R4      p\        \        P                  ! V3/ VB V4       R# V P                  ! V3R^/VB p\        \        P                  ! V3/ VB VRR7       R#   + '       g   i     R# ; i  + '       g   i     R# ; i  + '       g   i     R# ; i)r  rl  r<  r  r  Nr   r  rc  r  r  r  r7  rm   r   rL   )r  r   r  r   rs  r1   r  rc   r   r  r   r`  rn  r
  s   &&&&   r@   #test_factorial2_scalar_corner_cases:TestFactorialFunctions.test_factorial2_scalar_corner_cases
  s   
 uh/Y5z1JKK""1++ LKd1gS#tDz'BCCz1JKK""1++ LK$q'C:..6Y3Fz1PQQ""1++ RQY"((1++ I-MM<Q3MJ4>r}}Z0BJJuDUH 2 21 ; ;XF**188R8H 2 21 ; ;XER LKK LKK RQQs#   H(HH/H	H,	/I 	rm   c           
     `   \         P                  R 8X  d   RMRp\        \        \        P
                  ! WRR7      4      \        P
                  ! WRR7      VR7       \        \        P
                  ! V.VRR7      P                  \        4      \        P
                  ! V.VRR7      VR7       R# )r6   r  r  Trf  FrL   N)r  r  r   r~   r   rh  r   )r?   rl   rm   rM   s   &&& r@   test_factorialk_accuracy/TestFactorialFunctions.test_factorialk_accuracy
  s     /uUg00tDE**1?d	L**A3!4@GGN**A3!5A	NrD   c           
        \         P                  ! \        P                  \	        \        V^ V) 4      4      ^4      p\        V\        P                  ! WRR7      4       \        V\        P                  ! V.VRR7      ^ ,          4       \        P                  R8X  d   RMRp\        V4      p\        V\        P                  ! WRR7      VR7       \        V\        P                  ! V.VRR7      ^ ,          VR7       RVR	RR
R/pW,          ^8X  dS   Rp\        V\        P                  ! V3/ VB VR7       \        V\        P                  ! V.3/ VB ^ ,          VR7       R# R# )r   Tr  r6   gt =r  FrL   rm   r  rl  r<  r  N)r  r  r  r  r  r}   r   r   rh  r  r  r~   r   )r?   rl   rm   r3  rM   rt  s   &&&   r@   test_factorialk_int_reference4TestFactorialFunctions.test_factorialk_int_reference
  s    ""8<<eAq1"o1FJ7G$6$6q4$HI7G$6$6sAT$J1$MN/uU.!3!3A!FTR!3!3QC%!H!KRVW 1guh	:5A:DGW%7%7%@R%@tLGW%7%7%Br%B1%EDQ rD   c           
        R  pV! ^^\         P                  ! ^^RR7      R7       V! ^^RR7       V! R^RR7       V! ^RRR7       V! ^RR	R7       V! RRRR7       V! R^RR7       V! ^RRR7       V! RRRR7       V! R^R
R7       V! R^RR7       V! RRRR7       V! RRRR7       V! R^RR7       V! R^RR7       R# )c                     R pRVRRRR/p\        \        P                  ! V 3/ VB W#R7       \        \        P                  ! V .3/ VB ^ ,          W#R7       R# )r  rm   r  Frl  r<  rL   N)r   r   rh  )rl   rm   r   rM   rt  s   &&&  r@   r  HTestFactorialFunctions.test_factorialk_complex_reference.<locals>._check  sT    Dq'5(I>BG..q7B7HG..s9b9!<cMrD   Trf  )rl   rm   r   gD!)@g      @gNq53@r  gG`@g     @gyL_ǚZ?g333333@giߑT@Ny            @y             @y      @      @yRsU#[@y      @      y?M,a?y@/n?'?r  r  yyL_ǚZ?        gffffffyNV?*V7?g333333y)kh]bg):y      -C6?y(5E?WT)r   rh  r  s   & r@   !test_factorialk_complex_reference8TestFactorialFunctions.test_factorialk_complex_reference  s    	N 	aW//QdCDa0123c23s'W51"RSf"QR6'VW 67a%@A"RS#UVA#89(VWrD   c                   V\         P                  8X  dQ   \        ;QJ d    R  V 4       F  '       g   K   RM	  RM! R  V 4       4      '       d   \        P                  ! R4       V\         P
                  8X  dQ   \        ;QJ d    R V 4       F  '       g   K   RM	  RM! R V 4       4      '       d   \        P                  ! R4       R^RVRV/pV^ 8  g   \        V4      ^8w  d   TMV^ ,          p\         P                  ! WVR7      pR	pVR
8X  dN   V'       dF   \        P                  ! \        RR7      ;_uu_ 4        \        P                  ! V3/ VB  R	R	R	4       M\        VP                  . RO4      '       gF   \        P                  ! \        RR7      ;_uu_ 4        \        P                  ! V3/ VB  R	R	R	4       M\        VP                  RR.4      '       dM   VR
8w  dF   \        P                  ! \        RR7      ;_uu_ 4        \        P                  ! V3/ VB  R	R	R	4       M\        P                  ! V3/ VB pVe   VP                  4        U	u. uF  p	\        P                  ! V	3/ VB NK  	  p
p	\        V
4      ^8X  d
   V
^ ,          MT
p
VP                  '       dZ   VR
8H  ;'       d    \        VP                  R4      pV'       d   \         P                   MV'       d   \"        M\         P
                  p\         P                  ! WVR7      p\%        WRR7       R	# R	#   + '       g   i     L; i  + '       g   i     EL; i  + '       g   i     EL; iu up	i )c              3   z   "   T F1  p\         P                  ! V4      ;'       g    V\        V4      8g  x  K3  	  R # 5ir5  r  r  s   & r@   r  LTestFactorialFunctions.test_factorialk_array_corner_cases.<locals>.<genexpr>8  r  r  TFr  c              3   L   "   T F  p\        \        V4      R 4      x  K  	  R# 5ir  r  r  s   & r@   r  r3  :  r  r  rm   r  rl  r   Nr<  r  r  r  rc  r  r  r  rL   r  )rc   r  r  r  r  r   r  r   r   r  r   rh  r1   r  rh   r  r  r|  r`  r  s   &&&&&&       r@   "test_factorialk_array_corner_cases9TestFactorialFunctions.test_factorialk_array_corner_cases+  s[    BHH$S7$S$S7$S!S!SKK01BJJ33&S7&S333&S7&S#S#SKK011guh7!AgW):'HHWu5Y5z1JKK""1++ LKagg77z1JKK""1++ LK!''C:..6Y3Fz1PQQ""1++ RQ ''0R0F89	B	17%%a.2.	CBHM#a&sC vvv	)II|AGGS/I)+*2::xxe<Hu=  LK LKK RQQ Cs*   L.%MM M).L>	M	M&	c           	        R VRVRV/pVR8X  dO   V'       dG   \         P                  ! \        RR7      ;_uu_ 4        \        P                  ! V3/ VB  RRR4       R# \        \        V4      RRR	\        R4      .4      '       gG   \         P                  ! \        R
R7      ;_uu_ 4        \        P                  ! V3/ VB  RRR4       R# \        \        V4      RR	.4      '       dN   VR8w  dG   \         P                  ! \        RR7      ;_uu_ 4        \        P                  ! V3/ VB  RRR4       R# Ve   \        P                  ! V4      '       dz   VR8H  ;'       d    \        \        V4      R	4      pV'       d   \        P                  ! R4      M\        P                  ! R4      p\        \        P                  ! V3/ VB V4       R# V P                  ! V3/ VB p\        \        P                  ! V3/ VB VRR7       R#   + '       g   i     R# ; i  + '       g   i     R# ; i  + '       g   i     R# ; i)rm   r  rl  r<  r  r  Nr   r  rc  r  r  r  r7  r   rL   )r  r   r  r   rh  r1   r  rc   r   r  r   r`  rn  )r?   rl   rm   r  rl  rt  r  rJ  s   &&&&&   r@   #test_factorialk_scalar_corner_cases:TestFactorialFunctions.test_factorialk_scalar_corner_cases\  s    1guh7Y5z1JKK""1++ LKd1gS#tDz'BCCz1JKK""1++ LK$q'C:..6Y3Fz1PQQ""1++ RQY"((1++ I-MM<Q3MJ4>r}}Z0BJJuDUH 2 21 ; ;XF**133H 2 21 ; ;XER LKK LKK RQQs#   H*HH/H	H,	/I 	r   c                .   V'       d   ^.M^pRVRVRV/pVR8X  dm   Rp\        \        V4      R4      '       d
   V^8  d   Rp\        P                  ! \        VR7      ;_uu_ 4        \
        P                  ! V3/ VB  R	R	R	4       R	# V^ 8X  dG   \        P                  ! \        R
R7      ;_uu_ 4        \
        P                  ! V3/ VB  R	R	R	4       R	# \
        P                  ! V3/ VB  R	#   + '       g   i     R	# ; i  + '       g   i     R	# ; i)ra   rm   r  rl  rg  r  r   zFor `extend='zero'`.*r  NzParameter k cannot be zero!)r1   r  r  r   r  r   rh  )r?   rm   r  rl  r  rl   rt  rI  s   &&&&&   r@    test_factorialk_raises_k_complex7TestFactorialFunctions.test_factorialk_raises_k_complexu  s    
 QCa1guh7V1CDGS))q1u-z55""1++ 65!Vz1NOO""1++ PO q'B' 655 POOs   'C/4D/D 	D	c                    V'       d   ^.M^pRVRVRV/p\         P                  ! \        RR7      ;_uu_ 4        \        P                  ! V3/ VB  RRR4       R#   + '       g   i     R# ; i)ra   rm   r  rl  r  r  N)r  r   r  r   rh  )r?   rm   r  rl  r  rl   rt  s   &&&&&  r@   test_factorialk_raises_k_other5TestFactorialFunctions.test_factorialk_raises_k_other  sV     QCa1guh7]]:-FGGq'B' HGGGs   AA-	c                   R VRVRV/pV'       Ed   V\         P                  ! 4       9   Ed   \        P                  ! \        V,          .4      p\        \        P                  ! V3/ VB P                  \        4       \        \        P                  ! V^,           3/ VB P                  \        P                  4       \        P                  ! V^,           3/ VB \        P                  ! \        P                  4      P                  8  g   Q h\        P                  ! \         V,          .4      p\        \        P                  ! V3/ VB P                  \        P                  4       \        \        P                  ! V^,           3/ VB P                  \        4       \        P                  ! V^,           3/ VB \        P                  ! \        P                  4      P                  8  g   Q hR# \        P                  ! \         P                  ! V^4      .4      pV'       d   \        M\        P                   p\        \        P                  ! V3/ VB P                  V4       R# )rm   r  rl  N)r/   keysrc   r   r0   r   r   rh  r  r*   r  r  int32r   r  getr   )r?   rm   r  rl  rt  rl   r  s   &&&&   r@   test_factorialk_dtype,TestFactorialFunctions.test_factorialk_dtype  s    1guh75Q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BrD   c                   \         P                  ! \         P                  ^^^\         P                  .4      p\         P                  ! \         P                  ^^^\         P                  .4      p\        \        P
                  ! VRR7      V4       \        P                  ! \        RR7      ;_uu_ 4        \        P
                  ! VRR7       RRR4       R#   + '       g   i     R# ; i)ra   Fr  r  r  TN)	rc   r   r7  r   r   rr  r  r   r  r?   r   rJ  s   &  r@   test_factorial_mixed_nan_inputs6TestFactorialFunctions.test_factorial_mixed_nan_inputs  s    HHbffaArvv./88RVVQ1bff56W&&q6A]]:-KLLat, MLLLs   5CC)	r  ))Trg  )Frg  )Fr<  r\   )r\   rY  r  )r  r  r  )
NaNznp.float64('nan')	NaN+i*NaNznp.complex128('nan+nanj')r   zinf+0iz-infz-inf+0iNoner  )z[]z[1]z[1.1]z[NaN]z[NaN+i*NaN]z[NaN, 1]r  )1z1.1z2+2jrJ  rK  rL  ir   )@r  r  r  r  rn  r  r  r  ru  rx  r}  r  r  rc   r7  r   r  r   
datetime64r   rr  rs  rh  r  r  r}   r  r|   int8int16rB  r  r  r  uint32r  r  r  r(  r  r  r  r  r  r  r  r  r  r  r  r  r!  r$  r'  r*  r/  r5  r8  r;  r>  rD  rH  r  r  r  s   @r@   rd  rd    s    ' [[^RT=T= [[S,/[[WtUm4: 5 0: [[WtUm4S 5S [[S"45T 6T& [[VaW-[[Y5) 6 .)4 [[WtUm4[[X	':;[[FFBJJu%rvvr	'92==;TFFBFFRK"&&266'B,bmmE>R	

  
 [[			G..0B0BC2	
 < 5"2B [[X3'ABB CB [[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;" [[1[[WrxxBIIryy&QR[[^RT)6T S )6X [[S%C"45	H 6	H [[S!%2,/$uRb7I2JJLMLM"9.U  [[Wrxx')}}f'> ?[[X	':;[[WtUm4[[UE!QK0[[	aS3%"&&BFFRVVb[$8#9BFFA;GF  
)> 1 5 <?)>V [[X	':;[[WtUm4[[S1c6266266BFF2I;Mt"T!Q  SKS 5 <K. [[S%C"45	I 6	I [[S!%2,/$uRb7I2JJLRLR,W* [[Wrxx')}}f'> ?[[X	':;[[WtUm4[[UE!QK0[[	aS3%"&&BFFRVVb[$8#9BFFA;GF  
$> 1 5 <?$>L [[X	':;[[WtUm4[[S1c6266266BFF2I;Mt"T!Q  SSS 5 <S( [[S%1+. [[S%R"56	N 7 /	N [[S$uQ{"3r2h">?[[S!%2,/$uRb7I2JJLRL @R0X< [[Wrxx')}}f'> ?[[X	':;[[WtUm4[[UE!QK0[[	aS3%"&&BFFRVVb[$8#9BFFA;GF  
$> 1 5 <?$>L [[X	':;[[WtUm4[[S%1+.[[S1c6266266BFF2I;Mt"T!Q  SSS / 5 <
S( [[WtUm4[[^RT[[S2tQVS"&&"IJ( KT 5(  [[WtUm4[[^RT [[S8R]]5-A"B"*E!2  4(4T 5( [[^RT[[S%2,/C 0TC(- -rD   rd  c                      a  ] tR tRt o ]P
                  P                  RR
RRRRRRRR]P                  RR3]P                  ) RR3.4      R 4       t	R t
R tR tRtV tR	# )TestFresneli  zz, s, cr   c                v    \        \        P                  ! V4      4      p\        V\        W#.4      R ^ R7       R# )r  rR   N)r   r   rk  r   )r?   rI  r  rc  frss   &&&& r@   test_fresnel_valuesTestFresnel.test_fresnel_values  s,    @ GOOA&'UA6]a@rD   c                N   \         P                  ! ^4      w  r\        V\        . RO4      R^ R7       \        V\        . RO4      R^ R7       \         P                  ! V4      ^ ,          p\         P                  ! V4      ^,          p\        V^ R^ R7       \        V^ R^ R7       R# )r   ~jtX?rR   rU  N)y @X9v?y^I@48E?y=
ףp@+?y@eX?yO@Ǻ?)y.1?ǘ?yʡE6@:#J{/?yq-
@y&1?yh o@߾3?yW2q@qh?)r   fresnel_zerosr   r   rk  )r?   szoczovals1vals2s   &    r@   test_fresnel_zerosTestFresnel.test_fresnel_zeros  s    ((+U $4 5
 $!	- 	U $4 5
 $!	- $Q'$Q'qwQ7qwQ7rD   c                ~    \         P                  ! ^4      w  r\         P                  ! ^4      p\        W2R^ R7       R# )r]   Afcz=rR   N)r   rZ  fresnelc_zerosr   )r?   r[  r\  frcs   &   r@   test_fresnelc_zerosTestFresnel.test_fresnelc_zeros  0    ((+$$Q'wQ7rD   c                ~    \         P                  ! ^4      w  r\         P                  ! ^4      p\        W1R^ R7       R# )r   rb  rR   N)r   rZ  fresnels_zerosr   )r?   r[  r\  rU  s   &   r@   test_fresnels_zerosTestFresnel.test_fresnels_zeros  rg  rD   r  N)r   gN?ց[?)y      ?        rl  rm  )y       ?yn<ӿj<Cy)BR;߿ux7Q?)y      yھ|}-2?y/?!ۿ)r*  GM?pBR?)y      @        rn  ro  )y              @y       GMܿy        pBR?)y              gGMܿgpBR߿)y             y        GM?y       pBR߿r  )r  r  r  r  r  r  r  rc   r   rV  r_  re  rj  r  r  r  s   @r@   rS  rS    s     [[Y7=	

	
 	&,)/*	c
&&$;) >A?>A8&8
8 8rD   rS  c                     a  ] tR tRt o R tR tR t]R 4       t]R 4       t	R t
R t]P                  P                  R	]P                   ) ]P                   .]P"                  ]P                   .3RR
.]P                   ) ]P                   .3]! R^ 4      ]P&                  ! ^ ]P"                  4      3]! RR^c4      ]P&                  ! ^]P"                  4      3R.]P"                  .3.4      R 4       tRtV tR# )	TestGammai  c                J    \         P                  ! ^4      p\        VR4       R# ro  )r   rq  r   )r?   gams   & r@   rr  TestGamma.test_gamma  s    mmASrD   c                    \         P                  ! ^4      p\        \         P                  ! ^4      4      p\	        WR^ R7       R# )r  r  rR   N)r   rz  r   rq  r   )r?   gamlnlngams   &  r@   r{  TestGamma.test_gammaln  s/    "GMM!$%6:rD   c                ~    \         P                  ! R R 4      p\         P                  ! R R 4      p\        WR^ R7       R# )r   r  rR   N)r   ru  gammaincinvr   )r?   gccinvgcinvs   &  r@   rv  TestGamma.test_gammainccinv  s2    %%b,##Br*F;rD   c                d   \         P                  ! R R 4      p\         P                  ! R V4      p\        VR R^ R7       \         P                  ! ^
R4      p\         P                  ! ^
R4      p\        RVR^ R7       \        VRR^ R7       \         P                  ! ^2R4      p\        RVR^ R7       R# )rW   r  rR   g?g`	\;gmb<g      &@N)r   rz  gammaincr   r?   rH  r   s   &  r@   test_gammaincinvTestGamma.test_gammaincinv  s    2&R"3W15R&$:;agA61aH$JKagA6rD   c                    R \         P                  ! R ^ 4      R\         P                  ! R ^4      R.pV F>  p\        P                  ! RV4      p\        P                  ! RV4      p\        WBRR7       K@  	  R# )r  r   rW   rL   NgCs?g^F    ?)rc   r  r   rz  r  r   )r?   ptsptrH  r   s   &    r@   test_975TestGamma.test_975  sh    
 ||D!$l||D!$l4 B##B+A  a(AA. rD   c                    \         P                  ! ^4      p^\         P                  ! ^4      ,          p\        WR^ R7       R# )r  r  rR   N)r   rq  rq  r   )r?   rgamrlgams   &  r@   rr  TestGamma.test_rgamma   s/    ~~a '--""&q9rD   c                F    \        \        P                  ! R4      ^ 4       R# r  )r   r   rq  r>   s   &r@   test_infinityTestGamma.test_infinity%  s    W^^B'+rD   z
x,expectedr   c                F    \        \        P                  ! V4      V4       R # r5  )r   r   rq  rG  s   &&&r@   
test_polesTestGamma.test_poles(  s      	7==+X6rD   r  Nr  ii gP²Zdb)r  r  r  r  rr  r{  rv  r2   r  r  rr  r  r  r  r  rc   r   r7  r}   fullr  r  r  r  s   @r@   rq  rq    s     ;
<
 	7 	7 
/ 
/:
, [[ vvgrvv 01C[BFF7BFF+,3]BGGB/05#r"BGGB$78$%x0	
77rD   rq  c                   V   a  ] tR tRt o R tR tR tR tR tR t	R t
R	 tR
 tRtV tR# )
TestHankeli;  c                z    \        \        P                  ! R^4      \        P                  ! ^^4      ) R^ R7       R# r  rU  rR   Nr  )r   r   r  r>   s   &r@   
test_negv1TestHankel.test_negv1=  ,    A.A1F0F$1	.rD   c                    \         P                  ! ^R4      p\         P                  ! ^R4      \         P                  ! ^R4      R,          ,           p\	        WR^ R7       R# ra   rB  rC  r  rR   N)r   r  r  r  r   )r?   hank1hankrls   &  r@   r  TestHankel.test_hankel1A  sC    "%**Qr"WZZ"%5b%88F;rD   c                z    \        \        P                  ! R^4      \        P                  ! ^^4      ) R^ R7       R# r  )r   r   r  r>   s   &r@   test_negv1eTestHankel.test_negv1eF  0    ((Q/'2B2B1a2H1H$1	.rD   c                    \         P                  ! ^R4      p\         P                  ! ^R4      \        R4      ,          p\	        WR^ R7       R# )ra   rB  r  rR   Ny       )r   r  r  r   r   )r?   hank1ehankrles   &  r@   r  TestHankel.test_hankel1eJ  s9    !!!B'//!B'D	1f1=rD   c                z    \        \        P                  ! R^4      \        P                  ! ^^4      ) R^ R7       R# r  )r   r   r  r>   s   &r@   
test_negv2TestHankel.test_negv2O  r  rD   c                    \         P                  ! ^R4      p\         P                  ! ^R4      \         P                  ! ^R4      R,          ,
          p\	        WR^ R7       R# r  )r   r  r  r  r   )r?   hank2hankrl2s   &  r@   r  TestHankel.test_hankel2S  sC    "%::a#gjj2&6r&99V!<rD   c                z    \        \        P                  ! R^4      \        P                  ! ^^4      ) R^ R7       R# r  )r   r   r  r>   s   &r@   
test_neg2eTestHankel.test_neg2eX  r  rD   c                ~    \         P                  ! ^R4      p\         P                  ! ^R4      p\        WR^ R7       R# )ra   rB  r  rR   N)r   r  r   )r?   hank2ehankrl2es   &  r@   test_hankl2eTestHankel.test_hankl2e\  s2    !!!B'##Ab)vA>rD   c                    \         P                  ! ^ ^ 4      p\        P                  ! VP                  4      '       g   Q h\        P
                  ! VP                  4      '       g   Q hR# r;   )r   r  rc   r   r   isposinfrG  r?   r  s   & r@   test_hankel2_gh4517TestHankel.test_hankel2_gh4517a  sD    ooa#xx!!!!{{388$$$$rD   r  N)r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  s   @r@   r  r  ;  s7     .<
.>
.=
.?
% %rD   r  c                   \   a  ] tR tRt o R tR tR tR tR tR t	R t
R	 tR
 tR tRtV tR# )	TestHyperih  c                    \         P                  ! ^R4      p\         P                  ! ^R4      \         P                  ! ^R4      R,          ,           p\	        WR^ R7       R# r  )r   h1vpjvpyvpr   )r?   h1h1reals   &  r@   	test_h1vpTestHyper.test_h1vpi  C    \\!B++a#gkk!B&7&::a8rD   c                    \         P                  ! ^R4      p\         P                  ! ^R4      \         P                  ! ^R4      R,          ,
          p\	        WR^ R7       R# r  )r   h2vpr  r  r   )r?   h2h2reals   &  r@   	test_h2vpTestHyper.test_h2vpn  r  rD   c                J   \        \        P                  ! R R4      RRR7       \        \        P                  ! R ^ 4      RRR7       \        P                  ! R. R
O4      p\        P                  ! . RO4      p\        WRR7       \        P                  ! R\        P                  ! . R
O4      R,           4      p\        WP                  \        4      RR7       . ROp. ROp\        P                  ! W44      p. ROp\        WRR7       \        P                  ! \        P                  ! V.^,          4      V4      p\        V\        P                  ! V.^,          4      RR7       \        \        \        P                  \        P                  ! V.^,          4      ^ ^.4       R	# )r  r   Qvo?r   rL   r   r   rv  r;  N)g      r\   r   ra   r  )g̷?g3|t-Ք?r   go?g{h?r   r  r  )r   ra   r   )r   gc?r  )
r   r   hyp0f1rc   r   r   r<  vstackassert_raisesr  )r?   r   rJ  r  x2s   &    r@   test_hyp0f1TestHyper.test_hyp0f1s  s"   sC02BOsA.%@ NN3 5688 A B%0 NN3)> ?# EF??73%@ NN2">%0NN299bTAX.3299hZ!^45Aj'..iiq)Aq6	3rD   c                R    \         P                  ! R R4      p\        VRR^ R7       R# )皙?r   rR   Ny      ?      ?y;EG?uM?)r   r  r   r  s   & r@   test_hyp0f1_gh5764TestHyper.test_hyp0f1_gh5764  s&     nnS,/H#!	-rD   c                   \         P                  ! R R R4      p\        VRR^ R7       \        . . RON. RON. R	ON. R
ON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. R ON. R!ON. R"ON. R#ON. R$ON. R%ON. R&ON. R'ON. R(ON. R)ON. R*ON. R+ON. R,ON. R-ON. R.ON. R/ON. R0ON. R1ON. R2ON. R3ON. R4ON. R5ON. R6ON. R7ON. R8ON. R9ON. R:ON. R;ON. R<ON. R=ON. R>ON. R?ON. R@ON. RAON. RBON. RCON. RDON. REON. RFON. RGON. RHON. RION. RJON. RKON. RLON. RMON. RNON. ROON. RPON. RQON. RRON. RSON. RTON. RUON. RVON. RWON. RXON. RYON. RZON. R[ON. R\ON. R]ON. R^ON. R_ON. R`ON. RaON. RbON. RcON. RdON. ReON. RfON. RgON. RhON. RiON. RjON4      pV FA  w  r4rV\         P                  ! W4V4      p\	        \        Wg,
          4      V,          R8  4       KC  	  R# )krB  rD  g?r   rR   r  N)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 ?)r   r  r   r   r   r  )r?   hyp1ref_datar  r  rc  rJ  r  s   &       r@   r  TestHyper.test_hyp1f1  s   ~~bB'0vAF  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 'NA^^A*FC)*83d:; 'rD   c                    \         P                  ! R RR4      p\         P                  ! R RR4      p\        WR^ R7       R# )r   r  rb  rR   Ng7B.g|:B.r   r  r   )r?   r  hyp2s   &  r@   test_hyp1f1_gh2957TestHyper.test_hyp1f1_gh2957	  s2    ~~c38~~c38q9rD   c                T    \         P                  ! R RR4      p\        VRR^ R7       R# )r   r  g<`?rb  rR   Nir  )r?   hyps   & r@   test_hyp1f1_gh2282TestHyper.test_hyp1f1_gh2282  s#    nnS#u-1aHrD   c                   R ^RRR	\        R4      ,          .R ^RRR\        R4      ,          .^^^RR\        R
4      ,          .. ROR^R \        R4      ^,          \        R4      .^^^^\        P
                  ! ^4      \        P
                  ! ^4      ,          \        P
                  ! ^4      ,          \        P
                  ! ^4      ,          .^^^RR\        \        4      ,          \        P
                  ! ^4      ,          \        P
                  ! R 4      ,          \        P
                  ! R4      ,          .^^^RR\        \        4      ,          \        P
                  ! ^4      ,          \        P
                  ! R4      ,          \        P
                  ! R4      ,          .^RRRR\        P
                  ! R4      ,          \        P
                  ! R4      ,          \        P
                  ! R4      ,          \        P
                  ! R4      ,          .. RO. RO. RO. RO. R OR!R".p\        V4       F3  w  pw  r4rVp\        P                  ! W4WV4      p\        WR^ RV 2R7       K5  	  R# )#r   r  r   rv  r  test #rS   rM   err_msgN|Gz?r  r  g?g|Gzr   r\   r  )r  rw  r  r  gYi2?r  g433333?r  r  g      ?      @g      gUUUUUUտg  @gUUUUUU?g)r  r  r         $gEciH!@)rY  r  ra   ffffff?gzG?)rV   r  ra   r  gy&1|)r  r  ra   r  g"nN%@?)rV   r{  ra   r  g!J)ry  |      %@r  gzS;)ry  r  g      %r  g[B.VP<)r   r   r	   r
   r   rq  r   r   r  r  r   )	r?   valuesr   r  r  rc  r   r  cvs	   &        r@   r  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aAa+BBQ&M #4rD   c                   \         P                  ! ^R^d4      p\        VRR^ R7       . RO. R	Or2\        V4      \        V4      r2Rp\         P                  ! W#V4      p\        \        \        V,          4      ,          \         P                  ! W#V4      \         P                  ! ^V,           V,
          4      \         P                  ! V4      ,          ,          V^V,
          ,          \         P                  ! ^V,           V,
          ^V,
          V4      ,          \         P                  ! V4      \         P                  ! ^V,
          4      ,          ,          ,
          ,          p\        WVR^ R7       R# )
ra   rB  g D?r   rR   r   rb  N)rD  r  333333?g)r  g	@r  g	)r   hyperur   r   r   r	   r  rq  )r?   val1r  r  rI  hypuhprls   &      r@   test_hyperuTestHyper.test_hyperu6  s    ~~aC(if1= !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 	q9rD   c                P    \        \        P                  ! ^RR4      RR^ R7       R# )ra   r  g3333334@g(¨?rb  rR   N)r   r   r  r>   s   &r@   test_hyperu_gh2287TestHyper.test_hyperu_gh2287C  s!    q#t46J$1	.rD   r  N)r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  s   @r@   r  r  h  sA     9
9
34-r<h:
I"NH:. .rD   r  c                     a  ] tR tRt o R tR tR tR tR tR t	R t
R	 tR
 tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR t R t!R  t"R! t#R" t$R# t%R$ t&R% t'R& t(R' t)R( t*R) t+R* t,R+ t-R, t.R- t/R. t0R/ t1R0 t2R1 t3R2 t4RTR4 lt5]6Pn                  Pq                  ]9Pt                  ! 4       R58H  R6R77      R8 4       t;]6Pn                  Pq                  ]9Pt                  ! 4       R58H  R6R77      R9 4       t<R: t=R; t>]6Pn                  P~                  R< 4       t@R= tAR> tBR? tCR@ tDRA tERB tFRC tGRURD ltHRE tIRF tJRG tKRH tLRI tMRJ tNRK tORL tPRM tQRN tRRO tSRP tTRQ tURR tVRStWV tXR3# )V
TestBesseliH  c                x    \        \        P                  ! R 4      4      p\        V\        RR.4      R^ R7       R# )r   gbɃ?r  rR   NgΝJ ֿ)r   r   r  r   )r?   it0s   & r@   r  TestBessel.test_itj0y0I  s2    GNN2&'U$79M#NO#!	-rD   c                x    \        \        P                  ! R 4      4      p\        V\        RR.4      R^ R7       R# )r   gbqTtt?r  rR   Ng/]ooۿ)r   r   r  r   )r?   it2s   & r@   r  TestBessel.test_it2j0y0N  s2    GOOB'(U$9;O#PQ#!	-rD   c                r    \        \        P                  ! ^^4      \        P                  ! R^4      4       R# r  Nr  )r   r   r  r>   s   &r@   test_negv_ivTestBessel.test_negv_ivS  s!    WZZ!_gjjA&67rD   c                |    \         P                  ! R 4      p\         P                  ! ^ R 4      p\        WR^ R7       R# rB  r  rR   N)r   r  r  r   r?   ozozrs   &  r@   r  TestBessel.test_j0V  +    ZZ^jj2f15rD   c                |    \         P                  ! R 4      p\         P                  ! ^R 4      p\        WR^ R7       R# r  )r   r   r  r   r?   o1o1rs   &  r@   r  TestBessel.test_j1[  r  rD   c                R    \         P                  ! ^R4      p\        VRR^ R7       R# )ra   r   ;x?r  rR   N)r   r  r   )r?   jnnrs   & r@   r  TestBessel.test_jn`  s!    zz!B2aHrD   c                z    \        \        P                  ! R^4      \        P                  ! ^^4      ) R^ R7       R# r  r   r   r  r>   s   &r@   test_negv_jvTestBessel.test_negv_jvd  s*    

2q)GJJq!,<+<7QRSrD   c           	         . RO. RO. RO. RO. R	O.p\        V4       F1  w  pw  r4p\        P                  ! W44      p\        WeR^ RV 2R7       K3  	  R# )
r   r  r  r  N)r   rB  g
Ye?)UUUUUU?:0yE>g˿+>)r  rQ   g)%->)g@rQ   g5c)!9)r  r1  g%,Ϳ)r  r   r  r   )r?   r  r   r  r   rH  ycs   &      r@   r	  TestBessel.test_jvg  sS    /5662	 &f-LAyaA!BBQ&M .rD   c                z    \        \        P                  ! R^4      \        P                  ! ^^4      ) R^ R7       R# r  )r   r   r  r>   s   &r@   test_negv_jveTestBessel.test_negv_jver  ,    B*W[[A->,>$1	.rD   c                   \         P                  ! ^R4      p\        VRR^ R7       \         P                  ! ^R4      pRp\         P                  ! ^V4      \	        \        VP                  4      ) 4      ,          p\        W$R^ R7       R# )ra   r   r  r  rR   N?      ?)r   r  r   r  r   r  rG  )r?   jvexpjvexp1rI  jvexprs   &    r@   r  TestBessel.test_jvev  se    Ab!3&qIQu%Aac!&&k\!22V!<rD   c                   \         P                  ! ^ ^4      p\         P                  ! ^^4      p\        V\        . RO4      R^ R7       \        V\        . RO4      R^ R7       \         P                  ! ^f^4      p\        V\        . R	O4      RR7       \         P                  ! R^4      p\        V\        . R
O4      RR7       R# )r   r  rR   rK   rL   -  N)go@.=@gzj,[@glN!@g5/ D'@gh>-@gW@g0@gQX$@g*@g8*5{x0@)gEk[@g~Cju]@gYrʝ^@g, `@gf	`@)gts@g&ǭr3t@gWt@g,$Y&u@gu@r   jn_zerosr   r   )r?   jn0jn1jn102jn301s   &    r@   test_jn_zerosTestBessel.test_jn_zeros~  s    q#q#U $3 4
 $!	- 	U $. /
 $!	-   Q'u &>  ? FK		L   Q'u &>  ? FK		LrD   c                   \         P                  ! ^ R4      p\        VR,          RRR7       \        VR,          RRR7       \        VR,          RRR7       \         P                  ! ^
R4      p\        VR,          RRR7       \        VR,          RRR7       \        VR,          R	RR7       \         P                  ! R
^4      p\        V\        . RO4      RR7       R# )r   rt   g;@rK   rL   g8v@gׂMm@gxi@g	,@gи{>@i  r   Ni  i  i+  )gUDX@g!@g*HS@gz5 @g@2;@r0  )r?   r2  jn10jn3010s   &   r@   test_jn_zeros_slow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rD   c                D  a
 \         P                  o
V
3R  lp\        ^^4       Fx  p\         P                  ! V4      w  r4rV\	        W4V4       FL  w  rxp	V	^ 8X  d   \        S
! W4      ^ RR7       K#  V	^8X  d   \        V! W4      ^ RR7       K@  \        RV 24      h	  Kz  	  R# )c                 \   < S! V ^,
          V4      S! V ^,           V4      ,
          ^,          # r{   r  )rl   r   r  s   &&r@   jnp(TestBessel.test_jnjnp_zeros.<locals>.jnp  s'    qs1I1Q3q	)1,,rD   r   r  zInvalid t return for nt=N)r   r  r}   jnjnp_zerosr_  r   AssertionError)r?   r?  ntrI  rl   rn  tzznnttr  s   &         @r@   test_jnjnp_zerosTestBessel.test_jnjnp_zeros  s    ZZ	-2,B ,,R0JA!!!l
7#BrJ=1W#CK>(+CB4)HII + rD   c                    \         P                  ! ^^4      p\        V\        . RO4      R^ R7       \         P                  ! R^4      p\        \         P                  ! RV4      ^ RR7       R# )ra   r  rR     r   r  Ng(yu?gOXeS@ga!@gxi'@g'Nw(-@)r   	jnp_zerosr   r   r  )r?   r?  s   & r@   test_jnp_zerosTestBessel.test_jnp_zeros  s\    !$U $. /
 $!	- A&C-qu=rD   c           
         \         P                  ! ^^4      p\        V\        . RO4      \        . RO4      \        . RO4      \        . RO4      3R^ R7       R# )ra   r;  rR   Nr/  rL  )"@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_zerosTestBessel.test_jnyn_zeros  sc      A&e %/ 0
 $ %/ 0
 $ %/ 0
 $ %/ 01( $!)	-rD   c                    \         P                  ! ^^4      p\         P                  ! ^^4      \         P                  ! ^^4      ,
          ^,          p\        WR^ R7       R# )rV   r  rR   N)r   r  r  r   )r?   jvprimjv0s   &  r@   test_jvpTestBessel.test_jvp  sA    Qq!zz!Awzz!A.1':rD   c                |    \         P                  ! R 4      p\         P                  ! ^ R 4      p\        WR^ R7       R# r  )r   r  rP  r   )r?   ozkozkrs   &  r@   r  TestBessel.test_k0  +    jjnzz!BvA6rD   c                |    \         P                  ! R 4      p\         P                  ! ^ R 4      p\        WR^ R7       R# r  )r   r  rT  r   )r?   ozkeozkers   &  r@   r  TestBessel.test_k0e  +    {{2Ab!&q9rD   c                |    \         P                  ! R 4      p\         P                  ! ^R 4      p\        WR^ R7       R# r  )r   r  rP  r   )r?   o1ko1krs   &  r@   r  TestBessel.test_k1  r_  rD   c                |    \         P                  ! R 4      p\         P                  ! ^R 4      p\        WR^ R7       R# r  )r   r  rT  r   )r?   o1keo1kers   &  r@   r   TestBessel.test_k1e  rd  rD   c                   ^\         P                  P                  4       ,          ^,
          p^\         P                  P                  4       ,          ^,
          p\        P                  ! ^ W4      p\        P                  ! ^W4      p\        P                  ! ^W4      p\        P                  ! ^W4      p\	        VP
                  ^.R^ R7       \	        VP
                  \        W,           ^,           W,
          .4      R,          R^ R7       W,           ^,           W,           ^,           ,          ^W,           ^,           ,          V^,           ,          ^V^,           ,          V^,           ,          .pV^ ,          V^,          ^V^ ,          ,          ,
          V^,          V^,          ,
          V^ ,          ,           .p\	        VP
                  \        V4      R,          R^ R7       W,           ^,           W,           ^,           ,          W,           ^,           ,          ^W,           ^,           ,          W,           ^,           ,          V^,           ,          ^W,           ^,           ,          V^,           ,          V^,           ,          ^V^,           ,          V^,           ,          V^,           ,          .pV^ ,          V^,          ^V^ ,          ,          ,
          V^,          ^V^,          ,          ,
          ^V^ ,          ,          ,           V^,          V^,          ,
          V^,          ,           V^ ,          ,
          .p	\	        VP
                  \        V	4      R,          R^ R7       R# )r   r  rR   r  g       @g      H@N)rc   ri   r   jacobir   rc  r   )
r?   r  r  P0P1P2P3cpp2cp3cs
   &         r@   test_jacobiTestBessel.test_jacobi  s?   bii  1$bii  1$^^Aa"^^Aa"^^Aa"^^Aa"qca8eQUQY$67#=$1	.s1uqs1uoq!#a%y!A#1Q31>!uRU1RU7]2a5A;r!u#45eCj3.W1Es1uqs1uoqs1u%aQiQ&71&=!#a%j!A#!$Q!Wac]AaC%8:!uRU1RU7]2a52a5=2a5#8Ar!uRU9J2a59PQeCj4/gAFrD   c                R    \         P                  ! ^ R4      p\        VRR^ R7       R# )r   r   _2?r  rR   N)r   r7  r   )r?   kn1s   & r@   r8  TestBessel.test_kn  s!    jj2/f1ErD   c                r    \        \        P                  ! R R4      \        P                  ! RR4      4       R# rv  rP  Nry  r   r   rP  r>   s   &r@   test_negv_kvTestBessel.test_negv_kv  s"    WZZS)7::dC+@ArD   c                R    \         P                  ! ^ R4      p\        VRR^ R7       R# )r   r   ry  r  rR   Nr   rP  r   )r?   kv0s   & r@   test_kv0TestBessel.test_kv0  s!    jj2/gAFrD   c                R    \         P                  ! ^R4      p\        VRR^ R7       R# )ra   r   gKދ@r  rR   Nr  )r?   kv1s   & r@   test_kv1TestBessel.test_kv1  !    jj3.W1ErD   c                R    \         P                  ! ^R4      p\        VRR^ R7       R# )rV   r   g)lHH@r  rR   Nr  )r?   kv2s   & r@   test_kv2TestBessel.test_kv2  r  rD   c                H    \        \        P                  ! ^ ^4      R4       R# )    g.Ք"HN)r   r   r7  r>   s   &r@   test_kn_largeorderTestBessel.test_kn_largeorder  s    

2q)+ABrD   c                H    \        \        P                  ! ^ R4      ^ 4       R# )r   g =`XCNr~  r>   s   &r@   test_kv_largeargTestBessel.test_kv_largearg"  s    WZZ4(!,rD   c                r    \        \        P                  ! R R4      \        P                  ! RR4      4       R# r}  )r   r   rT  r>   s   &r@   test_negv_kveTestBessel.test_negv_kve%  s"    W[[c*GKKc,BCrD   c                :   \         P                  ! ^ R4      p\         P                  ! ^ R4      \        R4      ,          p\	        WR^ R7       Rp\         P                  ! ^ V4      p\         P                  ! ^ V4      \        V4      ,          p\	        WER^ R7       R# )r   r   r  rR   Nr(  )r   rT  rP  r   r   )r?   kve1r  rI  kve2r  s   &     r@   rU  TestBessel.test_kve(  sp    {{1R jj2s2w&Q7{{1Qjj1oc!f$Q7rD   c           	         R p\        \        P                  ! ^V4      ) \        P                  ! ^ V^R7      R^ R7       R# )rP  rl   r  rR   N)r   r   rP  kvp)r?   rI  s   & r@   test_kvp_v0n1TestBessel.test_kvp_v0n11  s3    Aq))7;;q!q+A$1	.rD   c                    R pRp\         P                  ! V^,           V4      ) W,          \         P                  ! W4      ,          ,           p\         P                  ! W^R7      p\        W4R^ R7       R# rv  rP  r  r  rR   Nr   rP  r  r   r?   r  rI  xcr   s   &    r@   test_kvp_n1TestBessel.test_kvp_n16  sS    jj1Q!#gjjo"55KKq!G!4rD   c                <   R pRpV^,          V^,          ,           V,
          V^,          ,          \         P                  ! W4      ,          \         P                  ! V^,           V4      V,          ,           p\         P                  ! W^R7      p\        W4R^ R7       R# r  r  r  s   &    r@   test_kvp_n2TestBessel.test_kvp_n2>  sl    d1a4ik1a4'**Q/1GJJqs14Ea4GGKK"G!4rD   c                |    \         P                  ! R 4      p\         P                  ! ^ R 4      p\        WR^ R7       R# r  )r   r  r  r   r  s   &  r@   r  TestBessel.test_y0E  r  rD   c                |    \         P                  ! R 4      p\         P                  ! ^R 4      p\        WR^ R7       R# r  )r   r  r  r   r  s   &  r@   r  TestBessel.test_y1J  s+    ZZ^jj2V!4rD   c                d   \         P                  ! ^4      w  r\         P                  ! ^^R7      w  r4\        W3,          p\        W$3,          p\        \	        \         P
                  ! RV4      4      RR^ R7       \        \	        \         P
                  ! ^V4      V,
          4      RR^ R7       R# )rV   r<  r   r  rR   N)r   y0_zerosr   r   r  r  )r?   yoypozozpor  allvals   &      r@   test_y0_zerosTestBessel.test_y0_zerosO  s    !!!$!!!A.iCGGJJsC013W1MGJJq#.78#GRSTrD   c                |    \         P                  ! ^4      p\        V\        R.4      \        R.4      3R^ R7       R# )ra   rQ  gѮBO?r;  rR   N)r   y1_zerosr   r   )r?   r  s   & r@   test_y1_zerosTestBessel.test_y1_zerosW  s6    a UG9-ugY/?@#!	-rD   c                    \         P                  ! ^^R7      p\        V\        R.4      \        R.4      3R^ R7       R# )ra   r  rY  rR   NyL
F%u?!rh?y;OnгY?)r   	y1p_zerosr   r   )r?   y1ps   & r@   test_y1p_zerosTestBessel.test_y1p_zeros\  s9    !,e]O4e_<M6NO#!	-rD   c                    \         P                  ! ^^4      p\        V\        RR.4      R^ R7       \         P                  ! R^4      p\        V. R	ORR7       R# )
rT   g3@g(A&"@r;  rR   rK  r   rL   N)g]E.+"|@gH(|@gff|}@g&b`~@gHO_~@)r   yn_zerosr   r   )r?   ans   & r@   test_yn_zerosTestBessel.test_yn_zerosa  sR    a"E7G"45FKc!$ 4
 #	%rD   c                P   \         P                  ! ^ ^4      p\        V\        RR.4      R^ R7       \         P                  ! ^+^4      p\        \         P                  ! ^+V4      ^ RR7       \         P                  ! R^4      p\        \         P                  ! RV4      ^ RR7       R	# )
r   gQhվ@gzN@r  rR   r   r  rK  r   N)r   	ynp_zerosr   r   r  r?   aos   & r@   test_ynp_zerosTestBessel.test_ynp_zerosl  s~    q#E:z":;&qQr!$B+QU;s1%C,ad;rD   c                z    \         P                  ! R ^4      p\        \         P                  ! R V4      ^ RR7       R# )rK  r  r  N)r   r  r   r  r  s   & r@   test_ynp_zeros_large_order%TestBessel.test_ynp_zeros_large_ordert  s+    s1%C,ae<rD   c                R    \         P                  ! ^R4      p\        VRR^ R7       R# ra   r   r  rR   N5,1
)r   r  r   )r?   yn2ns   & r@   r  TestBessel.test_ynx  s!    zz!B1QGrD   c                d    \         P                  ! R ^4      pV\        P                  ) 8X  g   Q hR# )rP   N)r<   r  rc   r   )r?   r  s   & r@   test_yn_gh_20405TestBessel.test_yn_gh_20405|  s&    99S!$BFF7"""rD   c                z    \        \        P                  ! R^4      \        P                  ! ^^4      ) R^ R7       R# r  )r   r   r  r>   s   &r@   test_negv_yvTestBessel.test_negv_yv  s,    

2q)GJJq!,<+<$1	.rD   c                R    \         P                  ! ^R4      p\        VRR^ R7       R# r  )r   r  r   )r?   yv2s   & r@   r  TestBessel.test_yv  s!    jj20vAFrD   c                z    \        \        P                  ! R^4      \        P                  ! ^^4      ) R^ R7       R# r  )r   r   r  r>   s   &r@   test_negv_yveTestBessel.test_negv_yve  r&  rD   c                    \         P                  ! ^R4      p\        VRR^ R7       \         P                  ! ^R4      \	        R4      ,          p\         P                  ! ^R4      p\        W2R^ R7       R# )ra   r   r  rR   Nr  r(  r\   )r   r  r   r  r   )r?   yve2yve2ryve22s   &   r@   r  TestBessel.test_yve  sV    {{1R 1QG

1U#CG+Ae$6:rD   c                    \         P                  ! ^R4      \         P                  ! ^R4      ,
          R,          p\         P                  ! ^R4      p\        W!R^ R7       R# )ra   r   r  r  rR   N)r   r  r  r   )r?   yvpryvp1s   &  r@   test_yvpTestBessel.test_yvp  sC    

1R 7::a#33S8{{1R q9rD   c              #     "   . ROp. ROp\         P                  ! W4       Rj  xL
  \         P                  ! R\        R^<4      ,           R.4       Rj  xL
  R#  L7 L5i)z>Yield points at which to compare Cephes implementation to AMOSr   Nrw  )ir        4r  r   r  r   r   {G(@r  r.  )ir  r\   r   r       i@g     y@g     Ă@g@  i'  i)	itertoolsproductr   )r?   r  rI  s   &  r@   _cephes_vs_amos_points!TestBessel._cephes_vs_amos_points  sX      K$$Q*** $$S6#r?%:SEBBB	 	+ 	Cs!   "A A0A AA A Nc           	        V P                  4        F  w  rgVe   V! Wg4      '       d   K  V! Wg4      V! WgR,           4      V! \        V4      V4      rp\        P                  ! V4      '       d'   \	        \        P
                  ! V	4      R8  Wg34       K  \        P                  ! V4      '       d   \	        V	P                  ^ 8g  Wg34       K  \        WWg3W4R7       V\        V4      8X  g   K  \        WWg3W4R7       K  	  R # )Nr;  u <7~)r  rM   rS   )	r  r|   rc   r  r   r  r   rG  r   )r?   r  f2rM   rS   r  r  rI  c1c2c3s   &&&&&&     r@   check_cephes_vs_amosTestBessel.check_cephes_vs_amos  s    //1DADJJA2a":r#a&!}BBxx||r
e+aV4"1qf-TMA;#BQF*.; 2rD   ppc64lezfails on ppc64ler?  c                h    V P                  \        P                  \        P                  R RR7       R# )rQ   u5% r  N)r  r   r  r  r>   s   &r@   test_jv_cephes_vs_amos!TestBessel.test_jv_cephes_vs_amos  #     	!!'**gjju6!RrD   c                h    V P                  \        P                  \        P                  R RR7       R# )dy=r 	  r  Nr  r   r  r  r>   s   &r@   test_yv_cephes_vs_amos!TestBessel.test_yv_cephes_vs_amos  r	  rD   c                p    R  pV P                  \        P                  \        P                  RRVR7       R# )c                     \        V 4      ^28  # )2   )r  )r  rI  s   &&r@   skipperDTestBessel.test_yv_cephes_vs_amos_only_small_orders.<locals>.skipper  s    q6B;rD   r	  r 	  )rM   rS   r  Nr	  )r?   r	  s   & r@   (test_yv_cephes_vs_amos_only_small_orders3TestBessel.test_yv_cephes_vs_amos_only_small_orders  s-    	!!'**gjju6'. 	" 	0rD   c           	         \         P                  ! R R7      ;_uu_ 4        V P                  \        P                  \        P                  RRR7       RRR4       R#   + '       g   i     R# ; i)r^  r  g:0y5>r 	  r  N)rc   r  r  r   r  r>   s   &r@   test_iv_cephes_vs_amos!TestBessel.test_iv_cephes_vs_amos  s?    [[X&&%%gjj'**4f%U '&&&s   2AA-	c                   R p\         P                  P                  ^4       \         P                  P                  RV4      R\         P                  P	                  ^VR7      ,          ,          p\         P                  P                  RV4      R\         P                  P	                  ^VR7      ,          ,          p\         P                  P	                  ^VR7      ^ 8H  pW$,          P                  \         P                  4      W$&   \         P                  ! RR7      ;_uu_ 4        \        P                  ! W#4      p\        P                  ! W#R,           4      p\         P                  V\        V4      R8  &   \         P                  V\        V4      R8  &   ^ V\        V4      R8  &   ^ V\        V4      R8  &   \        WV,          ^,
          4      p^ V\         P                  ! V4      &   R	R	R	4       \         P                  ! X4      p\        Wx,          R
8  W(,          W8,          \        P                  ! W(,          W8,          4      \        P                  ! W(,          W8,          R,           4      34       R	#   + '       g   i     L; i)i@B r   r  r   r^  r  r;  r  gYnNgH׊>r\   )rc   ri   ru   r  r  r   r  r  r   r  r   r  r   argmaxr   )	r?   r  r  r   imskr  r  dcrm   s	   &        r@    test_iv_cephes_vs_amos_mass_test+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'..*[[X&&A!BAt$B #%&&Bs2w"$&&Bs2w#$Bs2w #$Bs2w RUQYB Brxx| ' IIbM 	EDLT14AD!$/AD!$r'1JK	
# '&s   &CI99J		c                    V P                  \        P                  \        P                  R RR7       V P                  \        P                  \        P                  R RR7       R# )r   r 	  r  N)r  r   rP  r7  r>   s   &r@   test_kv_cephes_vs_amos!TestBessel.test_kv_cephes_vs_amos  s@    !!'**gjjt&!Q!!'**gjjt&!QrD   c                    \        \        P                  ! ^^4      R4       \        \        P                  ! RR4      R4       \        \        P                  ! RR4      R4       R# )r  gP?r.  r  g~Omʒ?gY8E@@NgKSnr  r>   s   &r@   test_ticket_623TestBessel.test_ticket_623  sD    

1a(*=>

3-/AB

3	24GHrD   c           	     
   \        \        P                  ! R^4      R4       \        \        P                  ! R^4      R4       \        \        P                  ! R^4      R4       \        \        P                  ! R^4      R4       \        \        P                  ! R^4      R4       \        \        P                  ! R^4      R4       \        \        P
                  ! R^4      R4       \        \        P
                  ! R^4      R4       \        \        P                  ! R^4      R4       \        \        P                  ! R^4      R4       \        \        P                  ! R^4      R	4       \        \        P
                  ! R^4      R
4       \        \        P                  ! RR4      R4       \        \        P                  ! RR4      R4       \        \        P                  ! RR4      R4       \        \        P                  ! RR4      R4       \        \        P                  ! RR4      R4       \        \        P                  ! RR4      R4       \        \        P
                  ! RR4      R4       \        \        P
                  ! RR4      R4       \        \        P                  ! RR4      R4       \        \        P                  ! RR4      R4       \        \        P                  ! RR4      R4       \        \        P                  ! RR4      R4       \        \        P                  ! RR4      R	4       \        \        P                  ! RR4      R4       \        \        P
                  ! RR4      R
4       \        \        P
                  ! RR4      R4       \        \        P                  ! RR4      \        P                  ! RR4      \        R4      ,          4       \        \        P                  ! RR4      \        P                  ! RR4      \        R4      ,          4       \        \        P                  ! RR4      \        P                  ! RR4      \        R4      ,          4       \        \        P                  ! RR4      \        P
                  ! RR4      \        R4      ,          4       \        \        P                  ! RR4      \        P                  ! RR4      R\        P                  ! RR4      ,          ,           4       \        \        P                  ! RR4      \        P                  ! RR4      R\        P                  ! RR4      ,          ,
          4       R# )zNegative-order BesselsgPj?gk?g敋?gw--`?gÉB?gW?g޴?gz|?a?gpx%?rC  Nr\   gl)ܿrY  g%E*2ir  y      ?        y      ?      ?yYD?`{1wy6x?B]#Ӯ?y ?b>?y.}9d?8kؿy      ?333333?r  y333333?      ?)r   r   r  r  r  rP  r  r   r  r  rT  r  r  r>   s   &r@   test_ticket_853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(=%==	
rD   c                0   \        \        \        P                  ! RR4      4      4       \        \        \        P                  ! RR4      4      4       \        \        \        P
                  ! RR4      4      4       \        \        \        P
                  ! ^R4      4      4       \        \        \        P                  ! RR4      4      4       \        \        \        P                  ! ^R4      4      4       \        \        \        P                  ! RR4      4      4       \        \        \        P                  ! RR4      4      4       \        \        \        P                  ! RR4      4      4       \        \        \        P                  ! ^R4      4      4       \        \        \        P                  ! RR4      4      4       \        \        \        P                  ! ^R4      4      4       \        \        \        P                  ! R4      R,          4      P                  4       \        P                  ! R4      4       \        \        \        P                  ! R4      R,          4      P                  4       '       * \        P                  ! R4      4       R# )zReal-valued Bessel domainsr   :r   rV   N:rV   rT   NNr\   )r   r   r   r  r  r  rP  r  r  r  rT  rF   r  r  r>   s   &r@   test_ticket_854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'--+C015577r9JKrD   c                    \        \        P                  ! R ^ 4      \        P                  8H  4       \        \        P
                  ! R ^ 4      \        P                  8H  4       R# )r  N)r   r   rP  rc   r   rT  r>   s   &r@   test_gh_7909TestBessel.test_gh_79094  s:    

3"bff,-C#rvv-.rD   c                    \        \        P                  ! ^R4      R4       \        \        P                  ! RR4      R4       R# )zReal-valued Bessel I overflowi  g~rO   i`  g ?los~Nr   r   r  r>   s   &r@   test_ticket_503TestBessel.test_ticket_5038  s.    

1c*,AB

4.0EFrD   c                H    \        \        P                  ! R^4      R4       R# )r   r!	  Nr  r+	  r>   s   &r@   test_iv_hyperg_polesTestBessel.test_iv_hyperg_poles=  s    

4+->?rD   c                8   \        ^ V4      P                  \        4      pV^V,          ,           \        RV,          4      ,          \        P
                  ! V^,           4      ,
          \        P
                  ! W,           ^,           4      ,
          p\        V\        V4      &   \        V4      p\        V4      P                  4       \        \        4      P                  ,          V,          \        VR,          4      ^
,          ,           pVP                  4       V3# )r   r   r\   )r   r   r   r   r   rz  r   r   r   r  r   r   r  sumr?   r  rI  rl   rm   rm  r4  s   &&&&   r@   	iv_seriesTestBessel.iv_series@  s    1aL'qsUC1I! 44wqs1u7MM%(F!fjjlU6]...2S2Z]Buuw|rD   c                    R F9  pV P                  ^ V4      w  r#\        \        P                  ! V4      W#VR7       K;  	  R# r   rS   r  N)r   r  r  )r4	  r   r   r  r?   rI  valuer4  s   &   r@   test_i0_seriesTestBessel.test_i0_seriesH  2    !A1-JEGJJqM5AF "rD   c                    R F9  pV P                  ^V4      w  r#\        \        P                  ! V4      W#VR7       K;  	  R# r7	  )r4	  r   r   r  r9	  s   &   r@   test_i1_seriesTestBessel.test_i1_seriesM  r=	  rD   c           	         R FB  pR F9  pV P                  W4      w  r4\        \        P                  ! W4      W4W3R7       K;  	  KD  	  R# )      4@r8	  N)r  r  r   r   r   r  r  )r   r  r  y             @)r4	  r   r   r  r?   r  rI  r:	  r4  s   &    r@   test_iv_seriesTestBessel.test_iv_seriesR  s=    7A,!^^A1


1 0%A6R - 8rD   c           	         R R.RR.RR.RR.RR.RR	.R
R.RR..p\        V4       FA  w  pw  r4\        P                  ! V4      \        V) 4      ,          p\	        WTR^ RV 2R7       KC  	  R# )r   r   rQ   rB  g0oO?r   g!?grb?r  gpH?r   gC~?rB	  ggo?r  r  r  N)r  r   r  r   r   r?   r  r   r   r  r  s   &     r@   r  TestBessel.test_i0X  s    *#,%%%%%& #6*IAvAaR(BBQ&M +rD   c                |    \         P                  ! R 4      p\         P                  ! ^ R 4      p\        WR^ R7       R# r  )r   r  r  r   )r?   oizeoizers   &  r@   r  TestBessel.test_i0ef  +    {{2Ar"&q9rD   c           	         R R .RR.RR.RR.RR.R	R
.RR..p\        V4       FA  w  pw  r4\        P                  ! V4      \        V) 4      ,          p\	        WTR^ RV 2R7       KC  	  R# )r   rQ   gj|=rB  gȕ![1?r   g;͘?r   gRΜ?r   g|?rB	  g}f?r  r  r  N)r  r   r  r   r   rG	  s   &     r@   r  TestBessel.test_i1k  s    *01%%%%& #6*IAvAaR(BBQ&M +rD   c                |    \         P                  ! R 4      p\         P                  ! ^R 4      p\        WR^ R7       R# r  )r   r  r  r   )r?   oi1eoi1ers   &  r@   r  TestBessel.test_i1ex  rM	  rD   c                x    \        \        P                  ! ^4      4      p\        V\        RR.4      R^ R7       R# )r   gїJB?@g*u?r;  rR   N)r   r   r  r   )r?   iti0s   & r@   r  TestBessel.test_iti0k0}  s2    W^^A&'e%79K$LM#!	-rD   c                f    \         P                  ! R 4      p\        V\        RR.4      R^ R7       R# )rB  gݳɄ|T?gVƥ
@r  rR   N)r   r  r   r   )r?   it2ks   & r@   r  TestBessel.test_it2i0k0  s-    r"e%:<N$OP#!	-rD   c                r    \         P                  ! ^ R4      \        R4      ,          p\        VRR^ R7       R# )r   rB  gv M?r  rR   N皙)r   r  r   r   )r?   iv1s   & r@   r  TestBessel.test_iv  s*    jj2s3x'0wQGrD   c                r    \        \        P                  ! ^^4      \        P                  ! R^4      4       R# r  )r   r   r  r>   s   &r@   test_negv_iveTestBessel.test_negv_ive  s"    W[[1%w{{2a'89rD   c                    \         P                  ! ^ R4      p\         P                  ! ^ R4      \        R4      ,          p\	        WR^ R7       R# )r   rB  r  rR   Nr[	  )r   r  r  r   r   )r?   ive1r\	  s   &  r@   r  TestBessel.test_ive  s7    {{1R jj2s3x'a8rD   c                x    \        \        P                  ! ^^4      \        P                  ! ^ ^4      R^ R7       R# )ra   r  rR   N)r   r   r  ivpr>   s   &r@   	test_ivp0TestBessel.test_ivp0  s'    

1a('++a*;'PQRrD   c                    \         P                  ! ^ ^4      \         P                  ! ^^4      ,           ^,          p\         P                  ! ^^4      p\        W!R^ R7       R# )r   r  rR   N)r   r  re	  r   r  s   &  r@   test_ivpTestBessel.test_ivp  sA    ZZ!_wzz!A.1KK!73rD   r  )r	  r   N)   )Yr  r  r  r  r  r  r  r  r  r  r  r	  r$  r  r6  r;  rH  rN  rT  rY  r  r  r  r   rv  r8  r  r  r  r  r  r  r  rU  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  machiner	  r	  r	  r	  slowr	  r	  r	  r"	  r%	  r(	  r,	  r/	  r4	  r;	  r?	  rD	  r  r  r  r  r  r  r  r_	  r  rf	  ri	  r  r  r  s   @r@   r  r  H  s4    -
-
86
6
IT	N.=L<G$J	>-0;
7
:
7
:
G&FBGFFC-D8.
556
5
U-
-
	%<=H#
.G.;:

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N:
N:
-
-
H:9
S4 4rD   r  c                   ,   a  ] tR tRt o R tR tRtV tR# )TestLaguerrei  c                   \         P                  ! ^ 4      p\         P                  ! ^4      p\         P                  ! ^4      p\         P                  ! ^4      p\         P                  ! ^4      p\         P                  ! ^4      p\        VP                  ^.R^ R7       \        VP                  R^.R^ R7       \        VP                  \	        . R	O4      R,          R^ R7       \        VP                  \	        . R
O4      R,          R^ R7       \        VP                  \	        . RO4      R,          R^ R7       \        VP                  \	        . RO4      R,          R^ R7       R# )r   r  rR   r  r*  rp  r  Nr\   )ra   r~  rV   )r\   r  ir]   )ra   iH   ir   )r\   r   i8iX  ix   )r   laguerrer   rc  r   )r?   lag0lag1lag2lag3lag4lag5s   &      r@   test_laguerreTestLaguerre.test_laguerre  s   """"""':QgA>i 03 6W1Mm 4S 8wQO&8 9$ >$1	.&D E M$1	.rD   c           
        ^\         P                  P                  4       ,          R,
          p\        P                  ! ^ V4      p\        P                  ! ^V4      p\        P                  ! ^V4      p\        P                  ! ^V4      p\	        VP
                  ^.4       \	        VP
                  RV^,           .4       \        VP
                  \        ^R	V^,           ,          VR,           VR,           ,          .4      R,          R^ R7       \        R^V^,           ,          R
V^,           ,          V^,           ,          V^,           V^,           ,          V^,           ,          .4      R,          p\        VP
                  VR^ R7       R# )r   r  r   r  r   rR   r*  Nr\   rY  r  )rc   ri   r   r,  r   rc  r   r   )r?   rm   rt	  ru	  rv	  rw	  rJ  s   &      r@   test_genlaguerreTestLaguerre.test_genlaguerre  s/   bii  3&""1Q'""1Q'""1Q'""1Q'TVVaS!TVVb!a%[)q"A,RAF8K&L MPS S#!	-"q1u+A,!a%0q5QU+q1u57 8 ;>> 	vA>rD   r  N)r  r  r  r  rz	  r}	  r  r  r  s   @r@   ro	  ro	    s     . ? ?rD   ro	  c                   &   a  ] tR tRt o R tRtV tR# )
TestLambdai  c           
        \         P                  ! ^R4      p\        \         P                  ! ^ R4      ^\         P                  ! ^R4      ,          R,          .4      \        \         P                  ! ^ R4      R\         P
                  ! ^R4      ,          R,          ^\         P                  ! ^R4      ,          R,          ,           .4      3p\        WR^ R7       R# )ra   rB  r  r  rR   NrY  )r   lmbdar   r  r  r  r   )r?   lamlamrs   &  r@   
test_lmbdaTestLambda.test_lmbda  s    mmAb!7::a#Qwzz!B'7%7%:;<7;;q$bAb)9&9#&='++aPRBS@STV@V&VWX
 	Q7rD   r  N)r  r  r  r  r	  r  r  r  s   @r@   r	  r	    s     8 8rD   r	  c                   ,   a  ] tR tRt o R tR tRtV tR# )	TestLog1pi  c                    \         P                  ! ^
4      \         P                  ! ^4      \         P                  ! ^4      3p\        ^4      \        ^4      \        ^4      3p\        WR^ R7       R# )ry  r  rR   Nr   rZ  r   r   )r?   l1pl1prls   &  r@   r[  TestLog1p.test_log1p  sM    }}R '--"3W]]25FGR#b'3r7+a8rD   c                    \         P                  ! ^4      \         P                  ! R4      \         P                  ! R4      3p\        ^4      \        R4      \        R4      3p\        WR^ R7       R# )ra   r  r  rO  rP  r  rR   Nr	  )r?   l1pml1pmrls   &  r@   test_log1pmoreTestLog1p.test_log1pmore  sM    a '--"4gmmC6HIa&S#c(+6:rD   r  N)r  r  r  r  r[  r	  r  r  r  s   @r@   r	  r	    s     9
; ;rD   r	  c           
       aa S^,          ^ 8X  d   ^MRp^V,          \        VV3R lV) ^,          V^,          R^\        P                  ,          V ,          V,          RR7      ^ ,          ,          pV ^ 8  d
   V^,          pV# )z
Compute the Fourier coefficient of the even Mathieu function.
The integral definition of a Fourier coefficient is used.
This function is used as an alternative implementation of
mathieu_even_coef().
h  c                 B   < \         P                  ! SSV 4      ^ ,          # r'  )r   r  rD  rl   ru  s   &r@   r  7ce_fourier_coefficient_using_integral.<locals>.<lambda>      '"5"5aA">q"ArD   r
   r  weightwvarepsrelr5   rc   r   rm   rl   ru  periodrc  s   &ff  r@   %ce_fourier_coefficient_using_integralr	    sy     EQJSCF 
64A	6!8$1RUU719V+;EKKLN 	NA 	1u	QHrD   c           
        aa V ^ 8X  d   R# S^,          ^ 8X  d   ^MRp^V,          \        VV3R lV) ^,          V^,          R^\        P                  ,          V ,          V,          RR7      ^ ,          ,          pV# )z
Compute the Fourier coefficient of the odd Mathieu function.
The integral definition of a Fourier coefficient is used.
This function is used as an alternative implementation of
mathieu_odd_coef().
r   r	  c                 B   < \         P                  ! SSV 4      ^ ,          # r'  )r   r  r	  s   &r@   r  7se_fourier_coefficient_using_integral.<locals>.<lambda>  r	  rD   r	   r  r	  r	  r	  s   &ff  r@   %se_fourier_coefficient_using_integralr	    sq     	AvEQJSCF	
64A	6!8$1RUU719V+;EKKLN 	NA HrD   c                   @  a  ] tR tRt o ]P
                  P                  RR	R
.4      R 4       t]P
                  P                  RRR.4      R 4       t]P
                  P                  RRR.4      R 4       t	]P
                  P                  RRR.4      R 4       t
RtV tR# )TestMathieui  zn, qc                    \         P                  ! W4      p\        ^4       Uu. uF  p\        WAV4      NK  	  pp\	        WSR\        V4       RR7       R# u upi )rT   NrQ   rL   r   r(   r}   r	  r   r  r?   rl   ru  Arm   rc  s   &&&   r@   .test_mathieu_even_coef_against_integral_n_even:TestMathieu.test_mathieu_even_coef_against_integral_n_even  sR    
 %%a+ FK1XNX21;XNWc!f:E2 Os   Ac                    \         P                  ! W4      p\        ^^	^4       Uu. uF  p\        WAV4      NK  	  pp\	        WSR\        V4       RR7       R# u upi ra   NrQ   rL   r	  r	  s   &&&   r@   -test_mathieu_even_coef_against_integral_n_odd9TestMathieu.test_mathieu_even_coef_against_integral_n_odd  sW     %%a+ FK1aQR^T^21;^TWc!f:E2 U   Ac                    \         P                  ! W4      p\        ^^4       Uu. uF  p\        WAV4      NK  	  pp\	        WSR\        V4       RR7       R# u upi r	  r   r'   r}   r	  r   r  r?   rl   ru  Brm   rc  s   &&&   r@   -test_mathieu_odd_coef_against_integral_n_even9TestMathieu.test_mathieu_odd_coef_against_integral_n_even  sT     $$Q* FK1a[Q[21;[QWc!f:E2 Rs   Ac                    \         P                  ! W4      p\        ^^	^4       Uu. uF  p\        WAV4      NK  	  pp\	        WSR\        V4       RR7       R# u upi r	  r	  r	  s   &&&   r@   ,test_mathieu_odd_coef_against_integral_n_odd8TestMathieu.test_mathieu_odd_coef_against_integral_n_odd  sW     $$Q* FK1aQR^T^21;^TWc!f:E2 Ur	  r  N)rT   rw  )r  g      @)r  rw  )rX   rV   )rV   rw  )ry  rV   )r  r  r  r  r  r  r  r	  r	  r	  r	  r  r  r  s   @r@   r	  r	    s     [[Vh	%:;3 <3 [[Vh%78	3 9	3 [[Vh%89	3 :	3 [[Vh%78	3 9	3rD   r	  c                   ,   a  ] tR tRt o R tR tRtV tR# )TestFresnelIntegrali*  c                    R # r5  r  r>   s   &r@   r  $TestFresnelIntegral.test_modfresnelp,  r7  rD   c                    R # r5  r  r>   s   &r@   r  $TestFresnelIntegral.test_modfresnelm/  r7  rD   r  N)r  r  r  r  r  r  r  r  r  s   @r@   r	  r	  *  s      rD   r	  c                   &   a  ] tR tRt o R tRtV tR# )TestOblCvSeqi3  c                j    \         P                  ! ^ ^^4      p\        V\        . RO4      R^ R7       R# )r   r;  rR   N)g~T~Oֿgt_J?gm{@g@j'&@)r   
obl_cv_seqr   r   )r?   obls   & r@   test_obl_cv_seqTestOblCvSeq.test_obl_cv_seq4  s3      1Q'U $/ 0 $!		-rD   r  N)r  r  r  r  r	  r  r  r  s   @r@   r	  r	  3       - -rD   r	  c                   J   a  ] tR tRt o R tR tR tR tR tR t	R t
R	tV tR
# )TestParabolicCylinderi=  c                    \         P                  ! ^R4      p\        V\        RR.4      \        RR.4      3R^ R7       R# )	ra   rB  gQ?gx$(~?g(\?r  rR   Ngx$(~)r   pbdn_seqr   r   )r?   pbs   & r@   test_pbdn_seq#TestParabolicCylinder.test_pbdn_seq>  sM    a$UF$*$, -"G$*$, -. $!		-rD   c                    \         P                  ! ^R4       R\         P                  ! ^R4      ^ ,          ,          \         P                  ! ^ R4      ^ ,          ,
           R# )ra   r   NrB  )r   r.  r>   s   &r@   r/  TestParabolicCylinder.test_pbdvF  s@    Qra#A&&a);A)>>>rD   c                    \         P                  ! ^R4      p\         P                  ! ^R4      p\        V\	        V^ ,          4      \	        V^,          4      3R^ R7       R# )ra   rB  r  rR   N)r   r	  pbdv_seqr   r   )r?   pbnpbvs   &  r@   test_pbdv_seq#TestParabolicCylinder.test_pbdv_seqJ  sI    q$q$d3q6lDQL9QOrD   c                   \         P                  ! R^
^4      p^V^,          ,          \         P                  ! \         P                  4      ,          \        P
                  ! RRV,          ,
          4      ,          p\        \        P                  ! VR4      ^ ,          VRRR7       \        \        P                  ! RR4      ^ ,          RRR	7       \        \        P                  ! RR
4      ^ ,          RRR	7       R# )ry  r   r   r  r  gGz$@gq=
ףp4@gHQ9r   rL   gQ@gkS a>Nr  g(\#)rc   r  r   r   r   rq  r   r.  )r?   etarI  s   &  r@   test_pbdv_points&TestParabolicCylinder.test_pbdv_pointsO  s    kk#r1%AJrwwruu~%gnnR3Y&??S"-a0!%eL 	UE2157JQVWUD1!46JQVWrD   c                   \         P                  ! R^^4      R,          p\         P                  ! R^
^4      R	,          p\        P                  ! W!4      pRR\	        V4      ,          ,           p\        P                  ! W!V,           4      ^ ,          \        P                  ! W!V,
          4      ^ ,          ,
          V,          R,          p\        V^,          VRRR7       R# 
rT   Nr  r  r   r  r~  rY   r  r[   )rc   r  r   r.  r  r   r?   r   r	  rX  r  dps   &     r@   test_pbdv_gradient(TestParabolicCylinder.test_pbdv_gradientY      KKAq!&)kk#r1%f-LL T#a&[ ll3C(+gll3C.H.KKsRUWW!bt$7rD   c                   \         P                  ! R^^4      R,          p\         P                  ! R^
^4      R	,          p\        P                  ! W!4      pRR\	        V4      ,          ,           p\        P                  ! W!V,           4      ^ ,          \        P                  ! W!V,
          4      ^ ,          ,
          V,          R,          p\        V^,          VRRR7       R# r	  )rc   r  r   r2  r  r   r	  s   &     r@   test_pbvv_gradient(TestParabolicCylinder.test_pbvv_gradientb  r	  rD   c                    \         P                  ! ^^4      w  r\        V\        P                  ! . RO4      4       \        V\        P                  ! . RO4      4       R# )rV   N)g:4@g1{н?g7,%n?)gX@g=<'?gʠ?)r   pbvv_seqr   rc   r   )r?   res1res2s   &  r@   test_pbvv_seq#TestParabolicCylinder.test_pbvv_seqk  sL    %%a+
bhh (< = 	> 	bhh (; < 	=rD   r  N)r  r  r  r  r	  r/  r	  r	  r	  r	  r	  r  r  r  s   @r@   r	  r	  =  s/     -?P
X88= =rD   r	  c                   &   a  ] tR tRt o R tRtV tR# )TestPolygammaiu  c           	        \         P                  ! ^^4      p\         P                  ! ^^4      p\        VRR^ R7       \        VRR^ R7       . ROp\        \         P                  ! ^ V4      \         P                  ! V4      R^ R7       . ROp. R	Op. R
Op\        \         P                  ! WC4      VR^ R7       \        P
                  ! V.^,          4      p\        \         P                  ! V\        P
                  ! V.^,          4      4      VR^ R7       \        \         P                  ! \        P
                  ! V.^,          4      V4      VR^ R7       R# )rV   r  rR   gOV,@@r   NgX];)rV   r  g  8Br;  r  )g2}jg.M?g}2;ο)r   	polygammar   ri  rc   r  )r?   poly2poly3r   rl   rJ  s   &     r@   test_polygammaTestPolygamma.test_polygammaw  s	   !!!Q'!!!Q'}7C|'B ))!Q/Q#!	- *))!/QO99hZ\*))!RYYs1u-=>#!	-))"))QCE*:A>#!	-rD   r  N)r  r  r  r  r	  r  r  r  s   @r@   r	  r	  u  s     - -rD   r	  c                   &   a  ] tR tRt o R tRtV tR# )TestProCvSeqi  c                j    \         P                  ! ^ ^^4      p\        V\        . RO4      R^ R7       R# )r   r;  rR   N)g"~j?g6?Ң@g)u8F"@g2g)@)r   
pro_cv_seqr   r   )r?   prols   & r@   test_pro_cv_seqTestProCvSeq.test_pro_cv_seq  s3    !!!Q*e %0 1 $!		-rD   r  N)r  r  r  r  r	  r  r  r  s   @r@   r	  r	    r	  rD   r	  c                   &   a  ] tR tRt o R tRtV tR# )TestPsii  c                P    \         P                  ! ^4      p\        VRR^ R7       R# )ra   r  rR   Ngox)r   ri  r   )r?   pss   & r@   rj  TestPsi.test_psi  s    [[^0vAFrD   r  N)r  r  r  r  rj  r  r  r  s   @r@   r	  r	    s     G GrD   r	  c                   ,   a  ] tR tRt o R tR tRtV tR# )
TestRadiani  c                j    \         P                  ! ^Z^ ^ 4      p\        V\        R,          R^ R7       R# )r  r  r;  rR   Nr   rm  r   r   )r?   rads   & r@   rn  TestRadian.test_radian  s&    nnRA&RV&q9rD   c                x    \         P                  ! ^Z^^<4      p\        V\        ^,          R,           R^ R7       R# )r  gC?r;  rR   Nr
  )r?   rad1s   & r@   test_radianmoreTestRadian.test_radianmore  s,    ~~b!R(bd%::aPrD   r  N)r  r  r  r  rn  r
  r  r  r  s   @r@   r
  r
    s     :Q QrD   r
  c                   ,   a  ] tR tRt o R tR tRtV tR# )TestRiccatii  c                D   ^Rr!\         P                  ! W34      p\        V4       FR  p\        P                  ! WB4      p\        P                  ! WBRR7      pW%,          V^ V3&   W&,          V,           V^V3&   KT  	  \        V\        P                  ! XV4      R^ R7       R# rV   r   T)
derivativer  rR   N)rc   emptyr}   r   spherical_jnr   
riccati_jn)r?   r  r   Srl   r  jps   &      r@   test_riccati_jnTestRiccati.test_riccati_jn      #1HHaVqA$$Q*A%%at<BSAacFTAXAacF	 
 	7--a3&qIrD   c                D   ^Rr!\         P                  ! W34      p\        V4       FR  p\        P                  ! WB4      p\        P                  ! WBRR7      pW%,          V^ V3&   W&,          V,           V^V3&   KT  	  \        V\        P                  ! XV4      R^ R7       R# r
  )rc   r
  r}   r   spherical_ynr   
riccati_yn)r?   r  r   Crl   rH  yps   &      r@   test_riccati_ynTestRiccati.test_riccati_yn  r
  rD   r  N)r  r  r  r  r
  r
  r  r  r  s   @r@   r
  r
    s     JJ JrD   r
  c                   ,   a  ] tR tRt o R tR tRtV tR# )TestSoftplusi  c                \   ^ RI pVP                  P                  R4      p^pVP                  RR	VR7      pVP                  R	^VR7      pVP                  ^RVR7      pVP                  R^dVR7      pVP                  ! WEWg.4      p. R
O. RO. RO. RO.p	\        V4      p
\        WRR7       R# )r   Nl   (sr	  r  g
ףp=@@r  rL   ii)g%~B7gpNf7g8B8)gJR{?g6]=gXes>)g n@?@gWH;@glH.=@)g9lchPR@gS@gzsevB@)numpyri   default_rnguniformstackr&   r   )r?   rc   rp   rl   r.  r/  a3a4r  rv  r  s   &          r@   test_softplusTestSoftplus.test_softplus  s     	ii##M2[[s[+[[bq[)[[T[*[[![,HHbb%& TQKHJ
 qku-rD   c                    \         P                  ! ^4      ^,
          p\         P                  ! ^4      pVP                  4       pV^ 8  p\	        WVR7       \	        W,          4      W4&   \        W#4       R# )r   )outwhereN)rc   r   onescopyr&   r   )r?   r   r*
  rv  r+
  s   &    r@   test_softplus_with_kwargs&TestSoftplus.test_softplus_with_kwargs  sU    IIaL1ggajhhjA5)ah'
!rD   r  N)r  r  r  r  r'
  r.
  r  r  r  s   @r@   r
  r
    s     .:" "rD   r
  c                   &   a  ] tR tRt o R tRtV tR# )	TestRoundi  c                    \        \        \        \        P                  ! R 4      \        P                  ! R4      \        P                  ! R4      \        P                  ! R4      34      4      pRp\        W4       R# )g333333$@g$@r  g333333%@N)ry  ry  ry  rE  )r  mapr|   r   rz  r   )r?   rndrndrls   &  r@   r{  TestRound.test_round  sX    3sW]]40$]]40$]]40$]]402 3 4 3%rD   r  N)r  r  r  r  r{  r  r  r  s   @r@   r1
  r1
    s     & &rD   r1
  c                   <   a  ] tR tRt o RR ltR tR tR tRtV t	R# )	
TestStruvei  c                   \        ^ V4      pRV,          RV,          ^V,          V,           ^,           ,          ,          \        P                  ! VR,           4      ,          \        P                  ! WA,           R,           4      ,          p\        V4      P	                  4       \        \        4      P                  ,          V,          pVP                  4       V3# )z?Compute Struve function & error estimate from its power series.r   r  r\   )	r   r   rq  r  r   r   r   r  r2	  r3	  s   &&&&   r@   _seriesTestStruve._series  s    1aL!Gr!tqs1uQw''ae(<<W]]13s7=SS!fjjlU6]...2uuw|rD   c           	         R FE  pR F<  pV P                  W4      w  r4\        \        P                  ! W4      V^ VR7      W33 K>  	  KG  	  R# )z-Check Struve function versus its power seriesr  N)
ir  (\rx  r\   r   ra   ru  r     )ra   ry        rA  )r:
  r   r   r  rC	  s   &    r@   test_vs_seriesTestStruve.test_vs_series  sG    BA(!\\!/
q 4e!#NQRPVV ) CrD   c                z   \        \        P                  ! R^4      RRR7       \        \        P                  ! R^4      RRR7       \        \        P                  ! R^4      RRR7       \        \        P                  ! RR4      RR	R7       \        \        P                  ! RR4      \        P                  ! R^)4      ) 4       \        \        P                  ! ^R4      \        P                  ! ^^)4      ) 4       \        \        P                  ! RR4      \        P                  ! R^)4      54       \        \        P                  ! ^R4      \        P                  ! ^^)4      54       \	        \        \        P                  ! RR4      4      4       \	        \        \        P                  ! RR4      4      4       R
# )g(\@g;cv=?r  rL   g< j?r   g?r   gzz?r	  Nr=
  gQ ry  g       iir  gffffffr\   g333333$)r   r   r  r   r   r   r>   s   &r@   test_some_values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1rD   c                J   \        \        P                  ! RR4      \        P                  ! RR4      4       \        \        P                  ! RR4      \        P                  ! RR4      4       \        \        P                  ! RR4      \        P                  ! RR4      4       R# )zRegression test for #679Nr   g3@g*   4@r  g333333)r   r   r  r>   s   &r@   test_regression_679TestStruve.test_regression_679  sk    tY7tY7	9tY7tY7	9tY7tY7	9rD   r  N)d   )
r  r  r  r  r:
  rA
  rD
  rG
  r  r  r  s   @r@   r8
  r8
    s     W29 9rD   r8
  c                  N    \        \        P                  ! R ^4      RR^ R7       R# )r  gdX	
?r   rR   N)r   r   r   r  rD   r@   test_chi2_smalldfrK
    s    GMM#q)+<6PQRrD   c                  d    \        \        P                  ! R \        P                  4      R4       R# )r  r   N)r   r   r   rc   r   r  rD   r@   test_ch2_infrM
  !  s    s266*C0rD   r   r   c                     \         P                  ! \        P                  ! \         P                  V 4      4      '       g   Q hR # r5  rc   r   r   r   r7  rZ  s   &r@   test_chi2_v_nanrP
  %  s&    88GMM"&&!,----rD   r  c                     \         P                  ! \        P                  ! V \         P                  4      4      '       g   Q hR # r5  rO
  r  s   &r@   test_chi2_x_nanrS
  *  s&    88GMM!RVV,----rD   c                     \         P                  ! \        P                  ! \         P                  V 4      4      '       g   Q hR # r5  rc   r   r   r   r7  rZ  s   &r@   test_chi2c_v_nanrV
  /  s&    88GNN2661-....rD   c                     \         P                  ! \        P                  ! V \         P                  4      4      '       g   Q hR # r5  rU
  rR
  s   &r@   test_chi2c_x_nanrX
  4  s&    88GNN1bff-....rD   c            	         \         P                  ! R^ R ^\         P                  .4      R\         P                  3,          p \         P                  ! \         P                  ) R^ R \         P                  .4      p\        P
                  ! V ^,          V^,          4      pV^ 8  V ^ 8  ,          V^ 8H  V ^ 8H  ,          ,          \         P                  ! V 4      \         P                  ! V4      ,          ,          p\         P                  ! \         P                  ! W#,          4      4      '       g   Q h\         P                  ! \         P                  ! W#( ,          4      4      '       g   Q h\        \        P                  ! W4      V4       \        \        P                  ! ^V ^,          V^,          4      V4       \        ^\        P                  ! V ^,          V^,          4      ,
          V4       \        ^\        P                  ! W4      ,
          V4       \        ^\        P                  ! ^V ^,          V^,          4      ,
          V4       R# )r  rZ   Ng{Gz)rc   r   r   r  r   r  r  r  r   r  r   r   r  	gammainccr   r  )r  r   rv  r  s       r@   test_chi2_edgecases_gh20972r[
  9  s    	

E1dArvv./2::>A


RVVGUAtRVV45A 

1q5!a%
(CEa!eQ1622RXXa[288A;5NND66"((39%&&&&66"++c%j)**** GMM!'-GLLAE1q5137A))!a%Q77=Aq,,c2AaQA66<rD   c                  N    \        \        P                  ! R ^4      RR^ R7       R# r  r   rR   Ngyj_?)r   r   r   r  rD   r@   test_chi2c_smalldfr^
  N  s    GNN3*,Aa)rD   c                  N    \        \        P                  ! R R4      ^R^ R7       R# r]
  )r   r   r   r  rD   r@   test_chi2_inv_smalldfr`
  S  s    GNN3(=>a)rD   c            	      $   R p \        ^\        P                  ! ^\        P                  ! ^4      4      ,          RV R7       RpRpRp\        \        P                  ! ^.^... RO4      ^W.V^V..V R7       Rp\        \        P                  ! ^^4      W@R7       \        \        P                  ! ^^4      W@R7       \        \        P                  ! RR4      V) V R7       \        \        P                  ! ^^4      RV R7       \        \        P                  ! ^R4      R	V R7       \        \        P                  ! R
^4      RV R7       \        \        P                  ! R^4      RV R7       \        \        P                  ! RR4      RV R7       \        \        P                  ! RR4      RV R7       \        \        P                  ! RR4      RV R7       \        P
                  ! R4      p\        \        P                  ! VP                  VP                  4      RV R7       \        \        P                  ! RVP                  ,          VP                  4      RV R7       \        \        P                  ! VP                  ^VP                  ,          4      RV R7       \        \        P                  ! ^ ^ 4      ^ 4       \        \        P                  ! ^c^ 4      ^ 4       \        \        P                  ! R^
4      \        P                  4       \        \        P                  ! ^ \        P                  4      \        P                  4       \        \        P                  ! \        P                  ^ 4      \        P                  4       \        \        P                  ! ^ \        P                  ) 4      \        P                  4       \        \        P                  ! \        P                  ) ^ 4      \        P                  4       \        \        P                  ! \        P                  \        P                  ) 4      \        P                  4       \        \        P                  ! \        P                  ) \        P                  4      \        P                  4       \        \        P                  ! ^\        P                  4      \        P                  4       \        \        P                  ! \        P                  R4      \        P                  4       \        \        P                  ! ^\        P                  4      \        P                  4       \        \        P                  ! \        P                  ^4      \        P                  4       \        \        P                  ! R\        P                  ) 4      \        P                  ) 4       \        \        P                  ! \        P                  ) R4      \        P                  ) 4       R# )rK   gDSYC?rL   gQ_?g?@g>;,
i}@g=O?gXs*@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_ N)ra   r  r   r\   rY  )r   r   agmrc   r   r   r  r   r   r7  r   )rM   agm13agm15agm35agm12fis         r@   test_agm_simplerh
  X  s   D Agkk!RWWQZ002F
 EEEGKK!qc
I6&Q&(.24 EGKK1%u8GKK1%u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3rD   c            
         \         P                  ! 4       ;_uu_ 4        \         P                  ! R R\        4       \	        \
        P                  ! ^R4      \
        P                  ! RR4      4       \	        \
        P                  ! ^^R4      \
        P                  ! RRR4      4       \	        \
        P                  ! ^^R4      \
        P                  ! RRR4      4       \	        \
        P                  ! ^^R4      \
        P                  ! RRR4      4       \	        \
        P                  ! ^R4      \
        P                  ! RR4      4       \	        \
        P                  ! ^R4      \
        P                  ! RR4      4       \	        \
        P                  ! ^R4      \
        P                  ! RR4      4       \	        \
        P                  ! ^R4      \
        P                  ! RR4      4       \	        \
        P                  ! ^R4      \
        P                  ! RR4      4       RRR4       R#   + '       g   i     R# ; i)r^  rF  rD  g?gffffff@N)r_  r`  ra  rb  r   r   expnr  r  r  rG  r7  r  r  r  r  rD   r@   test_legacyrk
    sg   		 	 	"	"E~	W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   H	H11I	c                  *    ^ RI p V P                  4       # r;   )	threadingLock)rm
  s    r@   errstate_lockro
    s    >>rD   c           
         T ;_uu_ 4        \         P                  ! R R7      ;_uu_ 4        \        \         P                  \         P                  ^R4       RRR4       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; i)r  r  y        .B}TN)r   r  r  r  r  )ro
  s   &r@   test_error_raisingrq
    sM    	'**'66

AuM + 
** 
s"    A;+A(	A;(A83A;;B	c                     R  p \         P                  ! R^ \         P                  3^ \         P                  3R.\        R7      p\         P
                  VRR.3,          p\         P                  ! V 4      ! VR	,          VR
,          4      p\        \        P                  W1RRR7       \         P                  ! V 4      ! VR	,          VR
,          4      p\        \        P                  WBRRR7       R# )c                    \         P                  ! R R7      ;_uu_ 4        V ^ 8X  d)   \         P                  ! V4      '       g   V uuRRR4       # V \         P                  ! V4      ,          uuRRR4       #   + '       g   i     R# ; ir^  )invalidN)rc   r  r   r   r   rH  s   &&r@   xfunctest_xlogy.<locals>.xfunc  sO    [[**Avbhhqkk +* {	 +***   #A7A7A77B	r  rK   r  Nr   r   r   r  )r   rC  )ra   rC  r_   r`   )
rc   r   r7  r   r~   r   r   r3   r   xlogy)rw
  z1z2w1w2s        r@   
test_xlogyr
    s    # 
UQK!RVVjA	OB	rGW%%	&B	e	RWbg	.BgmmR%eD	e	RWbg	.BgmmR%eDrD   c                     R  p \         P                  ! R^ \         P                  3^ \         P                  3RR.\        R7      p\         P
                  ! V 4      ! VR,          VR	,          4      p\        \        P                  W!RRR7       R# )
c                    \         P                  ! R R7      ;_uu_ 4        V ^ 8X  d)   \         P                  ! V4      '       g   V uuRRR4       # V \         P                  ! V4      ,          uuRRR4       #   + '       g   i     R# ; irt
  )rc   r  r   rZ  rv
  s   &&r@   rw
  test_xlog1py.<locals>.xfunc  sO    [[**Avbhhqkk +* 288A;	 +***ry
  r  rK   r  Nrz
  r{
  )ra   gKH9r_   r`   )	rc   r   r7  r   r~   r   r3   r   xlog1py)rw
  r}
  r
  s      r@   test_xlog1pyr
    si    ' 
UQK!RVVj!(-
/B	e	RWbg	.BgoorEFrD   c                  x   R  p ^ RR\         P                  3pR^.p. p\        P                  ! W!4       F  w  rEVP	                  WE,          4       K  	  \         P
                  ! V\        R7      p\         P                  ! V \         P                  .R7      ! V4      p\        \        P                  WvRRR7       R# )	c                 `    V ^ 8  d   \         P                  ) # \        P                  ! W 4      ) # r'  )rc   r   r   r|
  rZ  s   &r@   rw
  test_entr.<locals>.xfunc  s&    q5FF7NMM!'''rD   r   r   r  otypesrK   r  Nr\   )rc   r   r  r  r  r   r~   r   r   r3   r   entr)rw
  r  signsr  sgnr  rI  r  s           r@   	test_entrr
    s    (
 c266"FGE
C##E2

37 3
E"A
UBJJ<03AgllAu5ArD   c                     R  p RpR^.p. p\         P                  ! W!W!4       F%  w  rErgVP                  WE,          Wg,          34       K'  	  \        P                  ! V\
        R7      p\        P                  ! V \        P                  .R7      ! VR,          VR	,          4      p	\        \        P                  WRRR7       R# )
c                 R   V ^ 8  g   V^ 8  g   V^ 8X  d   V ^ 8w  d   \         P                  # \         P                  ! V 4      '       g   \         P                  ! V4      '       d   \         P                  # V ^ 8X  d   V# \        P                  ! W V,          4      V ,
          V,           # r'  )rc   r   r  r   r|
  rv
  s   &&r@   rw
  test_kl_div.<locals>.xfunc  so    q5AEa1fa66M[[^^r{{1~~66M!VH==aC(1,q00rD   r  r
  rK   r  Nr   r   r   r\   r_   r`   )r  r  r  rc   r   r~   r   r   r3   r   kl_div
rw
  r  r
  r  sgnavasgnbvbrI  r  s
             r@   test_kl_divr
    s    
1 FGE
C'//uM$

DGTW%& N
E"A
UBJJ<033@AgnnaUCrD   c                     R  p RpR^.p. p\         P                  ! W!W!4       F%  w  rErgVP                  WE,          Wg,          34       K'  	  \        P                  ! V\
        R7      p\        P                  ! V \        P                  .R7      ! VR,          VR	,          4      p	\        \        P                  WRRR7       R# )
c                     V ^ 8  d%   V^ 8  d   \         P                  ! W V,          4      # V ^ 8X  d
   V^ 8  d   ^ # \        P                  # r'  )r   r|
  rc   r   rv
  s   &&r@   rw
  test_rel_entr.<locals>.xfunc  s;    q5QU==aC((!VQ66MrD   r  r
  rK   r  Nr
  r\   r_   r`   )r  r  r  rc   r   r~   r   r   r3   r   rel_entrr
  s
             r@   test_rel_entrr
    s     FGE
C'//uM$

DGTW%& N
E"A
UBJJ<033@Ag&&5uErD   c                      \         P                  ! . RO4      p . ROpV R,          pV R,          p\        \        P                  ! W#4      VR^ R7       R# )pB?rK   r  N))r
  gĬB?)gtK&?gCtK&?)g>уO'?gvуO'?)ggQW"g    G=r_   r`   )rc   r   r   r   r
  inputsrJ  r   rH  s       r@    test_rel_entr_gh_20710_near_zeror
  
  sI    XX  FH
 	tAtAG$$Q*H5qIrD   c                      \         P                  ! R R7       \        P                  ! . RO4      p . ROpV R,          pV R,          p\	        \         P
                  ! W#4      VR^ R7       R# )	r^  r  rK   r  N))rT   X )r  gZbti)r
  g  4&kC)gMG.@g)Z?g wa)r_   r`   )r   seterrrc   r   r   r
  r
  s       r@   test_rel_entr_gh_20710_overflowr
    sU    NNx XX  FH
 	tAtAG$$Q*H5qIrD   c                     \        \        P                  ! R	R4      \        P                  4       \        \        P                  ! ^R4      R\        P                  ! R4      ,          4       \        \        P                  ! ^R4      R
4       R p \        P                  P                  ^
^4      p\        P                  ! V \        P                  .R7      ! VR,          VR,          4      p\        \        P                  W!RRR7       R# )ra   r  r   r  c                     V ^ 8  d   \         P                  # \         P                  ! V4      V 8  d   R\         P                  ! V4      ,          # V \         P                  ! V4      RV ,          ,
          ,          # )r   r   )rc   r   r  squaredeltarm  s   &&r@   rw
  test_huber.<locals>.xfunc8  sQ    1966MVVAY1%%BFF1Ie344rD   r
  rK   r  Nr\   rv  r_   r`   )r   r   huberrc   r   r   r
  ri   randnr   r   r3   rw
  rI  r  s      r@   
test_huberr
  3  s    r3'0GMM!S)33+?@GMM!S)+>?5 			AA
UBJJ<033@AgmmQEBrD   c                  \   R  p \         P                  ! \         P                  P                  ^
^4      P	                  4       ^ R.R^ ..,           4      p\         P
                  ! V \         P                  .R7      ! VR,          VR,          4      p\        \        P                  W!RRR7       R# )c                     V ^ 8  d   \         P                  # V '       d	   V'       g   ^ # V ^,          \         P                  ! ^W,          ^,          ,           4      ^,
          ,          # r'  )rc   r   r   r
  s   &&r@   rw
   test_pseudo_huber.<locals>.xfuncF  sB    1966M!8rwwqAGa<'781<==rD   r   r
  rK   r  Nr_   r`   )
rc   r   ri   r
  tolistr   r   r3   r   pseudo_huberr
  s      r@   test_pseudo_huberr
  E  sz    > 	Q'..0QHsAh3GGHA
UBJJ<033@Ag**Au5IrD   c                  X    R p Rp\         P                  ! W4      pRp\        W#RR7       R# )r   gC]r2<gs.-De8rK   rL   N)r   r
  r   )r
  rm  rH  rJ  s       r@   test_pseudo_huber_small_rr
  S  s-    EAU&A &HAe,rD   c                  8   \         P                  ! \        R R7      ;_uu_ 4        \        RR4       RRR4       \         P                  ! \        R R7      ;_uu_ 4        \	        RR4       RRR4       R#   + '       g   i     LK; i  + '       g   i     R# ; i)zToo many predicted coefficientsr  rO   N)r  warnsrb  r'   r(   r  rD   r@   test_runtime_warningr
  `  sz    	n>
@ 
@t$
@ 
n>
@ 
@$%
@ 
@
@ 
@
@ 
@ 
@s   A5B5B	B	c                     a  ] tR tRt o ^.^ ^.. RO. RO. RO. RO. R O. R!O. R"O. R#O. R$O.t]P                  P                  RR]/ 3R]	RR/3.4      R 4       t
]P                  P                  RR]/ 3R]	RR/3.4      R 4       t]P                  P                  RR]/ 3R]	RR/3.4      R	 4       t]P                  P                  RR]/ 3R]	RR/3.4      R
 4       t]P                  P                  RR]/ 3R]	RR/3.4      R 4       tR tR t]P                  P                  RRRR%R]P$                  .4      ]P                  P                  R. R&O4      ]P                  P                  RRR.4      R 4       4       4       t]P                  P                  RRR.4      R 4       t]P                  P                  RR]/ 3R]	RR/3.4      R 4       t]P                  P                  RR]/ 3R]	RR/3.4      R 4       tR tRtV tR# )'TestStirling2ii  zis_exact, comp, kwargsTFrM   r   c           
         \        ^\        V P                  4      4       FG  p\        \        V^,           4      4      pV P                  V,          pV! V\	        V.WQR7      3/ VB  KI  	  R# )ra   r  N)r}   r  tabler  r)   )r?   is_exactcompkwargsrl   k_valuesrows   &&&&   r@   test_table_casesTestStirling2.test_table_casesx  sT    
 q#djj/*AE!A#J'H**Q-CiX>I&I +rD   c                   V! \        ^ ^ VR7      V P                  ^ ,          ^ ,          3/ VB  V! \        ^^VR7      V P                  ^,          ^,          3/ VB  V! \        ^^VR7      ^3/ VB  V! \        ^.^.VR7      ^.3/ VB  R# )r   r  N)r)   r
  r?   r
  r
  r
  s   &&&&r@   test_valid_single_integer'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&ArD   c                    V! \        RRVR7      ^ 3/ VB  V! \        R^VR7      ^ 3/ VB  V! \        ^RVR7      ^ 3/ VB  R# )ra   r  Nr\   r)   r
  s   &&&&r@   test_negative_integer#TestStirling2.test_negative_integer  sL     	Yr2X.<V<Yr1H-q;F;Yq"H-q;F;rD   c           	     L   V P                   ^
,          ^,          V P                   ^
,          ^,          .pV! \        \        ^
^
.4      \        ^^.4      VR7      V4       V! \        ^
^
.\        ^^.4      VR7      V4       V! \        \        ^
^
.4      ^^.VR7      V4       R# )ry  r  N)r
  r)   r   )r?   r
  r
  r
  anss   &&&& r@   test_array_inputsTestStirling2.test_array_inputs  s    
 zz"~a $**R."34YwBx(&1v%-/ 	 	YBx&1v%-/ 	 	YwBx( !1v%-/ 	rD   rK   c                H    . ROp. ROp. ROpV! \        WVVR7      V3/ VB  R# )r   r  N)r   ra   r  r       r$  )r\   r   r  r   r  ry  ry  )rY  r   rV   r  r   rX   r  r
  r?   r
  r
  r
  r
  rl   rm   s   &&&&   r@   test_mixed_valuesTestStirling2.test_mixed_values  s)     .$"Yq8,c<V<rD   c                   ^d\         P                  ! ^e4      r!\        \        WRR7      ^,          V Uu. uF;  p\        P
                  ! W^,          ,
          ^,
          W,
          4      ^,          NK=  	  up4       R# u upi )zkTest parity follows well known identity.

en.wikipedia.org/wiki/Stirling_numbers_of_the_second_kind#Parity
Tr  N)rc   r   r   r)   r  r  )r?   rl   Krm   s   &   r@   test_correct_parity!TestStirling2.test_correct_parity  s_    
 BIIcN1a$'!+=>?QTYYqF|a'/!33Q?	
?s   AA>
c                    \        R R.4      p^^.p^^.p\        \        W#RR7      V4      '       g   Q h\        RR.4      p^*^+.p^^.p\        \        W#RR7      V4      '       g   Q hR# )l   V^;. l   k4-TTr  l	   D,"SBXp!N l   wY)H_1e_N)r   r   r)   )r?   r
  rl   rm   s   &   r@   test_big_numbersTestStirling2.test_big_numbers  s    ~'89:HG9Q6<<<<<:< =HH9Q6<<<<rD   r  r  rv  12r
  Nr
  c                    \         P                  ! \        4      ;_uu_ 4        \        WVR 7       RRR4       R#   + '       g   i     R# ; i)r  N)r  r   	TypeErrorr)   )r?   r  r
  r
  s   &&&&r@   test_unsupported_input_types*TestStirling2.test_unsupported_input_types  s,    
 ]]9%%a(+ &%%%s	   ;A	c           
     D   \        V P                  ^,          R,          4      p\        . RO\        R7      p\        . RO\        R7      p\        P                  ! \
        4      ;_uu_ 4        \        \        W4VR7      V4       RRR4       R#   + '       g   i     R# ; i)rT   ra   NNr  r  NrT   rT   rT   rT   ra   rV   r  rT   )r   r
  r  r  r   r
  r   r)   )r?   r
  r
  rl   rm   s   &&   r@   !test_numpy_array_int_object_dtype/TestStirling2.test_numpy_array_int_object_dtype  sb     djjmB'(L/L/]]9%%	!h7= &%%%s   ,BB	c                    \        V P                  ^,          R,          4      p\        . RO\        R7      p\        . RO\        R7      pV! \        WVRR7      V3/ VB  R# )rT   r
  r  Fr  Nr
  r
  )r   r
  r+   r)   r
  s   &&&&   r@   #test_numpy_array_unsigned_int_dtype1TestStirling2.test_numpy_array_unsigned_int_dtype  sI     djjmB'(L1L1Yq5)39&9rD   c                R   \        . RO. RO.4      p\        . RO. RO.4      p\        . RO4      pV! \        WVVR7      V3/ VB  \        ^.^.^.^.^..4      p\        . R	O4      p\        \        ^4       Uu. uF  p. R
ONK	  	  up4      pV! \        WVRR7      V3/ VB  R# u upi )ra   r  FN)ra   r  r   ry  )ra   rX   r]   ra   )r   r   r   r   r
  r
  )r   ra   rV   r  rT   r   )r   ra   rX   r]   ra   r   )r   r)   r}   )r?   r
  r
  r
  r
  rl   rm   r  s   &&&&    r@   "test_broadcasting_arrays_correctly0TestStirling2.test_broadcasting_arrays_correctly  s     56\<01L!Yq8,c<V<aS1#sQC!-.&'58<8a)8<=Yq5)39&9 =s   9B$c                4   \        \        ^3^e^4      4      pV F{  p\        \        ^V^,           4      4      p\        V.VRR7      pV\        V.VRR7      ,
          p\        P                  ! \        P
                  ! WT,          4      4      R8  d   K{  Q h	  R# )3   Tr  Fgh㈵>N)r  r}   r)   rc   r   r  )r?   r   rl   	k_entriesdenomr   s   &     r@   test_temme_rel_max_error&TestStirling2.test_temme_rel_max_error  s|     r3"#AU1ac]+Iqc9D9E)QC%@@C66"&&-.555	 rD   r  )r   ra   ra   )r   ra   r  ra   )r   ra   rX   r]   ra   )r   ra   r  r   ry  ra   )r   ra      r  A   r  ra   )r   ra   ?   r.  i^     r@
  ra   )	r   ra      i  i  r
  i
     ra   )
r   ra      i  iZ  i'  iV
  i  $   ra   )r   ra   r   r
  i9  i  i+Y  r
  i  r   ra   y      @      ?)rw  r  2N)r  r  r  r  r
  r  r  r  r   r   r
  r
  r
  r
  r
  r
  r
  rc   r7  r
  r
  r
  r
  r
  r  r  r  s   @r@   r
  r
  i  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 :	:6 6rD   r
  r5  r   r  )r  r  r  r  r  r_  r!
  rc   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   scipyr   scipy.special._ufuncs_ufuncsr<   scipy.specialr   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   scipy._lib._utilr*   r+   scipy._lib._array_apir,   r-   r.   scipy.special._basicr/   r0   r1   scipy.special._testutilsr2   r3   r4   scipy.integrater5   r  architecturerB  r  r|  r9   r  r*  r3  r9  r  r  r  r  r.  rm  r}  r  r  r  r)  r9  r`  rd  rS  rq  r  r  r  ro	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r
  r
  r
  r1
  r8
  rK
  rM
  r  r  r7  rP
  rS
  rV
  rX
  r[
  r^
  r`
  rh
  rk
  fixturero
  rq
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r  rD   r@   <module>r     s<  "     
         *L L  & & 2 2 E E " H H . S S ! !    LLGq!W, XX 
xx n9 n9buG uGp8 8 
k- k-\	- 	-0 0<D3 D3NO/ O/dB; B;JH H:JT JTZG0 G0T)= )=X_B _BD; ;29 9@!Hj- j-ZA8 A8H@7 @7F*% *%Z]. ].@Q	4 Q	4h? ?D8 8	; 	;$$/3 /3d - -5= 5=p- -4- -G GQ QJ J,&" &"R& &#9 #9LS1 wdCHI. J. wdCHI. J. wdCHI/ J/ wdCHI/ J/=*)
)
:4zK"  
 N NE"GB D,F$J&J,C$J
-&[6 [6rD   