
    -i                         S r SSKJr  SSKrSSKJr  SSKrSSKJr   SSK	r
Sr\" SS9S	 5       rSS
 jrS r\S:X  a  \" 5         gg! \ a     N-f = f)zCompute a grid of values for Wright's generalized Bessel function
and save the values to data files for use in tests. Using mpmath directly in
tests would take too long.

This takes about 10 minutes to run on a 2.7 GHz i7 Macbook Pro.
    )	lru_cacheN)time)	mpf2float9B.@順 )maxsizec                     [         R                  " U5         [         R                  " U 5      sS S S 5        $ ! , (       d  f       g = f)N)mpworkdpsrgamma)xdpss     _/var/www/html/venv/lib/python3.13/site-packages/scipy/special/_precompute/wright_bessel_data.pyrgamma_cachedr      s"    	Cyy| 
s	   7
Ac           	      h  ^ ^^^ [         R                  " T5         [         R                  " T 5      [         R                  " T5      [         R                  " T5      sm mm[         R                  " U UUU4S jS[         R                  /TSU/S9n[        U5      sSSS5        $ ! , (       d  f       g= f)zHCompute Wright's generalized Bessel function as Series with mpmath.
    c                 ^   > TU -  [         R                  " U 5      -  [        TU -  T-   TS9-  $ )N)r   )r
   facr   )kabr   r   s    r   <lambda>"mp_wright_bessel.<locals>.<lambda>#   s-    1rvvay 0%a!eaiS9!:    r   s)tolmethodstepsN)r
   r   mpfnsuminfr   )r   r   r   r   maxtermsress   ````  r   mp_wright_besselr#      sq     
C&&)RVVAYq	1agg :"&&kc(
 ~ 
s   A>B##
B1c                     [        5       n [        [        5        [        R                  R                  [        5      n[        R                  " [        5      R                  S-  n[        R                  " USSU-
  -  SSSU-   -  SSU-
  -  SSSU-   -  SSSSU-
  -  SSSU-   -  SSS	S
S/5      n[        R                  " SUSSSSSSSS/
5      n[        R                  " SUSU-
  SSU-   SSU-
  SSU-   SU-
  SSU-   SSU-
  -  SSSU-   -  SSU-
  -  SSSU-   -  S[        SSSS/5      n[        R                  " X4USS9u  p4nUR                  5       nUR                  5       nUR                  5       nUS:  U[        :  -  ) nXcS:  U[        :  -  ) -  nXcS:  US:  -  ) -  nXcS:  US:  -  ) -  nXcS:  US:  -  ) -  nXcS:  US:  -  ) -  nXcS:  US:  -  ) -  nXcS :  US!:  -  ) -  nXcS":  US#:  -  ) -  nXcS$:  US%:  -  ) -  nXcS&:  US:  -  ) -  nXcS':  US(:  -  ) -  nXcS):  US*:  -  ) -  nXcS+:  US,:  -  ) -  nXcS-:  US.:  -  ) -  nXcS/:  US0:  -  ) -  nXcS1:  US2:  -  ) -  nXcS3:  US4:  -  ) -  nXcS5:  US6:  -  ) -  nXcS5:  US6:  -  ) -  nXcS7:  US8:  -  ) -  nXcS9:  US:  -  ) -  n[        R                  " / S:Q/ S;Q/ S<Q/ S=Q/ S>Q/ S?Q/ S@Q/ SAQ/ SBQ/ SCQ/ SDQ/ SEQ/ SFQ/ SGQ/ SHQ/5      R                  5       n[        R                   " USI["        SJ9n[%        UR&                  5       H  n	X9   XI   XY   /U;   d  M  SKX'   M     X6   nXF   nXV   nX   n/ n
[        SLUR&                   SM35        [        SN5        [%        UR&                  5       Hf  n	X9   nXI   nXY   nSOnUSP:  a  U[        S-  :  a  SQn[)        XXSR9nX   (       a  [        SSU STU STU STU SU3	5        MS  U
R+                  XX45        Mh     [        R                  " U
5      n
[        R                  R-                  USVSWSXSYSZ5      n[        R.                  " UU
5        [        [        5       U -
  S[-  S\ S]35        g )^Nd   g-C6?   gMbP?皙?      ?      ?   g"@   
   r   绽|=h㈵>   	     g     @@g     j@g    _Bg@xDij)indexingg{Gzt?g?gQ?g     @g     @gffffff?g?g    .Ag@g    cAg      @g    חAg333333@g    eAgffffff
@g@g   vH7B   g   mBg@g  @0Bg@g  ļBgffffff@g  4&kCg@g 7yACg333333@g ؅W4vCg@g NgmCg      @g =`XCg@)r'   r%   r   )r(   r,   r   )r(   r,     )r(   r%   r5   )r&   r/   r   )r&   r%   r   )d     ?r/   r   )r6   r%   r   )r)   r   r1   )r)   g      =r1   )r)   r-   r1   )r)   r.   r1   )r)   r'   r1   )r)   r/   r   )r)   r%   r   F)dtypeTz
Computing z single points.z.Tests will fail for the following data points:r5   gư>  )r!   z%failing data point a, b, x, value = [z, ]z..testsdatalocalzwright_bessel.txt<   z.1fz minutes elapsed)r   print__doc__ospathdirname__file__npfinfofloatepsarrayexp_infmeshgridflattentolist	full_likeboolrangesizer#   appendjoinsavetxt)t0pwdrG   a_rangeb_rangex_rangebool_filterfailing	does_failidatasetr   r   r   r!   ffilenames                    r   mainr`   +   sa   	B	'N
''//(
#C
((5/


#ChhC($C0@C($C0@SQWq!q3w-Qq". /G hh3tS!QBDEGhh3CAGCAGCAGa#gB!c'Nq3wcQWoWc3d< =G !#Gg59!;GgooGooGooG t^7(:;<KS=Ww5F"G HHKS=Ws]"C DDKT>gm"D EEKQ;7S="A BBKS=Ws]"C DDKS=Ws]"C DDKS=Ws]"C DDKS=Ws]"C DDKS=Ws]"C DDKS=Wt^"D EEKS=Wt^"D EEKQ;7T>"B CCKS=Wt^"D EEKS=Wt^"D EEKS=Wt^"D EEKS=Wt^"D EEKS=Wt^"D EEKS=Wt^"D EEKS=Wt^"D EEKS=Wt^"D EEKS=Wt^"D EEK hh%$())
   68! $ We48I7<< J
GJ/7:IL !
 "G"G"G&IG	Jw||nO
45	
:;7<< JJJt8WRZHQ18< S1#Rs"QCq* + NNA!<( ! hhwGww||Cw/1HJJx!	dfrk2c""2
34r   __main__)2   r8   )r?   	functoolsr   r@   r   numpyrD   scipy.special._mptestutilsr   mpmathr
   ImportErrorrI   r   r#   r`   __name__ r   r   <module>rj      sx      	   0	
  7 

i5X zF O  		s   A AA