ó
G™xTc           @   sÚ   d  d l  m Z d  d l m Z d  d l m Z d  d l m Z d  d l m Z d  d l m Z d  d l	 m
 Z
 d  d l m Z d  d	 l Z d
 e f d „  ƒ  YZ d	 d „ Z d „  Z d „  Z e d k rÖ e ƒ  n  d	 S(   iÿÿÿÿ(   t   division(   t   sgtbx(   t   uctbx(   t   miller(   t   crystal(   t   flex(   t   approx_equal(   t
   group_argsNt   Emptyc           B   s   e  Z RS(    (   t   __name__t
   __module__(    (    (    sZ   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_amplitude_normalisation.pyR      s   c         C   sl  d d l  m } d d l  m } | s; | j |  | ƒ } n  i  } x0 | D]( } | j | | j j | ƒ j ƒ  ƒ qH W|  j ƒ  } |  j	 ƒ  } d }	 d }
 t
 j ƒ  } |  j ƒ  } | j ƒ  } x%t d |  j ƒ  ƒ D]} | j ƒ  | } t j |  j ƒ  | d ƒ } | j ƒ  | } d } xO | j ƒ  D]A \ } } | | j ƒ  9} | | j | ƒ } | | | | 7} q'W| | j t j d | j | ƒ | | | } | j t j | ƒ ƒ |	 t | d ƒ 7}	 | d k rÒ |
 d 7}
 qÒ qÒ Wt ƒ  } t j d	 t j d
 |  j  ƒ  d |  j! ƒ  ƒ j" ƒ  d | d |  j# ƒ  ƒ | _ |	 | j j ƒ  | _$ d |
 | j j ƒ  | _% | S(   s,   Old python code replaced by faster C++ code.iÿÿÿÿ(   t
   statistics(   t   eltbxi    i   iþÿÿÿi   g      @t
   miller_sett   crystal_symmetryt   indicest   datat   sigmasg      Y@(&   t   cctbxR   R   t   wilson_plott
   setdefaultt   xray_scatteringt   wk1995t   fetcht   sin_theta_over_lambda_sqt   epsilonsR   t   doublet   space_groupt   n_ltrt   xranget   sizeR   t   matht   powt   itemst   order_zt
   at_stol_sqt   wilson_intensity_scale_factort   expt   wilson_bt   appendt   sqrtt   absR   R   t   arrayt   setR   R   t   auto_anomalousR   t   mean_e_sq_minus_1t   percent_e_sq_gt_2(   t   miller_arrayt   asu_contentsR   R   R   t	   gaussianst   chemical_typet   stol_sqR   t   e_sq_minus_1t   n_e_greater_than_2t   normalised_f_obsR   t   taut   it   s_sqt   f_sqt   epsilont	   sum_fj_sqt   n_atomst   f0t   e_sqt   r(    (    sZ   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_amplitude_normalisation.pyt   as_normalised_array   sP    . 			c          C   sì  i d d 6d d 6d d 6}  d } d } t  j d# ƒ } t j d ƒ } t j d$ d% d& f ƒ } t j d' ƒ } t j d( ƒ } t j d) ƒ } t j d t	 j
 d | d | ƒ d | ƒ }	 t j d |	 d | d | ƒ }
 |
 j ƒ  |
 j d |  d t d  | d! | ƒ ƒ } t d" |
 d |  d t d  | d! | ƒ ƒ } | j ƒ  j ƒ  |
 j ƒ  k sQt ‚ t | j ƒ  j ƒ  | j j ƒ  ƒ s{t ‚ t | j ƒ  j ƒ  | ƒ sœt ‚ |	 j d |  d t d  | d! | ƒ ƒ } t | j ƒ  | j ƒ  | ƒ sèt ‚ d  S(*   Ni
   t   Ct   Hi   t   NgôýÔxé&õ?gã¥›Ä °@i   i   i   iZ   iQ   s   P 21iþÿÿÿiýÿÿÿi    i   gš™™™™™¹?gš™™™™™ñ?gÛK ‹.Ï?gÕ–¦ê]Ö%@gÛ%},Çhu?R   t   space_group_infot	   unit_cellR   R   R   R   R0   R   R$   R&   R/   (   i   i   i   iZ   iQ   iZ   (   i   iþÿÿÿi   (   iýÿÿÿi   i    (   i   i    i    (   i   i   gš™™™™™¹?(   i   i   gš™™™™™ñ?(   gÛK ‹.Ï?gÕ–¦ê]Ö%@gÛ%},Çhu?(   R   RF   R   RE   R   t   miller_indexR   R   R+   R   t   symmetryR*   t#   set_observation_type_xray_amplitudet   normalised_amplitudesR   RA   R   t   AssertionErrorR   R   t   amplitude_normalisations(   t   ft   kt   bt   ut   sgiR8   t   dt   st   expectedt   mst   mat
   normalisedt   python_normalisedt   normalisations(    (    sZ   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_amplitude_normalisation.pyt   exercise_normalised_amplitudesE   s@    					
	$!	c           C   s   t  ƒ  d GHd  S(   Nt   OK(   RZ   (    (    (    sZ   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_amplitude_normalisation.pyt   runk   s    t   __main__(   t
   __future__R    R   R   R   R   R   t   cctbx.array_familyR   t   libtbx.test_utilsR   t   libtbxR   R   t   objectR   t   NoneRA   RZ   R\   R	   (    (    (    sZ   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_amplitude_normalisation.pyt   <module>   s   5	&	