
    Ui                         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
n# e$ r Y nw xY wdZ ed          d	             ZddZd Zedk    r e             dS dS )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xY w Y   d S )N)mpworkdpsrgamma)xdpss     /var/www/development/aibuddy-work/election-extract/venv/lib/python3.11/site-packages/scipy/special/_precompute/wright_bessel_data.pyrgamma_cachedr      s    	C  y||                 s   6::2     c                 V    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xY w Y   dS )zHCompute Wright's generalized Bessel function as Series with mpmath.
    c                 h    | 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>#   s5    1rvayy 0%a!eaiS999!:     r   s)tolmethodstepsN)r
   r   mpfnsuminfr   )r   r   r   r   maxtermsress   ````  r   mp_wright_besselr$      s     
C  &))RVAYYq		1ag : : : : : : :"&kc(  
 ~~                 s   A8BB"%B"c                  	   t                      } t          t                     t          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          \  }}}|                                }|                                }|                                }|dk     |t          k    z   }||dk     |t          k    z   z  }||dk     |dk    z   z  }||dk     |dk    z   z  }||dk     |dk    z   z  }||dk     |dk    z   z  }||dk     |dk    z   z  }||d k     |d!k    z   z  }||d"k     |d#k    z   z  }||d$k     |d%k    z   z  }||d&k     |dk    z   z  }||d'k     |d(k    z   z  }||d)k     |d*k    z   z  }||d+k     |d,k    z   z  }||d-k     |d.k    z   z  }||d/k     |d0k    z   z  }||d1k     |d2k    z   z  }||d3k     |d4k    z   z  }||d5k     |d6k    z   z  }||d5k     |d6k    z   z  }||d7k     |d8k    z   z  }||d9k     |dk    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                                          }t          j        |dIt"          J          }t%          |j                  D ] }	||	         ||	         ||	         g|v rdK||	<   !||         }||         }||         }||         }g }
t          dL|j         dM           t          dN           t%          |j                  D ]}	||	         }||	         }||	         }dO}|dPk     r|t          dz  k    rdQ}t)          ||||R          }||	         rt          dS| dT| dT| dT| dU	           j|
                    ||||f           t          j        |
          }
t          j                            |dVdWdXdYdZ          }t          j        ||
           t          t                      | z
  d[z  d\d]           d S )^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&   r6   )r'   r0   r   )r'   r&   r   )d     ?r0   r   )r7   r&   r   )r*   r   r2   )r*   g      =r2   )r*   r.   r2   )r*   r/   r2   )r*   r(   r2   )r*   r0   r   )r*   r&   r   F)dtypeTz
Computing z single points.z.Tests will fail for the following data points:r6   gư>r   )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`   +   s   	B	'NNN
'//(
#
#C
(5//

#ChC($C0@C($C0@SQWq!q3w-Qq". / /G h3tS!QBDEEGh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 h%%%$$$((())))))
    688! $ We4888I7<      AJ
GAJ/7::IaL k"Gk"Gk"G+&IG	
4w|
4
4
4555	
:;;;7<   ) )AJAJAJt88WRZHQ1x888Q< 	) ** ** * !* *%&* * * + + + + NNAq!Q<((((hwGw||Cw/1 1HJx!!!	dffrk2
3
3
3
344444r   __main__)r   r   )r?   	functoolsr   r@   r   numpyrD   scipy.special._mptestutilsr   mpmathr
   ImportErrorrI   r   r$   r`   __name__ r   r   <module>ri      s           				           0 0 0 0 0 0	 	 	 	D	  7  

 
 
 
i5 i5 i5X zDFFFFF s   # ++