
    tKg	                         d Z ddlZddlmZ 	 ddlZd Zd Zd Z	d Z
d Zd	Zd
Zd Zedk(  r e        yy# e$ r Y +w xY w)z
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/

    N)lagrange_inversionc                 8   t        j                  d      dz  g}t        d|       D ]q  }|d   |z  }t        dt        |            D ]  }|||   ||    z  |dz   z  z  } ||d   dt        j                  d      |dz   z  z   z  z  }|j                  |       s |S )za_k from DLMF 5.11.6      r   )mpsqrtrangelenmpfappend)nakakjs        j/home/alanp/www/video.onchill/myenv/lib/python3.12/site-packages/scipy/special/_precompute/gammainc_asy.py	compute_ar      s    	AA1a[rU1Wq#a&!A!A$q!u*a!e$$B "
adAq	1q5))**	  H    c                     t        d| z        }t        |       D cg c]7  }t        j                  d      t        j                  d|      z  |d|z     z  9 }}|S c c}w )zg_k from DLMF 5.11.3/5.11.5r   g      ?)r   r
   r   r	   rf)r   r   r   gs       r   	compute_gr       sU    !A#A27(;(QBEE#qM	!!AaC&	((A;H 	<s   <Ac                     | dkD  r1t        j                  d| t        j                  | dz         z
  z        S | dk  r2t        j                  d| t        j                  | dz         z
  z         S y)z6Function from DLMF 8.12.1 shifted to be centered at 0.r   r   r   )r   r	   log)lams    r   etar   '   s`    
Qwwwq#sQw/011	q3a01222r   c                 T    t        j                  t        d| dz
        }t        |      S )zalpha_n from DLMF 8.12.13r   r   )r   taylorr   r   )r   coeffss     r   compute_alphar!   1   s#    YYsAq1u%Ff%%r   c           	         |d| z  z   }t        j                  d       dz  g}t        |dz         }t        d|      D ]  }|j	                  |dz   ||dz      z         ! |g}t        |       }t        d|       D ]c  }g }	t        |d|z  z
        D ]:  }|	j	                  d|z  ||   z  |d   |   z  |dz   ||dz
     |dz      z  z          < |j	                  |	       e t        |       D ]  }||   d| ||<    |S )zd_{k, n} from DLMF 8.12.12r   r      r   r   N)r   r   r!   r
   r   r   )
KNMd0alphar   dr   r   dks
             r   	compute_dr+   7   s   	AaCA66!9*Q,B!a% E1a[
		1q5%!*$% 	A!A1a[q1Q3wAIIrAgadl1Q47*a!eQqsVAaC[-@@A  		 
 1XtBQx! Hr   z/* 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] =
{{z
#endif
c                  @   t        t               d} d}t        j                  d      5  t	        | |      }d d d        t
        j                  j                  t
        j                  j                  t              ddd      }t        |dz   d      5 }|j                  t        j                  | |             t              D ]  \  }}|D cg c]  }t        j                  |dd	d	
       }}|j                  d       |j                  dj                  |             || dz
  k  r|j                  d       w|j                  d        |j                  t                d d d        t        j"                  |dz   |       y # 1 sw Y   NxY wc c}w # 1 sw Y   5xY w)N   2   z..cepheszigam.hz.neww   r   )	min_fixed	max_fixed{z, r   z},
z}};
)print__doc__r   workdpsr+   ospathjoindirname__file__openwriteheaderformat	enumeratenstrfooterrename)r$   r%   r)   fnfr   rowxs           r   mainrI   ^   s,   	'N
A
A	BaO 
	bggooh/x	JB	b6k3	1	a#$lFAsEHIS2771bA;SCIGGCLGGDIIcN#1q5y  # 	
 
  IIb6k2 
 J 
 	s*   F;F F+A5FFFF__main__)r6   r8   scipy.special._precompute.utilsr   mpmathr   ImportErrorr   r   r   r!   r+   r?   rC   rI   __name__ r   r   <module>rP      su   	 
 >	
	&(  * zF G  		s   6 >>