
    ^Mh                        d dl mZ d dlZd dlZd dlmZmZ d dlm	Z
 d dlmZmZmZmZ ej                            dg d          ej                            dg d          d                         Zej                            dg d          ej                            d	g d
          d                         Zej                            dg d          ej                            dg d          ej                            d	g d          d                                     Z ej        g dg dg dg dg dddddej        gg dddddej        gg dg dg dg dg dg d d!ddd"ej        gg          Zej        j        ej                            d#edddd$f                                                   d%                         Zej                            d&e                                          d'             Zej                            d( e eg d)d*d+gg d,                              d-             Zej                            d&g d d d ej         d.fd d d*ej         d.fd/d0d1d2d3d4d5d6d7d8d9d:dd;ej        fd<d=d>d:dd?ej        fd@dAdBdCdDd!d:dEdFej        fdGdHdIdJdKdLdMdNdOdP          dQ             ZdS )R    )productN)assert_equalassert_allclose)log_wright_besselloggammargammawright_bessela)r   ư>皙?      ?   
   bc                     t          t          | |d          t          |                     t          t	          | |d          t          |                      dS )zTest at x = 0.        N)r   r	   r   r   r   r   )r
   r   s     f/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/scipy/special/tests/test_wright_bessel.pytest_wright_bessel_zeror      sQ     q!R((&))444%aB//(1++>>>>>    x)r   r   r   r   r   c                     |dk    r`| dz
  }t          d|dz   |dz  dz            }t          t          j        |dz  |          |z  t	          j        ||          dd           dS dS )	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#   %   s     	AvvE1a!eQTBY// 	R++b0a"	0 	0 	0 	0 	0 	0 vr   )r   gjt?r      r   )r   r   r   r   r   r$   r   d   c           
          t          t          | |dz
  |          | |z  t          | || z   |          z  |dz
  t          | ||          z  z   dd           dS )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   su     M!QUA..EM!QUA6661uaA 6 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                 H    t          t          | ||          |d           dS )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!Q**Ce<<<<<<r   za, b, x, phi, accuracyc                     t          j        |          r't          j        t          | ||                    sJ dS t          t          | ||          ||           dS )z}Test 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   sf     
x DxaA..///////aA..(CCCCCCr   za, b, x)r   r   r   r4   r$   r   r   r   )MbP?r   r4   r$   r   c           
          t          t          | ||          t          j        t	          | ||                    d           dS )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   sP     !Q""
}Q1%%&&     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                     t          j        |          r't          j        t          | ||                    sJ dS t          t          | ||          ||           dS )z6Test for log_wright_bessel, in particular for large x.r9   N)r   r=   r   r   r>   s        r   test_log_wright_besselrN      si    N 
x Hx)!Q223333333)!Q22ChGGGGG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_      sD  &            7 7 7 7 7 7 7 7       L L L L L L L L L L L L 8889988899? ? :9 :9? 88899444550 0 65 :90  8889955566@@@AA* * BA 76 :9**  rx@@@???444777999%126:HHH*@"&I000BBB222222///555%126:!   & BQB&&((* *= =* * =
 !!# #D D# #D D)))Aq63H3H3HII    H !	
Aq26'5!!	
Aq26'5!! 	"! 	"	!
 	1! 	2! 	3! 	2! 	2! 	2! 	2! 	2! 
sC+RV4! 	1! 	1!  
c3*BF3!!" 	3#!$ 	/%!& 	/'!( 	1)!* 	0+!, 
c3*BF3-!. 	//!0 	/1!2 	03!4 	25!6 	27!8 	19!: 	2;!< 	3=!> 	3?!@ 	4A!$ $JH HK$ $JH H Hr   