ó
1™xTc           @   sï   d  d l  m Z d  d l Z d  d l Z e j j d ƒ Z d  d l	 Td  d l
 Z
 d j ƒ  Z e d „ Z d e j j e j f d „  ƒ  YZ d	 „  Z d
 e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d S(   iÿÿÿÿ(   t   divisionNt   cctbx_eltbx_xray_scattering_ext(   t   *s  H HE LI BE B C N O F NE NA MG AL SI P S CL AR K CA SC TI V CR MN FE
CO NI CU ZN GA GE AS SE BR KR RB SR Y ZR NB MO TC RU RH PD AG CD IN
SN SB TE I XE CS BA LA CE PR ND PM SM EU GD TB DY HO ER TM YB LU HF
TA W RE OS IR PT AU HG TL PB BI PO AT RN FR RA AC TH PA U NP PUc         C   s‡   t  d |  d | d t ƒ } | d  k r+ d S| d k r; d S| d k rK d S| d	 k r[ d S| d d k r} | d  | d f S| d f S(   Nt   labelt   exactt   optionalt    t   Hisot   Ht   Cvalt   Ct   Sivalt   Siiÿÿÿÿt   +t   -iþÿÿÿ(   R   R   (   R   R   (   R
   R   (   R   R   (   R   R   (   t   get_standard_labelt   Truet   None(   t   scattering_typeR   t   sl(    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/eltbx/xray_scattering/__init__.pyt   get_element_and_charge_symbols   s        t   _c           B   s    e  Z d d d  „ Z d „  Z RS(   c         C   s°   | d  k r t j } n  | d  k r- d } n  xb d |  j ƒ  f d |  j ƒ  f f D]< \ } } | | Id j g  | D] } | | ^ qu ƒ IJqR W| d I| |  j ƒ  IJ|  S(   Ns   %.8gs   a:s   b:t    s   c:(   R   t   syst   stdoutt
   array_of_at
   array_of_bt   joint   c(   t   selft   ft   formatt   lt   vt   x(    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/eltbx/xray_scattering/__init__.pyt   show   s      	14c            s¡   d d l  m ‰ m ‰ d } ‡  ‡ ‡ ‡ f d †  } x= t |  j ƒ  |  j ƒ  ƒ D]  \ } } | | | | ƒ 7} qP W|  j ƒ  r� | |  j ƒ  | d ƒ 7} n  | S(   Niÿÿÿÿ(   t   pit   expi    c            s6   d ˆ |  ˆ  d ˆ d ˆ d ˆ d |  ˆ  ƒ S(   Ni   i   i   iüÿÿÿg      ø?(    (   t   b(   t   b_isoR%   R$   t   r(    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/eltbx/xray_scattering/__init__.pyt   ft(   s    (   t   mathR$   R%   t   zipR   R   t   use_cR   (   R   R(   R'   t   resultR)   t   aR&   (    (   R'   R%   R$   R(   sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/eltbx/xray_scattering/__init__.pyt   electron_density%   s    (N(   t   __name__t
   __module__R   R#   R/   (    (    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/eltbx/xray_scattering/__init__.pyR      s   c         C   sK   |  d k r t  d ƒ S|  d k s. |  d k r8 t  d ƒ St |  t ƒ j ƒ  S(   Nt   consti   t   TXt   XX(   t   gaussiant   wk1995R   t   fetch(   R   (    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/eltbx/xray_scattering/__init__.pyt   best_approximation2   s
    

t   two_gaussian_agarwal_isaacsc           B   s¦   e  Z d  Z d Z i e d d g d d g ƒ d 6e d d g d	 d
 g ƒ d 6e d d g d d g ƒ d 6e d d g d d g ƒ d 6e d d g d d g ƒ d 6Z RS(   sC   ccp4/lib/data/atomsf.lib Revision 1.4, Thu Feb 13 14:10:58 1997 UTCs   CCP4 atomsf.lib Rev. 1.4g‹ýe÷äaé?gmÅþ²{òÈ?gH¿}878@gtF”öß @R   gÑ‘\þCú@gÚ|a2Õ@g}ÏH„F>@gÎQÚ@R
   g8gDioð@géH.ÿ!ý@gq¬‹Ûh`9@gâX·Ñ @t   NgJ+‡–@gðHP<@g•DöA–Á8@gx$(~Œ@t   OgþÔxé&1@gšwœ¢#Ù$@g—ÿ�~ûÚ@@gjMóŽStþ?t   S(   R0   R1   t   sourcet   source_shortR5   t   table(    (    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/eltbx/xray_scattering/__init__.pyR9   9   s   t   two_gaussian_agarwal_1978c           B   s  e  Z d  Z d Z i	 e d d g d d g ƒ d 6e d d g d	 d
 g ƒ d 6e d d g d d g ƒ d 6e d d g d d g ƒ d 6e d d g d d g ƒ d 6e d d g d d g ƒ d 6e d  d! g d" d# g ƒ d$ 6e d% d& g d' d( g ƒ d) 6e d* d+ g d, d- g ƒ d. 6Z RS(/   s8   Agarwal, R.C. (1978). Acta Cryst. A34, 791-809, Table 1.s   Agarwal (1978)gMóŽSt$ß?gŽðHPà?g8gDioA@g”ö_˜Ì!@R   g†ZÓ¼ã@gÝ$�•Ã@gµ¦yÇé=@gB>èÙ¬ú@R
   g¢´7øÂd@g–²q¬‹@gÒo_Î	9@g:’ËH?@R:   g˜Ý“‡…Z
@gDioð…É@gÑ‘\þC
4@gmÅþ²{ò@R;   gÉå?¤@gTã¥›Ä $@g…ëQ¸…@@gu“Vý?R<   gôlV}®¶$@gÜFxD)@gûËîÉC @g™*•Ô	ê?s   Fe3+gÁÊ¡E¶S'@g?ÆÜµ„œ(@gmÅþ²{"@g„O¯”eâ?s   Fe2+gþe÷äa!@góÒo_76@gí¾0™j'@g"lxz¥,ý?s   Zn2+g“©‚QI(@g@¤ß¾ìD@g/Ý$�µ5@g%�•C‹ö?s   Ba2+(   R0   R1   R=   R>   R5   R?   (    (    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/eltbx/xray_scattering/__init__.pyR@   D   s   t   one_gaussian_agarwal_1978c           B   sr   e  Z d  Z d Z i e d g d g ƒ d 6e d g d g ƒ d 6e d g d	 g ƒ d
 6e d g d g ƒ d 6Z RS(   s8   Agarwal, R.C. (1978). Acta Cryst. A34, 791-809, Table 3.s   Agarwal (1978)gÅ�1w-¡@ga2U0*©ô?R
   g`vO*@g;ßO�—nÊ?R:   g«ÏÕVìO @g±Pkšwœì¿R;   gTR' ‰°/@g[Ó¼ãÀR<   (   R0   R1   R=   R>   R5   R?   (    (    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/eltbx/xray_scattering/__init__.pyRA   S   s   t   fitted_gaussianc           B   s5   e  Z d d  „ Z d „  Z d „  Z d d d „ Z RS(   c         C   s&   t  j |  | ƒ | |  _ | |  _ d  S(   N(   R5   t   __init__t   stolt	   max_error(   R   RD   t   gaussian_sumRE   (    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/eltbx/xray_scattering/__init__.pyRC   _   s    	c         C   s   |  j  t |  ƒ |  j f S(   N(   RD   R5   RE   (   R   (    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/eltbx/xray_scattering/__init__.pyt   __getinitargs__d   s    c         C   s   t  |  j t j |  ƒ |  j ƒ S(   N(   RB   RD   R5   t   sortRE   (   R   (    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/eltbx/xray_scattering/__init__.pyRH   g   s    c         C   su   | d  k r t j } n  |  j d  k r0 d } n d |  j } | d |  j d d |  j | f IJt j |  | | ƒ S(   NR   s   , max_error: %.4fs   stol: %.2f # d_min: %.2f%si   i   (   R   R   R   RE   RD   R5   R#   (   R   R   R   t   e(    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/eltbx/xray_scattering/__init__.pyR#   j   s     	%N(   R0   R1   R   RC   RG   RH   R#   (    (    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/eltbx/xray_scattering/__init__.pyRB   ]   s   		(   t
   __future__R    t   scitbx.math.gaussiant   scitbxt   boost.pythont   boostt   pythont
   import_extt   extR   R   t   splitt.   shelxl_97_2_980324_tabulated_chemical_elementsR   R   t   injectorR5   R   R8   t   objectR9   R@   RA   RB   (    (    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/eltbx/xray_scattering/__init__.pyt   <module>   s   

"	
