
    sg                         d Z ddlmZ ddlZddlmZ ddlZddlmZ 	 ddl	Z
dZ ed      d	        Zdd
Zd Zedk(  r e        yy# e$ r Y -w xY w)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                     t        j                  |      5  t        j                  |       cd d d        S # 1 sw Y   y xY w)N)mpworkdpsrgamma)xdpss     _/var/www/html/venv/lib/python3.12/site-packages/scipy/special/_precompute/wright_bessel_data.pyrgamma_cachedr      s-    	C yy|  s   5>c                 X    t        j                        5  t        j                         t        j                        t        j                        c t        j                   fddt         j                  gd|g      }t        |      cddd       S # 1 sw Y   yxY w)zHCompute Wright's generalized Bessel function as Series with mpmath.
    c                 b    | z  t        j                  |       z  t        | z  z         z  S )N)r   )r
   facr   )kabr   r   s    r   <lambda>z"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"      s|     
C &&)RVVAYq	1agg :"&&kc(
 ~  s   A<B  B)c                  	   t               } t        t               t        j                  j                  t              }t        j                  t              j                  dz  }t        j                  |dd|z
  z  ddd|z   z  dd|z
  z  ddd|z   z  dddd|z
  z  ddd|z   z  ddd	d
dg      }t        j                  d|ddddddddg
      }t        j                  d|d|z
  dd|z   dd|z
  dd|z   d|z
  dd|z   dd|z
  z  ddd|z   z  dd|z
  z  ddd|z   z  dt        ddddg      }t        j                  |||d      \  }}}|j                         }|j                         }|j                         }|dk  |t        k\  z   }||dk  |t        kD  z   z  }||dk  |dkD  z   z  }||dk  |dkD  z   z  }||dk  |dkD  z   z  }||dk  |dkD  z   z  }||dk  |dkD  z   z  }||d k  |d!kD  z   z  }||d"k  |d#kD  z   z  }||d$k  |d%kD  z   z  }||d&k  |dkD  z   z  }||d'k  |d(kD  z   z  }||d)k  |d*kD  z   z  }||d+k  |d,kD  z   z  }||d-k  |d.kD  z   z  }||d/k  |d0kD  z   z  }||d1k  |d2kD  z   z  }||d3k  |d4kD  z   z  }||d5k  |d6kD  z   z  }||d5k  |d6kD  z   z  }||d7k  |d8kD  z   z  }||d9k  |dkD  z   z  }t        j                  g d:g d;g d<g d=g d>g d?g d@g dAg dBg dCg dDg dEg dFg dGg dHg      j                         }t        j                   |dIt"        J      }t%        |j&                        D ]  }	||	   ||	   ||	   g|v sdK||	<    ||   }||   }||   }||   }g }
t        dL|j&                   dM       t        dN       t%        |j&                        D ]h  }	||	   }||	   }||	   }dO}|dPk  r|t        dz  k\  rdQ}t)        ||||R      }||	   rt        dS| dT| dT| dT| dU	       T|
j+                  ||||f       j t        j                  |
      }
t        j                  j-                  |dVdWdXdYdZ      }t        j.                  ||
       t        t               | z
  d[z  d\d]       y )^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$   r4   )r%   r.   r   )r%   r$   r   )d     ?r.   r   )r5   r$   r   )r(   r   r0   )r(   g      =r0   )r(   r,   r0   )r(   r-   r0   )r(   r&   r0   )r(   r.   r   )r(   r$   r   F)dtypeTz
Computing z single points.z.Tests will fail for the following data points:r4   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pwdrF   a_rangeb_rangex_rangebool_filterfailing	does_failidatasetr   r   r   r    ffilenames                    r   mainr_   +   s   	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 !#GWg59!;GWgooGooGooG t^7(:;<K7S=Ww5F"G HHK7S=Ws]"C DDK7T>gm"D EEK7Q;7S="A BBK7S=Ws]"C DDK7S=Ws]"C DDK7S=Ws]"C DDK7S=Ws]"C DDK7S=Ws]"C DDK7S=Wt^"D EEK7S=Wt^"D EEK7Q;7T>"B CCK7S=Wt^"D EEK7S=Wt^"D EEK7S=Wt^"D EEK7S=Wt^"D EEK7S=Wt^"D EEK7S=Wt^"D EEK7S=Wt^"D EEK7S=Wt^"D EEK7S=Wt^"D EEK hh%$())
   68! $ We48I7<<   AJ
GAJ/7:IaL 
 k"Gk"Gk"G+&IG	Jw||nO
45	
:;7<<  )AJAJAJt8WRZHQ1x8Q< S1#Rs"QCq* + NNAq!Q<() hhwGww||Cw/1HJJx!	dfrk2c""2
34r   __main__)2   r7   )r>   	functoolsr   r?   r   numpyrC   scipy.special._mptestutilsr   mpmathr
   ImportErrorrH   r   r"   r_   __name__ r   r   <module>ri      sx      	   0	
  7 

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