
    (phE                     >   S SK r S SKr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JrJrJr   " S S5      r " S S5      r " S	 S
5      r " S S5      r " S S5      r " S S5      rS rSSS.S jrSSS.S jrSSS.S jrSSS.S jrSSS.S jrSSS.S jrSSS.S jr SSS.S jr!SSS.S jr"SSS.S jr#SSS.S jr$SSS.S  jr%SSS.S! jr&SSS.S" jr'SSS.S# jr(SSS.S$ jr)SSS.S% jr*SSS.S& jr+SSS.S' jr,SSS.S( jr-SSS.S) jr.SSS.S* jr/SSS.S+ jr0SSS.S, jr1SSS.S- jr2S{S. jr3SSS.S/ jr4SSS.S0 jr5SSS.S1 jr6SSS.S2 jr7SSS.S3 jr8SSS.S4 jr9SSS.S5 jr:SSS.S6 jr;SSS.S7 jr<SSS.S8 jr=SSS.S9 jr>SSS.S: jr?SSS.S; jr@SSS.S< jrASSS.S= jrBSSS.S> jrCSSS.S? jrDSSS.S@ jrESSS.SA jrFSSS.SB jrGSSS.SC jrHSSS.SD jrISSS.SE jrJSSS.SF jrKSSS.SG jrLSH rMSI rNSJ rOSK rPSL rQSM rRSN rSSO rTSP rUSQ rVSR rWSS rXST rYSU rZSV r[SW r\SX r]SY r^SZ r_S[ r`S\ raS] rbS^ rcS_ rdS` reSa rfSb rgSc rhSd riSe rjSf rkSg rlSh rmSi rnSj roSk rpSl rqSm rrSn rsSo rtSp ruSq rvSr rwSs rxSt rySu rzSv r{Sw r|Sx r}Sy r~Sz rg)|    N)assert_equalassert_almost_equalassert_array_almost_equalassert_allclosesuppress_warnings)special)
legendre_plegendre_p_allassoc_legendre_passoc_legendre_p_allsph_legendre_psph_legendre_p_allc                       \ rS rSrS r\R                  R                  S/ SQ5      \R                  R                  S/ SQ5      \R                  R                  S/ SQ5      S	 5       5       5       rS
r	g)TestLegendre   c                    [         R                  " S5      n[         R                  " S5      n[         R                  " S5      n[         R                  " S5      n[         R                  " S5      n[         R                  " S5      n[        UR                  S/5        [        UR                  SS/5        [	        UR                  [
        R                  " / SQ5      S-  S	S
9  [	        UR                  [
        R                  " / SQ5      S-  5        [	        UR                  [
        R                  " / SQ5      S-  5        [	        UR                  [
        R                  " / SQ5      S-  5        g )Nr                  )r   r   g       @   )decimal)r   r   r   )#   r   ir   r   g       @)?   r   ir      r   )r   legendrer   cr   nparray)selfleg0leg1leg2leg3leg4leg5s          T/var/www/html/venv/lib/python3.13/site-packages/scipy/special/tests/test_legendre.pytest_legendreTestLegendre.test_legendre   s    """"""TVVaS!TVVaU#DFFBHHX$6s$:BGDFFBHHZ$8$<=DFFBHH^$<S$@ADFFBHH->$?$CD    n)r   r   r   r   r   zr)g?g{ɚ)@gue#gbLd?g7f?zi)go^#@g"1?g7ܘ~ @g^26g6n"c                 8   [        5        nUR                  [        S9  [        R                  " XUS-  -   5      n[        R
                  " SXUS-  -   5      nS S S 5        [        WS   WS   S   5        [        US   US   S   5        g ! , (       d  f       N9= f)Ncategory              ?r   r   )r   filterDeprecationWarningr   lpnclpmnr   )r#   r.   r/   r0   supreslpnresclpmns          r*   test_lpn_against_clpmn#TestLegendre.test_lpn_against_clpmn%   s      CJJ 2J3[[BJ/F}}Qbe84H !
 	q	8A;q>2q	8A;q>2 ! s   AB
B N)
__name__
__module____qualname____firstlineno__r+   pytestmarkparametrizer<   __static_attributes__r>   r-   r*   r   r      si    E [[S/2[[T $: ;[[T $0 131; 3
3r-   r   c                       \ rS rSr\R
                  R                  S/ SQ5      S 5       r\R
                  R                  S/ SQ5      \R
                  R                  S/ SQ5      S 5       5       rS	 r	S
r
g)TestLegendreP3   shape
   r   	   r   r      c                    [         R                  R                  S5      nUR                  SSU5      nUR	                  SSU5      n[        X4SS9u  pVnUR                  U:X  d   eUR                  UR                  :X  d   eUR                  UR                  :X  d   eSXD-  -
  U-  SU-  U-  -
  X3S-   -  U-  -   n[         R                  R                  USSS	9  g )
N  r   d   r   r   r   diff_n绽|=atol)	r!   randomdefault_rngintegersuniformr	   rJ   testingr   )	r#   rJ   rngr.   xpp_jacp_hesserrs	            r*   test_odeTestLegendreP.test_ode4   s    ii##D)LLC'KKAu%%a15&ww%{{agg%%%||u{{***15yF"QUU]2Qa%[1_D


""3"6r-   n_maxr   r   r             x_shapec           
      Z   [         R                  R                  S5      nUR                  SSU5      n[	        XSS9u  pVn[         R
                  " US-   5      n[         R                  " U[        [        SUR                  S-   5      5      S9nUR                  [        U5      4UR                  -   :X  d   eUR                  UR                  :X  d   eUR                  UR                  :X  d   eSXD-  -
  U-  SU-  U-  -
  XS-   -  U-  -   n	[         R                  R                  U	SSS	9  g )
NrS   r   r   r   rU   axisr   rW   rX   )r!   rZ   r[   r]   r
   arangeexpand_dimstuplerangendimrJ   lenr^   r   )
r#   rg   rl   r_   r`   ra   rb   rc   r.   rd   s
             r*   test_all_odeTestLegendreP.test_all_odeD   s    ii##D)KKAw')%1=&IIeai NN1U5AFFQJ+?%@Aww3q6)agg----{{agg%%%||u{{***15yF"QUU]2Qa%[1_D


""3"6r-   c                     [        5        nUR                  [        S9  [        R                  " SS5      u  p#S S S 5        [        W/ SQS5        [        W/ SQS5        g ! , (       d  f       N-= f)Nr2   r         ?)      ?ry         r   )        rz   g      ?)r   r5   r6   r   r7   r   )r#   r9   ra   pds       r*   test_legacyTestLegendreP.test_legacyV   sU     CJJ 2J3KK3'EA ! 	"!%A1E!"&A1E ! s   -A
A-r>   N)r?   r@   rA   rB   rC   rD   rE   re   rv   r~   rF   r>   r-   r*   rH   rH   3   sn    [[W&@A7 B7 [[W&:;[[Y(BC7 D <7 Fr-   rH   c                      \ rS rSr\R
                  R                  S/ SQ5      \R
                  R                  SSS/5      \R
                  R                  SSS	/5      S
 5       5       5       r\R
                  R                  S/ SQ5      \R
                  R                  SSS/5      S 5       5       r\R
                  R                  S/ SQ5      S 5       r	\R
                  R                  S/ SQ5      \R
                  R                  SSS/5      S 5       5       r
\R
                  R                  SS/5      \R
                  R                  SS	/5      \R
                  R                  SSS/5      S 5       5       5       r\R
                  R                  S/ SQ5      \R
                  R                  SS	/5      S 5       5       rSrg)TestAssocLegendreP^   rJ   rL   rN   )r   r   rQ   rM   m_maxr   r   rg   rQ   rM   c                    [         R                  R                  S5      nUR                  SSU5      n[	        X#USS9u  pgn[         R
                  " US-   5      n	[         R                  " U	[        [        SUR                  S-   5      5      S9n	[         R                  " [         R
                  " US-   5      [         R
                  " U* S5      /5      n
[         R                  " U
S	[        [        SUR                  S-   5      5      -   S9n
[         R                  " US
S9n[        XUSS9u  pn[         R                  R                  X5        [         R                  R                  X5        [         R                  R                  X5        g )NrS   GzGz?r   rU   r   rn   r   r   r   r   )r!   rZ   r[   r]   r   rp   rq   rr   rs   rt   concatenater   r^   r   )r#   rJ   rg   r   r_   r`   p_all	p_all_jac
p_all_hessr.   mra   rb   rc   s                 r*   	test_lpmnTestAssocLegendreP.test_lpmn_   s&    ii##D)KKtU+ q; 	%* IIeai NN1U5AFFQJ+?%@ANNBIIeai0"))UFA2FGHNN1TE%166A:2F,G%GHNN1V,+A!A>&


""1,


""54


""66r-   normTFc           	         [         R                  R                  S5      nUR                  SSU5      nUR                  SSU5      nUR	                  SSU5      n[        XEXbSS9u  pxn	UR                  U:X  d   eUR                  UR                  :X  d   eU	R                  UR                  :X  d   e[         R                  R                  SXf-  -
  U	-  SU-  U-  XDS-   -  XU-  SXf-  -
  -  -
  U-  -
  S	S
S9  g )NrS   r   rM   r   r   r   r   rV   h㈵>:0yE>rtolrY   )	r!   rZ   r[   r\   r]   r   rJ   r^   r   )
r#   rJ   r   r_   r.   r   r`   ra   rb   rc   s
             r*   re   TestAssocLegendreP.test_odev   s     ii##D)LLB&LLb%(KKAu%+A!qI&ww%{{agg%%%||u{{***


""AI#7EEMQa%[15AI+>>!CCU 	# 	$r-   rK   c                    [         R                  R                  S5      nSnSnUR                  SSU5      n[	        X4USS9u  pgn[         R
                  " [         R                  " US-   5      [         R                  " U* S5      /5      n	[         R                  " US-   5      n
[         R                  " U
[        [        SUR                  S-   5      5      S	9n
[         R                  " U	S
[        [        SUR                  S-   5      5      -   S	9n	[         R                  R                  SXU-  -
  U-  SU-  U-  XS-   -  X-  SXU-  -
  -  -
  U-  -
  SSS9  g )NrS      r   r   r   rU   r   r   rn   r   r   r   r   )r!   rZ   r[   r]   r   r   rp   rq   rr   rs   rt   r^   r   )r#   rJ   r_   rg   r   r`   ra   rb   rc   r   r.   s              r*   test_allTestAssocLegendreP.test_all   s'   ii##D)KKtU+/aJ&NNBIIeai0"))UFA2FGHIIeai NN1U5AFFQJ+?%@ANN1TE%166A:2F,G%GH


""AI#7EEMQa%[15AI+>>!CCU 	# 	$r-   c                    [         R                  R                  S5      nUR                  SSU5      n[	        SSXBSS9u  pV[         R
                  R                  US   [        XBS95        [         R
                  R                  US	   S
5        [         R
                  R                  US   S
5        [         R
                  R                  US   S
5        [         R
                  R                  US   S
5        [         R
                  R                  US   S
5        [         R
                  R                  US   S
5        [         R
                  R                  US   S
5        [         R
                  R                  US   [        XBS95        [         R
                  R                  US   [        XBS95        [         R
                  R                  US   S
5        [         R
                  R                  US   S
5        [         R
                  R                  US   S
5        [         R
                  R                  US   S
5        [         R
                  R                  US   S
5        [         R
                  R                  US   S
5        [         R
                  R                  US   [        XBS95        [         R
                  R                  US   [        XBS95        [         R
                  R                  US   [        XBS95        [         R
                  R                  US   [        XBS95        [         R
                  R                  US   S
5        [         R
                  R                  US   S
5        [         R
                  R                  US   S
5        [         R
                  R                  US    S
5        [         R
                  R                  US!   [        XBS95        [         R
                  R                  US"   [        XBS95        [         R
                  R                  US#   [!        XBS95        [         R
                  R                  US$   [#        XBS95        [         R
                  R                  US%   [%        XBS95        [         R
                  R                  US&   ['        XBS95        [         R
                  R                  US'   S
5        [         R
                  R                  US(   S
5        [         R
                  R                  US)   [)        XBS95        [         R
                  R                  US*   [+        XBS95        [         R
                  R                  US+   [-        XBS95        [         R
                  R                  US,   [/        XBS95        [         R
                  R                  US-   [1        XBS95        [         R
                  R                  US.   [3        XBS95        [         R
                  R                  US/   [5        XBS95        [         R
                  R                  US0   [7        XBS95        [         R
                  R                  US1   [9        XBS95        [         R
                  R                  US2   [;        XBS95        [         R
                  R                  US3   [=        XBS95        [         R
                  R                  US4   [?        XBS95        [         R
                  R                  US   [A        XBS95        [         R
                  R                  US	   S
5        [         R
                  R                  US   S
5        [         R
                  R                  US   S
5        [         R
                  R                  US   S
5        [         R
                  R                  US5   S
5        [         R
                  R                  US   S
5        [         R
                  R                  US   S
5        [         R
                  R                  US   S
5        [         R
                  R                  US   [C        XBS95        [         R
                  R                  US   [E        XBS95        [         R
                  R                  US   S
5        [         R
                  R                  US   S
5        [         R
                  R                  US   S
5        [         R
                  R                  US   S
5        [         R
                  R                  US   S
5        [         R
                  R                  US   S
5        [         R
                  R                  US   [G        XBS95        [         R
                  R                  US   [I        XBS95        [         R
                  R                  US   [K        XBS95        [         R
                  R                  US   [M        XBS95        [         R
                  R                  US   S
5        [         R
                  R                  US   S
5        [         R
                  R                  US   S
5        [         R
                  R                  US    S
5        [         R
                  R                  US!   [O        XBS95        [         R
                  R                  US"   [Q        XBS95        [         R
                  R                  US#   [S        XBS95        [         R
                  R                  US$   [U        XBS95        [         R
                  R                  US%   [W        XBS95        [         R
                  R                  US&   [Y        XBS95        [         R
                  R                  US'   S
5        [         R
                  R                  US(   S
5        [         R
                  R                  US)   [[        XBS95        [         R
                  R                  US*   []        XBS95        [         R
                  R                  US+   [_        XBS95        [         R
                  R                  US,   [a        XBS95        [         R
                  R                  US-   [c        XBS95        [         R
                  R                  US.   [e        XBS95        [         R
                  R                  US/   [g        XBS95        [         R
                  R                  US0   [i        XBS95        [         R
                  R                  US1   [k        XBS95        [         R
                  R                  US2   [m        XBS95        [         R
                  R                  US3   [o        XBS95        [         R
                  R                  US4   [q        XBS95        g )6NrS   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   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   r   r   r   r   r   r   )9r!   rZ   r[   r]   r   r^   r   assoc_legendre_p_0_0assoc_legendre_p_1_0assoc_legendre_p_1_1assoc_legendre_p_1_m1assoc_legendre_p_2_0assoc_legendre_p_2_1assoc_legendre_p_2_2assoc_legendre_p_2_m2assoc_legendre_p_2_m1assoc_legendre_p_3_0assoc_legendre_p_3_1assoc_legendre_p_3_2assoc_legendre_p_3_3assoc_legendre_p_3_m3assoc_legendre_p_3_m2assoc_legendre_p_3_m1assoc_legendre_p_4_0assoc_legendre_p_4_1assoc_legendre_p_4_2assoc_legendre_p_4_3assoc_legendre_p_4_4assoc_legendre_p_4_m4assoc_legendre_p_4_m3assoc_legendre_p_4_m2assoc_legendre_p_4_m1assoc_legendre_p_0_0_jacassoc_legendre_p_1_0_jacassoc_legendre_p_1_1_jacassoc_legendre_p_1_m1_jacassoc_legendre_p_2_0_jacassoc_legendre_p_2_1_jacassoc_legendre_p_2_2_jacassoc_legendre_p_2_m2_jacassoc_legendre_p_2_m1_jacassoc_legendre_p_3_0_jacassoc_legendre_p_3_1_jacassoc_legendre_p_3_2_jacassoc_legendre_p_3_3_jacassoc_legendre_p_3_m3_jacassoc_legendre_p_3_m2_jacassoc_legendre_p_3_m1_jacassoc_legendre_p_4_0_jacassoc_legendre_p_4_1_jacassoc_legendre_p_4_2_jacassoc_legendre_p_4_3_jacassoc_legendre_p_4_4_jacassoc_legendre_p_4_m4_jacassoc_legendre_p_4_m3_jacassoc_legendre_p_4_m2_jacassoc_legendre_p_4_m1_jac)r#   rJ   r   r_   r`   ra   rb   s          r*   test_specific TestAssocLegendreP.test_specific   s2
    ii##D)KKtU+'1a1E


""1T7 .	0


""1T7A.


""1T7A.


""1T7A.


""1T7A.


""1U8Q/


""1U8Q/


""1U8Q/


""1T7 .	0


""1T7 .	0


""1T7A.


""1T7A.


""1T7A.


""1U8Q/


""1U8Q/


""1U8Q/


""1U8!!/	1 	

""1T7 .	0


""1T7 .	0


""1T7 .	0


""1T7A.


""1T7A.


""1U8Q/


""1U8Q/


""1U8!!/	1


""1U8!!/	1 	

""1T7 .	0


""1T7 .	0


""1T7 .	0


""1T7 .	0


""1T7A.


""1U8Q/


""1U8!!/	1


""1U8!!/	1


""1U8!!/	1 	

""1T7 .	0


""1T7 .	0


""1T7 .	0


""1T7 .	0


""1T7 .	0


""1U8!!/	1


""1U8!!/	1


""1U8!!/	1


""1U8!!/	1 	

""5;$Q2	4


""5;2


""5;2


""5;2


""5;2


""5<3


""5<3


""5<3


""5<3


""5;$Q2	4


""5;$Q2	4


""5;2


""5;2


""5;2


""5<3


""5<3


""5<3


""5<%a3	5 	

""5;$Q2	4


""5;$Q2	4


""5;$Q2	4


""5;2


""5;2


""5<3


""5<3


""5<%a3	5


""5<%a3	5 	

""5;$Q2	4


""5;$Q2	4


""5;$Q2	4


""5;$Q2	4


""5;2


""5<3


""5<%a3	5


""5<%a3	5


""5<%a3	5 	

""5;$Q2	4


""5;$Q2	4


""5;$Q2	4


""5;$Q2	4


""5;$Q2	4


""5<%a3	5


""5<%a3	5


""5<%a3	5


""5<%a3	5r-   r`   r   r   c                 l   [        X!USS9u  pE[        R                  " US-   5      n[        R                  R	                  US S 2S4   [        X6S-   5      U-  US-   -  S-  5        [        R                  R	                  US S 2S4   [        R                  " US:  [        X65      [        R                  -  S5      5        [        R                  R	                  US S 2S4   [        R                  " US:  [        X6S-   5      * US-   -  US-   -  U-  US-
  -  S-  S5      5        [        R                  R	                  US S 2S4   [        R                  " US:  [        X6S-   5      * S-  S5      5        [        R                  R	                  US S 2S4   [        R                  " US:  [        X65      * [        R                  -  S5      5        [        SUS-   5       HR  n[        R                  R	                  US S 2U4   S5        [        R                  R	                  US S 2U* 4   S5        MT     g )	Nr   rU   r   r   r   r   r   r   )	r   r!   rp   r^   r   powwhereinfrs   )r#   r   rg   r`   ra   rb   r.   r   s           r*   test_all_limits"TestAssocLegendreP.test_all_limits;  s    (aBIIeai 


""5A;q5MAQ'!+	-


""5A;HHQ!VSY/3	5


""5A;HHQ!Vc!Um^q1u5Q?!Cq1uMPQQSTU	W


""5B<HHQ!Vc!Um^a/3	5


""5B<HHQ!Vc!iZ"&&0!4	6 q%!)$AJJ&&uQT{A6JJ&&uQU|Q7 %r-   )r   r   rM   c                    Sn[        X!USS9u  pE[        5        nUR                  [        S9  [        R
                  " XU5      u  px[        US-   5       H,  n	[        R                  R                  Xy   US S 2U	4   5        M.     [        R
                  " U* X#5      u  px[        US-   5       H-  n	[        R                  R                  Xy   US S 2U	* 4   5        M/     S S S 5        g ! , (       d  f       g = f)Nry   r   rU   r2   )
r   r   r5   r6   r   lpmnrs   r!   r^   r   )
r#   r   rg   r`   ra   rb   r9   p_legacyp_jac_legacyr   s
             r*   r~   TestAssocLegendreP.test_legacyR  s     'aB CJJ 2J3%,\\%%B"H519%

**8;!Q$@ & &-\\5&%%C"H519%

**8;!aR%A & !  s   CC''
C5r>   N)r?   r@   rA   rB   rC   rD   rE   r   re   r   r   r  r~   rF   r>   r-   r*   r   r   ^   s   [[W&DE[[Wq!f-[[Wq"g.7 / . F7( [[W&DE[[VdE]3$ 4 F$" [[W&@A$ B$& [[W&@A[[VdE]3Z5 4 BZ5x [[Wqc*[[Wrd+[[S1b'*8 + , +8( [[Wj1[[Wrd+B , 2Br-   r   c                   "   \ rS rSr\R
                  R                  S/ SQ5      \R
                  R                  SSS/5      \R
                  R                  S/ SQ5      \R
                  R                  S	S
S/5      S 5       5       5       5       rSrg)TestMultiAssocLegendrePic  rJ   ))i  rN   rP   
branch_cutr   r   zz_min, z_max))y      $      $y      $@      $@)r   r   )y             $y              $@r   TFc           	         [         R                  R                  S5      nUR                  UR                  UR                  U5      SUR                  UR
                  UR
                  U5      -  -   n[        SSXrUSS9u  p[         R                  R                  US   [        XrUS95        [         R                  R                  US   S	5        [         R                  R                  US
   S	5        [         R                  R                  US   S	5        [         R                  R                  US   S	5        [         R                  R                  US   S	5        [         R                  R                  US   S	5        [         R                  R                  US   S	5        [         R                  R                  US   S	5        [         R                  R                  US   [        XrUS95        [         R                  R                  US   [        XrUS95        [         R                  R                  US   S	5        [         R                  R                  US   S	5        [         R                  R                  US   S	5        [         R                  R                  US   S	5        [         R                  R                  US   S	5        [         R                  R                  US   S	5        [         R                  R                  US   [        XrUS95        [         R                  R                  US   [        XrUS95        [         R                  R                  US   [        XrUS95        [         R                  R                  US   [        XrUS95        [         R                  R                  US   S	5        [         R                  R                  US   S	5        [         R                  R                  US   S	5        [         R                  R                  US    S	5        [         R                  R                  US!   [!        XrUS95        [         R                  R                  US"   [#        XrUS95        [         R                  R                  US#   [%        XrUS95        [         R                  R                  US$   ['        XrUS95        [         R                  R                  US%   [)        XrUS95        [         R                  R                  US&   [+        XrUS95        [         R                  R                  US'   S	5        [         R                  R                  US(   S	5        [         R                  R                  US)   [-        XrUS95        [         R                  R                  US*   [/        XrUS95        [         R                  R                  US+   [1        XrUS95        [         R                  R                  US,   [3        XrUS95        [         R                  R                  US-   [5        XrUS95        [         R                  R                  US.   [7        XrUS95        [         R                  R                  US/   [9        XrUS95        [         R                  R                  US0   [;        XrUS95        [         R                  R                  US1   [=        XrUS95        [         R                  R                  US2   [?        XrUS95        [         R                  R                  US3   [A        XrUS95        [         R                  R                  US4   [C        XrUS95        [         R                  R                  U	S   [E        XrUS95        [         R                  R                  U	S   S	5        [         R                  R                  U	S
   S	5        [         R                  R                  U	S   S	5        [         R                  R                  U	S   S	5        [         R                  R                  U	S   S	5        [         R                  R                  U	S   S	5        [         R                  R                  U	S   S	5        [         R                  R                  U	S   S	5        [         R                  R                  U	S   [G        XrUS95        [         R                  R                  U	S   [I        XrUS95        [         R                  R                  U	S   S	5        [         R                  R                  U	S   S	5        [         R                  R                  U	S   S	5        [         R                  R                  U	S   S	5        [         R                  R                  U	S   S	5        [         R                  R                  U	S   S	5        [         R                  R                  U	S   [K        XrUS95        [         R                  R                  U	S   [M        XrUS95        [         R                  R                  U	S   [O        XrUS95        [         R                  R                  U	S   [Q        XrUS95        [         R                  R                  U	S   S	5        [         R                  R                  U	S   S	5        [         R                  R                  U	S   S	5        [         R                  R                  U	S    S	5        [         R                  R                  U	S!   [S        XrUS95        [         R                  R                  U	S"   [U        XrUS95        [         R                  R                  U	S#   [W        XrUS95        [         R                  R                  U	S$   [Y        XrUS95        [         R                  R                  U	S%   [[        XrUS95        [         R                  R                  U	S&   []        XrUS95        [         R                  R                  U	S'   S	5        [         R                  R                  U	S(   S	5        [         R                  R                  U	S)   [_        XrUS95        [         R                  R                  U	S*   [a        XrUS95        [         R                  R                  U	S+   [c        XrUS95        [         R                  R                  U	S,   [e        XrUS95        [         R                  R                  U	S-   [g        XrUS95        [         R                  R                  U	S.   [i        XrUS95        [         R                  R                  U	S/   [k        XrUS95        [         R                  R                  U	S0   [m        XrUS95        [         R                  R                  U	S1   [o        XrUS95        [         R                  R                  U	S2   [q        XrUS95        [         R                  R                  U	S3   [s        XrUS95        [         R                  R                  U	S4   [u        XrUS95        g )5NrS   r4   r   r   )r  r   rV   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   r   r   r   r   );r!   rZ   r[   r]   realimagr   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   r   r   r   r   r   r   r   r   )
r#   rJ   r  z_minz_maxr   r_   zra   rb   s
             r*   r   %TestMultiAssocLegendreP.test_specificd  s    ii##D)KK

EJJ6UZZU;;< (14; 	

""1T7 E	G


""1T7A.


""1T7A.


""1T7A.


""1T7A.


""1U8Q/


""1U8Q/


""1U8Q/


""1U8Q/


""1T7 E	G


""1T7 E	G


""1T7A.


""1T7A.


""1T7A.


""1U8Q/


""1U8Q/


""1U8Q/


""1U8!!F	H 	

""1T7 E	G


""1T7 E	G


""1T7 E	G


""1T7A.


""1T7A.


""1U8Q/


""1U8Q/


""1U8!!F	H


""1U8!!F	H 	

""1T7 E	G


""1T7 E	G


""1T7 E	G


""1T7 E	G


""1T7A.


""1U8Q/


""1U8!!F	H


""1U8!!F	H


""1U8!!F	H 	

""1T7 E	G


""1T7 E	G


""1T7 E	G


""1T7 E	G


""1T7 E	G


""1U8!!F	H


""1U8!!F	H


""1U8!!F	H


""1U8!!F	H 	

""5;$QDI	K


""5;2


""5;2


""5;2


""5;2


""5<3


""5<3


""5<3


""5<3


""5;$QDI	K


""5;$QDI	K


""5;2


""5;2


""5;2


""5<3


""5<3


""5<3


""5<%aTJ	L 	

""5;$QDI	K


""5;$QDI	K


""5;$QDI	K


""5;2


""5;2


""5<3


""5<3


""5<%aTJ	L


""5<%aTJ	L 	

""5;$QDI	K


""5;$QDI	K


""5;$QDI	K


""5;$QDI	K


""5;2


""5<3


""5<%aTJ	L


""5<%aTJ	L


""5<%aTJ	L 	

""5;$QDI	K


""5;$QDI	K


""5;$QDI	K


""5;$QDI	K


""5;$QDI	K


""5<%aTJ	L


""5<%aTJ	L


""5<%aTJ	L


""5<%aTJ	Lr-   r>   N)	r?   r@   rA   rB   rC   rD   rE   r   rF   r>   r-   r*   r  r  c  s    [[W&BC[[\Aq62[[^ . [[VdE]3]L 4 3 D
]Lr-   r  c                       \ rS rSr\R
                  R                  S/ SQ5      S 5       r\R
                  R                  S/ SQ5      S 5       rSr	g)	TestSphLegendrePi  rJ   rK   c                 R   [         R                  R                  S5      nUR                  [         R                  * [         R                  U5      n[        SSUSS9u  pE[         R                  R                  US   [        U5      5        [         R                  R                  US   S5        [         R                  R                  US   S5        [         R                  R                  US	   S5        [         R                  R                  US
   S5        [         R                  R                  US   S5        [         R                  R                  US   S5        [         R                  R                  US   S5        [         R                  R                  US   [        U5      5        [         R                  R                  US   [        U5      5        [         R                  R                  US   S5        [         R                  R                  US   S5        [         R                  R                  US   S5        [         R                  R                  US   S5        [         R                  R                  US   S5        [         R                  R                  US   S5        [         R                  R                  US   [        U5      5        [         R                  R                  US   [        U5      5        [         R                  R                  US   [        U5      5        [         R                  R                  US   [        U5      5        [         R                  R                  US   S5        [         R                  R                  US   S5        [         R                  R                  US   S5        [         R                  R                  US   S5        [         R                  R                  US   [        U5      5        [         R                  R                  US   [!        U5      5        [         R                  R                  US    [#        U5      5        [         R                  R                  US!   [%        U5      5        [         R                  R                  US"   ['        U5      5        [         R                  R                  US#   [)        U5      5        [         R                  R                  US$   S5        [         R                  R                  US%   S5        [         R                  R                  US&   [+        U5      5        [         R                  R                  US'   [-        U5      5        [         R                  R                  US(   [/        U5      5        [         R                  R                  US)   [1        U5      5        [         R                  R                  US*   [3        U5      5        [         R                  R                  US+   [5        U5      5        [         R                  R                  US,   [7        U5      5        [         R                  R                  US-   [9        U5      5        [         R                  R                  US.   [;        U5      5        [         R                  R                  US/   [=        U5      5        [         R                  R                  US0   [?        U5      5        [         R                  R                  US1   [A        U5      5        [         R                  R                  US   [C        U5      5        [         R                  R                  US   S5        [         R                  R                  US   S5        [         R                  R                  US	   S5        [         R                  R                  US
   S5        [         R                  R                  US   S5        [         R                  R                  US   S5        [         R                  R                  US   S5        [         R                  R                  US   [E        U5      5        [         R                  R                  US   [G        U5      5        [         R                  R                  US   S5        [         R                  R                  US   S5        [         R                  R                  US   S5        [         R                  R                  US   S5        [         R                  R                  US   S5        [         R                  R                  US   S5        [         R                  R                  US   [I        U5      5        [         R                  R                  US   [K        U5      5        [         R                  R                  US   [M        U5      5        [         R                  R                  US   [O        U5      5        [         R                  R                  US   S5        [         R                  R                  US   S5        [         R                  R                  US   S5        [         R                  R                  US   S5        [         R                  R                  US   [Q        U5      5        [         R                  R                  US   [S        U5      5        [         R                  R                  US    [U        U5      5        [         R                  R                  US!   [W        U5      5        [         R                  R                  US"   [Y        U5      5        [         R                  R                  US#   [[        U5      5        [         R                  R                  US$   S5        [         R                  R                  US%   S5        [         R                  R                  US&   []        U5      5        [         R                  R                  US'   [_        U5      5        [         R                  R                  US(   [a        U5      5        [         R                  R                  US)   [c        U5      5        [         R                  R                  US*   [e        U5      5        [         R                  R                  US+   [g        U5      5        [         R                  R                  US,   [i        U5      5        [         R                  R                  US-   [k        U5      5        [         R                  R                  US.   [m        U5      5        [         R                  R                  US/   [o        U5      5        [         R                  R                  US0   [q        U5      5        [         R                  R                  US1   [s        U5      5        g )2NrS   r   r   rU   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   r   ):r!   rZ   r[   r]   pir   r^   r   sph_legendre_p_0_0sph_legendre_p_1_0sph_legendre_p_1_1sph_legendre_p_1_m1sph_legendre_p_2_0sph_legendre_p_2_1sph_legendre_p_2_2sph_legendre_p_2_m2sph_legendre_p_2_m1sph_legendre_p_3_0sph_legendre_p_3_1sph_legendre_p_3_2sph_legendre_p_3_3sph_legendre_p_3_m3sph_legendre_p_3_m2sph_legendre_p_3_m1sph_legendre_p_4_0sph_legendre_p_4_1sph_legendre_p_4_2sph_legendre_p_4_3sph_legendre_p_4_4sph_legendre_p_4_m4sph_legendre_p_4_m3sph_legendre_p_4_m2sph_legendre_p_4_m1sph_legendre_p_0_0_jacsph_legendre_p_1_0_jacsph_legendre_p_1_1_jacsph_legendre_p_1_m1_jacsph_legendre_p_2_0_jacsph_legendre_p_2_1_jacsph_legendre_p_2_2_jacsph_legendre_p_2_m2_jacsph_legendre_p_2_m1_jacsph_legendre_p_3_0_jacsph_legendre_p_3_1_jacsph_legendre_p_3_2_jacsph_legendre_p_3_3_jacsph_legendre_p_3_m3_jacsph_legendre_p_3_m2_jacsph_legendre_p_3_m1_jacsph_legendre_p_4_0_jacsph_legendre_p_4_1_jacsph_legendre_p_4_2_jacsph_legendre_p_4_3_jacsph_legendre_p_4_4_jacsph_legendre_p_4_m4_jacsph_legendre_p_4_m3_jacsph_legendre_p_4_m2_jacsph_legendre_p_4_m1_jac)r#   rJ   r_   thetara   rb   s         r*   r   TestSphLegendreP.test_specific	  s"
   ii##D)RUUFBEE51%aE!<


""1T7u%	'


""1T7A.


""1T7A.


""1T7A.


""1T7A.


""1U8Q/


""1U8Q/


""1U8Q/


""1T7u%	'


""1T7u%	'


""1T7A.


""1T7A.


""1T7A.


""1U8Q/


""1U8Q/


""1U8Q/


""1U8&	( 	

""1T7u%	'


""1T7u%	'


""1T7u%	'


""1T7A.


""1T7A.


""1U8Q/


""1U8Q/


""1U8&	(


""1U8&	( 	

""1T7u%	'


""1T7u%	'


""1T7u%	'


""1T7u%	'


""1T7A.


""1U8Q/


""1U8&	(


""1U8&	(


""1U8&	( 	

""1T7u%	'


""1T7u%	'


""1T7u%	'


""1T7u%	'


""1T7u%	'


""1U8&	(


""1U8&	(


""1U8&	(


""1U8&	( 	

""5;"5)	+


""5;2


""5;2


""5;2


""5;2


""5<3


""5<3


""5<3


""5;"5)	+


""5;"5)	+


""5;2


""5;2


""5;2


""5<3


""5<3


""5<3


""5<#E*	, 	

""5;"5)	+


""5;"5)	+


""5;"5)	+


""5;2


""5;2


""5<3


""5<3


""5<#E*	,


""5<#E*	, 	

""5;"5)	+


""5;"5)	+


""5;"5)	+


""5;"5)	+


""5;2


""5<3


""5<#E*	,


""5<#E*	,


""5<#E*	, 	

""5;"5)	+


""5;"5)	+


""5;"5)	+


""5;"5)	+


""5;"5)	+


""5<#E*	,


""5<#E*	,


""5<#E*	,


""5<#E*	,r-   r   c           	         [         R                  R                  S5      nUR                  SSU5      nUR                  SSU5      nUR	                  [         R
                  * [         R
                  U5      n[        X4USS9u  pgnUR                  U:X  d   eUR                  UR                  :X  d   eUR                  UR                  :X  d   e[         R                  R                  [         R                  " U5      U-  [         R                  " U5      * U-  X3S-   -  [         R                  " U5      -  XD-  [         R                  " U5      -  -
  U-  -
  SS	S
9  g )NrS   r   rM   r   r   rU   r   r   r   r   )r!   rZ   r[   r\   r]   r  r   rJ   r^   r   sincos)	r#   rJ   r_   r.   r   rN  ra   rb   rc   s	            r*   re   TestSphLegendreP.test_ode  s   ii##D)LLB&LLb%(RUUFBEE51)!a@&ww%{{agg%%%||u{{***


""266%=6#9BFF5M>E;QE{RVVE]*QURVVE]-BBaG<HU 	# 	$r-   r>   N)
r?   r@   rA   rB   rC   rD   rE   r   re   rF   r>   r-   r*   r  r    sQ    [[W&@AY, BY,v [[W&DE$ F$r-   r  c            	          \ rS rSrS rS rS rS rS rS r	 S r
S	 rS
 rS rS r\R                   R#                  S\R&                  \R(                  /5      \R                   R#                  S/ SQ5      \R                   R#                  SSS/5      \R                   R#                  SSS/5      \R                   R#                  S/ SQ5      S 5       5       5       5       5       r\R                   R#                  S\R,                  /5      \R                   R#                  S/ SQ5      \R                   R#                  SSS/5      \R                   R#                  S/ SQ5      S 5       5       5       5       r\R                   R#                  S\R0                  \R,                  /5      \R                   R#                  S/ SQ5      \R                   R#                  S/ SQ5      S 5       5       5       rSrg)TestLegendreFunctionsi  c                 r   Sn[        5        nUR                  [        S9  [        R                  " SSUS5      nS S S 5        [        W[        R                  " SUSSU-  U-  S-
  -  /S[        R                  " X-  S-
  5      SU-  [        R                  " X-  S-
  5      -  /SSSX-  S-
  -  //5      [        R                  " SSSU-  /SU[        R                  " X-  S-
  5      -  SSU-  U-  S-
  -  [        R                  " X-  S-
  5      -  /SSS	U-  //5      4S
5        g ! , (       d  f       N= f)Ny      ?333333?r2   r   r   rz   ry   r   r|      rQ   )	r   r5   r6   r   r8   r   r!   r"   sqrt)r#   r  r9   clps       r*   
test_clpmn TestLegendreFunctions.test_clpmn  s1    CJJ 2J3--1a+C ! 	"#HHvq#qs1uQw-8"BGGACENAaCA4FG"FAqs1uI68 9 HHvvqs3"Abggac!en$4a1Qqk"''!#a%.6PQ"FAaC02 34 		 ! s   -D((
D6c                    SnSnSnSn[        5        nUR                  [        S9  [        R                  " X#USU-  -   S5      S   X#4   n[        R                  " X#USU-  -
  S5      S   X#4   nS S S 5        [        [        R                  " WW/5      [        R                  " [        R                  " X#U5      [        R                  " X#U5      /5      S	5        g ! , (       d  f       Nr= f)
NrW   r   r   ry   r2   r4   r   r   rQ   )	r   r5   r6   r   r8   r   r!   r"   lpmvr#   epsr   r.   r`   r9   clp_plus	clp_minuss           r*   test_clpmn_close_to_real_20TestLegendreFunctions.test_clpmn_close_to_real_2  s     CJJ 2J3}}Q1RV8Q7:14@HaAbfHa8;ADAI !
 	""((Hi+@"A"$((GLLq,A)0aA)>,@ #A"#	% ! s   AC
C+c                    SnSnSnSn[        5        nUR                  [        S9  [        R                  " X#USU-  -   S5      S   X#4   n[        R                  " X#USU-  -
  S5      S   X#4   nS S S 5        [        [        R                  " WW/5      [        R                  " [        R                  " X#U5      [        R                  " SU-  [        R                  -  5      -  [        R                  " X#U5      [        R                  " S	U-  [        R                  -  5      -  /5      S
5        g ! , (       d  f       N= f)NrW   r   r   ry   r2   r4   r   y                           ?rQ   )r   r5   r6   r   r8   r   r!   r"   r]  expr  r^  s           r*   test_clpmn_close_to_real_30TestLegendreFunctions.test_clpmn_close_to_real_3  s	    CJJ 2J3}}Q1RV8Q7:14@HaAbfHa8;ADAI !
 	""((Hi+@"A"$((GLLq,A"&&qQSQVQVBW,W)0aA)>rvvd1fRUUl?S)S,U #V"#	% ! s   AD33
Ec                 :   SnSnSnSn[        5        nUR                  [        S9  S HV  n[        [        R
                  " X#USU-  -   U5      S   X#4   [        R
                  " X#USU-  -
  U5      S   X#4   S5        MX     S S S 5        g ! , (       d  f       g = f)NgHz>r   r4   r2   r   r   rW  )r   r5   r6   r   r   r8   )r#   r_  r   r.   r`   r9   types          r*   test_clpmn_across_unit_circle3TestLegendreFunctions.test_clpmn_across_unit_circle  s     CJJ 2J3#GMM!"S&$$G$J14$P 'aAbfHd CA Fqt LaQ  !  s   A0B
Bc           
         [        5        nUR                  [        S9  S H  n[        S5       H  n[        SU5       H  n[        R
                  " XCU5      n[        R                  " US   SSS 24   5      R                  5       (       d   e[        R                  " XCU5      n[        R                  " US   SSS 24   5      R                  5       (       a  M   e   M     M     S S S 5        g ! , (       d  f       g = f)Nr2   r   r   r   )
r   r5   r6   rs   r   r8   r!   isinfallr	  )r#   r9   r  r.   r   lps         r*   test_infTestLegendreFunctions.test_inf  s     CJJ 2J3qA"1a[$]]13!xx1ad488::::$\\!2!xx1ad488::::	 ) "  !  s   C
C.C..
C<c                    / SQnSnSn[        5        nUR                  [        S9  S H~  nU Hu  nS Hl  n[        R                  " X#USU-  -   U5      S   [        R                  " X#USU-  -
  U5      S   -
  U-  n[        [        R                  " X#Xe5      S	   US
S9  Mn     Mw     M     S S S 5        g ! , (       d  f       g = f)N)y      ?      ?y            ?y            y      ?      y      ?      ?y            ?y            y      ?      r   r   r2   r   )MbP?y        MbP?ry   r   r   g-C6?)r   )r   r5   r6   r   r8   r   )	r#   zvalsr   r.   r9   rj  r  happrox_derivatives	            r*   test_deriv_clpmn&TestLegendreFunctions.test_deriv_clpmn  s    + CJJ 2J3A*-4]]13q5$-OPQ-R.5mmA!CE'4.PQR.S.TUV-W)'aA(DQ(G(9-13 +   !  s   BB44
Cc                 l   [         R                  " SSS5      n[        USS5        [         R                  " SSS5      n[        USS5        [        R                  " S	S
9   [         R                  " SSS5      nS S S 5        US:w  d  [        R
                  " U5      (       d   eg g ! , (       d  f       N3= f)Nr   r   ry   r{   rQ   (   rt  gI?ignore)ro  r   )r   r]  r   r!   errstateisnan)r#   rp  s     r*   	test_lpmvTestLegendreFunctions.test_lpmv*  s    \\!Ab!Bva(\\!Bt$B1!4 [[X&bD)B 'Qw"((2,,&&,w '&s   B%%
B3c                     [         R                  " SSS5      n[         R                  " SS5      n[        US   S   US   S5        [        US   S   US   S5        g )Nr   r   ry   r   r   )r   lqmnlqnr   )r#   lqmnflqfs      r*   	test_lqmnTestLegendreFunctions.test_lqmn6  sT    Qq$kk!B!%(1+c!fQ7!%(1+c!fQ7r-   c                     SnSnX-
  X-   4 H6  n[         R                  " SSU5      S   S   nSX3-  S-
  -  n[        XE5        M8     g)z[algorithm for real arguments changes at 1.0001
test against analytical result for m=2, n=1
gqh ?gh㈵>r   r   r   )r   r   N)r   r  r   )r#   x0deltar`   lqexpecteds         r*   test_lqmn_gt1#TestLegendreFunctions.test_lqmn_gt1<  sT     (BH%AaA&q)&1B!#a%yH- &r-   c                    [         R                  " SSS5      u  p[        UR                  S5        [        UR                  S5        [         R                  " SSS5      u  p[        UR                  S5        [        UR                  S5        g )Nr   g?)r   r   r   )r   r   )r   r  r   rJ   )r#   abs      r*   test_lqmn_shape%TestLegendreFunctions.test_lqmn_shapeG  sb    ||Aq#&QWWf%QWWf%||Aq#&QWWf%QWWf%r-   c                     [         R                  " SS5      n[        U[        R                  " / SQ5      [        R                  " / SQ5      4S5        g )Nr   ry   )gk+ݓ?g=yX5gW2)g|a2U?g~jt?gڊer   )r   r  r   r!   r"   )r#   r  s     r*   test_lqnTestLegendreFunctions.test_lqnP  s?    kk!B!#rxx0J'K')xx0H'I'KKL	Nr-   functionr.   rh   	z_complexFT	z_inexactinput_shape)r>   r   r   r   r   r   r   r   r   )r   r   r   c                    [         R                  R                  S5      nU(       a  UR                  SSUS9nOUR	                  SSUS9nU(       a  SU-  SU-  -   n[        5        nUR                  [        S	9  U" X'5      u  pS
S
S
5        W	R                  US-   4U-   :X  d   eW
R                  US-   4U-   :X  d   eg
! , (       d  f       NA= f)z Tests for correct output shapes.rS   r   r   sizer   r   r4   re  r2   N)	r!   rZ   r[   r\   r]   r   r5   r6   rJ   )r#   r  r.   r  r  r  r_   r  r9   P_zP_d_zs              r*   test_array_inputs_lxn+TestLegendreFunctions.test_array_inputs_lxnU  s     ii##D)R5AB4AQ!A CJJ 2J3!!JC ! yyQUI3333{{q1ui+5555	 ! s   &B??
Czm,n)r   r   r   )r   ri   )   rj   )   rk   )r>   r  r  r   r   r   r  c                     [         R                  R                  S5      nU(       a  UR                  SSUS9nOUR	                  SSUS9nU" X#U5      u  pUR
                  US-   US-   4U-   :X  d   eU	R
                  US-   US-   4U-   :X  d   eg)+Tests for correct output shapes and dtypes.rS   r   r   r  r   r   N)r!   rZ   r[   r\   r]   rJ   )
r#   r  r   r.   r  r  r_   r  r  r  s
             r*   test_array_inputs_lxmn,TestLegendreFunctions.test_array_inputs_lxmnp  s     ii##D)R5AB4AaA&
yyQUAEN[8888{{q1ua!en{::::r-   c                 r   [         R                  R                  S5      nUR                  SSUS9nSU-  SU-  -   n[	        5        nUR                  [        S9  U" X#U5      u  pSSS5        WR                  US-   US-   4U-   :X  d   eW	R                  US-   US-   4U-   :X  d   eg! , (       d  f       NI= f)	r  rS   r   r   r  r4   re  r2   N)r!   rZ   r[   r]   r   r5   r6   rJ   )
r#   r  r   r.   r  r_   r  r9   r  r  s
             r*   test_array_inputs_clxmn-TestLegendreFunctions.test_array_inputs_clxmn  s     ii##D)KKAKK0FTAX CJJ 2J3!!*JC ! yyQUAEN[8888{{q1ua!en{:::: ! s   B((
B6r>   N)r?   r@   rA   rB   rZ  rb  rg  rk  rq  rx  r  r  r  r  r  rC   rD   rE   r   r7   r  r  r  r  r8   r  rF   r>   r-   r*   rU  rU    s    % % 
Q	;3$2
'8	.&N
 [[Z'++w{{)CD[[S"67[[[5$-8[[[5$-8[[	
6 9 9 8 E6" [[Z',,8[[< [[[5$-8[[ 


; 9	 9
; [[Z'--)FG[[< [[ 

;	 H;r-   rU  c                     U(       aQ  [         R                  " SU -  S-   [         R                  " X-
  5      -  S[         R                  " X-   5      -  -  5      $ g)Nr   r   )mathrX  	factorial)r.   r   r   s      r*   assoc_legendre_factorr    sS    		1q519NN15!"%&)>%>@ A 	B r-   r   Fr  c                H    [        SSU5      n[        R                  " X5      $ Nr   r  r!   	full_liker  r  r   facs       r*   r   r         
1d
+C<<r-   c                $    [        SSU5      nX0-  $ Nr   r   r  r  s       r*   r   r     s    
1d
+C7Nr-   c          
         [         R                  " US:H  [         R                  " [         R                  " [         R                  " U 5      5      SS5      S5      n[         R                  " US:H  SS5      n[	        SSU5      n[         R
                  " [         R                  " US:H  X -  S-
  SX -  -
  5      5      nXC-  U-  U-  $ Nr   r   r   )r!   r  signbitr  r  rX  )r  r  r   branch_signbranch_cut_signr  ws          r*   r   r     s    ((:?BHHRZZ
5KQPR,SUWXKhhzQA6O
1d
+C
q!%!)QY?@A(3.22r-   c                x    [         R                  " US:H  SS5      n[        SSU5      nU* U-  [        XS9-  S-  $ Nr   r   r   r  r   r!   r  r  r   r  r  r   r  r  s        r*   r   r     sK    hhzQA6O
2t
,Cs"Q679:; <r-   c                >    [        SSU5      nUSU -  U -  S-
  -  S-  $ Nr   r   r   r   r  r  s       r*   r   r     s,    
1d
+C!a%!)a- 1$$r-   c                @    [        SSU5      nSU-  U -  [        XS9-  $ Nr   r   r   r  r  r   r  s       r*   r   r     s-    
1d
+CGaKQ67 8r-   c                r    [         R                  " US:H  SS5      n[        SSU5      nSU-  U-  SX -  -
  -  $ )Nr   r   r   r   r!   r  r  r  s        r*   r   r     sA    hhzQA6O
1d
+C$AE	22r-   c                p    [         R                  " US:H  SS5      n[        SSU5      nX4-  SX -  -
  -  S-  $ )Nr   r   r   r   r   ri   r  r  s        r*   r   r     s?    hhzQA6O
2t
,C AI.22r-   c                ~    [         R                  " US:H  SS5      n[        SSU5      nU* U-  U -  [        XS9-  S-  $ Nr   r   r   r   r  r  r  s        r*   r   r     sP    hhzQA6O
2t
,Cs"Q&Q679:; <r-   c                D    [        SSU5      nUSU -  U -  S-
  -  U -  S-  $ Nr   r   r   r   r  r  s       r*   r   r     s1    
1d
+C!a%!)a- 1$q((r-   c                X    [        SSU5      nSU-  SU -  U -  S-
  -  [        XS9-  S-  $ )Nr   r   r   r  r   r  r  s       r*   r   r     sB    
1d
+CGq1uqy1}%Q679:; <r-   c                x    [         R                  " US:H  SS5      n[        SSU5      nSU-  U-  SX -  -
  -  U -  $ Nr   r   r   r   r   r  r  s        r*   r   r     sF    hhzQA6O
1d
+C#%QU3a77r-   c                    [         R                  " US:H  SS5      n[        SSU5      nSU-  U-  SX -  -
  -  [        XS9-  $ )Nr   r   r   r   r  r  r  s        r*   r   r     sP    hhzQA6O
1d
+C 3&!ae)4Q67 8r-   c                J    [        SSU5      nX0U -  S-
  -  [        XS9-  S-  $ )Nr   r   r   r  0   r  r  s       r*   r   r     s8    
2t
,Cq519Q679;< =r-   c                v    [         R                  " US:H  SS5      n[        SSU5      nX4-  SX -  -
  -  U -  S-  $ Nr   r   r   r   ri   r  r  s        r*   r   r     sD    hhzQA6O
2t
,C AI.2Q66r-   c                    [         R                  " US:H  SS5      n[        SSU5      nX4-  SSU -  U -  -
  -  [        XS9-  S-  $ )Nr   r   r   r   r  ri   r  r  s        r*   r   r     sW    hhzQA6O
2t
,C!QQ]3Q679:; <r-   c                P    [        SSU5      nUSU -  U -  S-
  U -  U -  S-   -  S-  $ Nr   r   r      r   ri   r  r  s       r*   r   r     s;    
1d
+C26A:?a'!+a/0144r-   c                ^    [        SSU5      nSU-  SU -  U -  S-
  -  U -  [        XS9-  S-  $ )Nr   r   r   rQ   r   r  r   r  r  s       r*   r   r     sG    
1d
+CGq1uqy1}%)A5689: ;r-   c                    [         R                  " US:H  SS5      n[        SSU5      nSU-  U-  SSU -  U -  -
  U -  U -  S-
  -  S-  $ )	Nr   r   r   r   r   r   ri   rQ   r  r  s        r*   r   r     s[    hhzQA6O
1d
+C#%!a!eai-1)<q)@1)DEIIr-   c                    [         R                  " US:H  SS5      n[        SSU5      nSU-  U-  SX -  -
  -  U -  [        XS9-  $ )Nr   r   r   r   i   r  r  r  s        r*   r   r     sU    hhzQA6O
1d
+C/!C'1qu959Q67 8r-   c                ^    [        SSU5      nSU-  [        R                  " X -  S-
  5      -  $ Nr   r  r   r  r!   squarer  s       r*   r   r      s.    
1d
+C9ryy+++r-   c                ^    [        SSU5      nU[        R                  " X -  S-
  5      -  S-  $ Nr   r   r   i  r  r  s       r*   r   r   %  s/    
2t
,C1519%%++r-   c                P    [        SSU5      nX0U -  S-
  -  U -  [        XS9-  S-  $ )Nr   r   r   r  r  r  r  s       r*   r   r   *  s=    
2t
,Cq519!Q679;< =r-   c                    [         R                  " US:H  SS5      n[        SSU5      nX4-  SSU -  U -  -
  U -  U -  S-
  -  S-  $ )	Nr   r   r   r   r   ri   rQ   r  r  r  s        r*   r   r   0  sT    hhzQA6O
2t
,C QQ]a$7!$;a$?@2EEr-   c                    [         R                  " US:H  SS5      n[        SSU5      nX4-  SSU -  U -  -
  -  U -  [        XS9-  S-  $ )Nr   r   r   r   rQ   r  ri   r  r  s        r*   r   r   6  s\    hhzQA6O
2t
,C!QQ]3a7Q679:; <r-   c           
      2   [         R                  " US:H  [         R                  " [         R                  " [         R                  " U 5      5      SS5      S5      nU* [         R                  " [         R                  " US:H  X -  S-
  SX -  -
  5      5      -  nU$ r  )r!   r  r  r  rX  )r  r  r  out11_div_zs       r*   assoc_legendre_p_1_1_jac_div_zr  =  sv    ((:?BHHRZZ
5KQPR,SUWXK<
q!%!)QY?@AK r-   c                .    [         R                  " U 5      $ Nr!   
zeros_like)r  r  r   s      r*   r   r   E  s    ==r-   c                H    [        SSU5      n[        R                  " X5      $ r  r  r  s       r*   r   r   H  r  r-   c                8    [        SSU5      nX0-  [        XS9-  $ )Nr   r  r  r  r  s       r*   r   r   M  s)    
1d
+CG&q@A Br-   c                ~    [         R                  " US:H  SS5      n[        SSU5      nU* U-  U -  [        XS9-  S-  $ r  r!   r  r  r  r  s        r*   r   r   S  sS    hhzQA6O
2t
,Cs"Q&&q@ACDE Fr-   c                ,    [        SSU5      nSU-  U -  $ )Nr   r   r   r  r  s       r*   r   r   Z  s    
1d
+Cs7Q;r-   c                R    [        SSU5      nSU-  SU -  U -  S-
  -  [        XS9-  $ r  r  r  s       r*   r   r   _  s<    
1d
+CGq1uqy1}%&q@A Br-   c                h    [         R                  " US:H  SS5      n[        SSU5      nSU-  U-  U -  $ )Nr   r   r   r   ir  r  s        r*   r   r   e  s;    hhzQA6O
1d
+C#%))r-   c                    [         R                  " US:H  SS5      n[        SSU5      nX4-  SSU -  U -  -
  -  [        XS9-  S-  $ r  r  r  s        r*   r   r   k  sZ    hhzQA6O
2t
,C!QQ]3&q@ACDE Fr-   c                j    [         R                  " US:H  SS5      n[        SSU5      nU* U-  U -  S-  $ )Nr   r   r   r   r   r   r  r  s        r*   r   r   r  s>    hhzQA6O
2t
,Cc!A%))r-   c                D    [        SSU5      nSU-  SU -  U -  S-
  -  S-  $ )Nr   r   r   r   r   r  r  s       r*   r   r   x  s0    
1d
+Cs7a!eai!m$q((r-   c                ^    [        SSU5      nSU-  SU -  U -  S-
  -  U -  [        XS9-  S-  $ )Nr   r   r   r  r  r   r  r  s       r*   r   r   }  sJ    
1d
+CGrAvzB'!+&q@ACDE Fr-   c                z    [         R                  " US:H  SS5      n[        SSU5      nSU-  U-  SSU -  U -  -
  -  $ r  r  r  s        r*   r   r     sG    hhzQA6O
1d
+C#%QUQY77r-   c                    [         R                  " US:H  SS5      n[        SSU5      nSU-  U-  SX -  -
  -  U -  [        XS9-  $ )Nr   r   r   -   r  r  r  s        r*   r   r     sW    hhzQA6O
1d
+C 3&!ae)4q8&q@A Br-   c                P    [        SSU5      nX0U -  S-
  -  U -  [        XS9-  S-  $ )Nr   r   r   r  rj   r  r  s       r*   r   r     s@    
2t
,Cq519!&q@ACEF Gr-   c                x    [         R                  " US:H  SS5      n[        SSU5      nX4-  SSU -  U -  -
  -  S-  $ r  r  r  s        r*   r   r     sE    hhzQA6O
2t
,C AA	M2Q66r-   c                    [         R                  " US:H  SS5      n[        SSU5      nX4-  SSU -  U -  -
  -  U -  [        XS9-  S-  $ )Nr   r   r   r  r   r  ri   r  r  s        r*   r   r     s_    hhzQA6O
2t
,C!R"q&1*_59&q@ACDE Fr-   c                J    [        SSU5      nSU-  SU -  U -  S-
  -  U -  S-  $ )Nr   r   r   rQ   r   r   r  r  s       r*   r   r     s5    
1d
+Cs7a!eai!m$q(1,,r-   c                j    [        SSU5      nSU-  SU -  U -  S-
  U -  U -  S-   -  [        XS9-  S-  $ )	Nr   r   r         r   r  r   r  r  s       r*   r   r     sT    
1d
+CGQ
R1,q0145&q@ACDE Fr-   c                    [         R                  " US:H  SS5      n[        SSU5      nSU-  U-  SSU -  U -  -
  -  U -  $ )Nr   r   r   r   r   r  rQ   r  r  s        r*   r   r     sL    hhzQA6O
1d
+C#%QUQY7!;;r-   c                    [         R                  " US:H  SS5      n[        SSU5      nSU-  U-  SSU -  U -  -
  U -  U -  S-
  -  [        XS9-  $ )Nr   r   r   r   r  r   r  r  r  s        r*   r   r     sg    hhzQA6O
1d
+C/!C'AA	MQ+>+BQ+FG&q@A Br-   c                <    [        SSU5      nSU-  X -  S-
  -  U -  $ )Nr   i  r   r  r  s       r*   r   r     s*    
1d
+C9	"Q&&r-   c                <    [        SSU5      nX0U -  S-
  -  U -  S-  $ Nr   r   r   `   r  r  s       r*   r   r     s+    
2t
,Ca%!)q 2%%r-   c                d    [        SSU5      nUSU -  U -  S-
  U -  U -  S-   -  [        XS9-  S-  $ )Nr   r   r   r   r  r  r  r  s       r*   r   r     sP    
2t
,CAEAIMQ&*Q./&q@ACEF Gr-   c                ~    [         R                  " US:H  SS5      n[        SSU5      nX4-  SSU -  U -  -
  -  U -  S-  $ )Nr   r   r   r   r   rQ      r  r  s        r*   r   r     sJ    hhzQA6O
2t
,C AA	M2Q6;;r-   c                    [         R                  " US:H  SS5      n[        SSU5      nX4-  SSU -  U -  -
  U -  U -  S-
  -  [        XS9-  S-  $ )	Nr   r   r   r   r  r  r  ri   r  r  s        r*   r   r     si    hhzQA6O
2t
,C!b26A:o%:Q%>%BC&q@ACDE Fr-   c                 f    [        XSS9[        R                  " S[        R                  -  5      -  $ )NTr   r   )r  r!   rX  r  )r.   r   s     r*   sph_legendre_factorr    s%     D1BGGAI4FFFr-   c                 F    [        SS5      n[        R                  " X5      $ r  )r  r!   r  rN  r  s     r*   r  r    s    
a
#C<<##r-   c                 L    [        SS5      nU[        R                  " U 5      -  $ r  )r  r!   rR  r  s     r*   r  r    s!    
a
#Cr-   c                 v    [        SS5      nU* [        R                  " [        R                  " U 5      5      -  $ )Nr   r  r!   absrQ  r  s     r*   r  r    s,    
a
#C4"&&'''r-   c                 z    [        SS5      nU[        R                  " [        R                  " U 5      5      -  S-  $ Nr   r   r   r  r  s     r*   r  r    s/    
a
$Cu&&**r-   c                     [        SS5      nUS[        R                  " [        R                  " U 5      5      -  S-
  -  S-  $ r  r  r!   r  rR  r  s     r*   r   r     s9    
a
#C!biiu..23a77r-   c                     [        SS5      nSU-  [        R                  " [        R                  " U 5      5      -  [        R                  " U 5      -  $ )Nr   r   r   r  r!   r  rQ  rR  r  s     r*   r!  r!    s;    
a
#C8bffRVVE]++bffUm;;r-   c                     [        SS5      nSU-  S[        R                  " [        R                  " U 5      5      -
  -  $ )Nr   r   r   r  r  s     r*   r"  r"    s3    
a
#Cs7a"))BFF5M2233r-   c                     [        SS5      nUS[        R                  " [        R                  " U 5      5      -
  -  S-  $ )Nr   r   r   ri   r  r  s     r*   r#  r#    s4    
a
$C!biiu../!33r-   c                     [        SS5      nU[        R                  " U 5      -  [        R                  " [        R                  " U 5      5      -  S-  $ )Nr   r   )r  r!   rR  r  rQ  r  s     r*   r$  r$    s<    
a
$Cu!66::r-   c                     [        SS5      nUS[        R                  " [        R                  " U 5      5      -  S-
  -  [        R                  " U 5      -  S-  $ r  r  r  s     r*   r%  r%    sN    
a
#C1ryy//!34
u r-   c                     [        SS5      nSU-  S[        R                  " [        R                  " U 5      5      -  S-
  -  [        R                  " [        R
                  " U 5      5      -  S-  $ )Nr   r   r   r   r   r  r!   r  rR  r  rQ  r  s     r*   r&  r&    s[    
a
#CHBIIbffUm44q89
rvve} !" #r-   c                     [        SS5      nSU-  [        R                  " [        R                  " U 5      5      S-
  -  [        R                  " U 5      -  $ )Nr   r   r   r  r  s     r*   r'  r'    sE    
a
#C#I266%=1A56
u r-   c                     [        SS5      nSU-  [        R                  " [        R                  " [        R                  " U 5      5      S5      -  $ )Nr   r(  r  r!   powerr  rQ  r  s     r*   r(  r(    s9    
a
#C9rxxrvve} 5q999r-   c                     [        SS5      nU[        R                  " [        R                  " [        R                  " U 5      5      S5      -  S-  $ )Nr   r   r  r*  r  s     r*   r)  r)    s:    
a
$C"&&/33b88r-   c                     [        SS5      nU* [        R                  " [        R                  " U 5      5      S-
  -  [        R                  " U 5      -  S-  $ Nr   r   r   ri   r  r  s     r*   r*  r*  $  sK    
a
$CDBIIbffUm,q01
u r-   c                     [        SS5      nUS[        R                  " [        R                  " U 5      5      -  S-
  -  [        R                  " [        R
                  " U 5      5      -  S-  $ )Nr   r   r   r   ri   r&  r  s     r*   r+  r+  *  sW    
a
$C1ryy//!34
rvve} !" #r-   c           	      
   [        SS5      nUS[        R                  " [        R                  " [        R                  " U 5      5      5      -  S[        R                  " [        R                  " U 5      5      -  -
  S-   -  S-  $ r  r  r  s     r*   r,  r,  0  sj    
a
#C2		"))BFF5M":;;
RYYrvve}%%&()* +-./ 0r-   c                    [        SS5      nSU-  S[        R                  " [        R                  " U 5      5      -  S-
  -  [        R                  " U 5      -  [        R                  " [        R
                  " U 5      5      -  S-  $ )Nr   r   rQ   r   r   r&  r  s     r*   r-  r-  6  sk    
a
#CHBIIbffUm44q89
urvve}-.012 3r-   c                     [        SS5      nSU-  S[        R                  " [        R                  " U 5      5      -  S-
  -  [        R                  " [        R                  " U 5      5      S-
  -  S-  $ )Nr   r   r(  rQ   r   r  r  s     r*   r.  r.  <  s`    
a
#C#IRYYrvve}559:	266%=	!A	%')*+ ,r-   c                     [        SS5      nSU-  [        R                  " [        R                  " [        R                  " U 5      5      S5      -  [        R
                  " U 5      -  $ )Nr   r   r  r!   r+  r  rQ  rR  r  s     r*   r/  r/  B  sF    
a
#C#:u!6::RVVE]JJr-   c                     [        SS5      nSU-  [        R                  " [        R                  " [        R                  " U 5      5      S-
  5      -  $ r  r  r  s     r*   r0  r0  G  s<    
a
#C9ryy266%=!9A!=>>>r-   c                     [        SS5      nU[        R                  " [        R                  " [        R                  " U 5      5      S-
  5      -  S-  $ r  r  r  s     r*   r1  r1  L  s=    
a
$C299RVVE]3a7883>>r-   c                     [        SS5      nU[        R                  " [        R                  " [        R                  " U 5      5      S5      -  [        R
                  " U 5      -  S-  $ )Nr   r   r   r  r6  r  s     r*   r2  r2  Q  sO    
a
$C"((266"&&-0!44
u r-   c                     [        SS5      nU* S[        R                  " [        R                  " U 5      5      -  S-
  -  [        R                  " [        R                  " U 5      5      S-
  -  S-  $ )Nr   r   rQ   r   r  r  r  s     r*   r3  r3  W  s^    
a
$CDA		"&&-00145	266%=	!A	%')+, -r-   c                 
   [        SS5      nUS[        R                  " [        R                  " U 5      5      -  S-
  -  [        R                  " U 5      -  [        R                  " [        R
                  " U 5      5      -  S-  $ )Nr   r   rQ   r   ri   r&  r  s     r*   r4  r4  ]  sg    
a
$C1ryy//!34
urvve}-.012 3r-   c                 .    [         R                  " U 5      $ r  r  )rN  s    r*   r5  r5  c  s    ==r-   c                 N    [        SS5      nU* [        R                  " U 5      -  $ r  )r  r!   rQ  r  s     r*   r6  r6  f  s#    
a
#C4"&&-r-   c                     [        SS5      nU* [        R                  " U 5      -  S[        R                  " [        R                  " U 5      S5      -  S-
  -  $ )Nr   r   r  r!   rR  	heavisiderQ  r  s     r*   r7  r7  k  sE    
a
#C4"&&-1r||BFF5M1'E#E#IJJr-   c                     [        SS5      nU[        R                  " U 5      -  S[        R                  " [        R                  " U 5      S5      -  S-
  -  S-  $ r  r?  r  s     r*   r8  r8  p  sH    
a
$C!bll266%=!&D"Dq"HIAMMr-   c                     [        SS5      nSU-  [        R                  " U 5      -  [        R                  " U 5      -  $ )Nr   r   r   )r  r!   rR  rQ  r  s     r*   r9  r9  u  s2    
a
#C8bffUm#bffUm33r-   c                 d   [        SS5      nSU-  [        R                  " [        R                  " U 5      5      * S[        R                  " [        R
                  " U 5      S5      -  S-
  -  [        R                  " [        R
                  " U 5      5      [        R
                  " U 5      -  -   -  $ )Nr   r   r   r  r!   r  rR  r@  rQ  r  r  s     r*   r:  r:  z  s    
a
#CG		"&&-00	
R\\"&&-+	+a	/1
rvve}u-. / 0r-   c                     [        SS5      nSU-  [        R                  " U 5      -  [        R                  " U 5      -  $ )Nr   rW  r  r!   rQ  rR  r  s     r*   r;  r;    s2    
a
#Cs7RVVE]"RVVE]22r-   c                     [        SS5      nU[        R                  " U 5      -  [        R                  " U 5      -  S-  $ )Nr   r   r   rF  r  s     r*   r<  r<    s3    
a
$C.22r-   c                 f   [        SS5      nU* [        R                  " [        R                  " U 5      5      * S[        R                  " [        R
                  " U 5      S5      -  S-
  -  [        R                  " [        R
                  " U 5      5      [        R
                  " U 5      -  -   -  S-  $ )Nr   r   r   rD  r  s     r*   r=  r=    s    
a
$CDRYYrvve}--	
R\\"&&-+	+a	/1
rvve}u-. /123 4r-   c                     [        SS5      nSU-  SS[        R                  " [        R                  " U 5      5      -  -
  -  [        R                  " U 5      -  S-  $ )Nr   r   r   r   r   r  r!   r  rR  rQ  r  s     r*   r>  r>    sJ    
a
#Cs7a!biiu6667"&&-G!KKr-   c                    [        SS5      nSU-  SS[        R                  " [        R                  " U 5      5      -  -
  -  [        R                  " U 5      -  S[        R                  " [        R
                  " U 5      S5      -  S-
  -  S-  $ )Nr   r   r  r   r   r  r!   r  rR  r@  rQ  r  s     r*   r?  r?    st    
a
#CGrB266%=!999:RVVE]J	
R\\"&&-+	+a	/1345 6r-   c                     [        SS5      nSU-  S[        R                  " [        R                  " U 5      5      -  S-
  -  [        R                  " U 5      -  $ )Nr   r   r   r   rJ  r  s     r*   r@  r@    sE    
a
#C8q299RVVE]33a78266%=HHr-   c                     [        SS5      nSU-  [        R                  " [        R                  " U 5      5      -  [        R                  " U 5      -  [        R                  " U 5      -  $ )Nr   ir   r  s     r*   rA  rA    sH    
a
#C9rvvbffUm,,rvve}<rvve}LLr-   c                     [        SS5      nU[        R                  " [        R                  " U 5      5      -  [        R                  " U 5      -  [        R                  " U 5      -  S-  $ )Nr   r   rj   r   r  s     r*   rB  rB    sI    
a
$Cu&&6FKKr-   c                     [        SS5      nUS[        R                  " [        R                  " U 5      5      -  S-
  -  [        R                  " U 5      -  S-  $ r.  rJ  r  s     r*   rC  rC    sF    
a
$C!biiu..23bffUmCaGGr-   c                    [        SS5      nU* SS[        R                  " [        R                  " U 5      5      -  -
  -  [        R                  " U 5      -  S[        R                  " [        R
                  " U 5      S5      -  S-
  -  S-  $ )Nr   r   r  r   r   r   ri   rL  r  s     r*   rD  rD    su    
a
$CDBbiiu6667
u	
R\\"&&-+	+a	/1345 6r-   c                     [        SS5      nSU-  S[        R                  " [        R                  " U 5      5      -  S-
  -  [        R                  " U 5      -  [        R                  " U 5      -  S-  $ )Nr   r   r2  rQ   r   r   rJ  r  s     r*   rE  rE    sb    
a
#CHBIIbffUm44q89
uu&()* +r-   c           
      t   [        SS5      nSU-  SS[        R                  " [        R                  " U 5      5      -  -   S[        R                  " [        R                  " [        R                  " U 5      5      5      -  -
  -  S[        R                  " [        R
                  " U 5      S5      -  S-
  -  S-  $ )Nr   r   r   r   r  r  r   rL  r  s     r*   rF  rF    s    
a
#CGrB266%=!999
RYYryy/001 2	
R\\"&&-+	+a	/1345 6r-   c                     [        SS5      nSU-  S[        R                  " [        R                  " U 5      5      -  S-
  -  [        R                  " U 5      -  [        R                  " U 5      -  $ )Nr   r   r  rQ   rJ  r  s     r*   rG  rG    sZ    
a
#CHBIIbffUm44q89
uu& 'r-   c                 
   [        SS5      nSU-  S[        R                  " [        R                  " U 5      5      -  S-
  -  [        R                  " [        R
                  " U 5      5      -  [        R
                  " U 5      -  $ )Nr   r   r5  r   r&  r  s     r*   rH  rH    sc    
a
#C3J!biiu66:;
rvve} "u. /r-   c                     [        SS5      nSU-  [        R                  " [        R                  " U 5      5      S-
  -  [        R                  " U 5      -  [        R                  " U 5      -  $ )Nr   i\r   rJ  r  s     r*   rI  rI    sU    
a
#C3J"))BFF5M2Q67
uu& 'r-   c                     [        SS5      nU* [        R                  " [        R                  " U 5      5      S-
  -  [        R                  " U 5      -  [        R                  " U 5      -  S-  $ r  rJ  r  s     r*   rJ  rJ    s[    
a
$CDBIIbffUm,q01
uu&(*+ ,r-   c                 
   [        SS5      nUS[        R                  " [        R                  " U 5      5      -  S-
  -  [        R                  " [        R
                  " U 5      5      -  [        R
                  " U 5      -  S-  $ )Nr   r   r   r  r&  r  s     r*   rK  rK    sg    
a
$C1ryy//!34
rvve} "u.023 4r-   c                     [        SS5      nUS[        R                  " [        R                  " U 5      5      -  S-
  -  [        R                  " U 5      -  [        R                  " U 5      -  S-  $ )Nr   r   rQ   r  rJ  r  s     r*   rL  rL    s[    
a
$C1ryy//!34rvve}D
u r-   c           
      p   [        SS5      nU* SS[        R                  " [        R                  " U 5      5      -  -   S[        R                  " [        R                  " [        R                  " U 5      5      5      -  -
  -  S[        R                  " [        R
                  " U 5      S5      -  S-
  -  S-  $ )	Nr   r   r   r  r  r   r   ri   rL  r  s     r*   rM  rM    s    
a
$CDBbiiu666
RYYryy/001 2	
R\\"&&-+	+a	/1345 6r-   r  )r  numpyr!   rC   numpy.testingr   r   r   r   r   scipyr   scipy.specialr	   r
   r   r   r   r   r   rH   r   r  r  rU  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   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/  r0  r1  r2  r3  r4  r5  r6  r7  r8  r9  r:  r;  r<  r=  r>  r?  r@  rA  rB  rC  rD  rE  rF  rG  rH  rI  rJ  rK  rL  rM  r>   r-   r*   <module>r_     s     ( ( > >3 3:)F )FVCB CBJcL cLJm$ m$^e; e;N +,%  
 +,% 
 +,% 3 ,-5 < +,% %
 +,% 8 +,% 3 ,-5 3 ,-5 < +,% )
 +,% < +,% 8 +,% 8 ,-5 = ,-5 7 ,-5 < +,% 5
 +,% ; +,% J +,% 8 +,% ,
 ,-5 ,
 ,-5 = ,-5 F ,-5 < /0e  /0e  
 /0e B 01u F /0e 
 /0e B /0e * 01u F 01u * /0e )
 /0e F /0e 8 /0e B 01u G 01u 7 01u F /0e -
 /0e F /0e < /0e B /0e '
 01u &
 01u G 01u < 01u FG$

(
+
8
<
4
4
;
#:
9
#03,K
?
?
-3  
K
N
4
03
3
4L
6I
M
L
H
6+6'/',46r-   