
    (ph                      l   S SK r S SKrS SKrS SKrS SKJr  S SKJr  S SK	J
s  Jr  S SKJrJr  S SKJrJrJrJrJr  S SKJrJr  S SKJrJrJr  S SKJr  S S	K J!r!  SS
 jr"SS jr#S r$\\RJ                  RM                  S5      \RJ                  RO                  SSS9\RJ                  RO                  SSS9 " S S5      5       5       5       5       r(\\RJ                  RM                  S5      \RJ                  RO                  SSS9\RJ                  RO                  SSS9 " S S5      5       5       5       5       r)g)    N)assert_allclose)array_api_compatible)xp_assert_closexp_assert_equal)array_namespacexp_sizexp_ravelxp_copyis_numpy)specialstats)quad_vecnsumtanhsinh)_pair_cache)_gen_harmonic_gt1c                 ~    Uc  [        U 5      OUnSSUR                  -  S-  -  UR                  U S-  * S-  5      -  $ )N            ?)r   piexpxxps     V/var/www/html/venv/lib/python3.13/site-packages/scipy/integrate/tests/test_tanhsinh.pynorm_pdfr      s@    !z	rBag^bffadU1Wo--    c                     Uc  [        U 5      OUnS[        R                  " SUR                  -  5      -  U S-  S-  -
  $ )Ng      r   )r   mathlogr   r   s     r   norm_logpdfr"      s;    !z	rB255!!AqDF**r   c                     S nU$ )Nc                    ^  U 4S jnU$ )Nc                    > U S   R                   nU  Vs/ s H  n[        U5      PM     n n/ n[        [        R                  " U5      5       H+  nU  Vs/ s H  o"U   PM	     nnUR                  T" U6 5        M-     U$ s  snf s  snf )Nr   )shaper	   ranger    prodappend)
arg_arraysr&   	arg_arrayresiarg_scalarsfs         r   wrapped._vectorize.<locals>.decorator.<locals>.wrapped    s    qM''E?IJz)(9-zJJC499U+,=GHZ	|ZH

1k?+ - J K Is   A>B )r/   r0   s   ` r   	decorator_vectorize.<locals>.decorator   s    	 r   r2   )r   r3   s     r   
_vectorizer5      s    
 r   skip_xp_backendsarray_api_strictz)Currently uses fancy indexing assignment.reasonz	jax.numpyz*JAX arrays do not support item assignment.c                   r
   \ rS rSrS rS\l        S\l        S r\R                  S-
  S\R                  " S5      -  -   S-  \l        S\l        S r\R                  " \R                  S-  5      S-
  S-  \l        \R                  S-  \l        S	 rS
\R                  S-  -  S-  \l        S\l        S rS\l        S\l        S r\R                  S-  \l        S\l        S rS\R"                  " \R                  5      -  \R&                  " S5      -  \R&                  " S5      -  \l        S\l        S rS\l        S\l        S r\R                  * \R                  " S5      -  S-  \l        \R                  S-  \l        S r\R                  \R"                  " S5      -  S-  \l        \R                  S-  \l        S r\R                  S-  \l        \R0                  \l        S r\R"                  " \R                  5      \l        \R0                  \l        S r\R"                  " \R                  S-  5      \l        \R0                  \l        S rS\l        \R0                  \l        S r\R                  S-  \l        \R0                  \l        SRS jrS r\R@                  RC                  SS\"R0                  4S/\"R0                  * S4S/\"R0                  * \"R0                  4S /\"R0                  \"R0                  * 4S!/S"\#RH                  RK                  S!5      \#RH                  RK                  S 5      -
  //5      S# 5       r&\R@                  RO                  S$S%S&9\R@                  RC                  S'\(" SS(5      5      S) 5       5       r)\R@                  RO                  S$S*S&9\R@                  RC                  S+SS,S-/45      \R@                  RC                  S.\#RT                  RV                  5      S/ 5       5       5       r,\R@                  RC                  S0\-" 5       S1S2S3/5      S4 5       r.S5 r/S6 r0S7 r1S8 r2S9 r3\R@                  RO                  S:S;S<9\R@                  RC                  S=S>S?/5      S@ 5       5       r4SA r5\R@                  RC                  SB\(" S5      5      SC 5       r6SD r7\R@                  RC                  SESF\"R0                  * S/SGSG/445      \R@                  RC                  SHSI5      SJ 5       5       r8SK r9SL r:SM r;\R@                  RO                  S$SN9SO 5       r<SP r=SQr>g)STestTanhSinh.   c                 :    U[         R                  " SU-   5      -  $ Nr   npr!   selfts     r   f1TestTanhSinh.f19   s    266!a%=  r         ?r   c                 :    US-  [         R                  " U5      -  $ Nr   )r@   arctanrA   s     r   f2TestTanhSinh.f2?   s    Av		!$$r   r      c                 \    [         R                  " U5      [         R                  " U5      -  $ Nr@   r   cosrA   s     r   f3TestTanhSinh.f3E   s    vvay266!9$$r   c                 ~    [         R                  " SUS-  -   5      n[         R                  " U5      SUS-  -   U-  -  $ )Nr   r   )r@   sqrtrI   )rB   rC   as      r   f4TestTanhSinh.f4K   s8    GGAQJyy|AF
a/00r      `   c                 \    [         R                  " U5      [         R                  " U5      -  $ rN   )r@   rT   r!   rA   s     r   f5TestTanhSinh.f5R   s    wwqzBFF1I%%r   gqqܿc                 :    [         R                  " SUS-  -
  5      $ Nr   r   r@   rT   rA   s     r   f6TestTanhSinh.f6X   s    wwq16z""r      c                 h    [         R                  " U5      [         R                  " SUS-  -
  5      -  $ r^   r_   rA   s     r   f7TestTanhSinh.f7^   s&    wwqzBGGAQJ///r   g      ?c                 4    [         R                  " U5      S-  $ rH   r?   rA   s     r   f8TestTanhSinh.f8d   s    vvayA~r   c                 V    [         R                  " [         R                  " U5      5      $ rN   )r@   r!   rP   rA   s     r   f9TestTanhSinh.f9j   s    vvbffQi  r   c                 V    [         R                  " [         R                  " U5      5      $ rN   )r@   rT   tanrA   s     r   f10TestTanhSinh.f10p   s    wwrvvay!!r   c                     SSUS-  -   -  $ r^   r2   rA   s     r   f11TestTanhSinh.f11v   s    AQJr   c                 ^    [         R                  " U* 5      [         R                  " U5      -  $ rN   )r@   r   rT   rA   s     r   f12TestTanhSinh.f12|   s    vvqbzBGGAJ&&r   c                 <    [         R                  " US-  * S-  5      $ rH   )r@   r   rA   s     r   f13TestTanhSinh.f13   s    vvqAvgk""r   c                 ^    [         R                  " U* 5      [         R                  " U5      -  $ rN   rO   rA   s     r   f14TestTanhSinh.f14   s    vvqbzBFF1I%%r   r   c                 4    [         R                  " U5      U-  $ rN   )r@   sinrA   s     r   f15TestTanhSinh.f15   s    vvay1}r   Nc                     Uc  [        X5      OUn[        X-
  5      nU(       d  U$ [        R                  " SS9   UR	                  U5      sS S S 5        $ ! , (       d  f       g = f)Nignoredivide)r   absr@   errstatelog10)rB   r,   refr!   r   errs         r   errorTestTanhSinh.error   sH    *,*_S&"#)nJ[[)88C= *))s   A
A$c           	      l   U R                   nUR                  S5      nUR                  UR                  5      nSn[        R                  " [
        US9   [        SX45        S S S 5        Sn[        R                  " [
        US9   [        X#USS9  S S S 5        Sn[        R                  " [
        US9   [        X!R                  S	5      U5        S S S 5        [        R                  " [
        US9   [        X#US
S9  S S S 5        [        R                  " [
        US9   [        X#U[        S9  S S S 5        Sn[        R                  " [
        US9   [        X#USS9  S S S 5        [        R                  " [
        US9   [        X#XAR                  S9  S S S 5        Sn[        R                  " [
        US9   [        X#XAR                  SS9  S S S 5        [        R                  " [
        US9   [        X#XAR                  SS9  S S S 5        Sn[        R                  " [
        US9   [        X#U[        5       S9  S S S 5        [        R                  " [
        US9   [        X#USS9  S S S 5        Sn[        R                  " [
        US9   [        X#USS9  S S S 5        [        R                  " [
        US9   [        X#USS9  S S S 5        Sn[        R                  " [
        US9   [        X#USS9  S S S 5        Sn[        R                  " [
        US9   [        X#USS9  S S S 5        g ! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GNj= f! , (       d  f       GNK= f! , (       d  f       GN.= f! , (       d  f       GN
= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN~= f! , (       d  f       GNa= f! , (       d  f       GNF= f! , (       d  f       GN)= f! , (       d  f       g = f)Nr   `f` must be callable.match*   ...must be True or False.r   r!   ...must be real numbers.      ?      ?ekkiatolrtol#...must be non-negative and finite. ...may not be positive infinity.T)r   r!   )r   r!   z...must be integers.maxlevelzmigratory coconut)minlevelz...must be non-negative.preserve_shapez...must be callable.
elderberry)callback)	rD   asarraybpytestraises
ValueError	_tanhsinhinfobject)rB   r   r/   zerof_bmessages         r   test_input_validation"TestTanhSinh.test_input_validation   s   GGzz!}jjo)]]:W5b$$ 6 .]]:W5as* 6 -]]:W5aD)3/ 6]]:W5as0 6]]:W5as0 6 8]]:W5as, 6]]:W5as0 6 5]]:W5asT: 6]]:W5asT: 6 )]]:W5asVX6 6 ]]:W5as-@A 6 -]]:W5asR0 6 ]]:W5asR0 6 .]]:W5as15 6 )]]:W5as\: 65a 65 65 655555 6555 6555 65 65 65 65 65 65s   L)L;3M0MM1N=N5N',N9%OO	O/6P%PP%)
L8;
M

M
M.1
N 
N
N$'
N69
O
O
O,/
O>
P
P"%
P3zlimits, refr         ?      )r   r   c                    U Vs/ s H  oCR                  U5      PM     nnUR                  [        US   5      5      R                  nUR                  X%S9n[        [        /UQ76 n[        UR                  U5        [        [        /UQ7SS06n[        UR                  UR                  5      USS9  [        U6 nUS:  a-  UR                  UR                  R                  S5      (       d/   eUR                  UR                  R                  S5      (       d   e[        UR                  UR                  5      UR                  S	SS
9  g s  snf )Nr   dtyper!   TF)check_dtypereal floatingzcomplex floating缉ؗҜ<)r   r   )r   floatr   r   r   r   integralr"   r   r   isdtyper   )	rB   limitsr   r   limitr   r,   logresxp_tests	            r   test_integral_transforms%TestTanhSinh.test_integral_transforms   s    288**U#8

5+,22jjj**6*c*;::T:v/%H!6*KNQR7 5 5GG 	Q P__V__%:%:<NOO	Q P 	v||,ciieQVW 9s   ETz!Cumbersome to convert everything.np_onlyr9   f_number   c                    [        U SU 35      nSn[        USUR                  US9n[        UR                  UR
                  US9  US;  aM  [        U R                  UR                  UR
                  5      UR                  -  5      nXeR                  :  d   eUS;   a  g UR                  (       d   eUR                  S:X  d   eg )Nr/   g:0yU>r   r   >      >      
   rL   )
getattrr   r   r   r   r   r   r   successstatus)rB   r   r   r/   r   r,   
true_errors          r   
test_basicTestTanhSinh.test_basic   s     DAhZ.)1acc-aee$74TZZaee<S\\IJJ		))){"{{{zzQr   z#Distributions aren't xp-compatible.r   g?g333333?casec                 f   Uu  pEUS;   a  [         R                  " S5        US;   a;  [        [        R                  " SS5      5      (       d  [         R                  " S5        [        [        U5      " U6 nUR                  U5      n[        UR                  /UQ76 n[        UR                  U5        g )N>   kstwodgammalaplacedweibullz0tanh-sinh is not great for non-smooth integrands>   levy_stablestudentized_rangeSCIPY_XSLOWr   z%This case passes, but it is too slow.)r   skipintosgetenvr   r   intervalr   pdfr   r   )	rB   r   r   r   distnameparamsdistr   r,   s	            r   test_accuracyTestTanhSinh.test_accuracy  s    
  AAKKJK<<BIImQ788KK?@uh'0MM#%1%c*r   r&   rL      rb   r   r   r   c           
         ^^ [         R                  R                  S5      nUR                  UR                  U5      5      nUR                  UR                  U5      5      nUR                  UR                  U5      5      n[        R
                  " U5      mUU4S jmSTl        STl        [        U5      S 5       n[        TXEU4S9nU" XEU5      n	[        U5      n
/ SQnU Hg  nU
R                  U	 Vs/ s H  n[        X5      PM     sn5      n[        [        X5      5      n[        XSS9  [        X5      R                  U:X  a  Mg   e   U
R!                  UR"                  R$                  S	5      (       d   eU
R!                  UR&                  R$                  S
5      (       d   eU
R!                  UR(                  R$                  S
5      (       d   eU
R!                  UR*                  R$                  S
5      (       d   eUR-                  UR(                  5      TR                  :X  d   eUR-                  UR*                  5      S:  d   eUR-                  UR*                  5      TR                  :X  d   eg s  snf )N   F*BG c                    > T=R                   S-  sl         T=R                  [        U 5      T:X  d  U R                  S::  a  SOU R                  S   -  sl        X-  $ Nr   r   )ncallfevalr   ndimr&   r   pr/   ns     r   r/   *TestTanhSinh.test_vectorization.<locals>.f   sC    GGqLGGGWQZ1_!q!''"+MG4Kr   r   c                 $   ^ [        U4S jX5      $ )Nc                    > U T-  $ rN   r2   r   r   s    r   <lambda>KTestTanhSinh.test_vectorization.<locals>._tanhsinh_single.<locals>.<lambda>)  s	    q!tr   )r   )rU   r   r   s     `r   _tanhsinh_single9TestTanhSinh.test_vectorization.<locals>._tanhsinh_single'  s    ^Q22r   argsr   r   r   r   nfevr   V瞯<r   boolr   r   )r@   randomdefault_rngr   r    r(   r   r   r5   r   r   stackr   r	   r   r&   r   r   r   r   r   r   max)rB   r&   r   rngrU   r   r   r   r,   refsr   attrsattrr   ref_attrres_attrr/   r   s                   @@r   test_vectorizationTestTanhSinh.test_vectorization  s    ii##$89JJszz%()JJszz%()JJszz%()IIe	 	B	3 
	3 1qd+a(!!$ND}}D%IDSgc&8D%IJH 23HHU;3%++u444	  s{{00&9999szz//<<<<sxx~~z::::s||11:>>>>vvchh177***vvcll#q(((vvcll#qww... &Js   6I;
c                 T  ^^ UU4S jmSTl         TR                  STR                  S94nTR                  TR                  /S-  5      nTR                  TR                  * /S-  5      n[        TX4SUS9nTR                  / SQTR                  S9n[        UR                  U5        g )Nc                   > T=R                   S-  sl         U4S jU4S jU4S j/n/ n[        [        U5      5       H9  nXS4   n[        [	        U5      U   5      nUR                  X&   " U5      5        M;     TR                  U5      $ )Nr   c                 .   > TR                  U S-  * 5      $ rH   r   r   s    r   r   4TestTanhSinh.test_flags.<locals>.f.<locals>.<lambda>D  s    rvvq!te}r   c                 &   > TR                  U 5      $ rN   r  r   s    r   r   r  E  s    rvvayr   c                 <   > TR                  U TR                  5      $ rN   )	full_likenanr   s    r   r   r  F  s    r||Arvv6r   .)nitr'   r   r   r	   r)   r  )	xsjsfuncsr,   r-   r   jr/   r   s	          r   r/   "TestTanhSinh.test_flags.<locals>.fB  sy    EEQJE,(68E C72;'#vJQ(

58A;' ( 88C= r   r   r   r   rX   )r   r   r   )	r  arangeint64r   r   r   int32r   r   )rB   r   r   rU   r   r,   	ref_flagsr/   s    `     @r   
test_flagsTestTanhSinh.test_flags?  s    
	! 		!288	,.JJxz"JJy1}%1!$7JJ{"((J;	

I.r   c                   ^ U4S jnTR                  TR                  /S-  5      nTR                  TR                  * /S-  5      n[        X#USSS9nTR                  / SQTR                  S9n[	        UR
                  U5        g )Nc                    > TR                  U S   S-  * 5      TR                  U S   5      TR                  U S   TR                  5      /nTR                  U5      $ )Nr   r   r   )r   r  r  r  )r   r,   r   s     r   r/   1TestTanhSinh.test_flags_preserve_shape.<locals>.fX  sU    661Q47(#66!A$<<<!bff-/C 88C= r   r   rX   T)r   r   r  r   )r   r   r   r  r   r   )rB   r   r/   rU   r   r,   r   s    `     r   test_flags_preserve_shape&TestTanhSinh.test_flags_preserve_shapeV  sp    	! JJx!|$JJy1}%a!DAJJ{"((J;	

I.r   c                   ^^ S m[        U4S jSS5      n[        UU4S jTR                  S5      TR                  S5      SS9nTR                  S5      R                  n[	        UR
                  TR                  US   US	95        g )
Nc                     UR                  UR                  XR                  SU -  5      /5      UR                  UR                  SU -  5      XR                  SU -  5      -  /5      /5      $ )Nr      d   )r  r}   rP   r   s     r   r/   +TestTanhSinh.test_preserve_shape.<locals>.ff  sa    88RXXq&&a.&9:XXrvvb1f~q66#'?7J&KLN O Or   c                    > T" U [         5      $ rN   )r@   r   r/   s    r   r   2TestTanhSinh.test_preserve_shape.<locals>.<lambda>j  s    1br   r   r   c                    > T" U T5      $ rN   r2   )r   r/   r   s    r   r   r/  k  s    !Ar(r   Tr           r   )r   r   r   r   r   r   )rB   r   r   r,   r   r/   s    `   @r   test_preserve_shape TestTanhSinh.test_preserve_shaped  sp    	O )1a0*BJJqM2::a='+-

2$$bjjQuj&EFr   c           	      $  ^ TR                   nU4S jnTR                  SUS9nTR                  SUS9TR                  SUS9peSn[        S5       H=  n[        X5USUS9n	U R	                  U	R
                  US	TS
9n
XS-  :  d  U
S:  d   eU
nM?     g )Nc                 2   > U TR                  SU -   5      -  $ r>   r   )rC   r   s    r   r/   (TestTanhSinh.test_convergence.<locals>.fs  s    rvva!e}$$r   rF   r   r1  r   r   rb   r   r   T)r!   r   r   g      /)float64r   r'   r   r   r   )rB   r   r   r/   r   rU   r   last_logerrr-   r,   logerrs    `         r   test_convergenceTestTanhSinh.test_convergencep  s    

	%jjUj+zz"Ez*BJJrJ,G1qAA!a!<CZZctZCF1_,?> K	 r   c                   ^^^ [        TR                  S5      5      mUUU4S jmTR                  [        R                  S-
  S[        R                  " S5      -  -   S-  TR
                  S9Tl        SnTR                  U-  nTR                  STR
                  S9nTR                  STR
                  S9nSu  Tl        Tl        [        TXE5      nU R                  UR                  TR                  5      UR                  s=:  a  U:  d   e   eUR                  TR                  :X  d   eTR                  Ul        UR                  (       d   eUR                  S	:X  d   eSu  Tl        Tl        [        UR                   5      n[        TXEUS
9nTR                  Ul        X:X  d   eSu  Tl        Tl        US-  nUS:  d   e[        TXEUS
9nU R                  UR                  TR                  5      UR                  s=:  a  U:  d   e   eUR                  TR                  s=:X  a  UR                  :  d   e   eTR                  UR                  S-
  :X  d   eUR                  (       a   eUR                  ["        R$                  :X  d   eUnTR                  Ul        Su  Tl        Tl        [&        R(                  " [+        UR                  5      [&        R,                  5      n	[        TXES	U	S9nUR                  UR                  :X  d   eUR                  UR                  :X  d   eUR                  TR                  s=:X  a  UR                  :X  d   e   eTR                  UR                  :X  d   eUR                  (       d   eUR                  S	:X  d   eSu  Tl        Tl        [&        R(                  " [+        UR                  5      [&        R,                  * 5      n	[        TXES	U	S9nU R                  UR                  TR                  5      UR                  s=:  a  U	:  d   e   eUR                  TR                  s=:X  a  UR                  :  d   e   eTR                  UR                  :  d   eUR                  (       d   eUR                  S	:X  d   eSu  Tl        Tl        [&        R(                  " [+        UR                  UR                  -  5      [&        R,                  5      n
[        TXEU
S9nUR                  UR                  :X  d   eUR                  UR                  :X  d   eUR                  TR                  s=:X  a  UR                  :X  d   e   eTR                  UR                  :X  d   eUR                  (       d   eUR                  S	:X  d   eSu  Tl        Tl        [&        R(                  " [+        UR                  UR                  -  5      [&        R,                  * 5      n
[        TXEU
S9nU R                  UR                  TR                  5      TR                  -  UR                  UR                  -  s=:  a  U
:  d   e   eUR                  TR                  s=:X  a  UR                  :  d   e   eTR                  UR                  :  d   eUR                  (       d   eUR                  S	:X  d   eg )Nr   c                    > T=R                   S-  sl         T=R                  [        TR                  U 5      5      -  sl        U S-  TR	                  U 5      -  $ r^   )callsr   r   r   atanr   r/   r   r   s    r   r/   :TestTanhSinh.test_options_and_result_attributes.<locals>.f  sB    GGqLGGGwrzz!}--Ga4',,q/))r   r   rL   r   -q=r1  )r   r   r   r   r   r   r   r   )r   r   r    r   r!   r8  r   r   r?  r   r   r   r   r   r   r   r   eim	_ECONVERRr@   	nextafterr   r   )rB   r   default_rtoldefault_atolrU   r   r   r   r,   r   r   r/   r   s    `         @@r   "test_options_and_result_attributes/TestTanhSinh.test_options_and_result_attributes  s^    ""**R.1	*
 

DGGaK!dhhqk/9R?rzz
Ruu|+ JJrJ,JJrJ,  1 zz#,,.I\IIIIIxx177"""GG	{{{zzQ  s||$1(3GG	zz  A1}}1(3zz#,,.I\IIIIIxx177-SXX-----ww#))a-''';;zzS]]***, GG	  ||E#)),bff51ad3||s||+++yyCII%%%xx177.chh.....ww#))###{{{zzQ||E#)),rvvg61ad3zz#,,.ATAAAAAxx177-SXX-----ww"""{{{zzQ  ||E#))CLL"89266B1d+||s||+++yyCII%%%xx177.chh.....ww#))###{{{zzQ||E#))CLL"89BFF7C1d+zz#,,.quu4syy7MTPTTTTTTxx177-SXX-----ww"""{{{zzQr   torchzAhttps://github.com/scipy/scipy/pull/21149#issuecomment-2330477359r8   r   g-C6?g+=c           	        ^ [        SSS9nTR                  STR                  S9nTR                  STR                  S9n[        [        XES[
        R                  " U5      S9n[        [        XEUS	9n[        TR                  UR                  5      UR                  40 UD6  [        TR                  UR                  5      UR                  40 UD6  UR                  UR                  :X  d   eS
 nU4S jn	TR                  TR                  * TR                  S9nTR                  TR                  TR                  S9n[        XUSS9n[        XU5      n[        R                  " SS9   [        TR                  UR                  5      UR                  40 UDSS0D6  [        TR                  UR                  5      UR                  40 UDSS0D6  S S S 5        UR                  UR                  :X  d   eg ! , (       d  f       N+= f)NgC]r2<r   )r   r   r   r   g       @T)r!   r   r   c                 2    [        U 5      * [        U 5      -  $ rN   )r"   r   r   s    r   r/    TestTanhSinh.test_log.<locals>.f  s    N?8A;..r   c                 v   > TR                  [        U 5      S-   5      [        U 5      -   TR                  S-  -   $ )Ny                              ?)r!   r"   r   r   s    r   logf#TestTanhSinh.test_log.<locals>.logf	  s1    66+a.2-.Q?"%%"*LLr   r   r   allr   F)dictr   r8  r   r"   r    r!   r   r   r   r   r   r   r   r@   r   )
rB   r   r   	test_tolsrU   r   r,   r   r/   rS  s
     `       r   test_logTestTanhSinh.test_log  s    e%0	 JJs"**J-JJrJ,Qt$((4.I!T2s||,cllHiHsyy)399B	Bxx388###	/	M JJwbjjJ1JJrvvRZZJ0-a  [[X&BFF3<<0#,, /) /(-/BFF399-syy /I /(-/ '
 xx388### '&s   ,A)G::
Hc                   ^ U4S jnTR                  S5      TR                  TR                  S-  5      pC[        X#U5      n[        R                  " S5      S-  S[        R                  " S5      S-  -
  S-  -   n[        UR                  TR                  U5      5        S nTR                  TR                  5      TR                  TR                  * 5      pC[        X#U5      n[        UR                  TR                  S5      5        g )	Nc                 ,   > TR                  SU -  5      $ NrR  r  r   s    r   r/   $TestTanhSinh.test_complex.<locals>.f  s    66"q&>!r   r1  rb   r   r   rR  c                 <    [        U 5      S[        U S-  5      -  -   $ )N              ?r   )r   rO  s    r   r/   r^  &  s    A;hqsm!333r   y            )r   r   r   r    rT   r   r   r   rB   r   r/   rU   r   r,   r   s    `     r   test_complexTestTanhSinh.test_complex  s    	" zz"~rzz"%%'21a iil1n$))A,q. 0"44bjjo6	4 zz"&&!2::rvvg#61a bjj&9:r   r   c                   ^^
^ [        TR                  S5      5      mU
UU4S jm
SSTR                  / 5      sT
l        T
l        T
l        TR                  STR
                  S9nTR                  STR
                  S9n[        T
X4SUS9nTR                  T
R                  5      n[        SUS-   5       GH"  nSSTR                  / 5      sT
l        T
l        T
l        [        XqS9n[        T
X440 UD6n	[        U	R                  UR                  SS9  [        U	R                  UR                  SUR                  -  S	9  U	R                  T
R                  s=:X  a  T
R                  R                  S   :X  d   e   eT
R                  X-
  S-   S-   :X  d   eU	R                  UR                  :X  d   e[!        UTR                  T
R                  5      5        GM%     g )
Nr   c                   > T=R                   S-  sl         T=R                  [        TR                  U 5      5      -  sl        TR	                  TR
                  [        U 5      45      Tl        U S-  TR                  U 5      -  $ r^   )r?  r   r   r   concatr   r	   r@  rA  s    r   r/   %TestTanhSinh.test_minlevel.<locals>.f6  s_    GGqLGGGwrzz!}--G..!##x{!34ACa4',,q/))r   r   r   r   r7  gؗҼ<r   r   )r   r   r   r?  r   r8  r   sortr'   rW  r   r   r   r   r&   r   r   )rB   r   r   rU   r   r   ref_xr   optionsr,   r/   r   s     `       @@r   test_minlevelTestTanhSinh.test_minlevel-  s    ""**R.1	* !"1bjjn!#JJq

J+JJq

J+1!h?QSS!aA.H$%q"**R.!AGQWacH@GAq/w/CCLL#,,UCCIIsyyus||7KL88qww6!##))A,6666677h1A59999::+++E7<<#45 /r   c           	        ^ U4S jnTR                  TR                  * STR                  * TR                  STR                  * S/5      nTR                  TR                  TR                  STR                  * SSTR                  /5      n[        R                  " [        R                  5      nTR                  XUS-  US-  U* XUU/5      n[        X#U5      n[        UR                  U5        g )Nc                 j   > TR                   U TR                  U 5      '   TR                  U S-  * 5      $ rH   )r  isinfr   r   s    r   r/   /TestTanhSinh.test_improper_integrals.<locals>.fR  s,    VVAbhhqkN661a4%= r   r   i   r   )r   r   r    rT   r   r   r   r   )rB   r   r/   rU   r   r   r,   s    `     r   test_improper_integrals$TestTanhSinh.test_improper_integralsP  s    	! JJRVVGRVVS266'3GHJJBFF7BBFFCDii jj#1uc!ecT3SABa c*r   r   r   r   r   r   )float32r8  c                   ^^ [        TT5      mTR                  UTS9u  pEUU4S jnTTR                  :X  a  SOSn[        XdXWS9nUR                  R
                  T:X  d   eUR                  R
                  T:X  d   eTR                  UR                  5      (       d   e[        UR                  TR                  U5      TR                  U5      -
  5        g )Nr   c                 J   > U R                   T:X  d   eTR                  U 5      $ rN   )r   r   )r   r   r   s    r   r/   "TestTanhSinh.test_dtype.<locals>.fc  s#    77e###66!9r   rC  h㈵>r   )r   r   r8  r   r   r   r   rV  r   r   r   )	rB   r   r   r   rU   r   r/   r   r,   s	     ``     r   
test_dtypeTestTanhSinh.test_dtype\  s     E"zz&z.	 +ua+||!!U***yy%'''vvckk""""bffQiq	&9:r   c                   ^^^ TR                  TR                  * 5      TR                  TR                  5      p2U4S jnSu  pVXe-
  S-   m[        XVSS9n[        XBU40 UD6nUR                  (       a   eUR
                  U:X  d   eUU4S jmSTl        S Tl        US	 [        XBU40 UDS	T0D6n	UR                  5        HB  n
U
S
:X  a  X   S:X  d   eX   S:X  d   eM  X   TR                  U
   s=:X  a  X   :X  a  M?   e   e   g )Nc                 .   > TR                  U * U -  5      $ rN   r  r   s    r   r/   -TestTanhSinh.test_maxiter_callback.<locals>.fq      661"Q$<r   )r   r   r   r   )r   r   r   c                    > T=R                   S-  sl         U Tl        [        U S5      (       d   eU R                  S:X  d   eTR                   T:X  a  [        eg )Nr   r   )iterr,   hasattrr   StopIteration)r,   r   maxiters    r   r   4TestTanhSinh.test_maxiter_callback.<locals>.callback{  sR    MMQMHL3
++++::?"?}}'## (r   r   r   r   r   r  )	r   r   rW  r   r   r   r  r,   keys)rB   r   rU   r   r/   r   r   kwargsr,   res2keyr   r  s    `         @@r   test_maxiter_callback"TestTanhSinh.test_maxiter_callbackn  s   zz266'"BJJrvv$61	  "%)xGa*6*;;||x'''	$ :q>F>X> 88:Chx2~%~yB&yHLL$5AAAAAA r   c           	        ^^ TR                  TR                  * TR                  S9nTR                  TR                  TR                  S9nU4S jnU4S jm/ Tl        / Tl        Sn[        XBUSUTS9  [        US-   5       HY  n[        XBX6US9n[        TR                  SU-      UR                  S	S
9  [        TR                  SU-      UR                  S	SS9  M[     g )Nr   c                 .   > TR                  U * U -  5      $ rN   r  r   s    r   r/   &TestTanhSinh.test_jumpstart.<locals>.f  r  r   c                    > TR                   R                  [        U R                  5      S   5        TR                  R                  [        U R
                  5      S   5        g )Nr2   )	integralsr)   r
   r   errorsr   )r,   r   s    r   r   -TestTanhSinh.test_jumpstart.<locals>.callback  sE    %%gcll&;B&?@OO""7399#5b#9:r   rb   r   )r   r   r   r   r7  r   r   r   rD  )
r   r   r8  r  r  r   r'   r   r   r   )	rB   r   rU   r   r/   r   r-   r,   r   s	    `      @r   test_jumpstartTestTanhSinh.test_jumpstart  s     JJwbjjJ1JJrvvRZZJ0	 	;  !A8Lx!|$AA!!<CH..qs3S\\NHOOAaC0#))%eT %r   c           	      P  ^^
 TR                  S5      TR                  S5      p2[        X#5      m
U
4S jn[        XBU5      nUR                  (       d   e[	        UR
                  TR                  S5      5        [        XBUSS9nUR
                  S:  d   e[        UR                  TR                  TR                  5      5        [        XBUSS9nUR
                  S:  d   e[        UR                  TR                  TR                  5      5        [        XCU5      nUR                  (       d   eUR                  S:X  d   e[	        UR
                  TR                  S5      5        S n[        XBUS	S
9n[	        UR
                  TR                  S5      5        TR                  TR                  SSS/5      nTR                  STR                  SS/5      nTR                  SSTR                  S/5      n[        XBX64S
9n[	        UR
                  TR                  TR                  TR                  TR                  S/5      5        [        UR                  S S TR                  STR                  5      5        [        UR                  TR                  / SQTR                  S95        [        UR                  TR                  / SQ5      5        [        UR                  S S TR                  SSTR                  S95        TR                  S5      [        l        TR                  S5      [        l        S/[        l        S [        l        TR                  S5      TR                  S5      p2[        U4S jX#5      n[	        UR
                  TR                  S5      5        [        S X#5      n[	        UR
                  TR                  S5      5        Sn[        S TR                  S5      TR)                  U5      5      n/ SQnU H  n	XY   R*                  U:X  a  M   e   g )Nr   r   c                 N   > TR                  U R                  S5      (       d   eU $ )Nr   )r   r   )r   r   s    r   r/   *TestTanhSinh.test_special_cases.<locals>.f  s#    ??177O<<<<Hr   r   r   r   r1  c                 
    X-  $ rN   r2   )r   cs     r   r/   r    s	    4Kr      r   g?r   r   )r  r  r  r   r   FFFTc                 ,   > TR                  U S-  5      $ r]  r   r   s    r   r   1TestTanhSinh.test_special_cases.<locals>.<lambda>  s    "**QrT"2r   r`  c                     U $ rN   r2   rO  s    r   r   r        !r   rt  c                     U $ rN   r2   rO  s    r   r   r    r  r   r   )r   r   r   r   r   r   r   r   r  r   fullr   r  r   emptyr   xjcwjindicesh0zerosr&   )rB   r   rU   r   r/   r,   r  r&   r  r  r   s    `        @r   test_special_casesTestTanhSinh.test_special_cases  s#   zz!}bjjm1!!'	 a {{{bjjo6 a!,||a		2::bff#56a!,||a		2::bff#56 a {{{||r!!!bjjn5	 ab)bjj&67 JJ1a()JJ2661a()JJ1bffa()ad+bjj"&&"&&"&&#1N&OP		"1rwwtRVV'<=

BJJbhhJ$OPRZZ0K%LM!bggdARXXg&FG ((1+! czz!}bjjm12A9bjj&89Q*bjjo6 RZZ]BHHUODND9??e+++ r   )r   c                 r    [         R                  " SS5      nSUS'   [        [         R                  SU5        g )NA   r     r   r   )r@   r  r   r}   )rB   r   r   s      r   #test_compress_nodes_weights_gh214960TestTanhSinh.test_compress_nodes_weights_gh21496  s,     GGBN""&&!Qr   c           	         ^^^ [        SS5      m[        SS5      mUUU4S jn[        UTR                  S5      TR                  S5      SSSS	9nTR                  UR                  5      (       d   eg )
NrL   i'   c                 >   > TR                  TSU -
  -  TU -  -   5      $ r>   )r}   )rC   rU   r   r   s    r   r/   2TestTanhSinh.test_gh_22681_finite_error.<locals>.f  s#    66!q1u+A-..r   r1  r   r   r   )r   r   r   )complexr   r   isfiniter   )rB   r   r/   r,   rU   r   s    `  @@r   test_gh_22681_finite_error'TestTanhSinh.test_gh_22681_finite_error  s_     BBO	/2::b>2::b>TVW{{399%%%%r   r2   )FN)?__name__
__module____qualname____firstlineno__rD   r   r   rJ   r@   r   r!   rQ   r   rV   r[   r`   rd   rT   r   gammarg   rj   rn   rq   r   rt   rw   rz   r~   r   r   r   markparametrizer    r   normcdfr   r6   r'   r   _distr_paramsdistcontr   tupler	  r!  r&  r2  r;  rJ  rY  rb  rk  rr  rz  r  r  r  r  r  __static_attributes__r2   r   r   r;   r;   .   s   ! BFBD% eeai!bffQi-'2-BFBD% ffRUUQY!#q(BF5519BD1 !^b BFBD& BFBD# UUQYBFBD0 '--"66u9MMBFBD BFBD! eeVbffQi!#BF5519BD" eebggaj 1$CGEEAICE  eeaiCGFFCE' ggbeenCGFFCE# ggbeeai CGFFCE& CGFFCE eeaiCGFFCE!8;t [[]
TXX88)Q88)TXX	#
((TXXI	$	%**..%);;<- XX( [[!!$)L " N[[Zq"6 7N [[!!$)N " P[[US3*$56[[VU%8%8%A%AB+ C 7P+ [[Wuwvy&IJ&/ K&/P/./
G!sj [[!!'O "  [[VdE]3 $ 4 $D;& [[Zq2 6 3 6D
+ [[X488)Q!Q0H'IJ[[W&<=; > K;  BDU.A,F [[!!$!/  0 &r   r;   zNo fancy indexing.zNo mutation.c                   &   \ rS rSr\R
                  R                  S5      r\R                  SSSS9R                  5       r
S r\R                  S-  S-  \l        S\l        \R                  \l        \" 5       \l        S	 r\R*                  " \
S5      \l        S
\l        \R                  \l        \
4\l        S rS\l        \R/                  SSSS9\l        \" \R                   \
5      \l        \
4\l        S r\R6                  R9                  S\" SS5      5      S 5       r\R6                  R9                  S/ SQ5      S 5       r\R6                  R9                  S\" 5       SSS/5      S 5       r S r!S r"S r#\R6                  R9                  SSS /5      S! 5       r$S" r%S# r&\R6                  R9                  S$S%S&/5      S' 5       r'\R6                  R9                  S(S)S*/5      S+ 5       r(\R6                  RS                  SS,S-9S. 5       r*S/r+g0)1TestNSumi  l   Q [ r   r   sizec                     US-  $ Nr  r2   )rB   ks     r   rD   TestNSum.f1  s     2wr   r      c                     SX-  -  $ r>   r2   rB   r  r   s      r   rJ   TestNSum.f2      14xr   r   c                     SX-  -  $ r>   r2   r  s      r   rQ   TestNSum.f3  r  r   rX   r   )r   r   c                    U R                   nUR                  UR                  5      UR                  UR                  5      pCSn[        R
                  " [        US9   [        SX45        S S S 5        Sn[        R
                  " [        US9   [        X#USS9  S S S 5        Sn[        R
                  " [        US9   [        X!R                  S5      U5        S S S 5        [        R
                  " [        US9   [        X#UR                  S5      5        S S S 5        [        R
                  " [        US9   [        X#XAR                  S5      S	9  S S S 5        [        R
                  " [        US9   [        X#U[        S
S9S9  S S S 5        [        R
                  " [        US9   [        X#U[        [        S9S9  S S S 5        [        R                  " SS9   [        X!R                  [        R                  [        R                  /5      UR                  S5      5      nUR                  UR                  S:H  UR                  UR                   5      -  UR                  UR"                  5      -  UR$                  ) -  UR&                  -  S:H  5      (       d   e[        X!R                  S5      UR                  [        R                  S/5      5      nUR                  UR                  S:H  UR                  UR                   5      -  UR                  UR"                  5      -  UR$                  ) -  UR&                  -  S:H  5      (       d   e[        X!R                  S5      UR                  S5      UR                  UR                  UR                  * UR                  SS/5      S	9nUR                  UR                  S:H  UR                  UR                   5      -  UR                  UR"                  5      -  UR$                  ) -  UR&                  -  S:H  5      (       d   e S S S 5        Sn[        R
                  " [        US9   [        X#U[        SS9S9  S S S 5        [        R
                  " [        US9   [        X#U[        [        R                  S9S9  S S S 5        Sn[        R
                  " [        US9   [        X#U[        [        R                  S9SS9  S S S 5        [        R
                  " [        US9   [        X#U[        [        R                  S9SS9  S S S 5        Sn[        R
                  " [        US9   [        X#USS9  S S S 5        [        R
                  " [        US9   [        X#USS9  S S S 5        g ! , (       d  f       GN+= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GNk= f! , (       d  f       GNE= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GNc= f! , (       d  f       GN2= f! , (       d  f       GN= f! , (       d  f       g = f)Nr   r   r   r   r   r   r   r   )stepr   r   
tolerancesr   r   rU  r   r   r   g      $@r   r   r   T)r  r!   z"...must be a non-negative integer.g      @maxtermsr  )rD   r   rU   r   r   r   r   r   rW  r@   r   r  r   rV  r   isnansumr   r   r   )rB   r   r/   rU   r   r   r,   s          r   r   TestNSum.test_input_validation!  s   GGzz!##

1331)]]:W5QN 6 .]]:W5qa  6 -]]:W5JJt$a( 6]]:W5rzz$'( 6]]:W5qzz$/0 6]]:W5qTv%67 6]]:W5qTv%67 6 [[X&q**bffbff%56

2GC663::+rxx/@@HHSYY/036;;,?ADJMNO P P P Pq**S/2::rvvqk+BCC663::+rxx/@@HHSYY/036;;,?ADJMNO P P P Pq**R."**S/JJQ'GHJC663::+rxx/@@HHSYY/036;;,?ADJMNO P P P P ' 8]]:W5qTr]3 6]]:W5qTrvv%67 6 5]]:W5qTrvv%6DA 6]]:W5qTrvv%6DA 6 7]]:W5q3' 6]]:W5q2& 65] 65 65 6555555555 '& 6555 6555 6555s   VV <V29W6W1W(%W:IXX !X0"Y"YY&9Y8
V 
V/2
W
W
W%(
W7:
X	
X
X-0
X?
Y
Y#&
Y58
Zr   rb   c           	      (  ^^ TR                  S5      R                  n[        U SU 35      mTR                  TR                  5      TR                  TR                  5      pT[        U4S jTR                   5       5      nTR                  TR                  US9n[        TXEUS9n[        UR                  U5        [        UR                  TR                  UR                  TR                  S95        [!        U5      n	[        UR"                  TR%                  UR                  U	R&                  S95        [(        R*                  " SS9   [        UU4S jXES	US
9n
S S S 5        [        TR-                  W
R                  5      UR                  5        [        TR-                  U
R.                  5      UR.                  SS9  [        U
R                  UR                  5        [        U
R"                  UR"                  5        g ! , (       d  f       N= f)Nr   r/   c              3   F   >#    U  H  nTR                  U5      v   M     g 7frN   r  ).0argr   s     r   	<genexpr>&TestNSum.test_basic.<locals>.<genexpr>\  s     7RZZ__s   !r   r   r   r   c                  ,   > TR                  T" U 6 5      $ rN   r   )r   r/   r   s    r   r   %TestNSum.test_basic.<locals>.<lambda>e  s    q$x(8r   T)r!   r   r   r   )r   r   r   rU   r   r  r   r   r   r   r  r   r   r  r&   r  r   r   onesr   r@   r   r   r   )rB   r   r   r   rU   r   r   r   r,   r   r   r/   s     `        @r   r   TestNSum.test_basicW  si   

2$$DAhZ.)zz!##

1331777jjej,1a&%

BHHSYYbhhH$GH!!$RWWSYYgllW%KL[[)8T6F * 	vzz*CGG4v||,ciieDszz24 *)s   H
Hr  )r   r   r   rq  r+  c                 j  ^ U R                   nU4S jnS nTR                  SS/TR                  S9S S 2TR                  4   nTR                  SSTR                  /TR                  S9S S 2TR                  TR                  4   nTR                  / SQTR                  S9R                  S	5      nTR                  Xv-
  U-  5      n	Un
XiU-  -   nXaU-  -   nTR                  U" UTR                  U5      U-  -   5      S
SS9nU" U5      U" U5      -
  U-  nX-   U" U5      -   nX-   U" U5      -   nX-   S-  nX-
  S-  n[        U5      nUR                  XgU5      u  pgn[        R                  " UR                  5       H  n[        UU   5      [        UU   5      [        UU   5      nnnUU-
  U-  S-   U::  d  M>  TR                  U" TR                  UUU-   UTR                  S95      5      nUUU'   UTR                  UR                   5      R"                  -  UU'   M     Sn[%        X6XU['        US9S9n[)        UR                  USU-  S9  [)        UR*                  USU-  S9  X-
  U-  S-   U:*  n[)        UR                  U   UU   SS9  [)        UR*                  U   UU   SS9  [%        XFXS['        [,        R.                  " U5      S9US9n[)        TR1                  UR                  5      UR                  5        [)        TR1                  UR*                  5      UR*                  5        g )Nc                 ,   > STR                  U 5      -  $ r  r   r   s    r   rS  $TestNSum.test_integral.<locals>.logfq  s    bffQi<r   c                     SU -  $ )Nr   r2   rO  s    r   F!TestNSum.test_integral.<locals>.Ft  s    6Mr   r   rX   r   rq  r+  )r   r   r   )r   r   r   r   r   T)axiskeepdimsr   rC  r   )r  r  r  r   r   )r  r!   r  r  )rD   r   r8  newaxisr   reshapefloorr  r  r   broadcast_arraysr@   ndindexr&   r   finfor   epsr   rW  r   r   r    r!   r   )rB   r  r   r/   rS  r  rU   r   r  nsteps
b_originalr  directr   lowhighref_sumref_errr   r-   aibistepir   r,   r   s     `                       r   test_integralTestNSum.test_integrall  s    GG	 	 JJ1vRZZJ0BJJ?JJC(

J;Arzz2::<UVzz+RZZz8@@O15$,'
tO!bii1$667b4PaD1Q4K%!A$& 1Q4':q.:q. "!$--aD9
dAGG$A!!A$KqteDGnEBR"h."))B5%rzz)"R ST#
#bhhv||&<&@&@@
 % 1"o/r$w7		7T:nd"Q&(2
GAJU;		!gaju=dz$!%488D>!:XOvzz*CGG4v||,cii8r   r&   r   r   r   c           
        ^^ [         R                  R                  S5      nUR                  SSUS9n[         R                  nUR                  U5      S-   n[
        R                  " U5      mUU4S jmSTl        [         R                  S 5       n[        TUR                  U5      UR                  U5      SUR                  U5      4S	9nU" XEUSS
9R                  5       n	/ SQn
U
 Hl  nU	 Vs/ s H  oR                  [        X5      5      PM     nn[        X5      n[        [        U5      UR                  U5      SS9  UR                  U:X  a  Ml   e   [!        UR                  S5      5      nUR#                  UR$                  R&                  S5      (       d   eUR#                  UR(                  R&                  S5      (       d   eUR#                  UR*                  R&                  S5      (       d   e[-        U5      (       a5  [/        UR1                  UR*                  5      5      TR                  :X  d   eg g s  snf )Nr   r   r   r  c                    > T=R                   U R                  T:X  d  U R                  S::  a  SOU R                  S   -  sl         SX-  -  $ r   )r   r  r   r&   r   s     r   r/   &TestNSum.test_vectorization.<locals>.f  s;    GGQVVq[AFFaKqaggbkIGqv:r   r   c                 "   ^ [        U4S jXUS9$ )Nc                    > SU T-  -  $ r>   r2   r   s    r   r   BTestNSum.test_vectorization.<locals>.nsum_single.<locals>.<lambda>  s    !ad(r   r  )r   )rU   r   r   r  s     ` r   nsum_single0TestNSum.test_vectorization.<locals>.nsum_single  s    *A8DDr   r  )r  r   r  )r  r   r   r   r   r   r   r   r   r   )r@   r   r   integersr   r    r(   r   	vectorizer   r   ravelr   r   r	   r&   r   r   r   r   r   r   r   r   r  )rB   r&   r   r  rU   r   r   r
  r,   r  r  r  r   r  r  r   r/   r   s                   @@r   r	  TestNSum.test_vectorization  s    ii##$89LLBUL+ FFJJu!IIe	 		E 
	E 1bjjmRZZ]TA(*1T288:=DBFG$3

73#56$HGs)HHX.

80D5Q>>U***	  ""**R.1s{{00&9999szz//<<<<sxx~~z::::B<<rvvchh'(AGG333  Hs   /#H?c                 R   U R                   n/ SQnUR                  SSSSS[        R                  /UR                  S9nUR                  S[        R
                  [        R
                  [        R
                  [        R
                  [        R
                  /UR                  S9n[        R                  " US5      nUR                  X1R                  S9n[        R                  " SS9   [        X$XS4S9nS S S 5        UR                  / S	Q5      nUR                  / S
QUR                  S9n	[        WR                  U5        [        UR                  U	5        [        UR                  UR                     UR                  U5      UR                     5        g ! , (       d  f       N= f)N)r   r   g?g?r   r   r   r   r   r   r   r   r   )FFFFTF)r  r  r  r  r   r   )rJ   r   r@   r  r8  r   r   zetar   r   r  r   r   r   r   r  )
rB   r   r/   r   rU   r   r   r,   ref_success
ref_statuss
             r   test_statusTestNSum.test_status  s&   GG"JJ1aArvv.bjjJAJJBFFBFFBFFBFFBFFC2::JVll1a JJq

J+[[)qQT*C * jj!JKZZ 7rxxZH
[1

J/,bjjockk.JK *)s   )F
F&c           	      j  ^ U4S jmSTl         [        TUR                  S5      UR                  S5      5      nUR                   TR                   :X  d   eSTl         [        TUR                  S5      UR                  UR                  5      [	        SS9S9nUR                   TR                   :X  d   eg )Nc                 P   > T=R                   [        U 5      -  sl         SU S-  -  $ r^   )r   r   r.  s    r   r/   TestNSum.test_nfev.<locals>.f  s"    FFgaj Fq!t8Or   r   r   r   ư>r   r  )r   r   r   r   rW  )rB   r   r,   r/   s      @r   	test_nfevTestNSum.test_nfev  s    	 1bjjmRZZ^4xx166!!!1bjjmRZZ%7DdOTxx166!!!r   c           
         UR                  SS/5      nUR                  UR                  5      n[        S X#S[        SS9S9n[        S X#5      nUR	                  UR
                  UR
                  UR                  -
  :  5      (       d   eUR	                  UR
                  UR
                  UR                  -   :  5      (       d   eg )	Nr   rb   c                     SU S-  -  $ r^   r2   r  s    r   r   )TestNSum.test_inclusive.<locals>.<lambda>      QaZr   i  g?r   )r  r  c                     SU S-  -  $ r^   r2   r  s    r   r   r    r   r   )r   r   r   rW  rV  r  r   )rB   r   rU   r   r,   r   s         r   test_inclusiveTestNSum.test_inclusive  s     JJ1vJJrvv'DcN<'.vvcgg399!456666vvcgg399!456666r   r!   TFc           	      b  ^^ TR                  S[        R                  * [        R                  * /5      nTR                  [        R                  S[        R                  /5      nTR                  / SQ5      nUU4S jn[        XcXE4TS9nTR                  [        R
                  R                  SS5      [        R
                  R                  SS5      S/5      nT(       a  TR                  U5      OUnT(       a  UR                  TR                  :X  a  SOS	OSn	[        UR                  TR                  XR                  S
9U	S9  UU4S jnTR                  S[        R                  * /5      nTR                  [        R                  S/5      nTR                  SS/5      n
[        XcXJ4TS9nT(       a*  [        R                  " [        R                  " S5      5      O[        R                  " S5      n[        UR                  TR                  UR                  XR                  S
95        g )Nr   r   )r   r   r   c                    > T(       a8  TR                  TR                  US-  5      5      UTR                  U 5      -  -
  $ TR                  US-  5      TR                  U* TR                  U 5      -  5      -  $ rH   )r!   tanhr   r   )r   rU   r!   r   s     r   r/   (TestNSum.test_infinite_bounds.<locals>.f  sc    <?BFF2771q5>*Qrvvay[8 >1r"&&)|(<<>r   )r   r!   r   r   g|=ry  r   r   c                 R   > T(       a  STR                  X-  5      -  $ SX-  S-  -  $ )Nr  r   r   r   )r   r  r!   r   s     r   r/   r'    s(    %(2bffQSk>:a13(l:r   r   )r   r@   r   r   r   dlaplacesfr!   r   r8  r   r  r   r  r  r&   )rB   r!   r   rU   r   r  r/   r,   r   r   r  s    ``        r   test_infinite_boundsTestNSum.test_infinite_bounds  s   JJBFF7RVVG,-JJBFF+,JJy!	> 13/jj%..++Aq15>>3D3DQ3JANO bffSkc;>"**,$ACww!?dK	; JJBFF7|$JJ|$jj!R!1S1),bffW\\!_%',,q/#WW!EFr   c                 
  ^ U4S jnTR                  STR                  S9TR                  [        R                  TR                  S9pC[	        X#U5      nTR                  STR                  S9n[        UR                  USS9  g )Nc                 .   > TR                  U S-  * 5      $ rH   r  r   s    r   r/   )TestNSum.test_decreasing_check.<locals>.f  s    6616'?"r   ir   gtfԸ\?r   r   )r   r8  r@   r   r   r   r  ra  s    `     r   test_decreasing_checkTestNSum.test_decreasing_check  sk    	# zz#RZZz0"**RVV2::*2V11m jj*"**j=51r   c           	         U R                   nUR                  S5      =p4[        X#U5      n[        UR                  UR                  U" S5      5      5        [        U R
                  UR                  S5      UR                  [        R                  5      UR                  S5      S9n[        UR                  UR                  U R                   R                  5      5        UR                  S5      nUR                  S5      nUR                  S5      n[        R                  " UR                  UR                  UR                  5      n[        U R
                  X4U4S9nUR                  R                  U:X  d   eUR                  R                  U:X  d   eUR                  R                  U:X  d   eS n[        X!R                  S5      UR                  S	5      SS
9nUR                  UR                  5      (       d   eUR                  UR                   5      (       d   eUR                  S:X  d   e[        X!R                  S5      UR                  S	5      SS
9nUR                  UR                  5      (       d   eUR                  UR                   5      (       d   eUR                  S:X  d   eUR                  UR"                  SSS/5      nUR                  UR                  UR"                  UR                  UR                  /5      nUR                  SSUR"                  S/5      n[        U R
                  X4U4S9n[        UR                  UR                  UR"                  UR"                  UR"                  U R                   R                  /5      5        [        UR                   S S UR%                  SUR"                  5      5        [        UR                  UR                  / SQUR&                  S95        [        UR(                  UR                  / SQ5      5        [        UR                  S S UR%                  SSUR&                  S95        g )Nr   r   r   )r   r   r   )r   r   rb   c                 j    [         R                  " SS9   SU -  sS S S 5        $ ! , (       d  f       g = f)Nr   r   r   )r@   r   rO  s    r   r/   %TestNSum.test_special_case.<locals>.f:  s!    H-1u .--s   $
2r   r   r  r  r  r   r  )r   r   r  r   r   r  )r   )rD   r   r   r   r  rJ   r@   r   r   r   r  broadcast_shapesr&   r   r   r  r   r  r  r  r   )rB   r   r/   rU   r   r,   r   r&   s           r   test_special_caseTestNSum.test_special_case$  s)   GG

11mAaD!12 477BJJqM2::bff+=BJJqMRDGGKK!89 HHYHHVHHQK##AGGQWWagg>477At,ww}}%%%zz5(((xx~~&&&	 1jjmRZZ^a@xx    xx		""""zzR1jjmRZZ^a@xx    xx		""""zzR JJ1a()JJ78JJ1bffa()477At,RVVRVVRVVTWW[[,Q!RS		"1rwwtRVV'<=

BJJbhhJ$OPRZZ0K%LM!bggdARXXg&FGr   r   ru  r8  c                   ^^ [        TT5      mUU4S jnTR                  STS9nTR                  STR                  /TS9n[        X4U5      nUR                  R
                  T:X  d   eUR                  R
                  T:X  d   eTTR                  :X  a  SOSn[        [        R                  " STR                  /5      S5      n[        UR                  TR                  UTS9US9  g )	Nc                 T   > U R                   T:X  d   eSU TR                  STS9-  -  $ )Nr   r   r   )r   r   )r  r   r   s    r   r/   TestNSum.test_dtype.<locals>.fY  s2    77e###qBJJqJ6666r   r   r   r   rC  r  r   r   )r   r   r   r   r  r   r   r8  r   r@   r   )	rB   r   r   r/   rU   r   r,   r   r   s	    ``      r   rz  TestNSum.test_dtypeU  s    E"	7 JJqJ&JJBFF|5J11mww}}%%%yy%'''+u

B< 8!<Cu!=DIr   r   )r   r+  )r+  r   c                    Uu  p4S n[         R                  nSnXcU-  -   n[         R                  " SS5      n	X[         R                  " U5      -  -   n
[         R                  " X-
  U-  5      n[        [        U5      5      S:X  d   eUR                  XbR                  S9UR                  XR                  S9pUR                  XrR                  S9UR                  XR                  S9p[        XVXUS9n[        UR                  U5      S:  UR                  UR                  5      S:  5        [        UR                  S	   UR                  S   U" U5      -   5        g )
Nc                     SU S-  -  $ r^   r2   r  s    r   r/   .TestNSum.test_nondivisible_interval.<locals>.fn  s    qAv:r   gUUUUUU?r  r   r   r   )r  r  r   r   )r@   er  spacingr  lensetr   r8  r   r   diffr  r   )rB   r   r   r   r  r/   rU   r  b0r-   r   nsr,   s                r   test_nondivisible_interval#TestNSum.test_nondivisible_intervalg  s   
 	 DDT\IIb!RZZ^##XXqun%3r7|q   zz!::z.

1JJ
0O1::d**:5rzz"JJz7Wb19a)9A)=>SWWQZ!B%%78r   zNeeds beta function.r   c                 l   [         R                  R                  SS5      nS n[        R                  " SS9   [        R
                  " U" [        R                  5      5      (       d   e S S S 5        [        US[        R                  5      n[        UR                  U5        g ! , (       d  f       N@= f)Nrb   rX   c                 N    [         R                  R                  U S5      U S-  -  $ )NrX   rb   )r   	yulesimon_pmfrO  s    r   r/   0TestNSum.test_logser_kurtosis_gh20648.<locals>.f  s"    ??''1-144r   r   )invalidr   )
r   rJ  momentr@   r   r  r   r   r   r  )rB   r   r   r/   r,   s        r   test_logser_kurtosis_gh20648%TestNSum.test_logser_kurtosis_gh20648  sz     oo$$Q*	5 [[*88AbffI&&&& + 1a %	 +*s   2B%%
B3r2   N),r  r  r  r  r@   r   r   r  uniformtolistr   rD   r   r   rU   r   r   r  r   rJ   r   r  rQ   r  r   r   r   r  r  r'   r   r  r	  r  r  r"  r+  r0  r6  rz  rF  r6   rO  r  r2   r   r   r  r    s/   
 ))

 3
4CAr#**,A
 UUAXaZBFBD66BDgBG \\!QBFBD66BDdBG BD<<2F<+BDrttQ'BFdBG4'l [[Zq!55 65( [[Z)<=19 >19f [[Wuwvy&IJ&4 K&4PL$"	7 [[UT5M2G 3G42,/Hb [[Wy)&<=J >J" [[Vi%;<9 =9. [[!!$7M!N& O&r   r  rN   )*r   r   r    numpyr@   numpy.testingr   scipy.conftestr   (scipy._lib._elementwise_iterative_method_lib_elementwise_iterative_methodrE  scipy._lib._array_api_no_0dr   r   scipy._lib._array_apir   r   r	   r
   r   scipyr   r   scipy.integrater   r   r   r   scipy.integrate._tanhsinhr   scipy.stats._discrete_distnsr   r   r"   r5   r  usefixturesr6   r;   r  r2   r   r   <module>r`     s/   	    ) / 6 6 H W W   A A 1 :.+
$ +,J   D  F& F& - F&R +,09MNk.AH& H& B O - H&r   