ó
1™xTc           @   sJ   d  d l  m Z d  d l m Z d  d l m Z d e f d „  ƒ  YZ d S(   iÿÿÿÿ(   t   division(   t   tiny_pse(   t   continued_fractiont   formulac           B   s#   e  Z d  „  Z d „  Z d „  Z RS(   c         C   s   | |  _  d  S(   N(   t   count_of_element(   t   selfR   (    (    sA   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/eltbx/formula.pyt   __init__   s    c         C   sÆ   g  } x< d D]4 } |  j  j | ƒ } | r | j | | f ƒ q q Wg  |  j  j ƒ  D]9 \ } } | d k rU t j | ƒ j ƒ  | | f f ^ qU } | j ƒ  | g  | D] } | d ^ q¨ |  _ |  S(   Nt   Ct   Hiÿÿÿÿ(   R   R   (   R   R   (	   R   t   gett   appendt	   iteritemsR   t   tablet   atomic_numbert   sortt   element_count_pairs(   R   t   headt   eltt   nt   tailt   item(    (    sA   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/eltbx/formula.pyt.   sorted_as_c_h_then_by_increasing_atomic_number
   s     3
$c         C   sÚ   g  } xÄ |  j  D]¹ \ } } t j | d d ƒj ƒ  } | j ƒ  d k rw | j ƒ  d k rn d | j ƒ  } q² d } n; | j ƒ  d k  r¨ d | j ƒ  | j ƒ  f } n
 d | } | j d	 | | f ƒ q Wd
 j | ƒ S(   Nt   epsgñhãˆµøä>i   s   %it    i
   s   %i/%is   %.5fs   %s%st    (   R   R   t	   from_realt   as_rationalt   denominatort	   numeratorR
   t   join(   R   t   resultR   R   t   rt   m(    (    sA   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/eltbx/formula.pyt   __str__   s     	 
(   t   __name__t
   __module__R   R   R!   (    (    (    sA   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/eltbx/formula.pyR      s   		N(   t
   __future__R    t   cctbx.eltbxR   t   scitbx.mathR   t   objectR   (    (    (    sA   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/eltbx/formula.pyt   <module>   s   