
    tKg%                         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y)    N)assert_equalassert_almost_equalassert_allcloseassert_suppress_warnings)assert_func_equal)
ellip_harmellip_harm_2ellip_normal)IntegrationWarningsqrtpic            	        	
 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 }|j                  t        d       |j                  t        d       |D ]Q  }t	        |      } || } | | \  }}t        ||dd|       t        t        ||z
        dt        |      z  k  |       S 	 d d d        y # 1 sw Y   y xY w)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           g/home/alanp/www/video.onchill/myenv/lib/python3.12/site-packages/scipy/special/tests/test_ellip_harm.pychange_coefficientz0test_ellip_potential.<locals>.change_coefficient   s    !BE!"a%'B/0'1*r/BEBJ/b!e<b"r'lKL'1*r/BQJ/b!e<b"r'lKL!Qw    c                 `    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   s>    2r1a1*RQ22NNBAq"-. 	/r   c                 `    t        |||||       t        |||||      z  t        |||||      z  S r    r
   r	   r!   s          r   solid_int_ellip2z.test_ellip_potential.<locals>.solid_int_ellip2   sC    RQ73RQ2.//9"b!Q/KL 	Mr   c                 8   d}d}	t        d      D ]  }
d}t        dd|
z  dz         D ]D  }|dt        z   ||||
|||       | |||
|||      z  z  t        |||
|      d|
z  dz   z  z  z  }F t        |      d|z  t        |	      z  k  r |	|fS |	|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&wS!QBG H I!"b!Q/1q9; < % 4y3s73t9,,Tz DLD  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,   sh    'c2rB
B'c2r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 
d2h2tBxB3	d2hRb3B7	C
 
	

%'IJ

%'KLA1gGqME )1FIE6gNC'"S^*;;WE 	 
		s   BC''C0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                  j                  d#       t         j                  j	                  d$d%&      }|d%t         j                  j	                  d$|j
                  &      z   z  }g }t        d'      D ]j  }t        d%d(|z  d(z         D ]S  }|j                  ||t        j                  |j
                  |      t        j                  |j
                  |      f       U l t        j                  |      }t               5 }|j                  t        d)       t        t        ||d*+       d d d        y # 1 sw Y   y xY w),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                 8    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                 8    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                 8    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                 2   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                 2   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                 2   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                 2   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                 D    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                 $    | |f   } |||      S r     )r"   r#   r   r   funcknown_funcss        r   _ellip_normz$test_ellip_norm.<locals>._ellip_norm   s    1a4 B|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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            
         d } t               5 }|j                  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        y # 1 sw Y   y xY w)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12M.MN
r2q!Q
'ZB1a-H)H
IJRQ1%q:b"aA+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     
	

%'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                  x   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                  j	                  d'       t        j                  j                  d(d)*      }|dt        j                  j                  d(|j                  *      z   z  }t        j                  j                  d(|j                  *      }g }t        |j                        D ]H  }t        d+      D ]8  }t        dd|z  dz         D ]!  }|j                  ||   ||   ||||   f       # : J t        j                  |      }t        t        ||d,-       y ).Nc                      y)Nr+   r   r   r   r   s      r   E01ztest_ellip_harm.<locals>.E01   s    r   c                     |S r    r   r   s      r   E11ztest_ellip_harm.<locals>.E11   s    r   c                 6    t        t        ||z  | z
              S r    r   r.   r   s      r   E12ztest_ellip_harm.<locals>.E12       C!bM""r   c                 6    t        t        ||z  |z
              S r    r   r   s      r   E13ztest_ellip_harm.<locals>.E13   r   r   c           
      l    ||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   C    sS27d3R"r'/B1R47/J+K&LLMMMr   c           
      l    ||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                 <    |t        t        ||z  | z
              z  S r    r   r   s      r   E23ztest_ellip_harm.<locals>.E23       4AaC"H&&&r   c                 <    |t        t        ||z  |z
              z  S r    r   r   s      r   E24ztest_ellip_harm.<locals>.E24   r   r   c                 H    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                 r    ||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                 r    ||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M"AaC#QrT	T#r	"HAbDyGbDGG$ 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M"AaC#"r	T#qt
HtbyGbDGG$ 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                 N    |t        t        ||z  | z
  ||z  |z
  z              z  S r    r   r   s      r   E37ztest_ellip_harm.<locals>.E37   s,    4QqS2X!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           	          t        | j                        D ]C  }t        ||         t        ||         f   }j                   || |   ||   ||                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   s_    rwwAAaD	3qt956DT"Q%A!56   r   r   r      r   r,   r   r   )r   r	   r   r   r   r   r   r-   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r"   r#   r   r   s                           @@r   test_ellip_harmr      s9   ##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 IINN4			#B		'B	Q!!#BGG!44	5B
		277+AF277^qA1ac!e_r!ubeQ1Q489 %   XXfFj"2FGr   c                  d    d} d| z  dz   }t        dd| |d      }t        j                  |      sJ y )Nr,   r   r   g       @r   )r	   r   isnan)r"   r#   rT   s      r   test_ellip_harm_invalid_pr     s8    	A	!aAS!Q,F88F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      sE    7 7 6 @ @ . 1FhaPHL(RHjr   