ó
H™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 Z d „  Z	 i  Z
 d „  Z d „  Z d	 d
 „ Z d „  Z d „  Z e d k r¡ e ƒ  n  d S(   iÿÿÿÿ(   t   division(   t   flex(   t   miller(   t   debug_utilsNc   
      C   sî   i  } xÒ t  | | d ƒ D]¼ } x³ t  | | d ƒ D]� } x” t  | | d ƒ D]~ } | | | f } | d k rx qQ n  t j |  | ƒ j ƒ  } x< | D]4 } | j ƒ  }	 |	 | j ƒ  k sÁ t ‚ d | |	 <q— WqQ Wq6 Wq Wt j | j	 ƒ  ƒ S(   Ni   i    (   i    i    i    (
   t   xrangeR   t   sym_equiv_indicest   indicest   ht   hrt   AssertionErrorR   t   miller_indext   keys(
   t   space_groupt	   abs_ranget   resultt   h0t   h1t   h2R   t   equivt   h_et   h_s(    (    sW   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_reciprocal_space_asu.pyt   get_all_incides   s     c         C   s÷   |  j  ƒ  } | j ƒ  s t ‚ | j ƒ  } | r8 | GHn  d t | <|  j ƒ  j } t j ƒ  } x“ | D]‹ } | \ } }	 }
 t	 | ƒ } | | j
 | ƒ k s  t ‚ | j
 | ƒ rd | j | ƒ | | ƒ sï | j g  | D] } | ^ qÕ ƒ qï qd qd W| S(   Ni    (   t   reciprocal_space_asut   is_referenceR	   t   reference_as_stringt	   cond_dictt   groupt
   is_centricR   R
   t   evalt	   is_insidet   append(   t   space_group_infoR   t   verboset   asut   condR   R   t   hklR   t   kt   lt   vfyt   e(    (    sW   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_reciprocal_space_asu.pyt
   filter_asu   s"     
+c         C   s—   i  } x{ | D]s } t  j |  | ƒ j ƒ  } xR | D]J } | j ƒ  } | | j ƒ  k s\ t ‚ | j | ƒ sr t ‚ d | | <q2 Wq Wt j | j	 ƒ  ƒ S(   Ni    (
   R   R   R   R   R   R	   t   has_keyR   R
   R   (   R   t   asu_indicesR   R#   R   R   R   (    (    sW   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_reciprocal_space_asu.pyt   expand_indices)   s    i    c         C   s¿   |  j  ƒ  j ƒ  s d  St |  j ƒ  d d ƒ} | rF d G| j ƒ  GHn  t |  | | ƒ } | rp d G| j ƒ  GHn  t |  j ƒ  | ƒ } | r� d G| j ƒ  GHn  | j ƒ  | j ƒ  k s» t ‚ d  S(   NR   i   s   all_indices.size():s   asu_indices.size():s   exp_indices.size():(   R   R   R   R   t   sizeR(   R+   R	   (   R   R    t   all_indicesR*   t   exp_indices(    (    sW   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_reciprocal_space_asu.pyt   exercise4   s        c         C   s   t  | d |  j ƒd  S(   NR    (   R/   t   Verbose(   t   flagsR   (    (    sW   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_reciprocal_space_asu.pyt   run_call_back>   s    c           C   s   t  j t j d t ƒ d  S(   Ni   (   R   t   parse_options_loop_space_groupst   syst   argvR2   (    (    (    sW   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_reciprocal_space_asu.pyt   runA   s    t   __main__(   t
   __future__R    t   cctbx.array_familyR   t   cctbxR   t   cctbx.developmentR   R4   R   R   R(   R+   R/   R2   R6   t   __name__(    (    (    sW   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_reciprocal_space_asu.pyt   <module>   s   			
		