
    -iT                        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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"\RF                  RI                  SSS9\RF                  RI                  SSS9\RF                  RI                  SSS9 " S S5      5       5       5       r%\RF                  RI                  SSS9\RF                  RI                  SSS9\RF                  RI                  SSS9\RF                  RI                  SSS9 " S S5      5       5       5       5       r&g)    N)assert_allclose)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.   r/   s   ` r   	decorator_vectorize.<locals>.decorator   s    	 r   r1   )r   r2   s     r   
_vectorizer4      s    
 r   array_api_strictz)Currently uses fancy indexing assignment.reasonz
dask.arrayzboolean indexing assignmentz	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.f1:   s    266!a%=  r         ?r   c                 :    US-  [         R                  " U5      -  $ Nr   )r>   arctanr?   s     r   f2TestTanhSinh.f2@   s    Av		!$$r   r      c                 \    [         R                  " U5      [         R                  " U5      -  $ Nr>   r   cosr?   s     r   f3TestTanhSinh.f3F   s    vvay266!9$$r   c                 ~    [         R                  " SUS-  -   5      n[         R                  " U5      SUS-  -   U-  -  $ )Nr   r   )r>   sqrtrG   )r@   rA   as      r   f4TestTanhSinh.f4L   s8    GGAQJyy|AF
a/00r      `   c                 \    [         R                  " U5      [         R                  " U5      -  $ rL   )r>   rR   r    r?   s     r   f5TestTanhSinh.f5S   s    wwqzBFF1I%%r   gqqܿc                 :    [         R                  " SUS-  -
  5      $ Nr   r   r>   rR   r?   s     r   f6TestTanhSinh.f6Y   s    wwq16z""r      c                 h    [         R                  " U5      [         R                  " SUS-  -
  5      -  $ r\   r]   r?   s     r   f7TestTanhSinh.f7_   s&    wwqzBGGAQJ///r   g      ?c                 4    [         R                  " U5      S-  $ rF   r=   r?   s     r   f8TestTanhSinh.f8e   s    vvayA~r   c                 V    [         R                  " [         R                  " U5      5      $ rL   )r>   r    rN   r?   s     r   f9TestTanhSinh.f9k   s    vvbffQi  r   c                 V    [         R                  " [         R                  " U5      5      $ rL   )r>   rR   tanr?   s     r   f10TestTanhSinh.f10q   s    wwrvvay!!r   c                     SSUS-  -   -  $ r\   r1   r?   s     r   f11TestTanhSinh.f11w   s    AQJr   c                 ^    [         R                  " U* 5      [         R                  " U5      -  $ rL   )r>   r   rR   r?   s     r   f12TestTanhSinh.f12}   s    vvqbzBGGAJ&&r   c                 <    [         R                  " US-  * S-  5      $ rF   )r>   r   r?   s     r   f13TestTanhSinh.f13   s    vvqAvgk""r   c                 ^    [         R                  " U* 5      [         R                  " U5      -  $ rL   rM   r?   s     r   f14TestTanhSinh.f14   s    vvqbzBFF1I%%r   r   c                 4    [         R                  " U5      U-  $ rL   )r>   sinr?   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)r@   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)	rB   asarraybpytestraises
ValueError	_tanhsinhinfobject)r@   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S:  a-  UR                  UR                  R                  S5      (       d/   eUR                  UR                  R                  S5      (       d   eS	UR                  UR                  R                  5      R                  -  n[        UR                  UR                  5      UR                  USS
9  g s  snf )Nr   dtyper    TF)check_dtypereal floatingzcomplex floatingr   )r   r   )r   floatr   r   r   r   integralr!   r   isdtypefinfor   eps)	r@   limitsr   r   limitr   r+   logresr   s	            r   test_integral_transforms%TestTanhSinh.test_integral_transforms   s3    288**U#8

5+,22jjj**6*c*;::T:v/%HFIAg

6??00/BB 	L KZZ 5 57IJJ	L K 288CIIOO,000v||,ciidPUV 9s   E6Tz!Cumbersome to convert everything.np_onlyr7   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   >      rJ      >   r   
   rJ   )
getattrr   r   r   r   r   r   r   successstatus)r@   r   r   r.   r   r+   
true_errors          r   
test_basicTestTanhSinh.test_basic   s     DAhZ.)1acc-aee$7;&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   )	r@   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%   rJ      r`   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	/ 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-  $ rL   r1   r   r   s    r   <lambda>KTestTanhSinh.test_vectorization.<locals>._tanhsinh_single.<locals>.<lambda>*  s	    q!tr   )r   )rS   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   r4   r   stackr   r   r   r%   r   r   r   r   r   r   max)r@   r%   r   rngrS   r   r   r   r+   refs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xxt Dt!3t DEH 23HHU;3%++u444	  zz#++++V4444zz#****J7777zz#((..*5555zz#,,,,j9999vvchh177***vvcll#q(((vvcll#qww... !Es   +I0
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      $ rF   r   r   s    r   r   4TestTanhSinh.test_flags.<locals>.f.<locals>.<lambda>D  s    rvvq!te}r   c                 &   > TR                  U 5      $ rL   r  r   s    r   r   r  E  s    rvvayr   c                 <   > TR                  U TR                  5      $ rL   )	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   rV   )r   r   r   )	r  arangeint64r   r   r   int32r   r   )r@   r   r   rS   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   rV   T)r   r   r  r   )r   r   r   r  r   r   )r@   r   r.   rS   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{   rN   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      $ rL   )r>   r   r.   s    r   r   2TestTanhSinh.test_preserve_shape.<locals>.<lambda>j  s    1br   r   r   c                    > T" U T5      $ rL   r1   r   r.   r   s    r   r   r-  k  s    !Ar(r   Tr           r   )r   r   r   r   r   r   )r@   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   )rA   r   s    r   r.   (TestTanhSinh.test_convergence.<locals>.fs  s    rvva!e}$$r   rD   r   r0  r   r   r`   r   r   T)r    r   r   g      /)float64r   r&   r   r   r   )r@   r   r   r.   r   rS   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                   ^^ 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 )Nc                    > T=R                   S-  sl         T=R                  [        TR                  U 5      5      -  sl        U S-  TR	                  U 5      -  $ r\   )callsr   r   r   atanr/  s    r   r.   :TestTanhSinh.test_options_and_result_attributes.<locals>.f  sB    GGqLGGGwrzz!}--Ga4"''!*$$r   r   rJ   r   -q=r0  r   )r   r   r   r   r   r   r   r   )r   r   r   r    r7  r   r   r>  r   r   r   r   r   r   r   r   eim	_ECONVERRr>   	nextafterr   r   )r@   r   default_rtoldefault_atolrS   r   r   r   r+   r   r   r.   s    `         @r   "test_options_and_result_attributes/TestTanhSinh.test_options_and_result_attributes  sJ   	%
 

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-2330477359r6   r   g-C6?+=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      -  $ rL   )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   r7  r   r!   r   r    r   r   r   r   r   r   r   r>   r   )
r@   r   r   	test_tolsrS   r   r+   r   r.   rR  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      $ NrQ  r  r   s    r   r.   $TestTanhSinh.test_complex.<locals>.f  s    66"q&>!r   r0  r`   r   r   rQ  c                 <    [        U 5      S[        U S-  5      -  -   $ )N              ?r   )r   rN  s    r   r.   r]  $  s    A;hqsm!333r   y            )r   r   r   r   rR   r   r   r   r@   r   r.   rS   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                   ^^
 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 )	Nc                   > 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?  r/  s    r   r.   %TestTanhSinh.test_minlevel.<locals>.f1  s_    GGqLGGGwrzz!}--G))QSS(1+./ACa4"''!*$$r   r   r   r   r6  gؗҼ<r   r   )r   r   r>  r   r7  r   sortr&   rV  r   r   r   r   r%   r   r   )r@   r   r   rS   r   r   ref_xr   optionsr+   r.   s     `       @r   test_minlevelTestTanhSinh.test_minlevel+  sl   	% !"1bjjn!#JJq

J+JJq

J+1!h?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::+++E277133<0 /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      $ rF   )r  isinfr   r   s    r   r.   /TestTanhSinh.test_improper_integrals.<locals>.fM  s,    VVAbhhqkN661a4%= r   r   i   r   )r   r   r   rR   r   r   r   r   )r@   r   r.   rS   r   r   r+   s    `     r   test_improper_integrals$TestTanhSinh.test_improper_integralsK  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   )float32r7  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      $ rL   )r   r   )r   r   r   s    r   r.   "TestTanhSinh.test_dtype.<locals>.f^  s#    77e###66!9r   rA  h㈵>r   )r   r   r7  r   r   r   r   rU  r   r   r   )	r@   r   r   r   rS   r   r.   r   r+   s	     ``     r   
test_dtypeTestTanhSinh.test_dtypeW  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      $ rL   r  r   s    r   r.   -TestTanhSinh.test_maxiter_callback.<locals>.fl      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>.callbackv  sR    MMQMHL3
++++::?"?}}'## (r   r   r   r   r   r  )	r   r   rV  r   r   r   r  r+   keys)r@   r   rS   r   r.   r   r   kwargsr+   res2keyr   r  s    `         @@r   test_maxiter_callback"TestTanhSinh.test_maxiter_callbacki  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      $ rL   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 )Nr1   )	integralsr(   r	   r   errorsr   )r+   r   s    r   r   -TestTanhSinh.test_jumpstart.<locals>.callback  sE    %%gcll&;B&?@OO""7399#5b#9:r   r`   r   )r   r   r   r   r6  r   r   gؗҜ<rB  )
r   r   r7  r  r  r   r&   r   r   r   )	r@   r   rS   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           	      8  ^ TR                  S5      TR                  S5      p2U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   s    r   r.   *TestTanhSinh.test_special_cases.<locals>.f  s#    ::agg7777Hr   r   r   r   r0  c                 
    X-  $ rL   r1   )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 $ rL   r1   rN  s    r   r   r        !r   rs  c                     U $ rL   r1   rN  s    r   r   r    r  r   r   )r   r   r   r   r   r   r   r  r   fullr   r  r   emptyr   xjcwjindicesh0zerosr%   )
r@   r   rS   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{   )r@   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TR                  STR                  S9TR                  STR                  S9pC[        X#USSS	S
9nTR	                  UR
                  5      (       d   e[        X#USS9nUR                  (       d   eUR                  S:  d   e[        UR                  UR                  SS9  g )NrJ   i'   c                 >   > TR                  TSU -
  -  TU -  -   5      $ r<   )r{   )rA   c1c2r   s    r   r.   2TestTanhSinh.test_gh_22681_finite_error.<locals>.f  s#    66"A,a/00r   r0  r   r   r   r   )r   r   r   rK  r   rV   r   )
complexr   r7  r   isfiniter   r   r   r   r   )	r@   r   r.   rS   r   r   r+   r  r  s	    `     @@r   test_gh_22681_finite_error'TestTanhSinh.test_gh_22681_finite_error  s     RR_	1zz"BJJz/Bbjj1Q1aaa"={{399%%%%ae,{{{||acll?r   r1   )FN)?__name__
__module____qualname____firstlineno__rB   r   r   rH   r>   r   r    rO   r   rT   rY   r^   rb   rR   r   gammare   rh   rl   ro   r   rr   ru   rx   r|   r   r   r   markparametrizer   r   normcdfr   skip_xp_backendsr&   r   _distr_paramsdistcontr   tupler  r  r$  r1  r:  rH  rX  ra  rj  rq  ry  r  r  r  r  r  __static_attributes__r1   r   r   r9   r9   .   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	$	%**..%);;<- WW( [[!!$)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%/N/./
G!qf [[!!'O "  [[VdE]3 $ 4 $D;& [[Zq21 31>
+ [[X488)Q!Q0H'IJ[[W&<=; > K;  BDU.@,D [[!!$!/  0 @r   r9   rJ  zdata-apis/array-api-compat#271zNo fancy indexing.zNo mutation.z1Data-dependent shapes in boolean index assignmentc                   &   \ 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  r1   )r@   ks     r   rB   TestNSum.f1
  s     2wr   r      c                     SX-  -  $ r<   r1   r@   r  r   s      r   rH   TestNSum.f2      14xr   r   c                     SX-  -  $ r<   r1   r  s      r   rO   TestNSum.f3  r  r   rV   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                  S   S:X  a  UR                  S   (       a   eUR                  UR                   S   5      (       a#  UR                  UR"                  S   5      (       d   eUR                  S   S:X  a  UR                  S   (       d   eUR                   S   UR"                  S   :X  d   eUR%                  UR&                  S   S:H  5      (       d   e[        X!R                  S5      UR                  [        R                  S/5      5      nUR                  S   S:X  a  UR                  S   (       a   eUR                  UR                   S   5      (       a#  UR                  UR"                  S   5      (       d   eUR                  S   S:X  a  UR                  S   (       d   eUR                   S   UR"                  S   :X  d   eUR%                  UR&                  S   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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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   rT  r   r   r   r   g      $@r   r   T)r  r    z"...must be a non-negative integer.g      @maxtermsr  )rB   r   rS   r   r   r   r   r   rV  r>   r   r  r   r   r   isnansumr   rU  r   )r@   r   r.   rS   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 kkh'q**bffbff%56

2GCJJqMR'Q??88CGGAJ''BHHSYYq\,B,BBBJJqMQ&CKKN::771:1---66#((1+*++++q**S/2::rvvqk+BCCJJqMR'Q??88CGGAJ''BHHSYYq\,B,BBBJJqMQ&CKKN::771:1---66#((1+*++++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5m 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   Y Y2<Z9Z6Z(1Z:%[L"[[0!\"\"\&\8]
 
Y/2
Z
Z
Z%(
Z7:
[	
[
[-0
[?
\
\#&
\58
]

]r   r`   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R                   TR#                  UR                  T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rL   r  ).0argr   s     r   	<genexpr>&TestNSum.test_basic.<locals>.<genexpr>g  s     7RZZ__s   !r   r   r   r   c                  ,   > TR                  T" U 6 5      $ rL   r   )r   r.   r   s    r   r   %TestNSum.test_basic.<locals>.<lambda>o  s    q$x(8r   T)r    r   r   r   )r   r   r   rS   r   r  r   r   r   r   r  r   r   r  r%   r  r   onesr   r>   r   r   r   )r@   r   r   r   rS   r   r   r   r+   r   r.   s     `       @r   r   TestNSum.test_basicb  s_   

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

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

BHHSYYbhhH$GHRWWSYYbggW%FG[[)8T6F * 	vzz*CGG4v||,ciieDszz24 *)s    G88
Hr  )r   r   r   rp  r)  c                 T  ^ 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T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R/                  UR                  5      UR                  5        ['        TR/                  UR(                  5      UR(                  5        g )Nc                 ,   > STR                  U 5      -  $ r  r   r   s    r   rR  $TestNSum.test_integral.<locals>.logf{  s    bffQi<r   c                     SU -  $ )Nr   r1   rN  s    r   F!TestNSum.test_integral.<locals>.F~  s    6Mr   r   rV   r   rp  r)  )r   r   r   )r   r   r   r   r   T)axiskeepdimsr   rA  r   )r  r  r  r   r   )r  r    r  r  )rB   r   r7  newaxisr   reshapefloorr  r  broadcast_arraysr>   ndindexr%   r   r   r   r   r   rV  r   r   r   r    r   )r@   r  r   r.   rR  r  rS   r   r  nsteps
b_originalr  directr   lowhighref_sumref_errr,   aibistepir   r+   r   s     `                      r   test_integralTestNSum.test_integralv  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. ((t4
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           
      T  ^^ [         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!                  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R/                  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<   r1   r   s    r   r   BTestNSum.test_vectorization.<locals>.nsum_single.<locals>.<lambda>  s    !ad(r   r  )r   )rS   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   integersr   r   r'   r   	vectorizer   r   ravelr   r   r   r%   r   r   r   r   r   r
   r   r   )r@   r%   r   r  rS   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***	  zz#++++V4444zz#****J7777zz#((..*5555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   )rH   r   r>   r  r7  r   r   zetar   r   r  r   r   r   r   r  )
r@   r   r.   r   rS   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   rV  )r@   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   r`   c                     SU S-  -  $ r\   r1   r  s    r   r   )TestNSum.test_inclusive.<locals>.<lambda>      QaZr   i  g?r   )r  r  c                     SU S-  -  $ r\   r1   r  s    r   r   r    r   r   )r   r   r   rV  rU  r  r   )r@   r   rS   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      -  $ rF   )r    tanhr   r   )r   rS   r    r   s     r   r.   (TestNSum.test_infinite_bounds.<locals>.f  sc    <?BFF2771q5>*Qrvvay[8 >1r"&&)|(<<>r   )r   r    r   r   g|=rx  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   r7  r   r  r   r  r  r%   )r@   r    r   rS   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      $ rF   r  r   s    r   r.   )TestNSum.test_decreasing_check.<locals>.f  s    6616'?"r   ir   gtfԸ\?r   r   )r   r7  r>   r   r   r   r  r`  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   r`   c                 j    [         R                  " SS9   SU -  sS S S 5        $ ! , (       d  f       g = f)Nr   r   r   )r>   r   rN  s    r   r.   %TestNSum.test_special_case.<locals>.fB  s!    H-1u .--s   $
2r   r   r  r  r  r   r  )r   r   r  r   r   r  )r   )rB   r   r   r   r  rH   r>   r   r   r   r  broadcast_shapesr%   r   r   rn  r   r  r  r  r  r   )r@   r   r.   rS   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   rt  r7  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>.fa  s2    77e###qBJJqJ6666r   r   r   r   rA  r  r   r   )r   r   r   r   r  r   r   r7  r   r>   r   )	r@   r   r   r.   rS   r   r+   r   r   s	    ``      r   ry  TestNSum.test_dtype]  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\   r1   r  s    r   r.   .TestNSum.test_nondivisible_interval.<locals>.fv  s    qAv:r   gUUUUUU?r  r   r   r   )r  r  r   r   )r>   er  spacingr  lensetr   r7  r   r   diffr  r   )r@   r   r   r   r  r.   rS   r  b0r,   r   nsr+   s                r   test_nondivisible_interval#TestNSum.test_nondivisible_intervalo  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)Nr`   rV   c                 N    [         R                  R                  U S5      U S-  -  $ )NrV   r`   )r   	yulesimon_pmfrN  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  )r@   r   r   r.   r+   s        r   test_logser_kurtosis_gh20648%TestNSum.test_logser_kurtosis_gh20648  sz     oo$$Q*	5 [[*88AbffI&&&& + 1a %	 +*s   2B%%
B3r1   N),r  r  r  r  r>   r   r   r  uniformtolistr   rB   r   r   rS   r   r   r  r   rH   r   r  rO   r  r   r   r   r  r  r&   r   r  r  r  r  r"  r+  r0  r6  ry  rF  r  rO  r  r1   r   r   r  r    s/    ))

 3
4CAr#**,A
 UUAXaZBFBD66BDgBG \\!QBFBD66BDdBG BD<<2F<+BDrttQ'BFdBG<'| [[Zq!55 65& [[Z)<=09 >09d [[Wuwvy&IJ%4 K%4NL$"	7 [[UT5M2G 3G42,/Hb [[Wy)&<=J >J" [[Vi%;<9 =9. [[!!$7M!N& O&r   r  rL   )'r   r   r   numpyr>   numpy.testingr   (scipy._lib._elementwise_iterative_method_lib_elementwise_iterative_methodrC  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!   r4   r  r  r9   r  r1   r   r   <module>r^     sS   	    ) 6 6 H W W   A A 1 :.
+
$ J   6   D  E@ E@E@P g.NO09MNk.A>  M& M&	 B O PM&r   