ó
:™xTc           @   sR   d  Z  d d l m Z d „  Z e d k rN d d l Z e d e j d ƒ n  d S(   s   
Determination of sets of space groups that cannot be distinguished by
inspection of systematic absences.

From first principles; inelegant theoretically, but compact and practical.

See also: International Tables for Crystallography, Volume A, section 3.
iÿÿÿÿ(   t   divisionc      
   C   s4  |  g  d g d g g k s! t  ‚ i  } d d l m } d d l m } x| j ƒ  D]} | j | j ƒ  ƒ j ƒ  } | j d | j	 ƒ  d t
 d d	 g d
 ƒ j ƒ  } | j d | j ƒ  d t
 d | d t
 ƒ j } d d l m } | j d | j | ƒ j | ƒ ƒ }	 | j |	 ƒ } t | ƒ }
 | j	 ƒ  j ƒ  } | j | j ƒ  i  ƒ } | j |
 g  ƒ j | ƒ qT Wd d l m } | j d d ƒ } xl | j ƒ  D]^ \ } } xO | j ƒ  D]A } | d } x. | d D]" } | j d | d | d t  ƒ qÌWq±Wq˜W| j! ƒ  |  g  k rBx| j" D]! } t# | ƒ d k r6Pn  | GHqWnîd |  d j$ ƒ  } |  d g k r-d GHx | D] } d G| GHqqW| j% } | j" } xŒ t& d ƒ D]~ } t' | | | ƒ } | j( | ƒ t# | ƒ d k råd } n t) t | ƒ ƒ } | d k rd } n d } d | | f GHq£Wd  GHnd! GHg  } | j% } | j" } x | D] } d" G| GHqQWx¨ t& d ƒ D]š } t' | | | ƒ } | j( | ƒ t# | ƒ d k rº| j d# ƒ qqd$ | } | j | ƒ d% | t# | ƒ d& j* g  | D] } t) | ƒ ^ qíƒ f GHqqWd GHd' GHd( Gd) j* | ƒ GHd* GHd  S(+   Nt   pythons   c++iÿÿÿÿ(   t   sgtbx(   t   millert   space_group_typet   anomalous_flagt	   max_indexi   i   t   space_groupt   indicest   build_iselection(   t   flext   data(   t
   tardy_treet
   n_verticesiç   i    i   t   it   jt   optimizesˆ   Output of: cctbx/examples/find_sys_abs_equiv_space_groups.py %s
If you have to edit this table, please send email to: cctbx@cci.lbl.gov
s   space_group_numbers = [s     #t   Noneiæ   t    t   ,s     %s%st   ]s‡   #ifndef CCTBX_SGTBX_SYS_ABS_EQUIV_H
#define CCTBX_SGTBX_SYS_ABS_EQUIV_H

namespace cctbx { namespace sgtbx { namespace sys_abs_equiv {
s     //t   0s	   data_%03ds(     static const unsigned %s[] = {%d, %s};s   , s2     static const unsigned* space_group_numbers[] = {s      s   ,
    s       };

}}}

#endif // GUARD(+   t   AssertionErrort   cctbxR   R   t   space_group_symbol_iteratort   space_group_infot   universal_hermann_mauguint   primitive_settingt   index_generatort   typet   Falset   to_arrayt   expand_to_p1_iselectiont   groupR   t   cctbx.array_familyR
   t   sort_permutationt
   index_spant   packt   selectt   tuplet   numbert
   setdefaultt   crystal_systemt   appendt   scitbx.graphR   t   cluster_managert   itemst   valuest   connect_verticest   Truet   tidyt   clusterst   lent
   splitlinest   cluster_indicest   xranget   listt   removet   strt   join(   t   argst   sgno_list_by_index_list_by_csR   R   t   symbolst   psgit	   p_indicest
   p1_indicesR
   t	   sort_permt
   index_listt   sgnot   sgno_list_by_index_listR   R-   t   cst	   sgno_listR   R   t   clustert   notet   linet   cit   clt   st   commaR   t   cid(    (    s\   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/examples/find_sys_abs_equiv_space_groups.pyt   run   s”    !			
(
 		 	 			
;t   __main__NR<   i   (   t   __doc__t
   __future__R    RP   t   __name__t   syst   argv(    (    (    s\   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/examples/find_sys_abs_equiv_space_groups.pyt   <module>   s
   	a