
    (ph                        S SK Jr  S SKrS SKrS SKJrJr  S SKJ	r
  S SKJrJrJrJr  \R                  R!                  S/ SQ5      \R                  R!                  S/ SQ5      S 5       5       r\R                  R!                  S/ SQ5      \R                  R!                  S	/ S
Q5      S 5       5       r\R                  R!                  S/ SQ5      \R                  R!                  S/ SQ5      \R                  R!                  S	/ SQ5      S 5       5       5       r\R(                  " / SQ/ SQ/ SQ/ SQ/ SQSSSS\R*                  // SQSSSS\R*                  // SQ/ SQ/ SQ/ SQ/ SQ/ S QS!SSS"\R*                  //5      r\R                  R.                  \R                  R!                  S#\SS2SS$24   R1                  5       5      S% 5       5       r\R                  R!                  S&\R1                  5       5      S' 5       r\R                  R!                  S(\" \" / S)QS*S+// S,Q5      5      5      S- 5       r\R                  R!                  S&/ S S S \R:                  * S.4PS S S*\R:                  * S.4PS/PS0PS1PS2PS3PS4PS5PS6PS7PS8PS9S:SS;\R*                  4PS<PS=PS>S:SS?\R*                  4PS@PSAPSBPSCPSDPS!S:SESF\R*                  4PSGPSHPSIPSJPSKPSLPSMPSNPSOPSPP5      SQ 5       rg)R    )productN)assert_equalassert_allclose)log_wright_besselloggammargammawright_bessela)r   ư>皙?      ?   
   bc                     [        [        XS5      [        U5      5        [        [	        XS5      [        U5      * 5        g)zTest at x = 0.        N)r   r	   r   r   r   r   )r
   r   s     Y/var/www/html/venv/lib/python3.13/site-packages/scipy/special/tests/test_wright_bessel.pytest_wright_bessel_zeror      s1     qR(&)4%aB/(1+>    x)r   r   r   r   r   c                     US:w  aW  U S-
  n[        SUS-   US-  S-  5      n[        [        R                  " US-  U5      U-  [        R
                  " X!5      SSS9  gg)	zTest relation of wright_bessel and modified bessel function iv.

iv(z) = (1/2*z)**v * Phi(1, v+1; 1/4*z**2).
See https://dlmf.nist.gov/10.46.E2
r   r      g      @g       @dy=rtolatolN)r	   r   nppowersciv)r   r   vwbs       r   test_wright_bessel_ivr#   %   sc     	AvE1a!eQTBY/ 	R+b0a"	0 r   )r   gjt?r      r   )r   r   r   r   r   r$   r   d   c           
          [        [        XS-
  U5      X-  [        XU -   U5      -  US-
  [        XU5      -  -   SSS9  g)a!  Test functional relation of wright_bessel.

Phi(a, b-1, z) = a*z*Phi(a, b+a, z) + (b-1)*Phi(a, b, z)

Note that d/dx Phi(a, b, x) = Phi(a, b-1, x)
See Eq. (22) of
B. Stankovic, On the Function of E. M. Wright,
Publ. de l' Institut Mathematique, Beograd,
Nouvelle S`er. 10 (1970), 113-124.
r   :0yE>r   Nr   r	   r
   r   r   s      r   test_wright_functionalr*   7   sK     M!UA.EM!UA661uaA 667D*r   )r         Y@9B.@gS
[.Gg:0yU>)r         $@r,   gUqZ+YIgv(x>)r   r-        @@g]a(aaHMr'   )r   r+   r.   g	5U4'g+i)+p>)      ?      4@     j@g+^%np~=r/   r+   r1   g
+eD)d     ?r0   r1   g'^%nr2   r3   gc+eD)      ?r        @@guc&Br2   )r4   g      =r5   gsc&Br2   )r4   g|=r5   gB&Br2   )r4   h㈵>r5   g]%Br2   )r4   r   r5   gKӨwqBgdy=)r4   r0   r1   g@IgA:)>r4   gmxi%%za, b, x, phi   c                 .    [        [        XU5      USS9  g)zDTest cases of test_data that do not reach relative accuracy of 1e-11r   r   Nr(   )r
   r   r   phis       r   test_wright_data_grid_failuresr;   b   s     M!*Ce<r   za, b, x, phi, accuracyc                     [         R                  " U5      (       a(  [         R                  " [        XU5      5      (       d   eg[        [        XU5      X4S9  g)zuTest cases of test_data that do not reach relative accuracy of 1e-11

Here we test for reduced accuracy or even nan.
r9   N)r   isnanr	   r   r
   r   r   r:   accuracys        r   #test_wright_data_grid_less_accurater@   k   s@     
xxxxaA.////aA.Cr   za, b, x)r   r   r   r4   r$   r   r   r   )MbP?r   r4   r$   r   c           
      j    [        [        XU5      [        R                  " [	        XU5      5      SS9  g)z8Test that log_wright_bessel equals log of wright_bessel.r'   r9   N)r   r   r   logr	   r)   s      r   ,test_log_wright_bessel_same_as_wright_besselrD   y   s,     !"
}Q1%&r   r   )r   r   Gz?rE   r   )r   r   d~QJrF   r   )r6   r   i  gujXV@r   )r6   r   r.   gF4@r   )r6   r%   r.   g(@r   )rA   r   g     @g?@r   )rA   r   r1   g.x"S@r   )rA   r   g    .AgwV.Ar   )rA   r   r1   gZ<P@r   )rA   2   r1   gړD@rA   rA   r%   grlqw4@)r   r   r1   gś 8ԯ@r   )r   r       cAgh{j@r   r   g&,@)r   r%   rH   gDvu*@r   )r   r   r1   ge6Ѓ@r   )r   r       חAghՈ@r   )r4   r   r1   g}h@r   )r4   r   rI   gP2aI@r   rI   gSe@)r$   r   r1   gtї#@r   )r$   r   rI   gPw8@@r   )r$   r      mBg/ft/c@r   )r$   r%   r1   gD%rvr   )r$   r%   rJ   g8pK<ug-C6?)r$   r%   @xDg~8@g>)r%   r   r1   g2ur   )r%   r   rK   g?3Qsr   )r%   r%   r1   b%rvr   )r%   r%   rK   rL   r   c                     [         R                  " U5      (       a(  [         R                  " [        XU5      5      (       d   eg[        [        XU5      X4S9  g)z6Test for log_wright_bessel, in particular for large x.r9   N)r   r=   r   r   r>   s        r   test_log_wright_besselrN      sC    N 
xxxx)!23333)!2CGr   )	itertoolsr   pytestnumpyr   numpy.testingr   r   scipy.specialspecialr   r   r   r   r	   markparametrizer   r#   r*   arraynangrid_a_b_x_value_accxfailtolistr;   r@   listrD   infrN    r   r   <module>r_      s  &    7  L L 8989? : :? 89450 6 :0  8956@A* B 7 :** xx@?479%1266:H*@"&&I0B22/5%1266:!  & BQB&&(*=* =
 !#D#D )Aq63HIH !	
Aq266'5!!	
Aq266'5!! 	"! 	"	!
 	1! 	2! 	3! 	2! 	2! 	2! 	2! 	2! 
sC+RVV4! 	1! 	1!  
c3*BFF3!!" 	3#!$ 	/%!& 	/'!( 	1)!* 	0+!, 
c3*BFF3-!. 	//!0 	/1!2 	03!4 	25!6 	27!8 	19!: 	2;!< 	3=!> 	3?!@ 	4A!$JHK$JHr   