
    (ph%                         S SK rS SKJrJrJrJrJr  S SKJ	r	  S SK
JrJrJr  S SKJr  S SK JrJr  S rS rS	 rS
 rS rg)    N)assert_equalassert_almost_equalassert_allcloseassert_suppress_warnings)assert_func_equal)
ellip_harmellip_harm_2ellip_normal)IntegrationWarningsqrtpic            
        ^	^
^ S m	S m
S mU
U4S jn U	4S jnS[        S5      SS	[        S
5      SSS4S[        S5      SS[        S5      SSS4/n[        5        nUR                  [        S5        UR                  [        S5        U HL  n[	        U5      nU" U6 nU " U6 u  px[        XgSSUS9  [        [        Xv-
  5      S[        U5      -  :  U5        MN     S S S 5        g ! , (       d  f       g = f)Nc                     [        U S-  US-  -  US-  -  X4-  -  5      n[        U S-  U-
  US-  U-
  -  X2S-  -
  -  X4U-
  -  -  5      n[        U S-  U-
  XAS-  -
  -  XBS-  -
  -  XDU-
  -  -  5      nXVU4$ )N   r   )lambda1munuh2k2xyzs           V/var/www/html/venv/lib/python3.13/site-packages/scipy/special/tests/test_ellip_harm.pychange_coefficient0test_ellip_potential.<locals>.change_coefficient   s    !BE!"a%'/0'1*r/BEBJ/!e<br'lKL'1*r/BQJ/!e<br'lKLQw    c                 T    [        XVX4U 5      [        XVX4U5      -  [        XVX4U5      -  $ N)r	   r   r   r   npr   r   s          r   solid_int_ellip-test_ellip_potential.<locals>.solid_int_ellip   s2    211*RQ22NNBA"-. 	/r   c                 T    [        XVX4U 5      [        XVX4U5      -  [        XVX4U5      -  $ r!   r
   r	   r"   s          r   solid_int_ellip2.test_ellip_potential.<locals>.solid_int_ellip2   s7    RQ73RQ2.//9"!/KL 	Mr   c                 .  > SnSn	[        S5       H~  n
Sn[        SSU
-  S-   5       H=  nUS[        -  T" X4XZXU5      T" XX*XU5      -  -  [        XgX5      SU
-  S-   -  -  -  nM?     [        U5      SU-  [        U	5      -  :  a    X4$ X-  n	M     U	W4$ )N:0yE>r         r      g?)ranger   r   abs)r   mu1nu1lambda2mu2nu2r   r   tolsum1r#   xsumr$   r%   r)   s                r   	summation'test_ellip_potential.<locals>.summation   s    rAD1ac!e_2wSQBO&wSQBG H I!"!/1q9; < % 4y3s73t9,,z LD  Tzr   c                    > T" XX&U5      u  pn
T" X4XVU5      u  pn[        X-
  S-  X-
  S-  -   X-
  S-  -   5      nSU-  $ )Nr   r.   r   )r   r2   r3   r4   r5   r6   r   r   x1y1z1x2y2z2resr   s                  r   	potential'test_ellip_potential.<locals>.potential,   sV    'crB
'crB
BGa<27Q,."'A=>ur   x      r   )               g	@      g333333@r-    The occurrence of roundoff errorz"The maximum number of subdivisionsr   r,   )atolrtolerr_msg
   )r   r   filterr   reprr   r   r1   )r:   rD   ptssupr$   rR   exactresult	last_termr   r%   r)   s            @@@r   test_ellip_potentialr[      s    /M 
d2h2tBxB3	d2hRb3B7	C
 
	

%'IJ

%'KLA1gGqME )1FEgNC'"S^*;;WE 	 
		s   A?C$$
C2c                    ^^ S n S nS nS nS nS nS nS nS	 nS
 n	S n
S nS nS nS nS n0 SU _SU_SU_SU_SU_SU_SU_SU_SU_SU
_SU	_SU_SU_SU_SU_S U_mU4S! jm[         R                  " T5      mU4S" jn[         R                  R                  S#5        [         R                  R	                  S$S%S&9nUS%[         R                  R	                  S$UR
                  S&9-   -  n/ n[        S'5       Ho  n[        S%S(U-  S(-   5       HV  nUR                  UU[         R                  " UR
                  U5      [         R                  " UR
                  U5      45        MX     Mq     [         R                  " U5      n[        5        nUR                  [        S)5        [        [        UUS*S+9  S S S 5        g ! , (       d  f       g = f),Nc                     S[         -  $ )Nr/   r   r   r   s     r   G01test_ellip_norm.<locals>.G01E   s    tr   c                 &    S[         -  U -  U-  S-  $ Nr/      r^   r_   s     r   G11test_ellip_norm.<locals>.G11H   s    tBwrz!|r   c                 *    S[         -  U -  X-
  -  S-  $ rc   r^   r_   s     r   G12test_ellip_norm.<locals>.G12K       tBw ""r   c                 *    S[         -  U-  X-
  -  S-  $ rc   r^   r_   s     r   G13test_ellip_norm.<locals>.G13N   rj   r   c                     SU S-  US-  -   -  SU -  U-  U S-  US-  -   -  -
  SU S-  -  US-  -  -   [        U S-  US-  -   X-  -
  5      SU S-  US-  -   -  SU -  U-  X-   -  -   -  -   nS[        -  S-  U-  $ )Nr   r/      rd   rL     r   r   r   rC   s      r   G22test_ellip_norm.<locals>.G22Q   s    "a%"a%- 1R47BEBEM#::Qr1uWRU]JRURU]RU"#RQQ%7!B$r'27:K%KLM"uSy}r   c                     SU S-  US-  -   -  SU -  U-  U S-  US-  -   -  -
  SU S-  -  US-  -  -   [        U S-  US-  -   X-  -
  5      SU S-  US-  -   -  SU -  U-  X-   -  -
  -  -   nS[        -  S-  U-  $ )Nr   r/   ro   rd   rL   rq   r   rr   s      r   G21test_ellip_norm.<locals>.G21V   s    "a%"a%- 1R47BEBEM#::Qr1uWRU]J
r1ur1u}ru$
%q"a%"a%-'81R47BG;L'L
MN"uSy}r   c                 6    S[         -  U S-  -  U-  X-
  -  S-  $ Nr/   r   rJ   r^   r_   s     r   G23test_ellip_norm.<locals>.G23[   s$    tBEz"}bg&r))r   c                 6    S[         -  U -  US-  -  X-
  -  S-  $ ry   r^   r_   s     r   G24test_ellip_norm.<locals>.G24^   s$    tBwr1u}bg&r))r   c                 6    S[         -  U -  U-  X-
  S-  -  S-  $ ry   r^   r_   s     r   G25test_ellip_norm.<locals>.G25a   s$    tBwrz27Q,&r))r   c                    SU S-  US-  -   -  SU -  U-  U S-  US-  -   -  -
  SU S-  -  US-  -  -   [        SU S-  US-  -   -  SU -  U-  -
  5      SU S-  US-  -   -  S	U -  U-  X-   -  -   -  -   nS[        -  S
-  U-  U -  U-  $ )NrL   r/   $   r   .      rd   rN   E3  r   rr   s      r   G32test_ellip_norm.<locals>.G32d   s    2q52q5=!BrE"Hb!eb!em$<<r"a%xA~M
q"a%"a%- 1R47*
+RQQ-?
2b"'.  "uU{2~b $$r   c                    SU S-  US-  -   -  SU -  U-  U S-  US-  -   -  -
  SU S-  -  US-  -  -   [        SU S-  US-  -   -  SU -  U-  -
  5      SU S-  US-  -   -  S	U -  U-  X-   -  -
  -  -   nS[        -  S
-  U -  U-  U-  $ )NrL   r/   r   r   r   r      rd   rN   r   r   rr   s      r   G31test_ellip_norm.<locals>.G31j   s    2q52q5=!BrE"Hb!eb!em$<<r"a%xA~M
q"a%"a%- 1R47*
+QAA->
2b"'.  "uU{2~b $$r   c                 .   SU S-  -  SUS-  -  -   SU S-  -  U-  -
  SU -  US-  -  -
  SU S-  -  US-  -  -   [        U S-  SUS-  -  -   X-  -
  5      S	U S-  -  S
US-  -  -
  SU S-  -  U-  -   SU -  US-  -  -   -  -   nS[        -  S-  U -  X-
  -  U-  $ )Nro   r/   rL      rd      "   r   ir   	      r   r   rr   s      r   G34test_ellip_norm.<locals>.G34p   s    QwBE!Br1uHRK/"R%A+=2q5QN
r1uqQw&
'BEAb!eG);aAgbj)H,.rE"a%K*8 99 "uU{2~rw'++r   c                 .   SU S-  -  SUS-  -  -   SU S-  -  U-  -
  SU -  US-  -  -
  SU S-  -  US-  -  -   [        U S-  SUS-  -  -   X-  -
  5      SU S-  -  S	US-  -  -   S
U S-  -  U-  -
  SU -  US-  -  -
  -  -   nS[        -  S-  U -  X-
  -  U-  $ )Nro   r/   rL   r   rd   r   r   r   r   r   r   r   r   rr   s      r   G33test_ellip_norm.<locals>.G33v   s    QwBE!Br1uHRK/"R%A+=2q5QN
r1uqQw&
'2q51RU7):Qr1uWRZ)G
2b!e*  "uU{2~rw'++r   c                 .   SU S-  -  SUS-  -  -   SU S-  -  U-  -
  SU -  US-  -  -
  SU S-  -  US-  -  -   [        SU S-  -  US-  -   X-  -
  5      S	U S-  -  SUS-  -  -
  S
U S-  -  U-  -   SU -  US-  -  -   -  -   nS[        -  S-  U-  X-
  -  U-  $ )NrL   r/   ro   r   rd   r   r   r   r   r   r   r   r   rr   s      r   G36test_ellip_norm.<locals>.G36|   s    "a%x!BE'!Br1uHRK/"R%A+=2q5QN
qQwQ&
'BEAb!eG);bQhrk)I	"RU
*  "uU{2~rw'++r   c                 .   SU S-  -  SUS-  -  -   SU S-  -  U-  -
  SU -  US-  -  -
  SU S-  -  US-  -  -   [        SU S-  -  US-  -   X-  -
  5      S	U S-  -  SUS-  -  -   S
U S-  -  U-  -
  SU -  US-  -  -
  -  -   nS[        -  S-  U-  X-
  -  U-  $ )NrL   r/   ro   r   rd   r   r   r   r   r   r   r   r   rr   s      r   G35test_ellip_norm.<locals>.G35   s    "a%x!BE'!Br1uHRK/"R%A+=2q5QN
qQwQ&
'2q51RU7):RAXb[)H	"RU
*  "uU{2~rw'++r   c                 B    S[         -  U S-  -  US-  -  X-
  S-  -  S-  $ )Nr/   r   i   r^   r_   s     r   G37test_ellip_norm.<locals>.G37   s-    tBEz"a%1,S00r   r   r.   r.   r.   r.   r   r.   rd   r   r.   r   r   r   rd   r   r/   r      rd   r.   rd   r   rd   rd   rd   r/   rd   r   rd   ro   rd   r   c                     > TX4   nU" X#5      $ r!    )r#   r$   r   r   funcknown_funcss        r   _ellip_norm$test_ellip_norm.<locals>._ellip_norm   s    14 B|r   c                    > T" X#X5      $ r!   r   )r   r   r#   r$   r   s       r   ellip_normal_known+test_ellip_norm.<locals>.ellip_normal_known   s    1((r           ?r.   sizer/   r   rO   -q=rQ   )np	vectorizerandomseedparetor   r0   appendfullarrayr   rT   r   r   r   )r`   re   rh   rl   rs   rv   rz   r}   r   r   r   r   r   r   r   r   r   r   r   pointsr#   r$   rW   r   r   s                          @@r   test_ellip_normr   C   s   ##

***%%,,,,1G63 G GVS G&# G3G &G-3SG:@#G3G &G-3SG:@#G 3G !'G .4SG ;A#GK
 ,,{+K) IINN4			#A		&B	q299##Cbgg#66	7BF1Xq!A#a%AMM2r277277A#68KLM !  XXfF		

%'IJ,(:FO 
		s   'G
Gc            
         S n [        5        nUR                  [        S5        [        U " SSS5      SS[	        S5      -  -  5        [        [        SSSSS5      S	5        [        [        SSSSS5      S
5        [        [        SSSSS5      S5        [        [        SSSSS5      S5        [        [        SSSSS5      S5        S S S 5        g ! , (       d  f       g = f)Nc           
          [        XSSU5      S[        XSSU5      -  -  [        XSSU5      S[        XSSU5      -  -  -   [        XSSU5      S[        XSSU5      -  -  -   nU$ )Nr.   rd   r   r(   )r   r   srC   s       r   I1test_ellip_harm_2.<locals>.I1   s    BAq!,a*RQ12M.MN
rq!Q
'Z1a-H)H
IJRQ1%q:baA+F'FGH 
r   rO   r   r   rS   r.   i$"  r   g$;Q?gyoVQ?rd   g<i`Q?r/   gϙar~Q?gTzL۰Q?)r   rT   r   r   r   r
   )r   rW   s     r   test_ellip_harm_2r      s     
	

%'IJBq!RL!R_0E-E*FG 	LAq!R8:JKLAq!R8:JKLAq!R8:JKLAq!R8:JKLAq!R8:JK 
		s   B7C
Cc                    ^^ S n S nS nS nS nS nS nS nS	 nS
 n	S n
S nS nS nS nS n[        [        SSSSSSS5      [        SSSSS5      5        0 SU _SU_SU_SU_SU_SU_SU_SU_SU_SU	_S U
_S!U_S"U_S#U_S$U_S%U_m/ mUU4S& jn[        R                  R	                  S'5      nUR                  S(S)S*9nUSUR                  S(UR                  S*9-   -  nUR                  S(UR                  S*9n/ n[        UR                  5       HM  n[        S+5       H;  n[        SSU-  S-   5       H"  nUR                  UU   UU   UUUU   45        M$     M=     MO     [        R                  " U5      n[        [        UUS,S-9  g ).Nc                     g)Nr.   r   r   r   r   s      r   E01test_ellip_harm.<locals>.E01   s    r   c                     U$ r!   r   r   s      r   E11test_ellip_harm.<locals>.E11   s    r   c                 4    [        [        X"-  U -
  5      5      $ r!   r   r1   r   s      r   E12test_ellip_harm.<locals>.E12       CbM""r   c                 4    [        [        X"-  U-
  5      5      $ r!   r   r   s      r   E13test_ellip_harm.<locals>.E13   r   r   c           
      d    X"-  SX-   [        [        X-   X-   -  SU -  U-  -
  5      5      -   -  -
  $ NgUUUUUU?rd   r   r   s      r   E21test_ellip_harm.<locals>.E21   ;    sS27d3"'/B1R47/J+K&LLMMMr   c           
      d    X"-  SX-   [        [        X-   X-   -  SU -  U-  -
  5      5      -
  -  -
  $ r   r   r   s      r   E22test_ellip_harm.<locals>.E22   r   r   c                 :    U[        [        X"-  U -
  5      5      -  $ r!   r   r   s      r   E23test_ellip_harm.<locals>.E23       4AC"H&&&r   c                 :    U[        [        X"-  U-
  5      5      -  $ r!   r   r   s      r   E24test_ellip_harm.<locals>.E24   r   r   c                 D    [        [        X"-  U -
  X"-  U-
  -  5      5      $ r!   r   r   s      r   E25test_ellip_harm.<locals>.E25   s#    CrAC"H-.//r   c                 j    X"-  U-  US-  SX-   -  [        SX-   -  X-   -  SU -  U-  -
  5      -   -  -
  $ Nr   r   r/   rJ   r   r   s      r   E31test_ellip_harm.<locals>.E31   S    s1u!akDBGbg1F
2b2 -    	r   c                 j    X"-  U-  US-  SX-   -  [        SX-   -  X-   -  SU -  U-  -
  5      -
  -  -
  $ r   r   r   s      r   E32test_ellip_harm.<locals>.E32   r   r   c                     [        [        X"-  U -
  5      5      X"-  SU SU-  -   [        [        U SU-  -   U SU-  -   -  SU -  U-  -
  5      5      -   -  -
  -  $ N皙?r   r   r   r   s      r   E33test_ellip_harm.<locals>.E33   }    CbM"AC#QrT	T#r	"HAbDyGbDGG$ C% >& 0& +' %' ( 	(r   c                     [        [        X"-  U -
  5      5      X"-  SU SU-  -   [        [        U SU-  -   U SU-  -   -  SU -  U-  -
  5      5      -
  -  -
  -  $ r   r   r   s      r   E34test_ellip_harm.<locals>.E34   r  r   c                     [        [        X"-  U-
  5      5      X"-  SSU -  U-   [        [        SU -  U-   SU -  U-   -  SU -  U-  -
  5      5      -   -  -
  -  $ r   r   r   s      r   E35test_ellip_harm.<locals>.E35   }    CbM"AC#"r	T#qt
HtbyGbDGG$ C% >& 0& +' %' ( 	(r   c                     [        [        X"-  U-
  5      5      X"-  SSU -  U-   [        [        SU -  U-   SU -  U-   -  SU -  U-  -
  5      5      -
  -  -
  -  $ r   r   r   s      r   E36test_ellip_harm.<locals>.E36   r	  r   c                 J    U[        [        X"-  U -
  X"-  U-
  -  5      5      -  $ r!   r   r   s      r   E37test_ellip_harm.<locals>.E37   s(    4QS2Xb12333r   r   r   r.   r   g      @r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   c           	         > [        U R                  5       H?  nT[        X%   5      [        X5   5      4   nTR                  U" X   X   XE   5      5        MA     T$ r!   )r0   r   intr   )	r   r   r#   r$   r   ir   r   	point_refs	          r   ellip_harm_known)test_ellip_harm.<locals>.ellip_harm_known   sU    rwwAAD	3qt956DT"%56   r   r   r      r   r/   r   r   )r   r	   r   r   RandomStater   r   r0   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  rngr   r   r   r   r  r#   r$   r   r  s                            @@r   test_ellip_harmr     s(   ##NN''0((((4 Aq!QQ2q!Q3!G63 G GVS G&# G3G &G-3SG:@#G3G &G-3SG:@#G 3G !'G .4SG ;A#GK
 I ))


%C	Cb	!B	QCbgg..	/B

3RWW
%AF277^qA1ac!e_r!ubeQ1Q489 %   XXfFj"2FGr   c                  n    Sn SU -  S-   n[        SSXS5      n[        R                  " U5      (       d   eg )Nr/   r   r   g       @r   )r	   r   isnan)r#   r$   rY   s      r   test_ellip_harm_invalid_pr    s9    	A	!aAS!,F88Fr   )numpyr   numpy.testingr   r   r   r   r   scipy.special._testutilsr   scipy.specialr	   r
   r   scipy.integrater   r   r   r[   r   r   r  r  r   r   r   <module>r"     sE    7 7 6 @ @ . 1FhaPHL(RHjr   