ó
î&]\c           @` sū   d  Z  d d l m Z m Z m Z d d l Z d d l m Z y d d l Z	 Wn e
 k
 ra n Xd   Z d   Z d   Z d   Z d	   Z d
 Z d Z d   Z e d k rš e   n  d S(   sė   
Precompute coefficients of Temme's asymptotic expansion for gammainc.

This takes about 8 hours to run on a 2.3 GHz Macbook Pro with 4GB ram.

Sources:
[1] NIST, "Digital Library of Mathematical Functions",
    https://dlmf.nist.gov/

i    (   t   divisiont   print_functiont   absolute_importN(   t   lagrange_inversionc         C` sĩ   t  j d  d g } x t d |   D] } | d | } x< t d t |   D]% } | | | | | | d 8} qP W| | d d t  j d  | d } | j |  q& W| S(   s   a_k from DLMF 5.11.6i   i   iĸĸĸĸi    (   t   mpt   sqrtt   ranget   lent   mpft   append(   t   nt   at   kt   akt   j(    (    sE   lib/python2.7/site-packages/scipy/special/_precompute/gammainc_asy.pyt	   compute_a   s    #'c         C` sc   t  d |   } g  } xF t |   D]8 } | j t j d  t j d |  | d |  q# W| S(   s   g_k from DLMF 5.11.3/5.11.5i   g      ā?(   R   R   R	   R   R   t   rf(   R
   R   t   gR   (    (    sE   lib/python2.7/site-packages/scipy/special/_precompute/gammainc_asy.pyt	   compute_g"   s
    6c         C` se   |  d k r. t  j d |  t  j |  d   S|  d k  r] t  j d |  t  j |  d   Sd Sd S(   s6   Function from DLMF 8.12.1 shifted to be centered at 0.i    i   i   N(   R   R   t   log(   t   lam(    (    sE   lib/python2.7/site-packages/scipy/special/_precompute/gammainc_asy.pyt   eta+   s
    "#c         C` s#   t  j t d |  d  } t |  S(   s   alpha_n from DLMF 8.12.13i    i   (   R   t   taylorR   R   (   R
   t   coeffs(    (    sE   lib/python2.7/site-packages/scipy/special/_precompute/gammainc_asy.pyt   compute_alpha5   s    c   
      C` s;  | d |  } t  j d  d g } t | d  } x4 t d |  D]# } | j | d | | d  qE W| g } t |   } x t d |   D]y } g  }	 x] t | d |  D]G } |	 j d | | | | d | | d | | d | d  qē W| j |	  q Wx& t |   D] } | | |  | | <qW| S(   s   d_{k, n} from DLMF 8.12.12i   i   i   iĸĸĸĸi    (   R   R   R   R   R	   R   (
   t   Kt   Nt   Mt   d0t   alphaR
   t   dR   R   t   dk(    (    sE   lib/python2.7/site-packages/scipy/special/_precompute/gammainc_asy.pyt	   compute_d;   s    !	Es―   /* This file was automatically generated by _precomp/gammainc.py.
 * Do not edit it manually!
 */

#ifndef IGAM_H
#define IGAM_H

#define K {}
#define N {}

static const double d[K][N] =
{{s   
#endif
c       	   C` s;  t  t  d }  d } t j d   t |  |  } Wd  QXt j j t j j t	  d d d  } t
 | d d  Ž } | j t j |  |   x| t |  D]n \ } } t d   |  } | j d	  | j d
 j |   | |  d k  rĸ | j d  q | j d  q W| j t  Wd  QXt j | d |  d  S(   Ni   i2   s   ..t   cephess   igam.hs   .newt   wc         S` s   t  j |  d d d d d S(   Ni   t	   min_fixedi    t	   max_fixed(   R   t   nstr(   t   x(    (    sE   lib/python2.7/site-packages/scipy/special/_precompute/gammainc_asy.pyt   <lambda>k   s    t   {s   , i   s   },
s   }};
(   t   printt   __doc__R   t   workdpsR    t   ost   patht   joint   dirnamet   __file__t   opent   writet   headert   formatt	   enumeratet   mapt   footert   rename(   R   R   R   t   fnt   fR   t   row(    (    sE   lib/python2.7/site-packages/scipy/special/_precompute/gammainc_asy.pyt   maina   s"    
't   __main__(   R*   t
   __future__R    R   R   R,   t   scipy.special._precompute.utilsR   t   mpmathR   t   ImportErrorR   R   R   R   R    R3   R7   R<   t   __name__(    (    (    sE   lib/python2.7/site-packages/scipy/special/_precompute/gammainc_asy.pyt   <module>
   s"   				
			