+
    nDj             	          ^ 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
I7H8t8H9t9H:t: ^ RI;H<t<H=t=H>t> ^ RI?H@t@HAtAHBtB ^ RICHDtD ^ RIEtE]P                  R8X  g   ]P                  ! 4       ^ ,          R8X  d   ]P                  M]P                  tI ! R R4      tJ ! R R4      tK ! R R4      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 ! R0 R14      tZR|R2 lt[ ! R3 R44      t\ ! R5 R64      t] ! R7 R84      t^ ! R9 R:4      t_ ! R; R<4      t` ! R= R>4      ta ! R? R@4      tb ! RA RB4      tc ! RC RD4      tdRE teRF tf ! RG RH4      tg ! RI RJ4      th ! RK RL4      ti ! RM RN4      tj ! RO RP4      tk ! RQ RR4      tl ! RS RT4      tm ! RU RV4      tn ! RW RX4      to ! RY RZ4      tp ! R[ R\4      tq ! R] R^4      trR_ tsR` tt]P                  P                  Ra]P,                  ) R}R~Rb]P,                  ]P                  .4      Rc 4       tx]P                  P                  Rd]P,                  ) R}R~Rb]P,                  ]P                  .4      Re 4       ty]P                  P                  Ra]P,                  ) R}R~Rb]P,                  ]P                  .4      Rf 4       tz]P                  P                  Rd]P,                  ) R}R~Rb]P,                  ]P                  .4      Rg 4       t{Rh t|Ri t}Rj t~Rk tRl t]EP                  Rm 4       t]@Rn 4       tRo tRp tRq tRr tRs tRt tRu tRv tRw tRx tRy t ! Rz 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)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)]*PV                  PY                  R'R(7      R) 4       t-R* 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 tl]*PV                  P                  Ri. RO4      Rj 4       tnRk to]*PV                  P                  Ri. RO4      Rl 4       tpRm tqRn trRo tsRp ttRq tuRr tvRs twRt txRu tyRv tzRw t{Rx t|Ry t}Rz t~R{ tR| tR} t]*PV                  PY                  R~R(7      R 4       t]*PV                  PY                  RR(7      R 4       t]*PV                  PY                  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 tRtV tR# )
TestCephesc                2    \         P                  ! ^ 4       R# r   N)cephesairyselfs   &X/data/cameron/venvs/s3viz/lib/python3.14/site-packages/scipy/special/tests/test_basic.py	test_airyTestCephes.test_airy;       A    c                2    \         P                  ! ^ 4       R# r9   )r:   airyer<   s   &r>   
test_airyeTestCephes.test_airye>   s    QrB   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      绽|=atolrK   )rH      g@   )   皙?   gffffff
@NNNNNrX   )g޸g	TշJ?g	7?geLF)   g*+ @r   gM{@)gףp=
%@gϔ>@g<wg$@)   g,y3@iK  g5@irX   r   rX           ?)npr   broadcast_arraysreshapeTr1   r:   binomravelrandomRandomStater   r   rand)r=   nknkrknownrngs   &     r>   
test_binomTestCephes.test_binomA   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	2rB   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# )rL   ,  NrO   rP   rW   rY   rZ   r]   r^   r`   )ra   rg   seedr   logspacer   r   rb   rc   rd   r1   r:   re   )r=   rj   rk   rl   s   &   r>   test_binom_2TestCephes.test_binom_2X   s    
		tEE"++ab)*IIaXXb))!F)QvY? 2qq 	 	&,, ,,r#w390EF$5	2rB   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      # r_   )intrangefloat)rj   rk   numdenis   &&   r>   	binom_int.TestCephes.test_binom_exact.<locals>.binom_intf   sW    AAAACC1ac]1uqy  # >!rB   rL   NrP   rW   rY   rZ   r]   r^   )ra   	vectorizerg   rs   r   r   rb   rc   rd   r1   r:   re   )r=   r   rj   rk   rl   s   &    r>   test_binom_exactTestCephes.test_binom_exacte   s    		" 
	" 			tIIaIIaXXb))!F)QvY? 2qq 	32c7"#&,,#BsGRW5 q	*rB   c                    . ROp\         P                  ! V4      p\        \        P                  VR^RR7      P                  4        R# )rM   -q=rJ   N))rM   rN   gwP~)i  i  gii9~)i  i  gyhY~)i  i  gpvy~)i  i  gzN~)i  i  gGTɳ~)i  i  g@jH~)i  i  gF:aYͦ~)i  i  gɸV)i  i  g
{9)i  i  gyVxY)i    g*I y)i   i   gI)i  i  gW@N)i  i  g5y)r   r_   )ra   r   r2   r:   re   check)r=   datasets   & r>   test_binom_nooverflow_8346%TestCephes.test_binom_nooverflow_8346|   s6    
" **W%w>DDFrB   c                J    \        \        P                  ! ^^R4      R4       R# )r_         ?      ?N)r   r:   bdtrr<   s   &r>   	test_bdtrTestCephes.test_bdtr   s    V[[1S)#.rB   c                J    \        \        P                  ! ^^R4      R4       R# r_   r   N)r   r:   bdtrir<   s   &r>   
test_bdtriTestCephes.test_bdtri       V\\!Ac*3/rB   c                J    \        \        P                  ! ^^R4      R4       R# r   )r   r:   bdtrcr<   s   &r>   
test_bdtrcTestCephes.test_bdtrc   r   rB   c                6    \         P                  ! ^^R4       R# r   )r:   bdtrikr<   s   &r>   test_bdtrikTestCephes.test_bdtrik   s    a#rB   c                F    \        \        P                  ! ^ 4      R4       R# r           N)r   r:   beir<   s   &r>   test_beiTestCephes.test_bei       VZZ]3'rB   c                F    \        \        P                  ! ^ 4      R4       R# r   )r   r:   beipr<   s   &r>   	test_beipTestCephes.test_beip       V[[^C(rB   c                F    \        \        P                  ! ^ 4      R4       R# r   r   N)r   r:   berr<   s   &r>   test_berTestCephes.test_ber   r   rB   c                F    \        \        P                  ! ^ 4      R4       R# r   )r   r:   berpr<   s   &r>   	test_berpTestCephes.test_berp   r   rB   c                J    \        \        P                  ! ^ ^ ^ 4      R4       R# r   )r   r:   
besselpolyr<   s   &r>   test_besselpolyTestCephes.test_besselpoly   s    V&&q1-c2rB   c                L    \        \        P                  ! ^4      RR^ R7       R# )r_   r   ư>rP   N)r   r:   cbrtr<   s   &r>   	test_cbrtTestCephes.test_cbrt   s    A$Q?rB   c                H    \        \        P                  ! ^^ 4      R4       R# r_   r   N)r   r:   chdtrr<   s   &r>   
test_chdtrTestCephes.test_chdtr   s    V\\!A&s+rB   c                H    \        \        P                  ! ^^ 4      R4       R# r_   r   N)r   r:   chdtrcr<   s   &r>   test_chdtrcTestCephes.test_chdtrc       V]]1Q',rB   c                H    \        \        P                  ! ^^4      R4       R# r   )r   r:   chdtrir<   s   &r>   test_chdtriTestCephes.test_chdtri   r   rB   c                J    \        \        P                  ! ^ ^^ 4      R4       R# r   )r   r:   chndtrixr<   s   &r>   test_chndtrixTestCephes.test_chndtrix       V__Qq+C0rB   c                F    \        \        P                  ! ^ 4      R4       R# r   )r   r:   cosdgr<   s   &r>   
test_cosdgTestCephes.test_cosdg       V\\!_S)rB   c                F    \        \        P                  ! ^ 4      R4       R# r   )r   r:   cosm1r<   s   &r>   
test_cosm1TestCephes.test_cosm1   r   rB   c                L    \        \        P                  ! ^-4      RR^ R7       R# )-   r   v!>rP   N)r   r:   cotdgr<   s   &r>   
test_cotdgTestCephes.test_cotdg   s    R(#FCrB   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*,?@rB   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# )r_   g-C6
?r   r   rP   &.> [n<V瞯<float128r   g"<皙?N)r_         )rT   rR            )gg?gsOB?gsaL?g
7I^ʿ)ra   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QrB   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   rX   N)r_      rV   )	ra   r   r   r   r   r   newaxisshapesize)r=   r   rj   s   &  r>   test_diric_broadcasting"TestCephes.test_diric_broadcasting   sU    IIaLHHYa2::.288QVVQVV<LLMrB   c                F    \        \        P                  ! ^4      R4       R# r   )r   r:   r   r<   s   &r>   test_ellipeTestCephes.test_ellipe       V]]1%c*rB   c                H    \        \        P                  ! ^ ^4      R4       R# r   )r   r:   	ellipeincr<   s   &r>   test_ellipeincTestCephes.test_ellipeinc       V%%a*3/rB   c                4    \         P                  ! ^ ^4       R# r9   )r:   ellipjr<   s   &r>   test_ellipjTestCephes.test_ellipj   s    arB   c                F    \        \        ^ 4      \        ^,          4       R# r9   )r   r   r   r<   s   &r>   test_ellipkTestCephes.test_ellipk   s    q	2a4(rB   c                H    \        \        P                  ! ^ ^ 4      R4       R# r   )r   r:   	ellipkincr<   s   &r>   test_ellipkincTestCephes.test_ellipkinc   r	  rB   c                F    \        \        P                  ! ^ 4      R4       R# r   r   r:   erfr<   s   &r>   test_erfTestCephes.test_erf   s    VZZ]C(rB   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9rB   c                F    \        \        P                  ! ^ 4      R4       R# r   )r   r:   erfcr<   s   &r>   	test_erfcTestCephes.test_erfc   s    V[[^S)rB   c                L    \        \        P                  ! ^4      RR^ R7       R# )rT   g      Y@r   rP   N)r   r:   exp10r<   s   &r>   
test_exp10TestCephes.test_exp10   s    QTBrB   c                F    \        \        P                  ! ^4      R4       R# )rT         @N)r   r:   exp2r<   s   &r>   	test_exp2TestCephes.test_exp2  r   rB   c                   \        \        P                  ! ^ 4      R4       \        \        P                  ! \        P                  4      \        P                  4       \        \        P                  ! \        P                  ) 4      R4       \        \        P                  ! \        P
                  4      \        P
                  4       R# )r   r   NrZ   )r   r:   expm1ra   r   nanr<   s   &r>   
test_expm1TestCephes.test_expm1  sc    V\\!_S)V\\"&&)2662V\\266'*B/V\\"&&)2662rB   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                   NrZ   )r:   r,  r   complexra   r   r-  )r=   r,  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MrB   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)r8  r   333333?r         )y=Cw?yC7gg)gF<Ug?yQ<D*?yg:><sKy>񸣼$	Um>ly;Vl <@)	ra   r   r   r
   r:   r,  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=="ErB   c                    \        \        P                  ! ^^^ 4      R4       \        \        P                  ! R^^
4      RRR7       R# )r_   r   r   g2?r   rJ   N)r   r:   fdtrr   r<   s   &r>   	test_fdtrTestCephes.test_fdtr4  s6    V[[Aq)3/D!R02D"	$rB   c                    \        \        P                  ! ^^^ 4      R4       \        \        P                  ! ^RR4      RRR7       R# )r_   r   r8  g    _BgDIXl?r   rJ   N)r   r:   fdtrcr   r<   s   &r>   
test_fdtrcTestCephes.test_fdtrc:  s8    V\\!Q*C0 	QT24G"	$rB   c                    \        \        P                  ! ^^RR.4      \        RR.4      RR7       Rp\        \        P                  ! R^V4      ^R	R7       R
# )r_   gV-?gx&1?g
}?g<zO'?r   rJ   g׀?r8  r   N)r   r:   fdtrir   )r=   ps   & r>   
test_fdtriTestCephes.test_fdtriA  sM    QE5>:y*56T	C %S!Q/?rB   c                    ^RRr2p\        \        P                  ! W\        P                  ! WV4      4      VRR7       R# )r_   P  g\/չ=@r   rJ   N)r   r:   rM  rE  )r=   dfddfnr   s   &   r>   test_gh20835TestCephes.test_gh20835I  s1     1!Sv{{3Q/GH!RWXrB   c                J    \        \        P                  ! ^^R4      ^4       R# r   )r   r:   rM  r<   s   &r>   test_fdtri_mysterious_failure(TestCephes.test_fdtri_mysterious_failureN  s    Q3/3rB   c                J    \        \        P                  ! ^^ ^ 4      R4       R# )r_         @N)r   r:   fdtridfdr<   s   &r>   test_fdtridfdTestCephes.test_fdtridfdQ  r   rB   c                F    \        \        P                  ! ^ 4      R4       R# r   Nr   r   )r   r:   fresnelr<   s   &r>   test_fresnelTestCephes.test_fresnelT  s    V^^A&y1rB   c                F    \        \        P                  ! ^4      R4       R# r         8@N)r   r:   gammar<   s   &r>   
test_gammaTestCephes.test_gammaW  s    V\\!_T*rB   c                H    \        \        P                  ! ^^4      R4       R# )r   r   N)r   r:   gammainccinvr<   s   &r>   test_gammainccinvTestCephes.test_gammainccinvZ  s    V((1-c2rB   c                2    \         P                  ! ^
4       R# )
   N)r:   gammalnr<   s   &r>   test_gammalnTestCephes.test_gammaln]  s    rrB   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# )
rR   r   g@r   N      gffffff       r   )ra   r   r   r   r-  r   r:   gammasgn)r=   vals	references   &  r>   test_gammasgnTestCephes.test_gammasgn`  s    xxffWb$dCC@"**
 HHVVRVVS$c3SA2::
	 	6??40)<rB   c                J    \        \        P                  ! ^^^ 4      R4       R# r   )r   r:   gdtrr<   s   &r>   	test_gdtrTestCephes.test_gdtri      V[[1Q',rB   c                f    \        \        P                  ! ^^\        P                  4      R4       R# r   )r   r:   r~  ra   r   r<   s   &r>   test_gdtr_infTestCephes.test_gdtr_infl  s    V[[1RVV,S1rB   c                J    \        \        P                  ! ^^^ 4      R4       R# r   )r   r:   gdtrcr<   s   &r>   
test_gdtrcTestCephes.test_gdtrco      V\\!Aa(-rB   c                J    \        \        P                  ! ^ ^^4      R4       R# r   )r   r:   gdtriar<   s   &r>   test_gdtriaTestCephes.test_gdtriar      V]]1Qq)#.rB   c                6    \         P                  ! ^^ ^4       R# r_   N)r:   gdtribr<   s   &r>   test_gdtribTestCephes.test_gdtribu  s    a!rB   c                6    \         P                  ! ^^R4       R# r_   r8  N)r:   gdtrixr<   s   &r>   test_gdtrixTestCephes.test_gdtrixy  s    a"rB   c                4    \         P                  ! ^^4       R# r  )r:   hankel1r<   s   &r>   test_hankel1TestCephes.test_hankel1|      qrB   c                4    \         P                  ! ^^4       R# r  )r:   hankel1er<   s   &r>   test_hankel1eTestCephes.test_hankel1e      !rB   c                4    \         P                  ! ^^4       R# r  )r:   hankel2r<   s   &r>   test_hankel2TestCephes.test_hankel2  r  rB   c                4    \         P                  ! ^^4       R# r  )r:   hankel2er<   s   &r>   test_hankel2eTestCephes.test_hankel2e  r  rB   c                    \        \        P                  ! ^^^4      \        R4      R^ R7       \        \        P                  ! ^^R4      RR^ R7       \        P                  ! ^^^4       R# )r_   r   r   rP   g㈮?N)r   r:   hyp1f1r   r<   s   &r>   test_hyp1f1TestCephes.test_hyp1f1  sP    aA.Ct!LaB/1H!	+a!rB   c                L    \        \        P                  ! ^^^^ 4      R4       R# r   )r   r:   hyp2f1r<   s   &r>   test_hyp2f1TestCephes.test_hyp2f1      V]]1Qq+C0rB   c                F    \        \        P                  ! ^ 4      R4       R# r   )r   r:   i0r<   s   &r>   test_i0TestCephes.test_i0      VYYq\#&rB   c                F    \        \        P                  ! ^ 4      R4       R# r   )r   r:   i0er<   s   &r>   test_i0eTestCephes.test_i0e  r   rB   c                F    \        \        P                  ! ^ 4      R4       R# r   )r   r:   i1r<   s   &r>   test_i1TestCephes.test_i1  r  rB   c                F    \        \        P                  ! ^ 4      R4       R# r   )r   r:   i1er<   s   &r>   test_i1eTestCephes.test_i1e  r   rB   c                2    \         P                  ! ^4       R# r  )r:   it2i0k0r<   s   &r>   test_it2i0k0TestCephes.test_it2i0k0      qrB   c                2    \         P                  ! ^4       R# r  )r:   it2j0y0r<   s   &r>   test_it2j0y0TestCephes.test_it2j0y0  r  rB   c                2    \         P                  ! ^4       R# r  )r:   
it2struve0r<   s   &r>   test_it2struve0TestCephes.test_it2struve0  s    !rB   c                2    \         P                  ! ^4       R# r  )r:   itairyr<   s   &r>   test_itairyTestCephes.test_itairy      arB   c                F    \        \        P                  ! ^ 4      R4       R# r`  )r   r:   iti0k0r<   s   &r>   test_iti0k0TestCephes.test_iti0k0      V]]1%i0rB   c                F    \        \        P                  ! ^ 4      R4       R# r`  )r   r:   itj0y0r<   s   &r>   test_itj0y0TestCephes.test_itj0y0  r  rB   c                F    \        \        P                  ! ^ 4      R4       R# r   )r   r:   itmodstruve0r<   s   &r>   test_itmodstruve0TestCephes.test_itmodstruve0  s    V((+C0rB   c                F    \        \        P                  ! ^ 4      R4       R# r   )r   r:   	itstruve0r<   s   &r>   test_itstruve0TestCephes.test_itstruve0  s    V%%a(-rB   c                H    \        \        P                  ! ^^ 4      R4       R# r   )r   r:   ivr<   s   &r>   test_ivTestCephes.test_iv      VYYq^C(rB   c                H    \        \        P                  ! ^^ 4      R4       R# r   )r   r:   iver<   s   &r>   test_iveTestCephes.test_ive      VZZ!_S)rB   c                F    \        \        P                  ! ^ 4      R4       R# r   )r   r:   j0r<   s   &r>   test_j0TestCephes.test_j0  r  rB   c                F    \        \        P                  ! ^ 4      R4       R# r   )r   r:   j1r<   s   &r>   test_j1TestCephes.test_j1  r  rB   c                H    \        \        P                  ! ^ ^ 4      R4       R# r   )r   r:   jnr<   s   &r>   test_jnTestCephes.test_jn  r  rB   c                H    \        \        P                  ! ^ ^ 4      R4       R# r   )r   r:   jvr<   s   &r>   test_jvTestCephes.test_jv  r  rB   c                H    \        \        P                  ! ^ ^ 4      R4       R# r   )r   r:   jver<   s   &r>   test_jveTestCephes.test_jve  r  rB   c                2    \         P                  ! ^4       R# rT   N)r:   k0r<   s   &r>   test_k0TestCephes.test_k0      		!rB   c                2    \         P                  ! ^4       R# r  )r:   k0er<   s   &r>   test_k0eTestCephes.test_k0e      

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

1QrB   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   NrZ   )r:   log1pr   ra   r   r-  )r=   rR  s   & r>   
test_log1pTestCephes.test_log1p  sU    U1Xs#U2Y(U2Y'U266]BFF+rB   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   r1  ignorez%invalid value encountered in multiplyNrZ   )r:   rR  r2  r   ra   r   warningscatch_warningsfilterwarningsRuntimeWarningr   r   r-  )r=   rR  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  rB   c                    \         P                  ! . RO4      p\        \        P                  ! V^ 4      V^,          4       R# r_   N)r_   rT   r   )ra   r   r   r:   	mathieu_ar=   ms   & r>   test_mathieu_a_q0TestCephes.test_mathieu_a_q0  +    HHYV%%a+QT2rB   z	m, q, refc                L    \         P                  ! W4      p\        WCR R7       R# r   rJ   N)r:   rd  r   r=   rf  qrefr>  s   &&&& r>   test_mathieu_aTestCephes.test_mathieu_a$       Q"U+rB   c                    \         P                  ! . RO4      p\        \        P                  ! V^ 4      V^,          4       R# rc  )ra   r   r   r:   	mathieu_bre  s   & r>   test_mathieu_b_q0TestCephes.test_mathieu_b_q0/  ri  rB   c                L    \         P                  ! W4      p\        WCR R7       R# rk  )r:   rs  r   rl  s   &&&& r>   test_mathieu_bTestCephes.test_mathieu_b6  rq  rB   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# )r_   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?      ?)ra   r   r
   rf  rm  r?  s   &&&r>   	ce_smallq.TestCephes.test_mathieu_cem.<locals>.ce_smallqE  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UrB   Nrh|?+=rK   rQ   r   r   rW   rY   )	r   r:   mathieu_cemra   r   r   r   rt   r   )r=   r~  rf  rm  s   &   r>   test_mathieu_cemTestCephes.test_mathieu_cemA  s    V''!A.y9 
	V 
	V IIaEE!R[[b"--.**1V9aiGJ!!F)QvY>"	,rB   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# )r_   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{  )ra   r   r	   r}  s   &&&r>   	se_smallq.TestCephes.test_mathieu_sem.<locals>.se_smallq^  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UrB   Nr  r  r  r   r   r  r  rW   rY   )	r   r:   mathieu_semra   r   r   r   rt   r   )r=   r  rf  rm  s   &   r>   test_mathieu_semTestCephes.test_mathieu_semZ  s    V''!A.y9 

	V 

	V IIaEE!R[[b"--.**1V9aiGJ!!F)QvY>"	,rB   c                J    \        \        P                  ! ^^ ^ 4      R4       R# r_   Nra  )r   r:   mathieu_modcem1r<   s   &r>   test_mathieu_modcem1TestCephes.test_mathieu_modcem1p      V++Aa29=rB   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_   NrO   rJ   )rX   NNrQ  )NrX   N)NNrX   )	r:   mathieu_modcem2ra   r   r   rt   linspacer  r   r=   rf  rm  r?  y1fry2s   &      r>   test_mathieu_modcem2TestCephes.test_mathieu_modcem2s  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+rB   c                J    \        \        P                  ! ^^ ^ 4      R4       R# r  )r   r:   mathieu_modsem1r<   s   &r>   test_mathieu_modsem1TestCephes.test_mathieu_modsem1  r  rB   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_modsem2ra   r   r   rt   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+rB   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  ra   r-  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OrB   c                    \        ^<4       FE  p\        P                  ! ^^dR4      p\        V^ ,          RRR7       \        V^,          RRR7       KG  	  R# )<   g.dS?rO   rJ   gGc?-C6?NrZ   )r{   r:   r  r   )r=   rk   vs   &  r>   test_mathieu_ticket_1847#TestCephes.test_mathieu_ticket_1847  sH     rA&&q#r2AAaD":GAaD":F	 rB   c                2    \         P                  ! ^ 4       R# r9   )r:   modfresnelmr<   s   &r>   test_modfresnelmTestCephes.test_modfresnelm      1rB   c                2    \         P                  ! ^ 4       R# r9   )r:   modfresnelpr<   s   &r>   test_modfresnelpTestCephes.test_modfresnelp  r  rB   c                H    \        \        P                  ! ^^ 4      R4       R# r   )r   r:   	modstruver<   s   &r>   test_modstruveTestCephes.test_modstruve  r	  rB   c                J    \        \        P                  ! ^^^4      R4       R# r   )r   r:   nbdtrr<   s   &r>   
test_nbdtrTestCephes.test_nbdtr  r  rB   c                J    \        \        P                  ! ^^^4      R4       R# r   )r   r:   nbdtrcr<   s   &r>   test_nbdtrcTestCephes.test_nbdtrc  r  rB   c                J    \        \        P                  ! ^^^4      R4       R# r   )r   r:   nbdtrir<   s   &r>   test_nbdtriTestCephes.test_nbdtri  r  rB   c                6    \         P                  ! ^RR4       R# )r_   rU   r   N)r:   nbdtrikr<   s   &r>   test_nbdtrikTestCephes.test_nbdtrik  s    qBrB   c                L    \        \        P                  ! ^^^^ 4      R4       R# r   )r   r:   ncfdtrr<   s   &r>   test_ncfdtrTestCephes.test_ncfdtr  r  rB   c                    \        \        P                  ! ^^^^ 4      R4       . ROp\        P                  ! ^^RV4      p\	        \        P                  ! ^^RV4      V4       R# )r_   r   r  N)r   r_   r  )r   r:   ncfdtrir  r   )r=   frN  s   &  r>   test_ncfdtriTestCephes.test_ncfdtri  sM    V^^Aq!Q/5MM!QQ'q!S!4a8rB   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# )r_   r|  N)r_   rT   r   )r:   r  r   
ncfdtridfd)r=   rS  rN  s   &  r>   test_ncfdtridfdTestCephes.test_ncfdtridfd  s8     MM!S$+))!Qb93?rB   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# )r8  r|  gh㈵>rJ   N)r8  r_   rT   r   g     @)r:   r  r   
ncfdtridfn)r=   rT  rN  s   &  r>   test_ncfdtridfnTestCephes.test_ncfdtridfn  s:     "MM#q$+))!Qb93TJrB   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=   ncrN  s   &  r>   test_ncfdtrincTestCephes.test_ncfdtrinc  s8     MM!QB'((Aq"5r:rB   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
# )r_   r   i   r   r   r  rP   r        $@r   N)	r   r:   nctdtrr   ra   r   r   r   r-  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8rB   c                6    \         P                  ! ^R^ 4       R# r   )r:   	nctdtridfr<   s   &r>   test_nctdtridfTestCephes.test_nctdtridf  s    3q!rB   c                6    \         P                  ! ^^ ^ 4       R# r  )r:   	nctdtrincr<   s   &r>   test_nctdtrincTestCephes.test_nctdtrinc  s    1QrB   c                6    \         P                  ! R RR4       R# )r8  r   r   N)r:   nctdtritr<   s   &r>   test_nctdtritTestCephes.test_nctdtrit  s    3r"rB   c                P    \        \        P                  ! R ^^4      RR^ R7       R# )r   r   r   rP   N)r   r:   nrdtrimnr<   s   &r>   test_nrdtrimnTestCephes.test_nrdtrimn  s    Q2CdKrB   c                8    \         P                  ! ^^^^ 4       R# r  )r:   obl_ang1r<   s   &r>   test_obl_ang1TestCephes.test_obl_ang1      !Aa rB   c                    \         P                  ! ^^^^^ 4      p\        V^ ,          RR^ R7       \        V^,          RR^ R7       R# )r_   r   r   rP   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!<rB   c                J    \        \        P                  ! ^^^ 4      R4       R# r_   r  N)r   r:   obl_cvr<   s   &r>   test_obl_cvTestCephes.test_obl_cv  r  rB   c                8    \         P                  ! ^^^^ 4       R# r  )r:   obl_rad1r<   s   &r>   test_obl_rad1TestCephes.test_obl_rad1
  r  rB   c                :    \         P                  ! ^^^^^ 4       R# r  )r:   obl_rad1_cvr<   s   &r>   test_obl_rad1_cvTestCephes.test_obl_rad1_cv      1Qq1%rB   c                8    \         P                  ! ^^^^ 4       R# r  )r:   obl_rad2r<   s   &r>   test_obl_rad2TestCephes.test_obl_rad2  r  rB   c                :    \         P                  ! ^^^^^ 4       R# r  )r:   obl_rad2_cvr<   s   &r>   test_obl_rad2_cvTestCephes.test_obl_rad2_cv  r  rB   c                H    \        \        P                  ! ^^ 4      R4       R# )r_   Nr  )r   r:   pbdvr<   s   &r>   	test_pbdvTestCephes.test_pbdv  s    V[[1%i0rB   c                4    \         P                  ! ^^ 4       R# r  )r:   pbvvr<   s   &r>   	test_pbvvTestCephes.test_pbvv      AarB   c                4    \         P                  ! ^^ 4       R# r  )r:   pbwar<   s   &r>   	test_pbwaTestCephes.test_pbwa  r%  rB   c                    \         P                  ! ^ ^4      p\        V\        P                  ! R4      R^ R7       \         P                  ! . RO^ 4      p\        V. RO4       R# )r   r   rP   NrZ   r   r_   rT   )r_   r_   r_   )r:   pdtrr   ra   r   r   r=   vals   & r>   	test_pdtrTestCephes.test_pdtr  sB    kk!QRVVBZf1=kk)Q'3	*rB   c                    \         P                  ! ^ ^4      p\        V^\        P                  ! R4      ,
          R^ R7       \         P                  ! . ROR4      p\        V. RO4       R# )r   r   rP   r   NrZ   r+  )r   r   r   )r:   pdtrcr   ra   r   r   r-  s   & r>   
test_pdtrcTestCephes.test_pdtrc&  sF    ll1a Q^&qAll9c*3	*rB   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 integerrV  r   N)rW  rX  rY  rZ  r:   pdtrir=   msgs   & r>   
test_pdtriTestCephes.test_pdtri-  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_ang14  r  rB   c           	     f    \        \        P                  ! ^^^^^ 4      \        R4      R^ R7       R# )r_   r   rP   Nr  )r   r:   pro_ang1_cvr   r<   s   &r>   test_pro_ang1_cvTestCephes.test_pro_ang1_cv7  s+    **1aAq95;L#!	-rB   c                J    \        \        P                  ! ^^^ 4      R4       R# r  )r   r:   pro_cvr<   s   &r>   test_pro_cvTestCephes.test_pro_cv;  r  rB   c                8    \         P                  ! ^^^R4       R# r  )r:   pro_rad1r<   s   &r>   test_pro_rad1TestCephes.test_pro_rad1>  s    !Ac"rB   c                :    \         P                  ! ^^^^^ 4       R# r  )r:   pro_rad1_cvr<   s   &r>   test_pro_rad1_cvTestCephes.test_pro_rad1_cvA  r  rB   c                8    \         P                  ! ^^^^ 4       R# r  )r:   pro_rad2r<   s   &r>   test_pro_rad2TestCephes.test_pro_rad2D  r  rB   c                :    \         P                  ! ^^^^^ 4       R# r  )r:   pro_rad2_cvr<   s   &r>   test_pro_rad2_cvTestCephes.test_pro_rad2_cvG  r  rB   c                2    \         P                  ! ^4       R# r  )r:   psir<   s   &r>   test_psiTestCephes.test_psiJ  r  rB   c                J    \        \        P                  ! ^ ^ ^ 4      ^ 4       R# r9   )r   r:   radianr<   s   &r>   test_radianTestCephes.test_radianM  s    V]]1Qq)!,rB   c                F    \        \        P                  ! ^4      R4       R# r   )r   r:   rgammar<   s   &r>   test_rgammaTestCephes.test_rgammaP  r  rB   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@r'        @N333333      gg      rv  )r   r:   roundr<   s   &r>   
test_roundTestCephes.test_roundS  st    V\\#&s+V\\$'-V\\#&s+V\\$'-V\\#&s+V\\$'-rB   c                2    \         P                  ! ^4       R# r  )r:   shichir<   s   &r>   test_shichiTestCephes.test_shichi[  r  rB   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# )r_   r   r   rP   z cosine integral(-inf) is not nanN)r:   sicira   r   r   r   r   r   )r=   sr[  s   &  r>   	test_siciTestCephes.test_sici^  s    A{{266"2553;V!<162{{BFF7#BEE6C<f1=?@rB   c                F    \        \        P                  ! ^Z4      R4       R# Z   r   N)r   r:   sindgr<   s   &r>   
test_sindgTestCephes.test_sindgi      V\\"%c*rB   c                    \        \        P                  ! ^R4      R4       \        \        P
                  ! \        P                  ! ^\        P                  4      4      4       R# )r_   r8  ?N)r   r:   smirnovr   ra   r   r-  r<   s   &r>   test_smirnovTestCephes.test_smirnovl  s7    V^^Ab)#."&&123rB   c                P   \        \        P                  ! ^R4      R4       \        \        P                  ! ^R4      R4       \        \        P                  ! ^R4      R4       \        \        P
                  ! \        P                  ! ^\        P                  4      4      4       R# )r_   r8        ?NrZ         g      ȿ)r   r:   	_smirnovpr   ra   r   r-  r<   s   &r>   test_smirnovpTestCephes.test_smirnovpp  sk    V%%a,b1V%%a.0@AV%%a.0@A))!RVV456rB   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# )r_   r8  Tendpointr   rP   N)
r   r:   	_smirnovcr   ra   r   r-  r  r   r  )r=   x10x4s   &  r>   test_smirnovcTestCephes.test_smirnovcv  s    V%%a+C0))!BFF345kk!QT2((C0!fnnQ6L2L#!	-[[Aq40((B/V^^Ar5J1J#!	-rB   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_   rU   r   rP   333333?N)r   r:   r  smirnovir   ra   r   r-  r<   s   &r>   test_smirnoviTestCephes.test_smirnovi  sp    q&//!S*ABC#!	-q&//!S*ABC#!	-266234rB   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   ra   r   r-  r<   s   &r>   test_smirnovciTestCephes.test_smirnovci  sz    ((F,=,=a,EF#!	-((F,=,=a,EF#!	-**1RVV456rB   c                F    \        \        P                  ! ^4      R4       R# r   )r   r:   spencer<   s   &r>   test_spenceTestCephes.test_spence  r  rB   c                    \        \        P                  ! ^^ 4      R4       \        \        P                  ! ^^4      RR^ R7       \        \        P                  ! ^^4      RR^ R7       R# )r_   r   r  r   rP   gMoF?N)r   r:   stdtrr   r<   s   &r>   
test_stdtrTestCephes.test_stdtr  sI    V\\!A&s+Q*DvAFQ*NaPrB   c                4    \         P                  ! R ^4       R# )ffffff?N)r:   stdtridfr<   s   &r>   test_stdtridfTestCephes.test_stdtridf  s    ArB   c                4    \         P                  ! ^R4       R# )r_   r  N)r:   stdtritr<   s   &r>   test_stdtritTestCephes.test_stdtrit  s    qrB   c                H    \        \        P                  ! ^ ^ 4      R4       R# r   )r   r:   struver<   s   &r>   test_struveTestCephes.test_struve  r   rB   c                F    \        \        P                  ! ^-4      R4       R# )r   r   N)r   r:   tandgr<   s   &r>   
test_tandgTestCephes.test_tandg  r|  rB   c                N    \        \        P                  ! ^^4      RR^ R7       R# )r_   r   r   rP   N)r   r:   tklmbdar<   s   &r>   test_tklmbdaTestCephes.test_tklmbda  s    q!,cQGrB   c                2    \         P                  ! ^4       R# r  )r:   y0r<   s   &r>   test_y0TestCephes.test_y0  r  rB   c                2    \         P                  ! ^4       R# r  )r:   r  r<   s   &r>   test_y1TestCephes.test_y1  r  rB   c                4    \         P                  ! ^^4       R# r  )r:   ynr<   s   &r>   test_ynTestCephes.test_yn  r2  rB   c                4    \         P                  ! ^^4       R# r  )r:   yvr<   s   &r>   test_yvTestCephes.test_yv  r2  rB   c                4    \         P                  ! ^^4       R# r  )r:   yver<   s   &r>   test_yveTestCephes.test_yve  rO  rB   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@rf  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<rI   rJ   Ng+п皙ٿr   g      "g4׵/Yri  iirQ  iig0"bg5-gǗʿgnF5o{g7f8gyhg{g|bgޗY3ghgy(V@^)r2  r1   r:   wofz)r=   r?  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%8rB    N))r      gs66%)r   r  g:$Zb"@)r   r|  g5`VU 9@)r  gq^A3P@))r_      g*|2T6)r   r   gkBv/9@)	   r|  ggf@T@)rp  gY@)__name__
__module____qualname____firstlineno__r?   rE   ro   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  r  r  r  r  r  r   r$  r)  r.  r3  pytestmarkxfailrB  rF  rJ  rO  rU  rX  r]  rc  ri  rm  rr  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,  r0  r5  r9  r=  rA  rE  rI  rM  rS  r\  r`  rg  parametrizero  rt  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  r  r#  r(  r/  r3  r:  r>  rB  rF  rJ  rN  rR  rV  rZ  r^  rb  rk  ro  rt  rz  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  __static_attributes____classdictcell____classdict__s   @r>   r7   r7   :   sv    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.// 19 [[I  @@
 [[I  KK
 [[I  ;;

9" #L!=
/!&!&1++"!-/#&!&-+.	A+47-57+Q
-+H*9 *9rB   r7   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	# )
TestAiryi  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>rP   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>   r?   TestAiry.test_airy  ss     LL5!RS#!	-LL5!QR#!	-LL5!OP#!	-rB   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*>rP   gN贁N{?)	r   rD   r;   r{   r   r   absr   r   )r=   abb1rj   s   &    r>   rE   TestAiry.test_airye  s    MM$LLVAXqAD\$t*455BE qADc$|DJ'>"?@@AABE F3rB   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# )rT   g˰zU`?g4c1=C?a2U0*#?rP   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	.rB   c           	         \         P                  ! ^4      p\        V\        R.4      \        R.4      \        R.4      \        R.4      3R^ R7       R# )r_   gMSt$?g ~:p?r  rP   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_. $!		-rB   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# )	rR  rO   rJ   rP   Nr[   NNr|  )guqgqHkZg4g9Ζ%gB~gL")gLgQO	gMQnGg3:g)}g )r   r  r;   r  r   )r=   r?  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_big&  s     ' 0 0 7v#LLOQ%ll2.q!A&2w 	E2E2 	(!%a@+QUC 	":@E	G 	2:@E	GrB   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# )	rR  rO   rJ   rP   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=   r?  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_big?  s     ' 0 0 7v#LLO1E%ll2.1VA&2w 	E2E2 	(!%a@+QUC 	":@E	G 	2:@E	GrB   r  N)r  r  r  r  r?   rE   r  r  r  r  	fail_slowr  r  r  r  r  s   @r>   r  r    sd     -4#.J- [[1G G0 [[1G GrB   r  c                   &   a  ] tR tRt o R tRtV tR# )TestAssocLaguerreiY  c                    \         P                  ! ^^4      p\         P                  ! R^^4      p\        W!! R4      R^ R7       \         P                  ! ^^^4      p\        W!! ^4      R^ R7       R# )r;  r   r  rP   N)r   genlaguerreassoc_laguerrer   )r=   a1a2s   &  r>   test_assoc_laguerre%TestAssocLaguerre.test_assoc_laguerreZ  s`      A&##Br!,BrFa8##Ab+BqEQ7rB   r  N)r  r  r  r  r   r  r  r  s   @r>   r  r  Y  s     8 8rB   r  c                   &   a  ] tR tRt o R tRtV tR# )TestBesselpolyib  c                    R # Nr  r<   s   &r>   r   TestBesselpoly.test_besselpolyc      rB   r  N)r  r  r  r  r   r  r  r  s   @r>   r#  r#  b  s      rB   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V tR# )
TestKelvinig  c                P    \         P                  ! ^4      p\        VRR^ R7       R# )rT   gT?iUMu>rP   N)r   r   r   )r=   mbeis   & r>   r   TestKelvin.test_beih  s    {{1~0vAFrB   c                P    \         P                  ! ^4      p\        VRR^ R7       R# )rT   gD,X?r+  rP   N)r   r   r   )r=   mbeips   & r>   r   TestKelvin.test_beipm  s    Q2aHrB   c                P    \         P                  ! ^4      p\        VRR^ R7       R# )rT   gPA4?r+  rP   N)r   r   r   )r=   mbers   & r>   r   TestKelvin.test_berr  s    {{1~1QGrB   c                P    \         P                  ! ^4      p\        VRR^ R7       R# )rT   r+  rP   Ngii߿)r   r   r   )r=   mberps   & r>   r   TestKelvin.test_berpw  s    Q3&qIrB   c                f    \         P                  ! ^4      p\        V\        . RO4      R^ R7       R# )r   r  rP   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 #- .
 $!	-rB   c                f    \         P                  ! ^4      p\        V\        . RO4      R^ R7       R# )r   r  rP   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
 $!	-rB   c                f    \         P                  ! ^4      p\        V\        . RO4      R^ R7       R# )r   r  rP   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 $. /
 $!	-rB   c                f    \         P                  ! ^4      p\        V\        . RO4      R^ R7       R# )r   r  rP   Ng '@gs%@gF ^-@gvۅj3@gB7@)r   
berp_zerosr   r   )r=   brps   & r>   test_berp_zerosTestKelvin.test_berp_zeros  s/      #U $. /
 $!	-rB   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# )rT   r9  r  rP   N)r   r+  r   r   r   r#  r  r   r   r'  r  )r=   mkelvs   & r>   r,  TestKelvin.test_kelvin  s    q!AQ1B B 'AQ1B B 'Q',,q/"2D D 'Q',,q/"2D D F $!		-rB   c                P    \         P                  ! ^4      p\        VRR^ R7       R# )rT   r+  rP   Ng>ɿ)r   r  r   )r=   mkeis   & r>   r  TestKelvin.test_kei  s    {{1~2aHrB   c                P    \         P                  ! ^4      p\        VRR^ R7       R# )rT   gr@d"?r+  rP   N)r   r  r   )r=   mkeips   & r>   r   TestKelvin.test_keip  s    Q2aHrB   c                P    \         P                  ! ^4      p\        VRR^ R7       R# )rT   r+  rP   NgܙU)r   r#  r   )r=   mkers   & r>   r$  TestKelvin.test_ker  s    {{1~3&qIrB   c                P    \         P                  ! ^4      p\        VRR^ R7       R# )rT   r+  rP   Ng^.n3J)r   r'  r   )r=   mkerps   & r>   r(  TestKelvin.test_kerp  s    Q3&qIrB   c                f    \         P                  ! ^4      p\        V\        . RO4      R^ R7       R# )r   r  rP   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  rF  rB   c                f    \         P                  ! ^4      p\        V\        . RO4      R^ R7       R# )r   r  rP   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
 $!	-rB   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  rP   NrB  r8  )#?Q5U@q89 %@ol`.@gO0q3@r]  rH  )gum.@gݏ @gs{)@g䠄11@gN(D!5@gS@g89@@g^C'@g1ZG0@g+ڇ4@rb  )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
 $!	-rB   c                f    \         P                  ! ^4      p\        V\        . RO4      R^ R7       R# )r   r  rP   N)rh  ri  rj  rk  gD;q3@)r   	ker_zerosr   r   )r=   r#  s   & r>   test_ker_zerosTestKelvin.test_ker_zeros  rF  rB   c                f    \         P                  ! ^4      p\        V\        . RO4      R^ R7       R# )r   r  rP   Nrl  )r   
kerp_zerosr   r   )r=   r'  s   & r>   test_kerp_zerosTestKelvin.test_kerp_zeros  rf  rB   r  N)r  r  r  r  r   r   r   r   r:  r?  rD  rK  r,  r  r   r$  r(  r_  rd  rw  r{  r  r  r  r  s   @r>   r)  r)  g  sm     G
I
H
J
-----IIJJ--4-l-- -rB   r)  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  rP   N)r   r  g-!lV?r   g镲r   )r   	bernoullir   r   )r=   brns   & r>   test_bernoulliTestBernoulli.test_bernoulli  s/    "U $, - $!	-rB   r  N)r  r  r  r  r  r  r  r  s   @r>   r  r    s     - -rB   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# )
r_   r   N~h?g6.8@rI   r  rJ   N33333Y)r   r   betar   rh  )r=   betbetgs   &  r>   	test_betaTestBeta.test_beta&  s    W\\!Q'-VV4gmmF6KLVS13E"	, ll1a a q!117==3CC.rB   c                n    \        \        P                  ! \        P                  ! R^4      4      4       R# r_   NrZ   )r   ra   isinfr   r  r<   s   &r>   test_beta_infTestBeta.test_beta_inf0  s    b!,-.rB   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	# )r_   r   r  r  gIs	@r  r  rI   rJ   Nr  )r   r   betalnr   rq  r   r  r  )r=   betlnr  s   &  r>   test_betalnTestBeta.test_betaln3  s    W^^Aq)3/vv6/	1vs35G"	, q!$#gll1a()*/rB   r  N)
r  r  r  r  __doc__r  r  r  r  r  r  s   @r>   r  r  !  s     //	0 	0rB   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TestBetaInci?  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|  r_   )ra   r   r   r   betainc
betaincinvbetainccbetainccinvr  s   & r>   
test_a1_b1TestBetaInc.test_a1_b1D  sz    HH\"W__Q1-q1W''1a0!4W%%aA.A6W((Aq11q59rB   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   rJ   g-a=rI   N)r   r  r   r  btdtriabtdtrib)	r=   r  r  r   rN  p1x1r  r  s	   &&&&&    r>   test_betainc_and_inverses%TestBetaInc.test_betainc_and_inverses[  sn     __Q1%E*a(E*__Q1%E*__Q1%E*rB   c                    \         P                  ! WV4      p\        WTR R7       \         P                  ! WV4      p\        WcRR7       R# )+<rJ   gV瞯=N)r   r  r   r  )r=   r  r  r   rN  r  r  s   &&&&&  r>   test_betaincc_betainccinv%TestBetaInc.test_betaincc_betainccinvt  s<     aA&E*  q)E*rB   za, b, y, refc                N    \         P                  ! WV4      p\        WTR R7       R# )r  rJ   N)r   r  r   )r=   r  r  r>  rn  r   s   &&&&& r>   test_betaincinv_tiny_y"TestBetaInc.test_betaincinv_tiny_y  s     2 qQ'U+rB   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 # r%  )r   r  r   r=   r  r@  observeds   &&& r>   test_betainc_edge_cases#TestBetaInc.test_betainc_edge_cases  s    < ??D)X(rB   c                D    \         P                  ! V!  p\        W24       R # r%  )r   r  r   r  s   &&& r>   test_betaincc_edge_cases$TestBetaInc.test_betaincc_edge_cases  s    < ##T*X(rB   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   rJ   N)ra   r   r   r  r   r   eps)r=   r  r  r   r  s   &&   r>   test_gh21426TestBetaInc.test_gh21426  sW     HHbT'HHcU%(##A!,RXXe_-@-@(@ArB   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  rJ   N)ra   r   r   r  r   )r=   r  r  r   rz  r  rK   ress   &&&&&&& r>   test_gh22682TestBetaInc.test_gh22682  sH     HHQ$HHQ$HHQ$ooaA&T2rB   r  N))rT   rR   g@w?r   )r  g     `e@rO   g*?)r     g"Yx;r|  )g   `1?g    ئAg\aY4g    ?)rR   i g-߇)?g;?))      @rf  r|  g     ?)      @g     *@g      ?g&?)      ?r  g333333?gFoE?)r        2@r   gg2$Z?)r  r  gZd;?g6)r  rg  r  g`<)      0@r  g?g<dEA>)g?g7Ê@g/3J?Hz>))cj,@r  ghHISOa gڭ Y;)g      ,@g      -@g둤g}c]춫;)rg  g      .@gUv \U,gS^%:)r  g      ?gMoigKB;)r'  g    i@g1$-g\_cp:))r   rT   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  ra   r-  r   r  r  r   r   r  r  r  r  r  s   @r>   r  r  ?  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3rB   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 )
rp        ^@g     @j@Texactr  
repetitionr   rQ   l   hU7`S?Q N)
r   r   combr   r{   listra   iinforz   max)r=   rk   iir@  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)ra   int64r   r  )r=   rj   rk   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$/rB   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# )	rT   Tr  FNrZ   rT   rZ   rT   rp  r   r   rZ   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XrB   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  re  Tr  Ng@)r  r   
ValueErrorr   r  r8  s   & r>   test_comb_exact_non_int_error/TestCombinatorics.test_comb_exact_non_int_error&  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  typerz   ra   r   )r=   r  r  actuals   &&& r>   test_comb_repetition_k_zero-TestCombinatorics.test_comb_repetition_k_zero-  sK    
 a%DA{{&+tF|s";;;;"rB   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   rp  )r   r   r   )ra   r   r   r  r   )r=   r  r  r@  s   &   r>   !test_comb_repetition_k_zero_array3TestCombinatorics.test_comb_repetition_k_zero_array6  s:    HHZ a%DA88O,V&rB   c                    \        \        P                  ! ^
^
.^^.4      RR.4       \        \        P                  ! ^
^4      RR^ R7       \        \        P                  ! ^
^RR7      R4       R# )	rp       @g     @r   rP   Tr  i  N)r   r   permr   r<   s   &r>   	test_permTestCombinatorics.test_perm=  sS    b"X1v6uFR+TQGW\\"at4c:rB   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# )	rT   Tr  FNrZ   r  r  )r   r   r   r  )r   r   r  r   r<   s   &r>   test_perm_zeros!TestCombinatorics.test_perm_zerosB  r  rB   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_ivI  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/ /rB   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# )TestTrigonometriciX  c                R    \         P                  ! ^4      pRp\        WR^ R7       R# )   rf  r   rP   Nr   r   r   )r=   cbcbrls   &  r>   r   TestTrigonometric.test_cbrtY  s!    \\"vA6rB   c                R    \         P                  ! R 4      pRp\        WR^ R7       R# )gfffff;@r  rP   Ng鎖C@r!  )r=   cb1cbrl1s   &  r>   test_cbrtmoreTestTrigonometric.test_cbrtmore^  s!    ll4 a8rB   c                z    \         P                  ! ^Z4      p\        \        R,          4      p\	        WR^ R7       R# )rx  r  r  rP   Nr   r   r
   r   r   )r=   cdgcdgrls   &  r>   r   TestTrigonometric.test_cosdgc  s)    mmBBsFa8rB   c                z    \         P                  ! ^4      p\        \        R,          4      p\	        WR^ R7       R#    r  r  rP   Nr+  )r=   cdgmcdgmrls   &  r>   test_cosdgmore TestTrigonometric.test_cosdgmoreh  s)    }}R RV6:rB   c                :   \         P                  ! ^ 4      \         P                  ! R4      \         P                  ! \        ^
,          4      3p\        ^ 4      ^,
          \        R4      ^,
          \        \        ^
,          4      ^,
          3p\	        WR^ R7       R# )r   r:  r  rP   N)r   r   r   r
   r   )r=   cscsrls   &  r>   r   TestTrigonometric.test_cosm1m  sa    mmAw}}R0r"u1EFAqR3r"u:a<0vA6rB   c                    \         P                  ! ^4      p\        \        R,          4      R,          p\	        WR^ R7       R# )r1  r  r  rP   NrZ   r   r   r   r   r   )r=   ctctrls   &  r>   r   TestTrigonometric.test_cotdgr  s.    ]]22c6{R vA6rB   c                    \         P                  ! ^-4      p\        \        R,          4      R,          p\	        WR^ R7       R# )r   r'  r  rP   NrZ   r;  )r=   ct1ctrl1s   &  r>   test_cotdgmore TestTrigonometric.test_cotdgmorew  s.    mmBBsFb!a8rB   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=rP   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FrB   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\\#&,rB   c                J    \         P                  ! ^Z4      p\        VR4       R# rw  )r   ry  r   )r=   sns   & r>   rz  TestTrigonometric.test_sindg  s    ]]2RrB   c                    \         P                  ! ^4      p\        \        R,          4      p\	        WR^ R7       \         P                  ! ^-4      p\        \        R,          4      p\	        W4R^ R7       R# )r1  r  r  rP   r'  N)r   ry  r	   r   r   )r=   snmsnmrlsnm1snmrl1s   &    r>   test_sindgmore TestTrigonometric.test_sindgmore  P    mmBBsFa8}}R RV6:rB   r  N)r  r  r  r  r   r(  r   r4  r   r   rB  rK  rO  rz  rY  r  r  r  s   @r>   r  r  X  sB     7
9
9
;
7
7
9
G-
; ;rB   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# r0  r   r  r   r   r   )r=   tntnrls   &  r>   r  TestTandg.test_tandg  s)    ]]22c6{vA6rB   c                    \         P                  ! ^-4      p\        \        R,          4      p\	        WR^ R7       \         P                  ! ^<4      p\        \        R,          4      p\	        W4R^ R7       R# )r   r'  r  rP   rf  Nr_  )r=   tnmtnmrltnm1tnmrl1s   &    r>   test_tandgmoreTestTandg.test_tandgmore  r[  rB   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   rE  rP   r   rF  NrG  r   rH  iLrI  rJ  )r   r   r  r<   s   &r>   rK  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GrB   r  N)	r  r  r  r  r  rh  rK  r  r  r  s   @r>   r]  r]    s     7
;H HrB   r]  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  ra   r-  r<   s   &r>   test_ellipj_nanTestEllip.test_ellipj_nan  s    sBFF#rB   c                    \         P                  ! R ^ 4      p\        R 4      \        R 4      RR .p\	        WR^ R7       R# )r   r   7QE=rP   N)r   r  r	   r
   r   )r=   elrels   &  r>   r  TestEllip.test_ellipj  s4    ^^C"3xCT*gA6rB   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  rP   r   r   gN?NrZ   r  )	r   r   r   r   r    ra   r   r   r-  )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+-?@rB   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# )rT   r   r   rP   gfoKh?r  r   r   r   gt?rU   r  rJ   6<R!?gfON?Nr  )
r   r  r   r   r   r	   r   ra   r   r-  )r=   elkincrw  alphaphirf  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LrB   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)	ra   	nextafterr{   appendr   r  r   	full_liker   r=   mbadr}  rf  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SrB   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# )
rr   gFFg<r8  Fr  r  rJ   Nii)ra   rt   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<rB   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  rP   r   r   g?eg@Nr  )r   r   r   r   r   ra   r   r-  )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+-?@rB   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# )rT   r   rE  rP   g'?r  r   r   r   rz  gL@Nr  )
r   r  r   r   r   r	   r   ra   r   r-  )r=   eleincr  r|  r}  rf  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KrB   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)	ra   r  r{   r  r   r  r   r  r   r  s   &       r>   test_ellipeinc_2TestEllip.test_ellipeinc_26  s     # LLq!rALLOQ"A  c)&q",,q:M*NPQRsRx/&r2<<<N+OQRSrB   r  N)r  r  r  r  ro  r  r  r  r  r  r  r  r  r  r  r  s   @r>   rm  rm    s>     $7
	AM:T =*	AL4T TrB   rm  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# )TestEllipCarlsoniG  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# )r_   r   r|  g      @r  r9  rf  N             r  r   y
c?
cy=B?CGֿy檠f?P9lb?)
r   r!   r   r   r2  r   ra   r   r   	enumerater=   r  expected_resultsr   arrs   &    r>   test_elliprcTestEllipCarlson.test_elliprcL  s    1q)q##%%%WQ]####q'!S/*c111sDkSkDkdmTlTl$ % !"%%"$&&+">"C"$&&+"3"D"F G  oFAGSM+;+>? &rB   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# )r_   rf  g`C+?r   r  NrZ   )r   r  r   r  rf  r'  r9  r  r  r   r9  r  )r               ?r9  )y             r  r  )gfe_?gi+"?gP$M?ytgFU?7?@yR<8*y{62?z)r   r"   r   ra   r  r2  r   r   r   tinyr   r  r  s   &    r>   test_elliprdTestEllipCarlson.test_elliprd`  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+;+>? &rB   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# )r_   gPO?r   NrZ   )r   r  r   )r9  r  r   )r   r   r   r  r9  r   r  r  )r  r9        ?      )geQO?ʞu5J?r  yp\y?kg2ΰ?gHwд?y|pF?-6Fj)	r   r#   r   ra   r  r   r2  r   r  r  s   &    r>   test_elliprfTestEllipCarlson.test_elliprfx  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+;+>? &rB   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# )r_   r   gL+?g}^?gt?N)r   r  r  r  r  r  )r  r  r9  )r   g8d`?r'  y旮0?ʋW?yjN?^?)	r   r$   ra   r  r   r2  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+;+>? &rB   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# )r_   r   NrZ   )r   r   r  rf  )r  rf  r'  r[  )r  rf  r'  r  )r9  r  r   r  )r              r   r  )r9  r  r   r  )r  r  r   y            ?)r  rf  r'  r  )r  rf  r'        )	g @?gviM?ym?\Isؿg'4Ob?go0 ?yW7?xfOA?ybv㿘ܶ.gHQ?gjߡB7E)r   r%   r   r   r   r  r  s   &    r>   test_elliprjTestEllipCarlson.test_elliprj  s    1a+Q/q!S!$+++WQ1a())))WRAq)****q!Q$+++**0-62<++- . ! "5 6  oFAGSM+;+>? &rB   zInsufficient accuracy on 32-bitr5  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 <"	0rB   r  N)r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  s   @r>   r  r  G  sP     @(@0@2@*@6 [[?@0 A0rB   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   rZ   )ra   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rB   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#   re  s   & r>   test_k)TestEllipLegendreCarlsonIdentities.test_k  s(     OOq	72r!tR#89rB   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   ra   r  r   r    r#   )r=   r  m1s   &  r>   test_km1+TestEllipLegendreCarlsonIdentities.test_km1  sJ     V}!!BrBGGDM>222gb"b&9:rB   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$   re  s   & r>   test_e)TestEllipLegendreCarlsonIdentities.test_e  s-     OOq	2gb"Q$&;#;<rB   )r  r  r  r  N)r  r  r  r  r  r  r  r  r  r  r  r  s   @r>   r  r    s#     

8:	;= =rB   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  rP   N)r   r  r   )r=   ers   & r>   r  TestErf.test_erf  s    [[LvA>rB   c                h    \         P                  ! ^4      p\        . RO4      p\        WR^ R7       R# )r   r  rP   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7rB   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)rL   r  g{Gz?r9  rV  allr  N)	ra   rg   rh   paretorandintr  r   isfiniter1   )r=   r  
other_funcrK   rQ   rn   rj   r   r>  r?  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      ,
          # ry   r:   r  r?  s   &r>   <lambda>.TestErf.test_erfc_consistent.<locals>.<lambda>&  s    a&**Q-'rB   r   r  r  N)r  r:   r  r<   s   &r>   test_erfc_consistentTestErf.test_erfc_consistent#  s%      KK'	 	! 	rB   c                L    V P                  \        P                  R  RR7       R# )c                 p    \         P                  ! W ,          4      \        P                  ! V 4      ,          # r%  )ra   r   r:   r  r  s   &r>   r  /TestErf.test_erfcx_consistent.<locals>.<lambda>.  s    bffQSkFKKN2rB   r   rJ   N)r  r:   erfcxr<   s   &r>   test_erfcx_consistentTestErf.test_erfcx_consistent+  s"      LL2 	! 	rB   c                L    V P                  \        P                  R  RR7       R# )c                 J    R\         P                  ! R V ,          4      ,          # )r9  r  r  r  s   &r>   r  .TestErf.test_erfi_consistent.<locals>.<lambda>5  s    cFJJr!t,,rB   r   rJ   N)r  r:   erfir<   s   &r>   test_erfi_consistentTestErf.test_erfi_consistent2  s"      KK, 	! 	rB   c                L    V P                  \        P                  R  RR7       R# )c                     \        \        4      ^,          \        P                  ! V ) V ,          4      ,          \        P
                  ! V 4      ,          # )rT   )r   r   ra   r   r:   r  r  s   &r>   r  /TestErf.test_dawsn_consistent.<locals>.<lambda><  s,    d2hqj2661"Q$</&++a.@rB   r   rJ   N)r  r:   r   r<   s   &r>   test_dawsn_consistentTestErf.test_dawsn_consistent9  s"      LL@ 	! 	rB   c                    \         P                  \         P                  ) \         P                  .p\         P                  R^.p\        \        P
                  ! V4      VRR7       R# )r_   r   rJ   NrZ   )ra   r-  r   r   r   r  r=   ry  r@  s   &  r>   test_erf_nan_infTestErf.test_erf_nan_inf@  s@    (FFB?D)8%@rB   c                    \         P                  \         P                  ) \         P                  .p\         P                  ^^ .p\        \        P
                  ! V4      VRR7       R# )rT   r   rJ   N)ra   r-  r   r   r   r  r  s   &  r>   test_erfc_nan_infTestErf.test_erfc_nan_infE  s@    (FFAq>T*H5ArB   c                    \         P                  \         P                  ) \         P                  .p\         P                  \         P                  ^ .p\        \        P
                  ! V4      VRR7       R# )r   r   rJ   N)ra   r-  r   r   r   r  r  s   &  r>   test_erfcx_nan_infTestErf.test_erfcx_nan_infJ  sE    (FFBFFA&d+XEBrB   c                
   \         P                  \         P                  ) \         P                  .p\         P                  \         P                  ) \         P                  .p\        \        P
                  ! V4      VR R7       R# rk  )ra   r-  r   r   r   r  r  s   &  r>   test_erfi_nan_infTestErf.test_erfi_nan_infO  sK    (FFRVVGRVV,T*H5ArB   c                    \         P                  \         P                  ) \         P                  .p\         P                  RR .p\        \        P
                  ! V4      VRR7       R# )r   r   rJ   Nrw  )ra   r-  r   r   r   r   r  s   &  r>   test_dawsn_nan_infTestErf.test_dawsn_nan_infT  sA    (FFD#&d+XEBrB   c                   \         P                  \         P                  ) \         P                  .p\         P                  \         P                  R ,          ,           RR.p\        \        P
                  ! V4      VRR7       R# )r9  r1  r   rJ   Ny               )ra   r-  r   r   r   r  r  s   &  r>   test_wofz_nan_infTestErf.test_wofz_nan_infY  sN    (FFRVVc\)66:T*H5ArB   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rB   r  c                   &   a  ] tR tRt o R tRtV tR# )	TestEuleri_  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   rJ   drV  r  Nr   rE  rP   )r_   r   rZ   )r_   r_   r   =   ii  iY  i=) il   Q~ l   10[l   $8gC
 l   2l   v}Ju: )r   )
r   eulerr   r   r{   r|   ra   r  r   r  )
r=   eu0eu1eu2eu24	mathworldcorrectrk   errerrmaxs
   &         r>   
test_eulerTestEuler.test_euler`  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  r&  r  r  r  s   @r>   r  r  _  s     ; ;rB   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	# )
TestExpix  c                L    \         P                  ! ^4      p^p\        W4       R# r  )r   r(  r   r=   exexrls   &  r>   r)  TestExp.test_exp2y  s    \\!_RrB   c                R    \         P                  ! R 4      pRp\        WR^ R7       R# )r  r  rP   Ng;f@)r   r(  r   r=   exmexmrls   &  r>   test_exp2moreTestExp.test_exp2more~  s!    ll3a8rB   c                R    \         P                  ! ^4      p^dp\        WR^ R7       R# )rT   r   rP   Nr   r#  r   r+  s   &  r>   r$  TestExp.test_exp10  s!    ]]1t!4rB   c                R    \         P                  ! R 4      pRp\        WR^ R7       R# )r  r  rP   NgYs@r6  r0  s   &  r>   test_exp10moreTestExp.test_exp10more  s!    mmC a8rB   c                   \         P                  ! ^4      \         P                  ! ^4      \         P                  ! ^4      3p\        ^4      ^,
          \        ^4      ^,
          \        ^4      ^,
          3p\        WR^ R7       R# )rT   r  rP   Nr   r,  r   r   r+  s   &  r>   r.  TestExp.test_expm1  sY    mmAa 0'--2BCA
CFQJA
3vA6rB   c                   \         P                  ! ^4      \         P                  ! R4      \         P                  ! R4      3p\        ^4      ^,
          \        R4      ^,
          \        R4      ^,
          3p\        WR^ R7       R# )rT    @皙@r  rP   Nr<  )r=   ex1exrl1s   &  r>   test_expm1moreTestExp.test_expm1more  sY    }}Qs!3W]]35GHQ!SX\3s8a<8a8rB   r  N)r  r  r  r  r)  r3  r$  r9  r.  rC  r  r  r  s   @r>   r)  r)  x  s(     
9
5
9
7
9 9rB   r)  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 # )NrJ   )r+   r*   )r   r>  rK   s   &&r>   assert_func(assert_really_equal.<locals>.assert_func  s    !%?1d3SrB   c                     \         P                  ! V P                  4      '       d'   \         P                  ! V P                  4      '       g   Q hR # r%  )ra   r   r   r=  r   s   &r>   assert_complex_nan/assert_really_equal.<locals>.assert_complex_nan  s0    xxBHHQVV$4$444$4rB   ztypes not equal: z, rJ   r[  N)
r	  
isinstancera   ndarrayr  ziprf   assert_really_equalr   r/   )r   r>  rK   rG  rK  elem_xelem_ys   &&f    r>   rP  rP    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rB   c                     a  ] tR tRt o R t]P                  P                  R. RAO4      R 4       t]P                  P                  R	. RCO4      ]P                  P                  R
RR.4      R 4       4       t	]P                  P                  R
RR.4      R 4       t
]P                  P                  R	. RDO4      R 4       t]P                  P                  R^ R.4      ]P                  P                  R. RCO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R4      .
. REO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. RAO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                  ^... RFO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RG]P                  ]P                  ]P                  R,          ,           R.. RHOR7      R/ 4       4       4       t/]P                  P                  R	]! ^^^4      4      R0 4       t0]P                  P                  R	])! ]! ^ ^4      4      ])! ]! ^^^4      4      ,           4      R1 4       t1R2 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                  ^... RFOR7      R3 4       4       4       4       4       t3]P                  P                  RRR.4      ]P                  P                  R
RR.4      ]P                  P                  R	^RRG]P                  ]P                  ]P                  R,          ,           R.. RHOR7      R4 4       4       4       t4]P                  P                  R5]! ^^4      4      ]P                  P                  R	]! ^^RI4      4      R6 4       4       t5]P                  P                  R5])! ]! ^^4      4      ^
^.,           4      ]P                  P                  R	])! ]! ^ ^4      4      ])! ]! ^^d^4      4      ,           4      R7 4       4       t6R8 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                  ^... RFOR7      R9 4       4       4       4       4       t8]P                  P                  RRR.4      ]P                  P                  R
RR.4      ]P                  P                  R5]! ^^4      4      ]P                  P                  R	^RRG]P                  ]P                  ]P                  R,          ,           R.. RHOR7      R: 4       4       4       4       t9]P                  P                  RRR.4      ]P                  P                  R. RAO4      ]P                  P                  R5RBRJ^ R;RR]P                  .4      R< 4       4       4       t:]P                  P                  RRR.4      ]P                  P                  R. RAO4      ]P                  P                  R5R]P$                  ! RR4      .RR.R7      R= 4       4       4       t;]P                  P                  R. RAO4      ]P                  P                  R5]! ^^4      4      R> 4       4       t<R? t=R@t>V t?R# )K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rk   r  zero)r   
factorialkra   modpowerrh  ra  maximum)r=   rj   rk   r  extendrry  s   &&&&&  r>   factorialk_ref%TestFactorialFunctions.factorialk_ref  s    %%aD99"f,BFF1L!xxE19%acAg(>>PQPSVWPWAXXbjjA&&&rB   zexact,extendTrW  Fr2  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  r\  rk   Nry   )ra   isscalarr   	factorial
factorial2rX  )r=   r  r\  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;;<<<<rB   rj   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  rk   N)r   r   rb  rc  rX  )r=   r  rj   rd  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9rB   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  rJ   rk   N)ru  r   r_   )r   r   r_   r_   )	ra   r   
native_intr   rP  r   rb  rc  rX  )r=   r  rd  rK   rj   r@  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RrB   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	# )r\  r2  g:\Oag@go	08G)?gNy?g=u? [n<rJ   rk   N皙gRc/a_%皙ffffff
g*BZ'goNb]gMxcQg7K)r   r   rb  rc  rX  )r=   rj   rd  exp_1exp_2exp_krK   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SrB   r=  r1  n_outerc                d   a R R/oV3R lpV! W,           4       V! RV,          V,           4       R# )r\  r2  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# )r[  nan+nanjr-  rk   Ny      ?       )
r/   r	  ra   
complex128r   rP  r   rb  rc  rX  )rj   
complexifycomplex_nanr   r[  rd  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;WrB   i Nr  )r=   ry  r=  r  rd  s   &&& @r>   -test_factorialx_negative_extend_complex_polesDTestFactorialFunctions.test_factorialx_negative_extend_complex_poles  s3     	"	X( 	w~w 4'(rB   boxedr\  r-  r9  r|  Nnatrs  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  Fr\  rk   r   r  r[  NUnsupported data type.*r  r2  In order to use non-integer.*r|  r-  rW  r   r   r  r[  )r   rX  r	  rb  r/   r  r   r  ra   r}  r   r  rP  )r=   r  rj   r\  r  rd  permissible_typestypes_need_complex_extr~  r@  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  )r\  NT)rk   r  r\  )r  r   r  r   rb  rc  rX  )r=   r\  s   &&r>   test_factorialx_raises_extend4TestFactorialFunctions.test_factorialx_raises_extendC	  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# )r_   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   rk   _nest_mes   &&r>   r  DTestFactorialFunctions.test_factorialx_array_shape.<locals>._nest_meO	  s$     Av!,,rB   c                    < \         P                  ! S! VSR 7      \        R7      p\        V P	                  \         P
                  4      VP                  ! \         P
                  4      4       R# )rk   r  N)ra   r   objectr   r   r   )r  nucleusr   r  r  s   && r>   r  BTestFactorialFunctions.test_factorialx_array_shape.<locals>._check\	  s@    ((8Gv6fEC CJJrzz2CJJrzz4JKrB   r  Tr  Nry   )ra   r   mathrb  r   rc  rX  )r=   r  r  r  rj   exp_nucleusr  s   &f&   @r>   test_factorialx_array_shape2TestFactorialFunctions.test_factorialx_array_shapeL	  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ErB   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)ra   r   r   r   rb  rc  rX  )r=   r  r  r  rj   r   s   &&&&  r>   test_factorialx_array_dimension6TestFactorialFunctions.test_factorialx_array_dimensionl	  s     HHQe/#q"a$))!9Qs3	5**1:Qs3	5**1au=Qs3	5rB   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# )r_   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))rB   r  r  r  Nry   )r   r   r   rb  ra   r   rc  rX  )r=   r  r  rj   r  rG  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	;rB   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  dm   V'       d   R# V! V! V^,
          4      4       V! \        P                  ! V^,
          VR7      4       V! \        P                  ! V^,
          .VR7      4       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  r\  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# )rk   N)	rM  ra   rN  r   r  r   rb  rc  rX  )rj   n_refrG  rd  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<<>rB   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)rV  Nrk   )rW  rX  simplefilterrZ  r   rb  rc  rX  )rj   
shaped_infrG  rd  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  N)	r   r   ra   r   r  r  uint64uint8uint16)	r=   r  r\  r  r  r  r  rG  rd  s	   &&&&   @@r>   test_factorialx_uint+TestFactorialFunctions.test_factorialx_uint	  s7    uh/,1(	>	F 	uQxuQxrxx'(rxxAe,-"((5/%%&BII 51:&288AaCu56288QqSE78rxx++5 1Q3K288AaCu-.288QqS!A#Je45 49rB   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# )r4   t0=r   Tr  FrJ   N)sysplatformr   r|   r   rb  r   r=   rj   rK   s   && r>   test_factorial_accuracy.TestFactorialFunctions.test_factorial_accuracy	  s~    
 /uUg//>?))!59	F))1#T:AA%H))1#U;$	HrB   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  r4   +6=r   FrJ   r  r\  r2  N)r  rb  r   r   r  r  r|   r   r=   rj   r#  rK   rd  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LrB   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)	r4   r  r   rJ   `exact=True` only supports.*r  Tr  N)r  r  r   r   rb  r  r   r  )rj   r@  rK   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8rB   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# )	r4   rp  V瞯<r  Fr\  r2  rJ   N)r  r  r   r   rb  rj   r@  rK   rd  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QrB   gkﴑ[?r@  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TrB   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r%  ra   r   rz   .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r[  Nr/   r	  r  s   & r>   r  r  
       &S7a|DGS'A'A7   "$r  r\  r  r  Nr2  Incompatible options:.*r  r   r[  r  r  r  r   rJ   r  )r  r,   r  skipra   r  anyr   lenr   r   r  r   rb  r/   r  rf   r   r}  rl  rP  r=   r  r  r  r\  r  rd  rj   r  r   rn  cxr@  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  r\  r2  r  r  Nr   r  r[  r  r  r|  r-  r  )r  r   r  r   rb  r/   r	  ra   r   r}  r   rP  r   rh  r=   rj   r  r\  rd  r~  r@  s   &&&&   r>   "test_factorial_scalar_corner_cases9TestFactorialFunctions.test_factorial_scalar_corner_cases;
  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# )r4   +=r   Tr  FrJ   N)r  r  r   r|   r   rc  r   r  s   && r>   test_factorial2_accuracy/TestFactorialFunctions.test_factorial2_accuracyV
  s~    
 /uUg00$?@**1E:	G**A3d;BB5I**A3e<4	IrB   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  r4   r  r   FrJ   r  r\  r2  NrQ  )	functoolsreduceoperatormulr  r{   r   r   rc  r  r  r|   r   r  s   &&   r>   test_factorial2_int_reference4TestFactorialFunctions.test_factorial2_int_referenceb
  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 rB   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  Fr\  r2  rJ   N)r   r   rc  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RrB   r  g^D]?JO?gtQ*@Nr  r  y^D]?JO?        y      @      @y&0!:?gSt$y       -C6?yqj?x*)r   rc  r  r   r   r  s   & r>   !test_factorial2_complex_reference8TestFactorialFunctions.test_factorial2_complex_referencez
  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VrB   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r%  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  r\  r  Nr2  r  r  r  r[  r  r  r  rJ   r  )ra   r  r  r  r  r   r  r   r   r  r   rc  r/   r  rf   r   r}  rl  rP  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  r\  r2  r  r  Nr   r  r[  r  r  r|  r-  rk   r   rJ   )r  r   r  r   rc  r/   r	  ra   r   r}  r   rP  r^  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 	rk   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# )r4   r  r  TrV  FrJ   N)r  r  r   r|   r   rX  r   )r=   rj   rk   rK   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rB   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  r4   gt =r  FrJ   rk   r  r\  r2  r  N)r  r   r  r  r  r{   r   r   rX  r  r  r|   r   )r=   rj   rk   r#  rK   rd  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 rB   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  rk   r  Fr\  r2  rJ   N)r   r   rX  )rj   rk   r   rK   rd  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MrB   TrV  )rj   rk   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   rX  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WrB   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r%  r  r  s   & r>   r  LTestFactorialFunctions.test_factorialk_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  rk   r  r\  r  Nr2  r  r  r  r[  r  r  r  rJ   r  )ra   r  r  r  r  r   r  r   r   r  r   rX  r/   r  rf   r   r}  rl  rP  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)rk   r  r\  r2  r  r  Nr   r  r[  r  r  r|  r-  r   rJ   )r  r   r  r   rX  r/   r	  ra   r   r}  r   rP  r^  )r=   rj   rk   r  r\  rd  r~  r@  s   &&&&&   r>   #test_factorialk_scalar_corner_cases:TestFactorialFunctions.test_factorialk_scalar_corner_casesQ  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)r_   rk   r  r\  rW  r  r   zFor `extend='zero'`.*r  NzParameter k cannot be zero!)r/   r	  r  r   r  r   rX  )r=   rk   r  r\  r  rj   rd  r9  s   &&&&&   r>    test_factorialk_raises_k_complex7TestFactorialFunctions.test_factorialk_raises_k_complexj  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)r_   rk   r  r\  r  r  N)r  r   r  r   rX  )r=   rk   r  r\  r  rj   rd  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                  \        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# )rk   r  r\  N)r-   keysra   r   r.   r   r   rX  r  longr  r  int32r  r  getr   )r=   rk   r  r\  rd  rj   r  s   &&&&   r>   test_factorialk_dtype,TestFactorialFunctions.test_factorialk_dtype  s    1guh75Q388::3A678A++A44::BGG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BrB   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)r_   Fr  r  r  TN)	ra   r   r-  r   r   rb  r  r   r  r=   r   r@  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  ))TrW  )FrW  )Fr2  rZ   )rZ   rQ  r  )rq  rr  rs  )
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+2jr8  r9  r:  ir   )@r  r  r  r  r^  r  r  r  re  rh  rm  rw  r  ra   r-  r   r}  r   
datetime64r   rb  rc  rX  r  r  r{   r  rz   int8int16r0  r  r  r  uint32r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r"  r%  r(  r+  r2  r6  r  r  r  s   @r>   rT  rT    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,bmmESV>W	

  
 [[			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#-F"G"*E!2  4(4T 5( [[^RT[[S%2,/C 0TC(- -rB   rT  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  rP   N)r   r   rb  r   )r=   r?  rs  r[  frss   &&&& r>   test_fresnel_valuesTestFresnel.test_fresnel_values  s,    @ GOOA&'UA6]a@rB   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?rP   rE  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   rb  )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7rB   c                ~    \         P                  ! ^4      w  r\         P                  ! ^4      p\        W2R^ R7       R# )r[   Afcz=rP   N)r   rH  fresnelc_zerosr   )r=   rI  rJ  frcs   &   r>   test_fresnelc_zerosTestFresnel.test_fresnelc_zeros  0    ((+$$Q'wQ7rB   c                ~    \         P                  ! ^4      w  r\         P                  ! ^4      p\        W1R^ R7       R# )r   rP  rP   N)r   rH  fresnels_zerosr   )r=   rI  rJ  rC  s   &   r>   test_fresnels_zerosTestFresnel.test_fresnels_zeros  rU  rB   r  N)r   gN?ց[?)y      ?        rZ  r[  )y       ?yn<ӿj<Cy)BR;߿ux7Q?)y      yھ|}-2?y/?!ۿ)r  GM?pBR?)y      @        r\  r]  )y              @y       GMܿy        pBR?)y              gGMܿgpBR߿)y             y        GM?y       pBR߿r  )r  r  r  r  r  r  r  ra   r   rD  rM  rS  rX  r  r  r  s   @r>   rA  rA    s     [[Y7=	

	
 	&,)/*	c
&&$;) >A?>A8&8
8 8rB   rA  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# rf  )r   rh  r   )r=   gams   & r>   ri  TestGamma.test_gamma  s    mmASrB   c                    \         P                  ! ^4      p\        \         P                  ! ^4      4      p\	        WR^ R7       R# )r   r  rP   N)r   rq  r   rh  r   )r=   gamlnlngams   &  r>   rr  TestGamma.test_gammaln  s/    "GMM!$%6:rB   c                ~    \         P                  ! R R 4      p\         P                  ! R R 4      p\        WR^ R7       R# )r   r  rP   N)r   rl  gammaincinvr   )r=   gccinvgcinvs   &  r>   rm  TestGamma.test_gammainccinv  s2    %%b,##Br*F;rB   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# )rU   r  rP   g?g`	\;gmb<g      &@N)r   rh  gammaincr   r=   r>  r   s   &  r>   test_gammaincinvTestGamma.test_gammaincinv  s    2&R"3W15R&$:;agA61aH$JKagA6rB   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   rU   rJ   NgCs?g^F    ?)ra   r  r   rh  rm  r   )r=   ptsptr>  r   s   &    r>   test_975TestGamma.test_975  sh    
 ||D!$l||D!$l4 B##B+A  a(AA. rB   c                    \         P                  ! ^4      p^\         P                  ! ^4      ,          p\        WR^ R7       R# )r  r  rP   N)r   ra  rh  r   )r=   rgamrlgams   &  r>   rb  TestGamma.test_rgamma  s/    ~~a '--""&q9rB   c                F    \        \        P                  ! R4      ^ 4       R# r  )r   r   ra  r<   s   &r>   test_infinityTestGamma.test_infinity  s    W^^B'+rB   z
x,expectedr   c                F    \        \        P                  ! V4      V4       R # r%  )r   r   rh  r5  s   &&&r>   
test_polesTestGamma.test_poles  s      	7==+X6rB   r  Nrw  ii gP²Zdb)r  r  r  r  ri  rr  rm  r0   ro  rt  rb  r{  r  r  r  ra   r   r-  r{   fullr~  r  r  r  s   @r>   r_  r_    s     ;
<
 	7 	7 
/ 
/:
, [[ vvgrvv 01C[BFF7BFF+,3]BGGB/05#r"BGGB$78$%x0	
77rB   r_  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# )
TestHankeli0  c                z    \        \        P                  ! R^4      \        P                  ! ^^4      ) R^ R7       R# r   rE  rP   Nr  )r   r   r  r<   s   &r>   
test_negv1TestHankel.test_negv12  ,    A.A1F0F$1	.rB   c                    \         P                  ! ^R4      p\         P                  ! ^R4      \         P                  ! ^R4      R,          ,           p\	        WR^ R7       R# r_   r8  r9  r  rP   N)r   r  r   r  r   )r=   hank1hankrls   &  r>   r  TestHankel.test_hankel16  sC    "%**Qr"WZZ"%5b%88F;rB   c                z    \        \        P                  ! R^4      \        P                  ! ^^4      ) R^ R7       R# r  )r   r   r  r<   s   &r>   test_negv1eTestHankel.test_negv1e;  0    ((Q/'2B2B1a2H1H$1	.rB   c                    \         P                  ! ^R4      p\         P                  ! ^R4      \        R4      ,          p\	        WR^ R7       R# )r_   r8  r  rP   Ny       )r   r  r  r   r   )r=   hank1ehankrles   &  r>   r  TestHankel.test_hankel1e?  s9    !!!B'//!B'D	1f1=rB   c                z    \        \        P                  ! R^4      \        P                  ! ^^4      ) R^ R7       R# r  )r   r   r  r<   s   &r>   
test_negv2TestHankel.test_negv2D  r  rB   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_hankel2H  sC    "%::a#gjj2&6r&99V!<rB   c                z    \        \        P                  ! R^4      \        P                  ! ^^4      ) R^ R7       R# r  )r   r   r  r<   s   &r>   
test_neg2eTestHankel.test_neg2eM  r  rB   c                ~    \         P                  ! ^R4      p\         P                  ! ^R4      p\        WR^ R7       R# )r_   r8  r  rP   N)r   r  r   )r=   hank2ehankrl2es   &  r>   test_hankl2eTestHankel.test_hankl2eQ  s2    !!!B'##Ab)vA>rB   c                    \         P                  ! ^ ^ 4      p\        P                  ! VP                  4      '       g   Q h\        P
                  ! VP                  4      '       g   Q hR# r9   )r   r  ra   r   r   isposinfr=  r=   r  s   & r>   test_hankel2_gh4517TestHankel.test_hankel2_gh4517V  sD    ooa#xx!!!!{{388$$$$rB   r  N)r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  s   @r>   r  r  0  s7     .<
.>
.=
.?
% %rB   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# )	TestHyperi]  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_h1vp^  C    \\!B++a#gkk!B&7&::a8rB   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_h2vpc  r  rB   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   rJ   r   r   rf  r1  N)g      rZ   r   r_   r  )g̷?g3|t-Ք?r   go?g{h?r   r  r  )r   r_   r   )r   gc?r  )
r   r   hyp0f1ra   r   r   r2  vstackassert_raisesr  )r=   r   r@  r  x2s   &    r>   test_hyp0f1TestHyper.test_hyp0f1h  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	3rB   c                R    \         P                  ! R R4      p\        VRR^ R7       R# )皙?r   rP   Ny      ?      ?y;EG?uM?)r   r  r   r  s   & r>   test_hyp0f1_gh5764TestHyper.test_hyp0f1_gh5764  s&     nnS,/H#!	-rB   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# )kr8  r:  g?r   rP   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  r[  r@  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:; 'rB   c                    \         P                  ! R RR4      p\         P                  ! R RR4      p\        WR^ R7       R# )r   r  rP  rP   Ng7B.g|:B.r   r  r   )r=   r  hyp2s   &  r>   test_hyp1f1_gh2957TestHyper.test_hyp1f1_gh2957  s2    ~~c38~~c38q9rB   c                T    \         P                  ! R RR4      p\        VRR^ R7       R# )r   r  g<`?rP  rP   Nir  )r=   hyps   & r>   test_hyp1f1_gh2282TestHyper.test_hyp1f1_gh2282  s#    nnS#u-1aHrB   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   rf  r  test #rQ   rK   err_msgN|Gz?r  r  g?g|Gzr[  rZ   r  )r   rg  r  r  gYi2?r  g433333?r  r  g      ?      @g      gUUUUUUտg  @gUUUUUU?g)r  r  r         $gEciH!@)rQ  r   r_   ffffff?gzG?)rT   r  r_   r  gy&1|)r  r   r_   r  g"nN%@?)rT   rk  r_   r  g!J)rp  |      %@r  gzS;)rp  r  g      %r  g[B.VP<)r   r   r	   r
   r   rh  r   r   r  r  r   )	r=   valuesr   r  r  r[  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 #4rB   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# )
r_   r8  g D?r   rP   r   rP  N)r:  r  333333?g)r  g	@r  g	)r   hyperur   r   r   r	   r  rh  )r=   val1r  r  r?  hypuhprls   &      r>   test_hyperuTestHyper.test_hyperu+  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9rB   c                P    \        \        P                  ! ^RR4      RR^ R7       R# )r_   r  g3333334@g(¨?rP  rP   N)r   r   r  r<   s   &r>   test_hyperu_gh2287TestHyper.test_hyperu_gh22878  s!    q#t46J$1	.rB   r  N)r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  s   @r>   r  r  ]  sA     9
9
34-r<h:
I"NH:. .rB   r  c                   8  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 t4RVR4 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 tGRWRD ltHRE tIRF tJRG tKRH tLRI tMRJ tNRK tORL tPRM tQRN tRRO tSRP tTRQ tURR tV]6Pn                  P                  RSRXRY.4      RT 4       tXRUtYV tZR3# )Z
TestBesseli=  c                x    \        \        P                  ! R 4      4      p\        V\        RR.4      R^ R7       R# )r   gbɃ?r  rP   NgΝJ ֿ)r   r   r  r   )r=   it0s   & r>   r  TestBessel.test_itj0y0>  s2    GNN2&'U$79M#NO#!	-rB   c                x    \        \        P                  ! R 4      4      p\        V\        RR.4      R^ R7       R# )r   gbqTtt?r  rP   Ng/]ooۿ)r   r   r  r   )r=   it2s   & r>   r  TestBessel.test_it2j0y0C  s2    GOOB'(U$9;O#PQ#!	-rB   c                r    \        \        P                  ! ^^4      \        P                  ! R^4      4       R# r   Nr  )r   r   r  r<   s   &r>   test_negv_ivTestBessel.test_negv_ivH  s!    WZZ!_gjjA&67rB   c                |    \         P                  ! R 4      p\         P                  ! ^ R 4      p\        WR^ R7       R# r8  r  rP   N)r   r  r  r   r=   ozozrs   &  r>   r  TestBessel.test_j0K  +    ZZ^jj2f15rB   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_j1P  r  rB   c                R    \         P                  ! ^R4      p\        VRR^ R7       R# )r_   r   ;x?r  rP   N)r   r  r   )r=   jnnrs   & r>   r  TestBessel.test_jnU  s!    zz!B2aHrB   c                z    \        \        P                  ! R^4      \        P                  ! ^^4      ) R^ R7       R# r  r   r   r   r<   s   &r>   test_negv_jvTestBessel.test_negv_jvY  s*    

2q)GJJq!,<+<7QRSrB   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   r8  g
Ye?)UUUUUU?:0yE>g˿+>)r  rO   g)%->)g@rO   g5c)!9)r  r'  g%,Ϳ)r  r   r   r   )r=   r  r   r  r   r>  ycs   &      r>   r  TestBessel.test_jv\  sS    /5662	 &f-LAyaA!BBQ&M .rB   c                z    \        \        P                  ! R^4      \        P                  ! ^^4      ) R^ R7       R# r  )r   r   r  r<   s   &r>   test_negv_jveTestBessel.test_negv_jveg  ,    B*W[[A->,>$1	.rB   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# )r_   r   r  r  rP   N?      ?)r   r  r   r   r   r  r=  )r=   jvexpjvexp1r?  jvexprs   &    r>   r  TestBessel.test_jvek  se    Ab!3&qIQu%Aac!&&k\!22V!<rB   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  rP   rI   rJ   -  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_zeross  s    q#q#U $3 4
 $!	- 	U $. /
 $!	-   Q'u &>  ? FK		L   Q'u &>  ? FK		LrB   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   rr   g;@rI   rJ   g8v@gׂMm@gxi@g	,@gи{>@i  r  Ni  i  i+  )gUDX@g!@g*HS@gz5 @g@2;@r  )r=   r   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rB   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      ,
          ^,          # ry   r  )rj   r   r  s   &&r>   jnp(TestBessel.test_jnjnp_zeros.<locals>.jnp  s'    qs1I1Q3q	)1,,rB   r   r  zInvalid t return for nt=N)r   r  r{   jnjnp_zerosrO  r   AssertionError)r=   r-  ntr?  rj   rf  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 + rB   c                    \         P                  ! ^^4      p\        V\        . RO4      R^ R7       \         P                  ! R^4      p\        \         P                  ! RV4      ^ RR7       R# )r_   r  rP     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=rB   c           
         \         P                  ! ^^4      p\        V\        . RO4      \        . RO4      \        . RO4      \        . RO4      3R^ R7       R# )r_   r+  rP   Nr  r:  )"@g+@g-9(1!@gȘ'@g>tA}-@)g0v@gjt@gH.?$@g}"O*@gGŧp0@)r   
jnyn_zerosr   r   )r=   jnzs   & r>   test_jnyn_zerosTestBessel.test_jnyn_zeros  sc      A&e %/ 0
 $ %/ 0
 $ %/ 0
 $ %/ 01( $!)	-rB   c                    \         P                  ! ^^4      p\         P                  ! ^^4      \         P                  ! ^^4      ,
          ^,          p\        WR^ R7       R# )rT   r  rP   N)r   r  r   r   )r=   jvprimjv0s   &  r>   test_jvpTestBessel.test_jvp  sA    Qq!zz!Awzz!A.1':rB   c                |    \         P                  ! R 4      p\         P                  ! ^ R 4      p\        WR^ R7       R# r  )r   r	  rH  r   )r=   ozkozkrs   &  r>   r
  TestBessel.test_k0  +    jjnzz!BvA6rB   c                |    \         P                  ! R 4      p\         P                  ! ^ R 4      p\        WR^ R7       R# r  )r   r  rL  r   )r=   ozkeozkers   &  r>   r  TestBessel.test_k0e  +    {{2Ab!&q9rB   c                |    \         P                  ! R 4      p\         P                  ! ^R 4      p\        WR^ R7       R# r  )r   r  rH  r   )r=   o1ko1krs   &  r>   r  TestBessel.test_k1  rM  rB   c                |    \         P                  ! R 4      p\         P                  ! ^R 4      p\        WR^ R7       R# r  )r   r  rL  r   )r=   o1keo1kers   &  r>   r  TestBessel.test_k1e  rR  rB   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   rr  rP   r  g       @g      H@N)ra   rg   r   jacobir   r[  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FrB   c                R    \         P                  ! ^ R4      p\        VRR^ R7       R# )r   r   _2?r  rP   N)r   r/  r   )r=   kn1s   & r>   r0  TestBessel.test_kn  s!    jj2/f1ErB   c                r    \        \        P                  ! R R4      \        P                  ! RR4      4       R# rf  r@  Nri  r   r   rH  r<   s   &r>   test_negv_kvTestBessel.test_negv_kv  s"    WZZS)7::dC+@ArB   c                R    \         P                  ! ^ R4      p\        VRR^ R7       R# )r   r   rg  r  rP   Nr   rH  r   )r=   kv0s   & r>   test_kv0TestBessel.test_kv0  s!    jj2/gAFrB   c                R    \         P                  ! ^R4      p\        VRR^ R7       R# )r_   r   gKދ@r  rP   Nrp  )r=   kv1s   & r>   test_kv1TestBessel.test_kv1  !    jj3.W1ErB   c                R    \         P                  ! ^R4      p\        VRR^ R7       R# )rT   r   g)lHH@r  rP   Nrp  )r=   kv2s   & r>   test_kv2TestBessel.test_kv2  rx  rB   c                H    \        \        P                  ! ^ ^4      R4       R# )    g.Ք"HN)r   r   r/  r<   s   &r>   test_kn_largeorderTestBessel.test_kn_largeorder  s    

2q)+ABrB   c                H    \        \        P                  ! ^ R4      ^ 4       R# )r   g =`XCNrl  r<   s   &r>   test_kv_largeargTestBessel.test_kv_largearg  s    WZZ4(!,rB   c                r    \        \        P                  ! R R4      \        P                  ! RR4      4       R# rk  )r   r   rL  r<   s   &r>   test_negv_kveTestBessel.test_negv_kve  s"    W[[c*GKKc,BCrB   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  rP   Nr  )r   rL  rH  r   r   )r=   kve1ru  r?  kve2rz  s   &     r>   rM  TestBessel.test_kve  sp    {{1R jj2s2w&Q7{{1Qjj1oc!f$Q7rB   c           	         R p\        \        P                  ! ^V4      ) \        P                  ! ^ V^R7      R^ R7       R# )r@  rj   r  rP   N)r   r   rH  kvp)r=   r?  s   & r>   test_kvp_v0n1TestBessel.test_kvp_v0n1&  s3    Aq))7;;q!q+A$1	.rB   c                    R pRp\         P                  ! V^,           V4      ) W,          \         P                  ! W4      ,          ,           p\         P                  ! W^R7      p\        W4R^ R7       R# rf  r@  r  r  rP   Nr   rH  r  r   r=   r  r?  xcr   s   &    r>   test_kvp_n1TestBessel.test_kvp_n1+  sS    jj1Q!#gjjo"55KKq!G!4rB   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_n23  sl    d1a4ik1a4'**Q/1GJJqs14Ea4GGKK"G!4rB   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_y0:  r  rB   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_y1?  s+    ZZ^jj2V!4rB   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# )rT   r2  r   r  rP   N)r   y0_zerosr   r   r  r  )r=   yoypozozpor  allvals   &      r>   test_y0_zerosTestBessel.test_y0_zerosD  s    !!!$!!!A.iCGGJJsC013W1MGJJq#.78#GRSTrB   c                |    \         P                  ! ^4      p\        V\        R.4      \        R.4      3R^ R7       R# )r_   r?  gѮBO?r+  rP   N)r   y1_zerosr   r   )r=   r  s   & r>   test_y1_zerosTestBessel.test_y1_zerosL  s6    a UG9-ugY/?@#!	-rB   c                    \         P                  ! ^^R7      p\        V\        R.4      \        R.4      3R^ R7       R# )r_   r  rG  rP   NyL
F%u?!rh?y;OnгY?)r   	y1p_zerosr   r   )r=   y1ps   & r>   test_y1p_zerosTestBessel.test_y1p_zerosQ  s9    !,e]O4e_<M6NO#!	-rB   c                    \         P                  ! ^^4      p\        V\        RR.4      R^ R7       \         P                  ! R^4      p\        V. R	ORR7       R# )
rR   g3@g(A&"@r+  rP   r9  r   rJ   N)g]E.+"|@gH(|@gff|}@g&b`~@gHO_~@)r   yn_zerosr   r   )r=   ans   & r>   test_yn_zerosTestBessel.test_yn_zerosV  sR    a"E7G"45FKc!$ 4
 #	%rB   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  rP   r   r  r9  r   N)r   	ynp_zerosr   r   r  r=   aos   & r>   test_ynp_zerosTestBessel.test_ynp_zerosa  s~    q#E:z":;&qQr!$B+QU;s1%C,ad;rB   c                z    \         P                  ! R ^4      p\        \         P                  ! R V4      ^ RR7       R# )r9  r  r  N)r   r  r   r  r  s   & r>   test_ynp_zeros_large_order%TestBessel.test_ynp_zeros_large_orderi  s+    s1%C,ae<rB   c                R    \         P                  ! ^R4      p\        VRR^ R7       R# r_   r   r  rP   N5,1
)r   r  r   )r=   yn2ns   & r>   r  TestBessel.test_ynm  s!    zz!B1QGrB   c                d    \         P                  ! R ^4      pV\        P                  ) 8X  g   Q hR# )rN   N)r:   r  ra   r   )r=   r  s   & r>   test_yn_gh_20405TestBessel.test_yn_gh_20405q  s&    99S!$BFF7"""rB   c                z    \        \        P                  ! R^4      \        P                  ! ^^4      ) R^ R7       R# r  )r   r   r  r<   s   &r>   test_negv_yvTestBessel.test_negv_yvv  s,    

2q)GJJq!,<+<$1	.rB   c                R    \         P                  ! ^R4      p\        VRR^ R7       R# r  )r   r  r   )r=   yv2s   & r>   r  TestBessel.test_yvz  s!    jj20vAFrB   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  rB   c                    \         P                  ! ^R4      p\        VRR^ R7       \         P                  ! ^R4      \	        R4      ,          p\         P                  ! ^R4      p\        W2R^ R7       R# )r_   r   r  rP   Nr  r  rZ   )r   r  r   r  r   )r=   yve2yve2ryve22s   &   r>   r  TestBessel.test_yve  sV    {{1R 1QG

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

1R 7::a#33S8{{1R q9rB   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   Nrg  )ir        4r  r   r  r   r   {G(@r  r  )ir  rZ   r   r       i@g     y@g     Ă@g@  i'  i)	itertoolsproductr   )r=   r  r?  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 # )Nr1  u <7~)r  rK   rQ   )	r  rz   ra   r  r   r  r   r=  r   )r=   r  f2rK   rQ   r  r  r?  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*.; 2rB   ppc64lezfails on ppc64ler5  c                h    V P                  \        P                  \        P                  R RR7       R# )rO   u5% r  N)r  r   r   r  r<   s   &r>   test_jv_cephes_vs_amos!TestBessel.test_jv_cephes_vs_amos  #     	!!'**gjju6!RrB   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  rB   c                p    R  pV P                  \        P                  \        P                  RRVR7       R# )c                     \        V 4      ^28  # )2   )r  )r  r?  s   &&r>   skipperDTestBessel.test_yv_cephes_vs_amos_only_small_orders.<locals>.skipper  s    q6B;rB   r  r  )rK   rQ   r  Nr  )r=   r  s   & r>   (test_yv_cephes_vs_amos_only_small_orders3TestBessel.test_yv_cephes_vs_amos_only_small_orders  s-    	!!'**gjju6'. 	" 	0rB   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)rV  r  g:0y5>r  r  N)ra   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   rV  r  r1  r  gYnNgH׊>rZ   )ra   rg   rs   r  r  r   r  r  r   r  r   r  r   argmaxr   )	r=   r  r  r   imskr  r  dcrk   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   rH  r/  r<   s   &r>   test_kv_cephes_vs_amos!TestBessel.test_kv_cephes_vs_amos  s@    !!'**gjjt&!Q!!'**gjjt&!QrB   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HrB   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%?r9  NrZ   gl)ܿrQ  g%E*2ir  y      ?        y      ?      ?yYD?`{1wy6x?B]#Ӯ?y ?b>?y.}9d?8kؿy      ?333333?r  y333333?      ?)r   r   r   r  r  rH  r  r   r  r  rL  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(=%==	
rB   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   rT   N:rT   rR   NNrZ   )r   r   r   r   r  r  rH  r  r  r  rL  rD   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KrB   c                    \        \        P                  ! R ^ 4      \        P                  8H  4       \        \        P
                  ! R ^ 4      \        P                  8H  4       R# )r  N)r   r   rH  ra   r   rL  r<   s   &r>   test_gh_7909TestBessel.test_gh_7909)  s:    

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

1c*,AB

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

4+->?rB   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   rZ   )r   r   r   r   r   rq  r   r   r   r  r  r   r  sumr=   r  r?  rj   rk   r]  r$  s   &&&&   r>   	iv_seriesTestBessel.iv_series5  s    1aL'qsUC1I! 44wqs1u7MM%(F!fjjlU6]...2S2Z]Buuw|rB   c                    R F9  pV P                  ^ V4      w  r#\        \        P                  ! V4      W#VR7       K;  	  R# r   rQ   r  N)r   r  r  )r"	  r   r   r  r=   r?  valuer$  s   &   r>   test_i0_seriesTestBessel.test_i0_series=  2    !A1-JEGJJqM5AF "rB   c                    R F9  pV P                  ^V4      w  r#\        \        P                  ! V4      W#VR7       K;  	  R# r%	  )r"	  r   r   r  r'	  s   &   r>   test_i1_seriesTestBessel.test_i1_seriesB  r+	  rB   c           	         R FB  pR F9  pV P                  W4      w  r4\        \        P                  ! W4      W4W3R7       K;  	  KD  	  R# )      4@r&	  N)r  r  r   r   r   r  r  )r   r  r  y             @)r"	  r   r   r  r=   r  r?  r(	  r$  s   &    r>   test_iv_seriesTestBessel.test_iv_seriesG  s=    7A,!^^A1


1 0%A6R - 8rB   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   rO   r8  g0oO?r   g!?grb?r  gpH?r[  gC~?r0	  ggo?r  r  r  N)r  r   r  r   r   r=   r  r   r   r  r  s   &     r>   r  TestBessel.test_i0M  s    *#,%%%%%& #6*IAvAaR(BBQ&M +rB   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_i0e[  +    {{2Ar"&q9rB   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   rO   gj|=r8  gȕ![1?r   g;͘?r   gRΜ?r[  g|?r0	  g}f?r  r  r  N)r  r   r  r   r   r5	  s   &     r>   r  TestBessel.test_i1`  s    *01%%%%& #6*IAvAaR(BBQ&M +rB   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_i1em  r;	  rB   c                x    \        \        P                  ! ^4      4      p\        V\        RR.4      R^ R7       R# )r   gїJB?@g*u?r+  rP   N)r   r   r  r   )r=   iti0s   & r>   r  TestBessel.test_iti0k0r  s2    W^^A&'e%79K$LM#!	-rB   c                f    \         P                  ! R 4      p\        V\        RR.4      R^ R7       R# )r8  gݳɄ|T?gVƥ
@r  rP   N)r   r  r   r   )r=   it2ks   & r>   r  TestBessel.test_it2i0k0w  s-    r"e%:<N$OP#!	-rB   c                r    \         P                  ! ^ R4      \        R4      ,          p\        VRR^ R7       R# )r   r8  gv M?r  rP   N皙)r   r  r   r   )r=   iv1s   & r>   r  TestBessel.test_iv|  s*    jj2s3x'0wQGrB   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9rB   c                    \         P                  ! ^ R4      p\         P                  ! ^ R4      \        R4      ,          p\	        WR^ R7       R# )r   r8  r  rP   NrI	  )r   r  r  r   r   )r=   ive1rJ	  s   &  r>   r  TestBessel.test_ive  s7    {{1R jj2s3x'a8rB   c                x    \        \        P                  ! ^^4      \        P                  ! ^ ^4      R^ R7       R# )r_   r  rP   N)r   r   r  ivpr<   s   &r>   	test_ivp0TestBessel.test_ivp0  s'    

1a('++a*;'PQRrB   c                    \         P                  ! ^ ^4      \         P                  ! ^^4      ,           ^,          p\         P                  ! ^^4      p\        W!R^ R7       R# )r   r  rP   N)r   r  rS	  r   rn  s   &  r>   test_ivpTestBessel.test_ivp  sA    ZZ!_wzz!A.1KK!73rB   zx, expectedc                J    \        \        P                  ! V4      VR R7       R# )r  rJ   N)r   r   r  r5  s   &&&r>   test_gh22705TestBessel.test_gh22705  s     	

1xe<rB   r  )r  r   N)   )  4&kCgeAKq:>)ꌠ9Y>)Fg/"ļ)[r  r  r  r  r  r  r  r  r  r  r
  r  r  r  r$  r)  r6  r<  rB  rG  r
  r  r  r  rd  r0  rm  rr  rv  r{  r  r  r  rM  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	  r"	  r)	  r-	  r2	  r  r  r  r  r  r  r  rM	  r  rT	  rW	  r  rZ	  r  r  r  s   @r>   r  r  =  s_    -
-
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
 [[]	&	'	
=	=rB   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   rr  rP   r  r  rg  r  NrZ   )r_   ru  rT   )rZ   r  ir[   )r_   iH   ir   )rZ   r   i8iX  ix   )r   laguerrer   r[  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	.rB   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   rP   r  NrZ   rQ  r  )ra   rg   r   r  r   r[  r   r   )r=   rk   rg	  rh	  ri	  rj	  r@  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>rB   r  N)r  r  r  r  rm	  rp	  r  r  r  s   @r>   rb	  rb	    s     . ? ?rB   rb	  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# )r_   r8  r  r  rP   NrQ  )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7rB   r  N)r  r  r  r  rx	  r  r  r  s   @r>   rs	  rs	    s     8 8rB   rs	  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# )rp  r  rP   Nr   rR  r   r   )r=   l1pl1prls   &  r>   rS  TestLog1p.test_log1p  sM    }}R '--"3W]]25FGR#b'3r7+a8rB   c                    \         P                  ! ^4      \         P                  ! R4      \         P                  ! R4      3p\        ^4      \        R4      \        R4      3p\        WR^ R7       R# )r_   r  r  r?  r@  r  rP   Nr}	  )r=   l1pml1pmrls   &  r>   test_log1pmoreTestLog1p.test_log1pmore  sM    a '--"4gmmC6HIa&S#c(+6:rB   r  N)r  r  r  r  rS  r	  r  r  r  s   @r>   r{	  r{	    s     9
; ;rB   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  r2  rj   rm  s   &r>   r  7ce_fourier_coefficient_using_integral.<locals>.<lambda>      '"5"5aA">q"ArB   r
   r  weightwvarepsrelr3   ra   r   rk   rj   rm  periodr[  s   &ff  r>   %ce_fourier_coefficient_using_integralr	    sy     EQJSCF 
64A	6!8$1RUU719V+;EKKLN 	NA 	1u	QHrB   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	  rB   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 HrB   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 )rR   NrO   rJ   r   r(   r{   r	  r   r  r=   rj   rm  Ark   r[  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 r_   NrO   rJ   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=   rj   rm  Brk   r[  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)rR   rg  )r  g      @)r   rg  )rV   rT   )rT   rg  )rp  rT   )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	3rB   r	  c                   ,   a  ] tR tRt o R tR tRtV tR# )TestFresnelIntegrali*  c                    R # r%  r  r<   s   &r>   r  $TestFresnelIntegral.test_modfresnelp,  r'  rB   c                    R # r%  r  r<   s   &r>   r  $TestFresnelIntegral.test_modfresnelm/  r'  rB   r  N)r  r  r  r  r  r  r  r  r  s   @r>   r	  r	  *  s      rB   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+  rP   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 $!		-rB   r  N)r  r  r  r  r	  r  r  r  s   @r>   r	  r	  3       - -rB   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# )	r_   r8  gQ?gx$(~?g(\?r  rP   Ngx$(~)r   pbdn_seqr   r   )r=   pbs   & r>   test_pbdn_seq#TestParabolicCylinder.test_pbdn_seq>  sM    a$UF$*$, -"G$*$, -. $!		-rB   c                    \         P                  ! ^R4       R\         P                  ! ^R4      ^ ,          ,          \         P                  ! ^ R4      ^ ,          ,
           R# )r_   r   Nr8  )r   r  r<   s   &r>   r  TestParabolicCylinder.test_pbdvF  s@    Qra#A&&a);A)>>>rB   c                    \         P                  ! ^R4      p\         P                  ! ^R4      p\        V\	        V^ ,          4      \	        V^,          4      3R^ R7       R# )r_   r8  r  rP   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OrB   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# )rp  r   r   r  r  gGz$@gq=
ףp4@gHQ9r   rJ   gQ@gkS a>Nr  g(\#)ra   r  r   r   r   ra  r   r  )r=   etar?  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WrB   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# 
rR   Nr  r  r   r  ru  rW   r  rY   )ra   r  r   r  r  r   r=   r   r	  rN  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$7rB   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	  )ra   r  r   r"  r  r   r	  s   &     r>   test_pbvv_gradient(TestParabolicCylinder.test_pbvv_gradientb  r	  rB   c                    \         P                  ! ^^4      w  r\        V\        P                  ! . RO4      4       \        V\        P                  ! . RO4      4       R# )rT   N)g:4@g1{н?g7,%n?)gX@g=<'?gʠ?)r   pbvv_seqr   ra   r   )r=   res1res2s   &  r>   test_pbvv_seq#TestParabolicCylinder.test_pbvv_seqk  sL    %%a+
bhh (< = 	> 	bhh (; < 	=rB   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= =rB   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# )rT   r  rP   gOV,@@r   NgX];)rT   r   g  8Br+  r  )g2}jg.M?g}2;ο)r   	polygammar   rY  ra   r  )r=   poly2poly3r   rj   r@  s   &     r>   test_polygammaTestPolygamma.test_polygammaw  s	   !!!Q'!!!Q'}7C|'B ))!Q/Q#!	- *))!/QO99hZ\*))!RYYs1u-=>#!	-))"))QCE*:A>#!	-rB   r  N)r  r  r  r  r	  r  r  r  s   @r>   r	  r	  u  s     - -rB   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+  rP   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 $!		-rB   r  N)r  r  r  r  r	  r  r  r  s   @r>   r	  r	    r	  rB   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# )r_   r  rP   Ngox)r   rY  r   )r=   pss   & r>   rZ  TestPsi.test_psi  s    [[^0vAFrB   r  N)r  r  r  r  rZ  r  r  r  s   @r>   r	  r	    s     G GrB   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# )rx  r  r+  rP   Nr   r]  r   r   )r=   rads   & r>   r^  TestRadian.test_radian  s&    nnRA&RV&q9rB   c                x    \         P                  ! ^Z^^<4      p\        V\        ^,          R,           R^ R7       R# )rx  gC?r+  rP   Nr	  )r=   rad1s   & r>   test_radianmoreTestRadian.test_radianmore  s,    ~~b!R(bd%::aPrB   r  N)r  r  r  r  r^  r	  r  r  r  s   @r>   r	  r	    s     :Q QrB   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# rT   r   T)
derivativer  rP   N)ra   emptyr{   r   spherical_jnr   
riccati_jn)r=   r  r   Srj   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IrB   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 
  )ra   r
  r{   r   spherical_ynr   
riccati_yn)r=   r  r   Crj   r>  yps   &      r>   test_riccati_ynTestRiccati.test_riccati_yn  r	
  rB   r  N)r  r  r  r  r
  r
  r  r  r  s   @r>   r	  r	    s     JJ JrB   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  rJ   ii)g%~B7gpNf7g8B8)gJR{?g6]=gXes>)g n@?@gWH;@glH.=@)g9lchPR@gS@gzsevB@)numpyrg   default_rnguniformstackr&   r   )r=   ra   rn   rj   r  r  a3a4r  rn  r  s   &          r>   test_softplusTestSoftplus.test_softplus  s     	ii##M2[[s[+[[bq[)[[T[*[[![,HHbb%& TQKHJ
 qku-rB   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)ra   r   onescopyr&   r   )r=   r   r
  rn  r
  s   &    r>   test_softplus_with_kwargs&TestSoftplus.test_softplus_with_kwargs  sU    IIaL1ggajhhjA5)ah'
!rB   r  N)r  r  r  r  r
  r!
  r  r  r  s   @r>   r
  r
    s     .:" "rB   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)rp  rp  rp  r;  )r  maprz   r   rj  r   )r=   rndrndrls   &  r>   rk  TestRound.test_round  sX    3sW]]40$]]40$]]40$]]402 3 4 3%rB   r  N)r  r  r  r  rk  r  r  r  s   @r>   r$
  r$
    s     & &rB   r$
  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  rZ   )	r   r   rh  r  r  r   r   r  r 	  r!	  s   &&&&   r>   _seriesTestStruve._series  s    1aL!Gr!tqs1uQw''ae(<<W]]13s7=SS!fjjlU6]...2uuw|rB   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  (\rh  rZ   r   r_   re  r     )r_   rp        r1  )r-
  r   r   r  r1	  s   &    r>   test_vs_seriesTestStruve.test_vs_series  sG    BA(!\\!/
q 4e!#NQRPVV ) CrB   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  rJ   g< j?r  g?r   gzz?r  Nr0
  gQ ri  g       iir  gffffffrZ   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1rB   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	9rB   r  N)d   )
r  r  r  r  r-
  r4
  r7
  r:
  r  r  r  s   @r>   r+
  r+
    s     W29 9rB   r+
  c                  N    \        \        P                  ! R ^4      RR^ R7       R# )r  gdX	
?r   rP   N)r   r   r   r  rB   r>   test_chi2_smalldfr>
    s    GMM#q)+<6PQRrB   c                  d    \        \        P                  ! R \        P                  4      R4       R# )r  r   N)r   r   r   ra   r   r  rB   r>   test_ch2_infr@
  !  s    s266*C0rB   r   r   c                     \         P                  ! \        P                  ! \         P                  V 4      4      '       g   Q hR # r%  ra   r   r   r   r-  rJ  s   &r>   test_chi2_v_nanrC
  %  s&    88GMM"&&!,----rB   r  c                     \         P                  ! \        P                  ! V \         P                  4      4      '       g   Q hR # r%  rB
  r  s   &r>   test_chi2_x_nanrF
  *  s&    88GMM!RVV,----rB   c                     \         P                  ! \        P                  ! \         P                  V 4      4      '       g   Q hR # r%  ra   r   r   r   r-  rJ  s   &r>   test_chi2c_v_nanrI
  /  s&    88GNN2661-....rB   c                     \         P                  ! \        P                  ! V \         P                  4      4      '       g   Q hR # r%  rH
  rE
  s   &r>   test_chi2c_x_nanrK
  4  s&    88GNN1bff-....rB   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  rX   Ng{Gz)ra   r   r   r   r   rm  r  r  r   r  r   r   r~  	gammainccr   r  )r  r   rn  r  s       r>   test_chi2_edgecases_gh20972rN
  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<rB   c                  N    \        \        P                  ! R ^4      RR^ R7       R# r  r   rP   Ngyj_?)r   r   r   r  rB   r>   test_chi2c_smalldfrQ
  N  s    GNN3*,Aa)rB   c                  N    \        \        P                  ! R R4      ^R^ R7       R# rP
  )r   r   r   r  rB   r>   test_chi2_inv_smalldfrS
  S  s    GNN3(=>a)rB   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# )rI   gDSYC?rJ   gQ_?g?@g>;,
i}@g=O?gXs*@g   V4oAgO1eAr^	  gEg^ 9^;gd-?gP.5_gsTNNeg6dgu?j/ g]XC}KdgѧRg"!x{{ r   g][#!Rr  gٍS1gN_ N)r_   r   r   rZ   rQ  )r   r   agmra   r   r   r  r  r   r-  r   )rK   agm13agm15agm35agm12fis         r>   test_agm_simpler[
  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3rB   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)rV  r6  r:  g?gffffff@N)rW  rX  rY  rZ  r   r   expnr  r  r  r7  r/  r  r  r  r  rB   r>   test_legacyr^
    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       # r9   )	threadingLock)r`
  s    r>   errstate_lockrb
    s    >>rB   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  )rb
  s   &r>   test_error_raisingrd
    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rV  )invalidN)ra   r  r   r   r   r>  s   &&r>   xfunctest_xlogy.<locals>.xfunc  sO    [[**Avbhhqkk +* {	 +***   #A7A7A77B	r  rI   r  Nr   r   r   r  )r   r9  )r_   r9  r]   r^   )
ra   r   r-  r   r|   r   r   r1   r   xlogy)rj
  z1z2w1w2s        r>   
test_xlogyrt
    s    # 
UQK!RVVjA	OB	rGW%%	&B	e	RWbg	.BgmmR%eD	e	RWbg	.BgmmR%eDrB   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rg
  )ra   r  r   rR  ri
  s   &&r>   rj
  test_xlog1py.<locals>.xfunc  sO    [[**Avbhhqkk +* 288A;	 +***rl
  r  rI   r  Nrm
  rn
  )r_   gKH9r]   r^   )	ra   r   r-  r   r|   r   r1   r   xlog1py)rj
  rp
  rr
  s      r>   test_xlog1pyry
    si    ' 
UQK!RVVj!(-
/B	e	RWbg	.BgoorEFrB   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  )ra   r   r   ro
  rJ  s   &r>   rj
  test_entr.<locals>.xfunc  s&    q5FF7NMM!'''rB   r   r   r  otypesrI   r  NrZ   )ra   r   r  r  r  r   r|   r   r   r1   r   entr)rj
  r  signsr  sgnr  r?  r  s           r>   	test_entrr
    s    (
 c266"FGE
C##E2

37 3
E"A
UBJJ<03AgllAu5ArB   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  )ra   r   r  r   ro
  ri
  s   &&r>   rj
  test_kl_div.<locals>.xfunc  so    q5AEa1fa66M[[^^r{{1~~66M!VH==aC(1,q00rB   r  r}
  rI   r  Nr   r   r   rZ   r]   r^   )r  r  r  ra   r   r|   r   r   r1   r   kl_div
rj
  r  r
  r  sgnavasgnbvbr?  r  s
             r>   test_kl_divr
    s    
1 FGE
C'//uM$

DGTW%& N
E"A
UBJJ<033@AgnnaUCrB   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   ro
  ra   r   ri
  s   &&r>   rj
  test_rel_entr.<locals>.xfunc  s;    q5QU==aC((!VQ66MrB   r  r}
  rI   r  Nr
  rZ   r]   r^   )r  r  r  ra   r   r|   r   r   r1   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ErB   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?rI   r  N))r
  gĬB?)gtK&?gCtK&?)g>уO'?gvуO'?)ggQW"g    G=r]   r^   )ra   r   r   r   r
  inputsr@  r   r>  s       r>    test_rel_entr_gh_20710_near_zeror
  
  sI    XX  FH
 	tAtAG$$Q*H5qIrB   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# )	rV  r  rI   r  N))rR   X )r  gZbti)r
  r]	  )gMG.@g)Z?g wa)r]   r^   )r   seterrra   r   r   r
  r
  s       r>   test_rel_entr_gh_20710_overflowr
    sU    NNx XX  FH
 	tAtAG$$Q*H5qIrB   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# )r_   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   )ra   r   r  squaredeltar]  s   &&r>   rj
  test_huber.<locals>.xfunc8  sQ    1966MVVAY1%%BFF1Ie344rB   r}
  rI   r  NrZ   rf  r]   r^   )r   r   huberra   r   r   r
  rg   randnr   r   r1   rj
  r?  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BrB   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  )ra   r   r   r
  s   &&r>   rj
   test_pseudo_huber.<locals>.xfuncF  sB    1966M!8rwwqAGa<'781<==rB   r   r}
  rI   r  Nr]   r^   )
ra   r   rg   r
  tolistr   r   r1   r   pseudo_huberr
  s      r>   test_pseudo_huberr
  E  sz    > 	Q'..0QHsAh3GGHA
UBJJ<033@Ag**Au5IrB   c                  X    R p Rp\         P                  ! W4      pRp\        W#RR7       R# )r   gC]r2<gs.-De8rI   rJ   N)r   r
  r   )r
  r]  r>  r@  s       r>   test_pseudo_huber_small_rr
  S  s-    EAU&A &HAe,rB   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  rM   N)r  warnsrZ  r'   r(   r  rB   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, kwargsTFrK   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# )r_   r  N)r{   r  tabler  r)   )r=   is_exactcompkwargsrj   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 +rB   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&ArB   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# )r_   r  NrZ   r)   r
  s   &&&&r>   test_negative_integer#TestStirling2.test_negative_integer  sL     	Yr2X.<V<Yr1H-q;F;Yq"H-q;F;rB   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# )rp  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%-/ 	rB   rI   c                H    . ROp. ROp. ROpV! \        WVVR7      V3/ VB  R# )r   r  N)r   r_   r   r       r$  )rZ   r   r   r   r  rp  rp  )rQ  r   rT   r   r   rV   r   r
  r=   r
  r
  r
  r
  rj   rk   s   &&&&   r>   test_mixed_valuesTestStirling2.test_mixed_values  s)     .$"Yq8,c<V<rB   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)ra   r   r   r)   r  r  )r=   rj   Krk   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
  rj   rk   s   &   r>   test_big_numbersTestStirling2.test_big_numbers  s    ~'89:HG9Q6<<<<<:< =HH9Q6<<<<rB   r  r  rf  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)rR   r_   NNr  r  NrR   rR   rR   rR   r_   rT   r   rR   )r   r
  r  r  r   r
  r   r)   )r=   r
  r
  rj   rk   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\        P                  R7      p\        . RO\        P                  R7      pV! \	        WVRR7      V3/ VB  R# )rR   r
  r  Fr  Nr
  r
  )r   r
  ra   ulongr)   r
  s   &&&&   r>   #test_numpy_array_unsigned_int_dtype1TestStirling2.test_numpy_array_unsigned_int_dtype  sQ     djjmB'(L1L1Yq5)39&9rB   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 )r_   r  FN)r_   r  r   rp  )r_   rV   r[   r_   )r   r   r   r   r
  r
  )r   r_   rT   r   rR   r   )r   r_   rV   r[   r_   r   )r   r)   r{   )r=   r
  r
  r
  r
  rj   rk   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)   ra   r  r  )r=   r   rj   	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	 rB   r  )r   r_   r_   )r   r_   r   r_   )r   r_   rV   r[   r_   )r   r_   r  r   rp  r_   )r   r_      rx  A   r  r_   )r   r_   ?   r  i^     r3
  r_   )	r   r_      i  i  r
  i
     r_   )
r   r_      i  iZ  i'  iV
  i  $   r_   )r   r_   r   r
  i9  i  i+Y  r
  i  r   r_   y      @      ?)rg  r   2N)r  r  r  r  r
  r  r  r  r   r   r
  r
  r
  r
  r
  r
  r
  ra   r-  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 6rB   r
  r%  r   rw  )r  r  r  r  r  rW  r
  ra   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._array_apir*   r+   r,   scipy.special._basicr-   r.   r/   scipy.special._testutilsr0   r1   r2   scipy.integrater3   r  architecturer0  r  rl  r7   r  r  r#  r)  r  r  r  r  r  r]  rm  r  r  r  r  r)  rP  rT  rA  r_  r  r  r  rb	  rs	  r{	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r
  r$
  r+
  r>
  r@
  r  r  r-  rC
  rF
  rI
  rK
  rN
  rQ
  rS
  r[
  r^
  fixturerb
  rd
  rt
  ry
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r  rB   r>   <module>r     s9  "     
         *L L  & & 2 2 E E " H H S S ! !    LLGq!W, XX 
xx d9 d9N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]. ].@\	= \	=~? ?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 [6rB   