
    ^Mh%                         d dl Zd dlmZmZmZmZmZ d dlm	Z	 d dl
mZmZmZ d dlmZ d dl mZmZ d Zd Zd	 Zd
 Zd ZdS )    N)assert_equalassert_almost_equalassert_allcloseassert_suppress_warnings)assert_func_equal)
ellip_harmellip_harm_2ellip_normal)IntegrationWarningsqrtpic            	      R  	
 d 	d 
d 
fd} 	fd}dt          d          dd	t          d
          dddfdt          d          ddt          d          dddfg}t                      5 }|                    t          d           |                    t          d           |D ]f}t	          |          } || } | | \  }}t          ||dd|           t          t          ||z
            dt          |          z  k     |           g	 d d d            d S # 1 swxY w Y   d S )Nc                    t          | dz  |dz  z  |dz  z  ||z  z            }t          | dz  |z
  |dz  |z
  z  ||dz  z
  z  |||z
  z  z            }t          | dz  |z
  ||dz  z
  z  ||dz  z
  z  |||z
  z  z            }|||fS )N   r   )lambda1munuh2k2xyzs           c/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/scipy/special/tests/test_ellip_harm.pychange_coefficientz0test_ellip_potential.<locals>.change_coefficient   s    !BE!"a%'B/00'1*r/BEBJ/b!e<b"r'lKLL'1*r/BQJ/b!e<b"r'lKLL!Qw    c                 x    t          |||||           t          |||||          z  t          |||||          z  S N)r	   r   r   r   npr   r   s          r   solid_int_ellipz-test_ellip_potential.<locals>.solid_int_ellip   sG    2r1a11*RQ22N2NNBAq"--. 	/r   c                 x    t          |||||           t          |||||          z  t          |||||          z  S r    r
   r	   r!   s          r   solid_int_ellip2z.test_ellip_potential.<locals>.solid_int_ellip2   sL    RQ733RQ2..//9"b!Q/K/KL 	Mr   c                 b   d}d}	t          d          D ]}
d}t          dd|
z  dz             D ]O}|dt          z   ||||
|||           | |||
|||          z  z  t          |||
|          d|
z  dz   z  z  z  }Pt          |          d|z  t          |	          z  k     r n|	|z  }	|	|fS )N:0yE>r         r      g?)ranger   r   abs)r   mu1nu1lambda2mu2nu2r   r   tolsum1r"   xsumr#   r$   r'   s                r   	summationz'test_ellip_potential.<locals>.summation   s    r 	 	AD1ac!e__ < <2wS!QBOO&&wS!QBGG H I!"b!Q//1q9; < 4yy3s73t99,,,DLDDTzr   c                      | ||||          \  }}	}
 |||||          \  }}}t          ||z
  dz  ||	z
  dz  z   ||
z
  dz  z             }d|z  S )Nr   r+   r   )r   r/   r0   r1   r2   r3   r   r   x1y1z1x2y2z2resr   s                  r   	potentialz'test_ellip_potential.<locals>.potential,   sw    ''c2rBB
B''c2rBB
BBGa<27Q,."r'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   r.   )r7   r@   ptssupr#   rM   exactresult	last_termr   r$   r'   s            @@@r   test_ellip_potentialrV      s     / / /M M M          
d2hh2tBxxB3	d2hhRb3B7	C
 
		 	F

%'IJJJ

%'KLLL 	F 	FA1ggGIqME )	1FIE6gNNNNC''"S^^*;;WEEEE	F		F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	Fs   .B DD #D c                     d } d }d }d }d }d }d }d }d	 }d
 }	d }
d }d }d }d }d }i d| d|d|d|d|d|d|d|d|d|
d|	d|d|d|d|d |fd!t          j                  fd"}t           j                            d#           t           j                            d$d%&          }|d%t           j                            d$|j        &          z   z  }g }t          d'          D ]d}t          d%d(|z  d(z             D ]K}|                    ||t          j        |j        |          t          j        |j        |          f           Let          j	        |          }t                      5 }|                    t          d)           t          t          ||d*+           d d d            d S # 1 swxY w Y   d S ),Nc                     dt           z  S )Nr,   r   r   r   s     r   G01ztest_ellip_norm.<locals>.G01E   s    tr   c                 (    dt           z  | z  |z  dz  S Nr,      rY   rZ   s     r   G11ztest_ellip_norm.<locals>.G11H   s    tBwrz!|r   c                 .    dt           z  | z  || z
  z  dz  S r]   rY   rZ   s     r   G12ztest_ellip_norm.<locals>.G12K       tBwR ""r   c                 .    dt           z  |z  || z
  z  dz  S r]   rY   rZ   s     r   G13ztest_ellip_norm.<locals>.G13N   rb   r   c                     d| dz  |dz  z   z  d| z  |z  | dz  |dz  z   z  z
  d| dz  z  |dz  z  z   t          | dz  |dz  z   | |z  z
            d| dz  |dz  z   z  d| z  |z  | |z   z  z   z  z   }dt          z  dz  |z  S )Nr   r,      r^   rG     r   r   r   r?   s      r   G22ztest_ellip_norm.<locals>.G22Q   s    "a%"a%- 1R47BEBEM#::Qr1uWRU]JRURU]RU"##RQQ%7!B$r'27:K%KLM"uSy}r   c                     d| dz  |dz  z   z  d| z  |z  | dz  |dz  z   z  z
  d| dz  z  |dz  z  z   t          | dz  |dz  z   | |z  z
            d| dz  |dz  z   z  d| z  |z  | |z   z  z
  z  z   }dt          z  dz  |z  S )Nr   r,   rf   r^   rG   rh   r   ri   s      r   G21ztest_ellip_norm.<locals>.G21V   s    "a%"a%- 1R47BEBEM#::Qr1uWRU]J
r1ur1u}r"u$
%
%q"a%"a%-'81R47BG;L'L
MN"uSy}r   c                 :    dt           z  | dz  z  |z  || z
  z  dz  S Nr,   r   rE   rY   rZ   s     r   G23ztest_ellip_norm.<locals>.G23[   s&    tBEz"}b2g&r))r   c                 :    dt           z  | z  |dz  z  || z
  z  dz  S rn   rY   rZ   s     r   G24ztest_ellip_norm.<locals>.G24^   s&    tBwr1u}b2g&r))r   c                 :    dt           z  | z  |z  || z
  dz  z  dz  S rn   rY   rZ   s     r   G25ztest_ellip_norm.<locals>.G25a   s&    tBwrz27Q,&r))r   c                    d| dz  |dz  z   z  d| z  |z  | dz  |dz  z   z  z
  d| dz  z  |dz  z  z   t          d| dz  |dz  z   z  d| z  |z  z
            d| dz  |dz  z   z  d	| z  |z  | |z   z  z   z  z   }dt          z  d
z  |z  | z  |z  S )NrG   r,   $   r   .      r^   rI   E3  r   ri   s      r   G32z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"r'.  "uU{2~b $$r   c                    d| dz  |dz  z   z  d| z  |z  | dz  |dz  z   z  z
  d| dz  z  |dz  z  z   t          d| dz  |dz  z   z  d| z  |z  z
            d| dz  |dz  z   z  d	| z  |z  | |z   z  z
  z  z   }dt          z  d
z  | z  |z  |z  S )NrG   r,   ru   r   rv   rw      r^   rI   ry   r   ri   s      r   G31z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"r'.  "uU{2~b $$r   c                 <   d| dz  z  d|dz  z  z   d| dz  z  |z  z
  d| z  |dz  z  z
  d| dz  z  |dz  z  z   t          | dz  d|dz  z  z   | |z  z
            d	| dz  z  d
|dz  z  z
  d| dz  z  |z  z   d| z  |dz  z  z   z  z   }dt          z  dz  | z  || z
  z  |z  S )Nrf   r,   rG      r^      "   r   ir|   	      ry   r   ri   s      r   G34ztest_ellip_norm.<locals>.G34p   s    QwBE!Br1uHRK/"R%A+=2q5QN
r1uqQwB&
'
'BEAb!eG);aAgbj)H,.rE"a%K*8 99 "uU{2~rBw'++r   c                 <   d| dz  z  d|dz  z  z   d| dz  z  |z  z
  d| z  |dz  z  z
  d| dz  z  |dz  z  z   t          | dz  d|dz  z  z   | |z  z
            d| dz  z  d	|dz  z  z   d
| dz  z  |z  z
  d| z  |dz  z  z
  z  z   }dt          z  dz  | z  || z
  z  |z  S )Nrf   r,   rG   r   r^   r   r   r   r|   r   r   ry   r   ri   s      r   G33ztest_ellip_norm.<locals>.G33v   s    QwBE!Br1uHRK/"R%A+=2q5QN
r1uqQwB&
'
'2q51RU7):Qr1uWRZ)G
2b!e*  "uU{2~rBw'++r   c                 <   d| dz  z  d|dz  z  z   d| dz  z  |z  z
  d| z  |dz  z  z
  d| dz  z  |dz  z  z   t          d| dz  z  |dz  z   | |z  z
            d	| dz  z  d|dz  z  z
  d
| dz  z  |z  z   d| z  |dz  z  z   z  z   }dt          z  dz  |z  || z
  z  |z  S )NrG   r,   rf   r   r^   r   r   r   rx   r   r   ry   r   ri   s      r   G36ztest_ellip_norm.<locals>.G36|   s    "a%x!BE'!Br1uHRK/"R%A+=2q5QN
qQwQB&
'
'BEAb!eG);bQhrk)I	"RU
*  "uU{2~rBw'++r   c                 <   d| dz  z  d|dz  z  z   d| dz  z  |z  z
  d| z  |dz  z  z
  d| dz  z  |dz  z  z   t          d| dz  z  |dz  z   | |z  z
            d	| dz  z  d|dz  z  z   d
| dz  z  |z  z
  d| z  |dz  z  z
  z  z   }dt          z  dz  |z  || z
  z  |z  S )NrG   r,   rf   r   r^   r   r   r   r|   r   r   ry   r   ri   s      r   G35ztest_ellip_norm.<locals>.G35   s    "a%x!BE'!Br1uHRK/"R%A+=2q5QN
qQwQB&
'
'2q51RU7):RAXb[)H	"RU
*  "uU{2~rBw'++r   c                 F    dt           z  | dz  z  |dz  z  || z
  dz  z  dz  S )Nr,   r   i   rY   rZ   s     r   G37ztest_ellip_norm.<locals>.G37   s/    tBEz"a%b1,S00r   r   r+   r+   r+   r+   r   r+   r^   r   r+   r   r   r   r^   r   r,   r      r^   r+   r^   r   r^   r^   r^   r,   r^   r   r^   rf   r^   rw   c                 0    | |f         } |||          S r     )r"   r#   r   r   funcknown_funcss        r   _ellip_normz$test_ellip_norm.<locals>._ellip_norm   s!    1a4 tB||r   c                       ||| |          S r    r   )r   r   r"   r#   r   s       r   ellip_normal_knownz+test_ellip_norm.<locals>.ellip_normal_known   s    {1aR(((r           ?r+   sizer,   r   rJ   -q=rL   )np	vectorizerandomseedparetor   r-   appendfullarrayr   rO   r   r   r   )r[   r_   ra   rd   rj   rl   ro   rq   rs   rz   r}   r   r   r   r   r   r   r   r   pointsr"   r#   rR   r   r   s                          @@r   test_ellip_normr   C   s       # # ## # #  
  
* * ** * ** * *% % %% % %, , ,, , ,, , ,, , ,1 1 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) ) ) ) ) INN4			#A		&	&B	q29##Cbg#666	7BF1XX N Nq!A#a% 	N 	NAMM2r2727A#6#68K8KLMMMM	NXfF			 P

%'IJJJ,(:FOOOOP P P P P P P P P P P P P P P P P Ps   4GGGc            
      6   d } t                      5 }|                    t          d           t           | ddd          ddt	          d          z  z             t          t          ddddd          d	           t          t          ddddd          d
           t          t          ddddd          d           t          t          ddddd          d           t          t          ddddd          d           d d d            d S # 1 swxY w Y   d S )Nc           
         t          | |dd|          dt          | |dd|          z  z  t          | |dd|          dt          | |dd|          z  z  z   t          | |dd|          dt          | |dd|          z  z  z   }|S )Nr+   r^   r   r&   )r   r   sr?   s       r   I1ztest_ellip_harm_2.<locals>.I1   s    BAq!,,a*RQ12M2M.MN
r2q!Q
'
'ZB1a-H-H)H
IJRQ1%%q:b"aA+F+F'FGH 
r   rJ   r   r|   rN   r+   i$"  r   g$;Q?gyoVQ?r^   g<i`Q?r,   gϙar~Q?gTzL۰Q?)r   rO   r   r   r   r
   )r   rR   s     r   test_ellip_harm_2r      s~      
		 	L

%'IJJJBBq!RLL!R_0E0E-E*FGGG 	LAq!R88:JKKKLAq!R88:JKKKLAq!R88:JKKKLAq!R88:JKKKLAq!R88:JKKK	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	Ls   C/DDDc                  f   d } d }d }d }d }d }d }d }d	 }d
 }	d }
d }d }d }d }d }t          t          ddddddd          t          ddddd                     i d| d|d|d|d|d|d|d|d|d|	d |
d!|d"|d#|d$|d%|g fd&}t          j                            d'          }|                    d(d)*          }|d|                    d(|j        *          z   z  }|                    d(|j        *          }g }t          |j                  D ]Y}t          d+          D ]G}t          dd|z  dz             D ].}|                    ||         ||         ||||         f           /HZt          j	        |          }t          t          ||d,-           d S ).Nc                     dS )Nr+   r   r   r   r   s      r   E01ztest_ellip_harm.<locals>.E01   s    qr   c                     |S r    r   r   s      r   E11ztest_ellip_harm.<locals>.E11   s    r   c                 F    t          t          ||z  | z
                      S r    r   r.   r   s      r   E12ztest_ellip_harm.<locals>.E12       C!bMM"""r   c                 F    t          t          ||z  |z
                      S r    r   r   s      r   E13ztest_ellip_harm.<locals>.E13   r   r   c           
      |    ||z  d| |z   t          t          | |z   | |z   z  d| z  |z  z
                      z   z  z
  S NgUUUUUU?r^   r   r   s      r   E21ztest_ellip_harm.<locals>.E21   I    sS27d3R"r'/B1R47/J+K+K&L&LLMMMr   c           
      |    ||z  d| |z   t          t          | |z   | |z   z  d| z  |z  z
                      z
  z  z
  S r   r   r   s      r   E22ztest_ellip_harm.<locals>.E22   r   r   c                 L    |t          t          ||z  | z
                      z  S r    r   r   s      r   E23ztest_ellip_harm.<locals>.E23   #    4AaC"H&&&&r   c                 L    |t          t          ||z  |z
                      z  S r    r   r   s      r   E24ztest_ellip_harm.<locals>.E24   r   r   c                 X    t          t          ||z  | z
  ||z  |z
  z                      S r    r   r   s      r   E25ztest_ellip_harm.<locals>.E25   s-    C1rAaC"H-..///r   c                 z    ||z  |z  |dz  d| |z   z  t          d| |z   z  | |z   z  d| z  |z  z
            z   z  z
  S Nr   r   r,   rE   r   r   s      r   E31ztest_ellip_harm.<locals>.E31   `    s1u!abkDBGb2g1F
2b2 - -    	r   c                 z    ||z  |z  |dz  d| |z   z  t          d| |z   z  | |z   z  d| z  |z  z
            z
  z  z
  S r   r   r   s      r   E32ztest_ellip_harm.<locals>.E32   r   r   c                     t          t          ||z  | z
                      ||z  d| d|z  z   t          t          | d|z  z   | d|z  z   z  d| z  |z  z
                      z   z  z
  z  S N皙?r   r   r   r   s      r   E33ztest_ellip_harm.<locals>.E33       C!bMM""AaC#QrT	T#r	"HAbDyGbDGG$ C% C% >& >& 0& +' %' ( 	(r   c                     t          t          ||z  | z
                      ||z  d| d|z  z   t          t          | d|z  z   | d|z  z   z  d| z  |z  z
                      z
  z  z
  z  S r   r   r   s      r   E34ztest_ellip_harm.<locals>.E34   r   r   c                     t          t          ||z  |z
                      ||z  dd| z  |z   t          t          d| z  |z   d| z  |z   z  d| z  |z  z
                      z   z  z
  z  S r   r   r   s      r   E35ztest_ellip_harm.<locals>.E35       C!bMM""AaC#"r	T#qt
HtbyGbDGG$ C% C% >& >& 0& +' %' ( 	(r   c                     t          t          ||z  |z
                      ||z  dd| z  |z   t          t          d| z  |z   d| z  |z   z  d| z  |z  z
                      z
  z  z
  z  S r   r   r   s      r   E36ztest_ellip_harm.<locals>.E36   r   r   c                 ^    |t          t          ||z  | z
  ||z  |z
  z                      z  S r    r   r   s      r   E37ztest_ellip_harm.<locals>.E37   s2    4QqS2X!b1223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           	          t          | j                  D ]d}t          ||                   t          ||                   f         }                     || |         ||         ||                              eS r    )r-   r   intr   )	r   r   r"   r#   r   ir   r   	point_refs	          r   ellip_harm_knownz)test_ellip_harm.<locals>.ellip_harm_known   st    rw 	7 	7AAaD		3qt9956DTT"Q%A!556666r   r   r      r   r,   r   r   )r   r	   r   r   RandomStater   r   r-   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      s2       # # ## # #N N NN N N' ' '' ' '0 0 0    ( ( (( ( (( ( (( ( (4 4 4 Aq!QQ2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Cbg...	/B

3RW
%%AF27^^ : :q 	: 	:A1ac!e__ : :r!ubeQ1Q489999:	: XfFj"2FGGGGGGr   c                  l    d} d| z  dz   }t          dd| |d          }t          j        |          sJ d S )Nr,   r   r   g       @r   )r	   r   isnan)r"   r#   rT   s      r   test_ellip_harm_invalid_pr     sE    	A	!aAS!Q,,F8Fr   )numpyr   numpy.testingr   r   r   r   r   scipy.special._testutilsr   scipy.specialr	   r
   r   scipy.integrater   r   r   rV   r   r   r   r   r   r   r   <module>r      s      7 7 7 7 7 7 7 7 7 7 7 7 7 7 6 6 6 6 6 6 @ @ @ @ @ @ @ @ @ @ . . . . . .        1F 1F 1FhaP aP aPHL L L(RH RH RHj    r   