
    tKg                     b    d Z ddlZ	 ddlZddlmZ d Zd Z	e
dk(  r e	        yy# e$ r Y w xY w)zCompute a Pade approximation for the principal branch of the
Lambert W function around 0 and compare it to various other
approximations.

    Nc                      t        d      D  cg c](  } t        j                  t        j                  d|       * }} t        j                  |dd      \  }}||fS c c} w )N   r   )n      )rangempmathdifflambertwpade)r   derivspqs       f/home/alanp/www/video.onchill/myenv/lib/python3.12/site-packages/scipy/special/_precompute/lambertw.pylambertw_pader      sP    <A!HEHqfkk&//12HFE;;vq!$DAqa4K Fs   -Ac                  8   t        t               t        j                  d      5  t	               \  } }| d d d   |d d d   }} t        d|         t        d|        d d d        t        j                  ddd      t        j                  ddd      }}t        j                  ||      \  }}|d|z  z   }g }|j                         D ]/  }|j                  t        t        j                  |                   1 t        j                  |      j                  |j                        }t        j                   d	d
      \  }}t        j                   D 	cg c]  }	t#        |	       c}	      } t        j                  D 
cg c]  }
t#        |
       c}
      }t        j$                  | |      t        j$                  ||      z  }t'        ||z
        }|d   j)                  |||       t        j*                  |      t        j*                  t        j*                  |            z
  }t'        ||z
        }|d
   j)                  |||       t        j,                  dt        j.                  d
      |z  d
z   z        } d| z   | dz  d	z  z
  }t'        ||z
        }|d   j)                  |||      }|j1                  ||j3                         j5                                t        j6                          t        j                   d
d
      \  }}||k  }|j)                  |||      }t        j                  dd      }|j9                  dt'        |      z  dz
  |d       |j1                  ||       t        j6                          y # 1 sw Y   (xY wc c}	w c c}
w )N2   zp = zq = g      g      ?K   y              ?r      )nrowsncolsr   r   )axg333333ӿg333333?g      g?r)print__doc__r	   workdpsr   nplinspacemeshgridflattenappendcomplexr   arrayreshapeshapepltsubplotsfloatpolyvalabs
pcolormeshlogsqrtexpcolorbarraveltolistshowplot)r   r   xyzlambertw_stdz0figaxesp0q0pade_approxpade_err
asy_approxasy_errseries_approx
series_errimr   pade_betterts                        r   mainrG      s   	'N		12w$B$1QCjQCj	 
 ;;tS"%r{{4b'AqA;;q!DAq	BqDALiikGFOOB$789 88L)11!'':L1A.IC
a(a%)a()A
a(a%)a()A**Q"2::a#33K;-.HGq!X&RVVBFF1I..J*|+,GGq!W% 	266!9Q;?#$AFQT!VOM]\12J	a		Aq*	-BLL

++-L.HHJll!,GCW$K	q![	)B
D#AGGDQK#q#&LLLHHJS 
	  )(s   :NNNN__main__)r   numpyr   r	   matplotlib.pyplotpyplotr'   ImportErrorr   rG   __name__     r   <module>rP      sN   
 	#
+\ zF q  		s   
& ..