
    (ph:                        S SK rS SKJrJrJrJr  S SKrS SK JrJ	r	J
r
JrJrJrJrJrJr  S SKJrJrJrJr  S SK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 S\5      r " S S\5      r " S S\5      r  " S S\5      r! " S S5      r"\RF                  RI                  SSS/5      \RF                  RI                  S\\\\/5      S  5       5       r%g)!    N)assert_almost_equalassert_allcloseassert_array_almost_equalsuppress_warnings)	sincossinhcoshexpinfnanr_pi)spherical_jnspherical_ynspherical_inspherical_kn)quadc                   D    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
rg)TestSphericalJn   c                     [         R                  " / SQ5      n[        [        SU5      SU-  SUS-  -  -   [	        U5      -  SUS-  -  [        U5      -  -
  5        g )NQ?Gz?Gz(@^@g     J@      )nparrayr   r   r   r   selfxs     \/var/www/html/venv/lib/python3.13/site-packages/scipy/special/tests/test_spherical_bessel.pytest_spherical_jn_exact'TestSphericalJn.test_spherical_jn_exact   sV     HH89Q*A!Q$A.1a4A>	@    c                     [         R                  " / SQ5      nSn[        [        US-
  U5      [        US-   U5      -   SU-  S-   U-  [        X5      -  5        g N   r   r          ?      ?r-   r   r!   r"   r   r   r$   nr%   s      r&   $test_spherical_jn_recurrence_complex4TestSphericalJn.test_spherical_jn_recurrence_complex   T    HH%&QUA.a!eQ1GG1q!L$66	8r)   c                     [         R                  " / SQ5      nSn[        [        US-
  U5      [        US-   U5      -   SU-  S-   U-  [        X5      -  5        g Nr,   r   r-   r   r1   r2   s      r&   !test_spherical_jn_recurrence_real1TestSphericalJn.test_spherical_jn_recurrence_real   T    HH%&QUA.a!eA1FF1q!L$66	8r)   c                     Sn[         R                  " [        * [        /5      n[        [	        X5      [         R                  " SS/5      5        g N   r   )r!   r"   r   r   r   r2   s      r&   test_spherical_jn_inf_real*TestSphericalJn.test_spherical_jn_inf_real%   7    HHsdC[!Q*BHHaV,<=r)   c           
      @   Sn[         R                  " [        * S-   [        S-   [        S-  /5      n[        5        nUR	                  [
        S5        [        [        X5      [         R                  " SS[        S-  /5      5        S S S 5        g ! , (       d  f       g = fNr.                         ?      ?z%invalid value encountered in multiplyr   )r!   r"   r   r   filterRuntimeWarningr   r   r$   r3   r%   sups       r&   test_spherical_jn_inf_complex-TestSphericalJn.test_spherical_jn_inf_complex+   p    HHsdRir3:67 CJJ~'NOL.!QT
9K0LM !     A
B
Bc                 0    [        [        SS5      S5        g )Nr   g%-@g<]3r   r   r$   s    r&   test_spherical_jn_large_arg_1-TestSphericalJn.test_spherical_jn_large_arg_13   s     	Q13JKr)   c                 0    [        [        SS5      S5        g )Nr   i'  g|	 ?rO   rP   s    r&   test_spherical_jn_large_arg_2-TestSphericalJn.test_spherical_jn_large_arg_29   s     	Q.0FGr)   c                     [         R                  " / SQ5      nSn[        [        X5      [         R                  " / SQ5      5        g Nr   r-   r      
   d   r   )r-   r   r   r   r   r   r1   r2   s      r&   test_spherical_jn_at_zero)TestSphericalJn.test_spherical_jn_at_zero?   1     HH*+Q*BHH5G,HIr)    N)__name__
__module____qualname____firstlineno__r'   r4   r9   r?   rJ   rQ   rT   r\   __static_attributes__r_   r)   r&   r   r      s/    @88>NLHJr)   r   c                   >    \ rS rSrS rS rS rS rS rS r	S r
S	rg
)TestSphericalYnG   c                     [         R                  " / SQ5      n[        [        SU5      SU-  SUS-  -  -
  [	        U5      -  SUS-  -  [        U5      -  -
  5        g )Nr   r   r-   r    )r!   r"   r   r   r   r   r#   s     r&   test_spherical_yn_exact'TestSphericalYn.test_spherical_yn_exactH   sU     HH89Q*1qAvs1v-!Q$s1v=	?r)   c                     [         R                  " / SQ5      nSn[        [        US-
  U5      [        US-   U5      -   SU-  S-   U-  [        X5      -  5        g r8   r!   r"   r   r   r2   s      r&   !test_spherical_yn_recurrence_real1TestSphericalYn.test_spherical_yn_recurrence_realP   r;   r)   c                     [         R                  " / SQ5      nSn[        [        US-
  U5      [        US-   U5      -   SU-  S-   U-  [        X5      -  5        g r+   rl   r2   s      r&   $test_spherical_yn_recurrence_complex4TestSphericalYn.test_spherical_yn_recurrence_complexW   r6   r)   c                     Sn[         R                  " [        * [        /5      n[        [	        X5      [         R                  " SS/5      5        g r=   )r!   r"   r   r   r   r2   s      r&   test_spherical_yn_inf_real*TestSphericalYn.test_spherical_yn_inf_real^   rA   r)   c           
      @   Sn[         R                  " [        * S-   [        S-   [        S-  /5      n[        5        nUR	                  [
        S5        [        [        X5      [         R                  " SS[        S-  /5      5        S S S 5        g ! , (       d  f       g = frC   )r!   r"   r   r   rF   rG   r   r   rH   s       r&   test_spherical_yn_inf_complex-TestSphericalYn.test_spherical_yn_inf_complexd   rL   rM   c                     [         R                  " / SQ5      nSn[        [        X5      [         R                  " UR
                  [        * 5      5        g NrX   r   )r!   r"   r   r   fullshaper   r2   s      r&   test_spherical_yn_at_zero)TestSphericalYn.test_spherical_yn_at_zerol   s6    HH*+Q*BGGAGGcT,BCr)   c                     [         R                  " / SQ5      nSn[        [        X5      [         R                  " UR
                  [        5      5        g NrX   rD   )r!   r"   r   r   rz   r{   r   r2   s      r&   !test_spherical_yn_at_zero_complex1TestSphericalYn.test_spherical_yn_at_zero_complexr   s6     HH*+Q*BGGAGGS,ABr)   r_   N)r`   ra   rb   rc   ri   rm   rp   rs   rv   r|   r   rd   r_   r)   r&   rf   rf   G   s(    ?88>NDCr)   rf   c                        \ rS rSrS rS rSrg)TestSphericalJnYnCrossProduct}   c                     [         R                  " / SQ5      n[         R                  " / SQ5      n[        US-   U5      [        X5      -  [        X5      [        US-   U5      -  -
  nSUS-  -  n[	        X45        g )Nr-   rY      g?r-   rZ   r-   r   r!   r"   r   r   r   r$   r3   r%   leftrights        r&   $test_spherical_jn_yn_cross_product_1BTestSphericalJnYnCrossProduct.test_spherical_jn_yn_cross_product_1~   sj    HHYHH\"QUA&a);;Q"\!a%%;;<!Q$$r)   c                    [         R                  " / SQ5      n[         R                  " / SQ5      n[        US-   U5      [        X5      -  [        X5      [        US-   U5      -  -
  nSU-  S-   US-  -  n[	        X45        g )Nr   r   r   r    r   r   s        r&   $test_spherical_jn_yn_cross_product_2BTestSphericalJnYnCrossProduct.test_spherical_jn_yn_cross_product_2   sr    HHYHH\"QUA&a);;Q"\!a%%;;<1q!Q$$r)   r_   N)r`   ra   rb   rc   r   r   rd   r_   r)   r&   r   r   }   s    %%r)   r   c                   8    \ rS rSrS rS rS rS rS rS r	Sr
g	)
TestSphericalIn   c                     [         R                  " / SQ5      n[        [        SU5      SU-  SUS-  -  -   [	        U5      -  SUS-  -  [        U5      -  -
  5        g N)r   r   r   r   r   r-   r    )r!   r"   r   r   r	   r
   r#   s     r&   test_spherical_in_exact'TestSphericalIn.test_spherical_in_exact   sT    HH01Q*1qAvtAw.1a4Q?	Ar)   c                     [         R                  " / SQ5      nSn[        [        US-
  U5      [        US-   U5      -
  SU-  S-   U-  [        X5      -  5        g r8   r!   r"   r   r   r2   s      r&   !test_spherical_in_recurrence_real1TestSphericalIn.test_spherical_in_recurrence_real   r;   r)   c                     [         R                  " / SQ5      nSn[        [        US-
  U5      [        US-   U5      -
  SU-  S-   U-  [        X5      -  5        g r+   r   r2   s      r&   $test_spherical_in_recurrence_complex4TestSphericalIn.test_spherical_in_recurrence_complex   sT    HH%&QUA.a!eA1FF1q!L$66	8r)   c                     Sn[         R                  " [        * [        /5      n[        [	        X5      [         R                  " [        * [        /5      5        g )NrY   )r!   r"   r   r   r   r2   s      r&   test_spherical_in_inf_real*TestSphericalIn.test_spherical_in_inf_real   s9    HHsdC[!Q*BHHsdC[,ABr)   c                     Sn[         R                  " [        * S-   [        S-   [        S-  /5      n[        [	        X5      [         R                  " [        * [        [
        /5      5        g )Nr.   rD   rE   )r!   r"   r   r   r   r   r2   s      r&   test_spherical_in_inf_complex-TestSphericalIn.test_spherical_in_inf_complex   sM     HHsdRir3:67Q*BHHsdC5E,FGr)   c                     [         R                  " / SQ5      nSn[        [        X5      [         R                  " / SQ5      5        g rW   r   r2   s      r&   test_spherical_in_at_zero)TestSphericalIn.test_spherical_in_at_zero   r^   r)   r_   N)r`   ra   rb   rc   r   r   r   r   r   r   rd   r_   r)   r&   r   r      s$    A88C	HJr)   r   c                   >    \ rS rSrS rS rS rS rS rS r	S r
S	rg
)TestSphericalKn   c                     [         R                  " / SQ5      n[        [        SU5      [        S-  [        U* 5      -  SU-  SUS-  -  -   SUS-  -  -   -  5        g r   )r!   r"   r   r   r   r   r#   s     r&   test_spherical_kn_exact'TestSphericalKn.test_spherical_kn_exact   sU    HH01Q*1S!WacAadFlQq!tV&;<	>r)   c                     [         R                  " / SQ5      nSn[        SUS-
  -  [        US-
  U5      -  SUS-   -  [        US-   U5      -  -
  SU-  SU-  S-   -  U-  [        X5      -  5        g )Nr,   r   r   r-   r   r!   r"   r   r   r2   s      r&   !test_spherical_kn_recurrence_real1TestSphericalKn.test_spherical_kn_recurrence_real   s{    HH%&1q5M,q1ua00B!a%=aRSeTUAV3VV!GQqS1WaQ 22	
r)   c                     [         R                  " / SQ5      nSn[        SUS-
  -  [        US-
  U5      -  SUS-   -  [        US-   U5      -  -
  SU-  SU-  S-   -  U-  [        X5      -  5        g )Nr,   r0   r   r-   r   r   r2   s      r&   $test_spherical_kn_recurrence_complex4TestSphericalKn.test_spherical_kn_recurrence_complex   s{    HH%&1q5M,q1ua00B!a%=aRSeTUAV3VV!GQqS1WaQ 22	
r)   c                     Sn[         R                  " [        * [        /5      n[        [	        X5      [         R                  " [        * S/5      5        g )NrY   r   )r!   r"   r   r   r   r2   s      r&   test_spherical_kn_inf_real*TestSphericalKn.test_spherical_kn_inf_real   s9    HHsdC[!Q*BHHsdAY,?@r)   c                     Sn[         R                  " [        * S-   [        S-   [        S-  /5      n[        [	        X5      [         R                  " [        * S[
        /5      5        g )Nr.   rD   rE   r   )r!   r"   r   r   r   r   r2   s      r&   test_spherical_kn_inf_complex-TestSphericalKn.test_spherical_kn_inf_complex   sL    
 HHsdRir3:67Q*BHHsdAs^,DEr)   c                     [         R                  " / SQ5      nSn[        [        X5      [         R                  " UR
                  [        5      5        g ry   )r!   r"   r   r   rz   r{   r   r2   s      r&   test_spherical_kn_at_zero)TestSphericalKn.test_spherical_kn_at_zero   s4    HH*+Q*BGGAGGS,ABr)   c                     [         R                  " / SQ5      nSn[        [        X5      [         R                  " UR
                  [        5      5        g r   )r!   r"   r   r   rz   r{   r   r2   s      r&   !test_spherical_kn_at_zero_complex1TestSphericalKn.test_spherical_kn_at_zero_complex   s4    HH*+Q*BGGAGGS,ABr)   r_   N)r`   ra   rb   rc   r   r   r   r   r   r   r   rd   r_   r)   r&   r   r      s)    >

AFCCr)   r   c                       \ rS rSrS r\R                  R                  S 5       r\R                  R                  S 5       r	Sr
g)SphericalDerivativesTestCase   c                    ^ ^ [        UU 4S jX#5      u  pE[        UT R                  TU5      T R                  TU5      -
  US9  g )Nc                 (   > TR                  TU 5      $ N)df)zr3   r$   s    r&   <lambda>BSphericalDerivativesTestCase.fundamental_theorem.<locals>.<lambda>   s    TWWQ]r)   )atol)r   r   f)r$   r3   abintegral	tolerances   ``    r&   fundamental_theorem0SphericalDerivativesTestCase.fundamental_theorem   s<    "#:AAq!tvva|3&	(r)   c                 *    U R                  SSS5        g )Nr   g      @      .@r   rP   s    r&   test_fundamental_theorem_07SphericalDerivativesTestCase.test_fundamental_theorem_0   s      C.r)   c                 *    U R                  SSS5        g )Nr.         ?g333333?r   rP   s    r&   test_fundamental_theorem_77SphericalDerivativesTestCase.test_fundamental_theorem_7   s      C-r)   r_   N)r`   ra   rb   rc   r   pytestmarkslowr   r   rd   r_   r)   r&   r   r      sC    ( [[/ / [[. .r)   r   c                   &    \ rS rSrS rS rS rSrg)TestSphericalJnDerivativesi  c                     [        X5      $ r   r   r$   r3   r   s      r&   r   TestSphericalJnDerivatives.f      A!!r)   c                     [        XSS9$ NT
derivativer   r   s      r&   r   TestSphericalJnDerivatives.df      AT22r)   c                     [         R                  " / SQ5      n[        [        USSS9[         R                  " / SQ5      5        g )Nr   r-   r   r    r.      r   Tr   r   gUUUUUU?r   r   r   r   r1   r$   r3   s     r&   test_spherical_jn_d_zero3TestSphericalJnDerivatives.test_spherical_jn_d_zero  s1    HH()Qd;!56	8r)   r_   N)r`   ra   rb   rc   r   r   r   rd   r_   r)   r&   r   r     s    "38r)   r   c                        \ rS rSrS rS rSrg)TestSphericalYnDerivativesi  c                     [        X5      $ r   r   r   s      r&   r   TestSphericalYnDerivatives.f  r   r)   c                     [        XSS9$ r   r   r   s      r&   r   TestSphericalYnDerivatives.df  r   r)   r_   Nr`   ra   rb   rc   r   r   rd   r_   r)   r&   r   r         "3r)   r   c                   &    \ rS rSrS rS rS rSrg)TestSphericalInDerivativesi  c                     [        X5      $ r   r   r   s      r&   r   TestSphericalInDerivatives.f  r   r)   c                     [        XSS9$ r   r   r   s      r&   r   TestSphericalInDerivatives.df  r   r)   c                     [         R                  " / SQ5      n[        USSS9  [        [        USSS9[         R                  " / SQ5      5        g )Nr   r   Fr   Tr   )r!   r"   r   r   r   s     r&   test_spherical_in_d_zero3TestSphericalInDerivatives.test_spherical_in_d_zero   s=    HH()Qe,Qd;!56	8r)   r_   N)r`   ra   rb   rc   r   r   r  rd   r_   r)   r&   r   r     s    "38r)   r   c                        \ rS rSrS rS rSrg)TestSphericalKnDerivativesi'  c                     [        X5      $ r   r   r   s      r&   r   TestSphericalKnDerivatives.f(  r   r)   c                     [        XSS9$ r   r
  r   s      r&   r   TestSphericalKnDerivatives.df+  r   r)   r_   Nr   r_   r)   r&   r  r  '  r   r)   r  c                   2    \ rS rSrS rS rS rS rS rSr	g)	TestSphericalOldi/  c                 f   [         R                  " S5      nSn[        SU5      US   S'   [        SU5      US   S'   [        SUSS9US   S'   [        SUSS9US   S'   US   S   nUS   S   SUS   S   -  -
  n[        US   [         R                  " SS	/5      S
5        [        US   X4/S
5        g )N)r   r   皙?r   r-   Tr         $@gA\?gc"?r/   )r!   emptyr   r   r"   )r$   i1nr%   inp0inp1s        r&   test_sph_inTestSphericalOld.test_sph_in3  s    hhuo A&Aq	 A&Aq	 A$7Aq	 A$7Aq	Aq	Aq	Gc!fQi//!#a&3H0G3I *JJL	N!#a&$R8r)   c                    Sn[         R                  " S5      n[        SU5      US'   [        SUSS9US'   [         R                  " [         R                  " U5      U-  [         R
                  " U5      U-  [         R                  " U5      US-  -  -
  /5      n[        [        U   U5        [         R                  " S5      n[        SU5      US'   [        SUSS9US'   [         R                  " S[        -  [        U* 5      -  U-  S	[        -  [        U* 5      -  SU-  SUS-  -  -   -  /5      n[        [        U   U5        g )
Ng      ?)r   r   Tr   r-   r   r   g      )r!   r  r   r"   r	   r
   r   r   r   r   r   )r$   r%   sph_i0sph_i0_expectedsph_k0sph_k0_expecteds         r&   test_sph_in_kn_order0&TestSphericalOld.test_sph_in_kn_order0C  s   $ A&q	 A$7q	((BGGAJqL$&GGAJqLAqD$@$B C!"V*o>$ A&q	 A$7q	((CF3r7N1$4$(GCGOQqS1a4Z$@$B C!"V*o>r)   c                    [         R                  " S5      nSn[        SU5      US   S'   [        SU5      US   S'   [        SU5      US   S'   [        SUSS9US   S'   [        SUSS9US   S'   [        SUSS9US   S'   US   S   * nUS   S   SUS   S   -  -
  nUS   S   S	US   S   -  -
  n[        US   / S
QS5        [        US   X4U/S5        g )Nr   r    r  r   r-   r   Tr   r  r   )gkG~?gk?g)qe?r/   )r!   r  r   r   )r$   s1r%   s10s11s12s         r&   test_sph_jnTestSphericalOld.test_sph_jnS  s   XXe_1%1a1%1a1%1a161a161a161a!uQxieAhwr!uQx''eAhwr!uQx''!"Q% )@@B	D 	""Q%b9r)   c                    [         R                  " S5      nSn[        SU5      US   S'   [        SU5      US   S'   [        SU5      US   S'   [        SUSS9US   S'   [        SUSS9US   S'   [        SUSS9US   S'   US   S   * nUS   S   * SUS   S   -  -
  nUS   S   * S	US   S   -  -
  n[        US   / S
QS5        [        US   X4U/S5        g )Nr!  r  r   r-   r   Tr   r  r   )gDT@g3̱wJC@g-uAI@r/   	   )r!   r  r   r   )r$   knr%   kn0kn1kn2s         r&   test_sph_knTestSphericalOld.test_sph_knf  s   XXe_1%1a1%1a1%1a161a161a161a!uQxi!uQxi1a((!uQxi1a((!"Q% )@@B	D 	""Q%a8r)   c                     [        SS5      n[        SS5      n[        USS5        [        USS5        [        SS5      S[        SS5      -  -
  S-  n[        SSS	S
9n[        XCS5        g )Nr   r  r   g[_$ewrY   g&$r    r-   Tr      )r   r   )r$   sy1sy2sphpysy3s        r&   test_sph_ynTestSphericalOld.test_sph_yny  sl    1c"1c"C
1-C
1-a%,q#*>(>>A1cd3Ca(r)   r_   N)
r`   ra   rb   rc   r  r  r&  r.  r6  rd   r_   r)   r&   r  r  /  s    9 ? :&9&)r)   r  r   FTfunc                     [         R                  R                  S5      nSnUR                  SSUS9nUR	                  US9nU" XEU S9nU" XES-   U S9n[         R
                  R                  XgR                  5        g )Nl   dnUY    r   rZ   )sizer   rD   )r!   randomdefault_rngintegersstandard_normaltestingr   real)r   r8  rngr;  r3   r   resrefs           r&   test_negative_real_gh14582rE    sw     ))

 3
4CDQ&A&A
az
*C
a2*
-CJJsHH-r)   )&numpyr!   numpy.testingr   r   r   r   r   r   r   r	   r
   r   r   r   r   r   scipy.specialr   r   r   r   scipy.integrater   r   rf   r   r   r   r   r   r   r   r  r  r   parametrizerE  r_   r)   r&   <module>rK     s   I I  = = = P P  6J 6Jr3C 3Cl% %(+J +J\2C 2Cj. . 
8!= 
83!= 38!= 83!= 3R) R)j t}5|!-|!= >	.> 6	.r)   