ķ
K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 m Z m Z m Z d  d	 l Z	 d  d	 l Z d  d	 l Z d  d	 l Z d  d
 l m Z d  d	 l Z d j   Z d   Z d   Z d   Z d   Z d   Z d   Z  d   Z! d   Z" d   Z# d   Z$ d   Z% d   Z& d   Z' d   Z( d   Z) d   Z* d   Z+ d   Z, d   Z- d   Z. d    Z/ d!   Z0 e1 d" k rÆe0   n  d	 S(#   i˙˙˙˙(   t   division(   t	   subgroups(   t   flex(   t   sgtbx(   t   uctbx(   t   complex_math(   t   format_cpu_times(   t   Exception_expectedt   approx_equalt   not_approx_equalt	   show_diffN(   t   StringIOsđ   Abm2 Aem2
Bma2 Bme2
B2cm B2em
C2mb C2me
Cm2a Cm2e
Ac2m Ae2m
Aba2 Aea2
Bba2 Bbe2
B2cb B2eb
C2cb C2ce
Cc2a Cc2e
Ac2a Ae2a
Cmca Cmce
Ccmb Ccme
Abma Aema
Acam Aeam
Bbcm Bbem
Bmab Bmeb
Cmma Cmme
Abmm Aemm
Bmcm Bmem
Ccca Ccce
Abaa Aeaa
Bbcb Bbeb
c       #   C   s  t  j d  }  |  j   d k s' t  |  j   d k s? t  |  j   d k sW t  |  j   d k so t  |  j   d k s t  |  j   d k s t  |  j	   d k sˇ t  |  j
   d k sĪ t  t  j d d	  }  |  j
   d k sų t  t  j d d
  }  |  j
   d k s#t  t  j d  }  |  j
   d k sJt  t  j d d  }  |  j
   d k stt  t  j d d d  }  |  j
   d k sĄt  t  j d d d  }  |  j
   d k sÎt  |  j   d k sæt  |  j   d k sūt  |  j   d k st  t   } x| d d d d d d d d g D]\ } t  j d |  }  |  j   d k sot  |  j	   j d  st  | |  j
   IJq>Wt | j   d   sēt  t  j d!  }  |  j
   d" k sát  t  j d#  }  |  j
   d$ k st  i d% d& 6d' d( 6d) d* 6d+ d, 6d- d. 6d/ d0 6} xA | j   D]3 \ } } t  j |  j
   | k sEt |   qEWt  j   } t |  t t |   k sŦt  | j   j	   d1 k sĘt  | j   j	   d2 k sčt  t t |   d3 k st  t  j   } d4 } xE | D]= }  | d5 7} |  j	   } t  j |  j	   | k st  qW| d6 k srt  d7 d8 d9 d: d; d< d= d> d? d@ dA dB dC dD dE dF dG dH dI dJ dK g } d dL dM dM dN dO dO dP dP dQ dQ dR dS dT dT dU dU dV dV dW dW g }	 g  | D] }
 t  j |
 d
  j   ^ q|	 k s3t  d7 d8 d: dX dY d; d= dZ d[ d? d\ d] dA d^ d_ d` da db dB dC dE dc dd dG de df dI dg dh dK di dj dk dl dm g# } d dL dM dM dM dN dO dO dO dP dP dP dQ dQ dQ dQ dQ dQ dR dS dT dT dT dU dU dU dV dV dV dW dW dW dW dW dW g# } g  | D] }
 t  j |
 d	  j   ^ q| k sHt  t j j dn do  } t j j |  s{dp | GHnlt t |   } xWd
 dq | f d	 dr | f g D]7\ } } } x- | D] } | j  |  d4 k rÂPqÂqÂWt  g  } xc | D]U } | j  ds  d4 k rPn  x  dt D] } | j! | d  } qW| j" | j#    qøWt  t |  t |  k sut  xk t$ | |  D]Z \ } \ }
 } | |
 k sŠt  t  j |
 |  j
   t  j | |  j
   k st  qWqŦWt  j }  y |  du  Wn+ t% k
 r+} t& |  dv k s2t  n Xt'  y |  dw  Wn+ t% k
 rm} t& |  dx k stt  n Xt'  y |  dy  Wn+ t% k
 r¯} t& |  dz k sļt  n Xt'  y |  d{ d5 d| d}  Wn+ t% k
 rú} t& |  d~ k s	t  n Xt'  x_ d d g D]Q } y |  d{ d d |  Wn+ t% k
 rX	} t& |  d k s_	t  q	Xt'  q	Wy |  d{ d d d}  Wn+ t% k
 r§	} t& |  d k sŽ	t  n Xt'  xW d d g D]I \ } } |  d |  } t& t  j( d t  j) |    d k sģ	t  qģ	Wg  } x3 d j#   D]% } | j" t& t  j( d |    q
W| d d d d d d g k sh
t  x] t* D]U } g  | j#   D] } t  j( d |  ^ q
\ } } | j+   | j+   k so
t  qo
Wd   } | d d d g d  | d d d g d  d  S(   Ns   p 2i   s   C2^1t   bs   P 1 2 1t    t    s    P 2yt   At   Is    P 2i   s    R 3t   rs    P 3*t   A1983t   I1952t   3s   -3t   Trigonals   P2(1)t   P3112t   P3212t   P6122t   P6522t   P6222t   P6422s   Pnnn:1s   %s (z, x, y)s   z,x,ys    (z,x,y)s    P 2yb (z,x,y)
 P 31 2 (z+1/3,x,y)
 P 32 2 (z+1/6,x,y)
 P 61 2 (z+5/12,x,y)
 P 65 2 (z+1/12,x,y)
 P 62 2 (z+1/3,x,y)
 P 64 2 (z+1/6,x,y)
 P 2 2 -1n (z,x,y)
s   P222(1)s    P 2c 2s   P 31 1 2 (x,y,z-1/3)s    P 31 2s   p 3  s     hall p 3  s   p 4s    hall:   p 4s   p 6s    hall :   p 6s   -P 2yns    p    1 21/n     1s    P 6 -2s   C  6  v  #  1s   -C 2ys   1  2s   P 1s   P -1i  i    i   i  t   P2t   P21t   B2t   C2t   Pmt   Pbt   Pct   Bmt   Cmt   Bbt   Ccs   P2/ms   P21/ms   B2/ms   C2/ms   P2/bs   P2/cs   P21/bs   P21/cs   B2/bs   C2/ci   i   i   i   i   i	   i
   i   i   i   i   i   t   A2t   I2t   Pnt   Pat   Amt   Imt   Ant   Iat   Aat   Cnt   Ics   A2/ms   I2/ms   P2/ns   P2/as   P21/ns   P21/as   A2/ns   I2/as   A2/as   C2/ns   I2/ct   cctbxs   sgtbx/symbols.cpps/   Skipping checks based on %s: file not availablet   vol_i_short_mono_hm_dictt   vol_a_short_mono_hm_dicts	   { 0, 0 },s   {},"s   (x,y,z)s7   cctbx Error: Space group symbol not recognized: (x,y,z)s   P3:2s4   cctbx Error: Space group symbol not recognized: P3:2i,  s1   cctbx Error: Space group number out of range: 300t   space_group_numbert   table_idt   xs'   cctbx Error: table_id not recognized: xt   1s   :1iK   t	   extensions4   cctbx Error: Space group symbol not recognized: 75:1s4   cctbx Error: Space group symbol not recognized: 75:xs0   2/3a+1/3b+1/3c, -1/3a+1/3b+1/3c, -1/3a-2/3b+1/3cs   x+z,-x+y+z,-y+zs0   -1/3a-2/3b+1/3c, 2/3a+1/3b+1/3c, -1/3a+1/3b+1/3cs   R 3 m :h (%s)t   groups   R 3 m :Rs   Aem2 Aea2 Cmce Cmme Ccce CCCE:1t   symbols   A b m 2s   A b a 2s   C m c as   C m m as
   C c c a :2s
   C c c a :1c         S   sE   x> |  D]6 } t  j d | d d  } | j   | k s t  q Wd  S(   NR;   R6   R   (   R   t   space_group_symbolst   universal_hermann_mauguint   AssertionError(   t   symbolst   uhmR;   t   s(    (    sP   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/sgtbx/boost_python/tst_sgtbx.pyt   checkÄ   s    t   R3t   H3s    h 3 s   R 3 :Ht   R32t   H32t   _h_3_2_s   R 3 2 :H(   s0   2/3a+1/3b+1/3c, -1/3a+1/3b+1/3c, -1/3a-2/3b+1/3cs   x+z,-x+y+z,-y+z(   s0   -1/3a-2/3b+1/3c, 2/3a+1/3b+1/3c, -1/3a+1/3b+1/3cs   x+z,-x+y+z,-y+z(,   R   R<   t   numberR>   t   schoenfliest	   qualifiert   hermann_mauguinR9   t   change_of_basis_symbolR=   t   hallt   point_group_typet   laue_group_typet   crystal_systemR   t   endswithR
   t   getvaluet   itemst   space_group_symbol_iteratort   idt   itert   nextt   lent   tuplet   libtbxt   envt
   under_distt   ost   patht   isfilet   opent   findt   replacet   appendt   splitt   zipt   RuntimeErrort   strR   t   space_group_infot   space_groupt   ad_hoc_1992_pairsR:   (   RA   t   ot   hmR?   R;   RM   t   it   nt   short_symbols_it   expected_numbers_it   shortt   short_symbols_at   expected_numbers_at   symbols_cppt   ft   volumet
   table_namet   short_symbolst   linet   symbol_pairst   ct   expected_shortt   longt   eR9   t   cabct   cxyzt   a83_symbolst   pairRB   (    (    sP   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/sgtbx/boost_python/tst_sgtbx.pyt   exercise_symbols,   s"   		
+$
%$!E4$<34   ")	     
  #!1"	c          C   sS  t  j }  |    } | j   d k s* t  | j   t  j k sE t  |  d  } | j   d k si t  | j   d k s t  |  d  } | j   d k sĨ t  | j   t  j k sĀ t  |  d d  } | j   d k sį t  | j   d k s˙ t  | | k st  | | k s$t  |  d d  } | | k sFt  | | k sXt  |  d d  } | | k szt  | | k st  | j   st  | j   sąt  |  d  } | j   sĐt  | j   sât  |  d   j d	  } | j   d	 k st  | j   d! k s't  | j	 d  } | j   d k sNt  | j   d" k sft  | j
   } | j   d k st  | j   d# k sĸt  | j   } | j   d k sÆt  | j   d$ k sŪt  | j   } | j   d	 k st  | j   d% k st  | j   d& d' d( f k s;t  |  d) d  } |  d* d  } | j |  } | j   d	 k st  | j   d+ k st  | j |  } | j   d	 k sŋt  | j   d, k s×t  |  d- d  } t |  d k sūt  | j   d k st  | j t  d k s1t  | j t d  d k sOt  d  S(.   Ni    i   i   i   i   i   i   iū˙˙˙i   i˙˙˙˙i   iũ˙˙˙i   g      đ?g       @g      đŋi	   i   iü˙˙˙s
   -1/4,0,1/2s	   -.25,0,.5t   ;s
   -1/4;0;1/2(   i    i    i    (   i    i    i    (   i   i   i   (   i   i   i   (   i   i   i   (   i   i   i   (   i   i   i   (   i   i   i   (   i   i   iū˙˙˙(   i   i   i˙˙˙˙(   i   i   iũ˙˙˙(   i   i   i   (   i   i   iũ˙˙˙(   i   i   i˙˙˙˙gUUUUUUÅ?gUUUUUUÕ?gUUUUUUÅŋ(   i   i   i   (   i	   i    i   (   i   i   i   (   iü˙˙˙i   i   (   i˙˙˙˙i    i   (   R   t   tr_vect   numR>   t   dent   sg_t_dent   is_validt   is_zerot   new_denominatort   scalet   mod_positivet	   mod_shortt   cancelt	   as_doublet   plust   minusRg   t	   as_stringt   Truet   False(   R   t   tRA   t   aR   R{   (    (    sP   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/sgtbx/boost_python/tst_sgtbx.pyt   exercise_tr_vecË   sn    		!c          C   sS  t  j }  t  j } t  j } |   } | j   d k s< t  | j   d! k sT t  | d  } | j   d k sx t  | j   d" k s t  | d d  } | j   d k sˇ t  | j   d# k sĪ t  | d$  } | j   d k sķ t  | j   d% k st  | d& d  } | j   d k s2t  | j   d' k sJt  | | k s\t  | | k sot  | d( d  } | | k st  | | k sŖt  | d) d  } | | k sÅt  | | k s×t  | j   sét  | j   süt  | d  } | j   st  |   } | j   s6t  | d d  } | j   sWt  |   j	   } | j   d k s~t  | j   d* k st  | d+  j	   } | j   d k sĀt  | j   d, k sØt  | d d  j
 d	  } | j   d	 k st  | j   d- k s t  | j d  } | j   d k sGt  | j   d. k s_t  | j   d k swt  | t d  d  j   } | j   d/ k sĒt  | j   d k sÂt  |   j   j   |   j   k sėt  d0 } | |  j   } | j   d k st  | j   d1 k s4t  | |  j   j   j   | k s^t  | d2 d  j   } | j   d k st  | j   d3 k sŖt  | d4  j d  } | j   } | j   d k sÜt  | j   d5 k sôt  | j   } | j   d k st  | j   d6 k s0t  |   j |    j   sQt  | |  j | |   | |  j   k st  | |  j | |  j | |    j   sēt  |   j |  d7 d   |  d8 d  k sęt  |   j |  d9 d   |  d: d  k st  | |  j |  d; d   |  d< d  k sMt  | |  j |  d= d   |  d> d	  k st  | d? d  j d  |   k s§t  | |  j d  j   d d@ d dA dB d d d dC f	 k sét  | |  j   d k st  | |  j   d k s%t  | |  j d  d k sFt  | d d  j   d k sgt  | d d  j   d k st  | d d  j d  d k sŦt  |   j   | dD  k sÍt  | dE  j   | dF  k sņt  | |  j   | dG  k st  | dH  j   | dI  k s9t  | |    } | j   d k s`t  | j   dJ k sxt  | j   dK dL dM f k st  | j   d k sąt  |   j   } | j   d k sØt  | j   dN k sđt  | j   dO dP dQ f k s	t  | j   d k s)	t  | | dR   } | j   d k sS	t  | j   dS k sw	t | j     | j   | j   f k s	t  | j   d k s°	t  | | dT   } | j   d k sÚ	t  | j   dU k sū	t | j     | j   | j   f k s
t  | j   d k s7
t  | | dV   } | j   d k sa
t  | j   dW k s
t | j     | j   | j   f k sĻ
t  | | dX   } | j   d k sĐ
t  | j   dY k sô
t | j     | j   dZ d[ f k st  | j   d k s*t  | | d\   } | j   d k sTt  | j   d] k sxt | j     | j   d^ d_ f k st  | j   d k sŽt  | | d`   } | j   d k sØt  | j   da k süt | j     | j   db dc f k st  | j   d k s2t  | | dd   } | j   d k s\t  | j   de k st | j     | j   df dg f k st  | | dh   } | j   d k sČt  | j   di k sėt | j     | j   dj dk f k s
t  | j   d k s"t  | | dl   } | j   d k sLt  | j   dm k spt | j     | j   | j   f k st  | j   d k sŠt  | | dn  j    } | j   d k sŲt  | j   do k sũt | j     | j   | j   f k st  | j   d k s6t  | | dp   } | j   d k s`t  | j   dq k st | j     | j   dr k st  | j   d k s´t  | | ds  j    } | j   d k sät  | j   dt k st | j     | j   du k s t  | j   d k s8t  | | dv   } | j   d	 k sbt  | j   dw k st | j     | j   | j   f k s§t  | j   d k sŋt  | | dx  j    } | j   d	 k sīt  | j   dy k st | j     | j   | j   f k s4t  | j   d k sLt  | | dz   } | j   d k svt  | j   d{ k st | j     | j   d| k s˛t  | j   d k sĘt  | | d}  j    } | j   d k sút  | j   d~ k st | j     | j   d k s6t  | j   d k sNt  | | d   } | j   d k sxt  | j   d k st | j     | j   | j   f k sŊt  | j   d k sÕt  | | d  j    } | j   d k st  | j   d k s)t | j     | j   | j   f k sJt  | j   d k sbt  | | d   } | j   d k st  | j   d k s°t | j     | j   d k sČt  | j   d k sāt  | | d  j    } | j   d k st  | j   d k s4t | j     | j   d k sLt  | j   d k sdt  | | d   } | j   d k st  | j   d k s˛t | j     | j   | j   f k sĶt  | j   d k sët  | | d  j    } | j   d k st  | j   d k s?t | j     | j   | j   f k s`t  | j   d k sxt  | | d   } | j   d k sĸt  | j   d k sÆt | j     | j   | j   f k sįt  | j   d k s˙t  | | d   } | j   d k s)t  | j   d k sMt | j     | j   | j   f k snt  | d  } | j   d k st  | j   d k sĒt  | d d d d d	 d d d d g	 d  } t | d d d g d d d g  s˙t  t d d d g | d d d g  s*t  t | t  j  d   d  k sOt  d  S(   Ni   i    i   i   i   i˙˙˙˙iū˙˙˙i   i   i$   i   i	   i   i   i   iü˙˙˙iø˙˙˙g      đŋg      đ?iũ˙˙˙iú˙˙˙s	   -x+y,y,-zs	   -h,h+k,-lgÉ?gš?g      āŋgí"ņģģÛŋgßŠÛ4Ņ?gÂ8UJ?g˛@äÂģģË?s   1/5,1/10,-1/2s   (-13/30, 4/15, 1/60)(	   i   i    i    i    i   i    i    i    i   (	   i   i    i    i    i   i    i    i    i   (	   i   i    i    i    i   i    i    i    i   (	   i   i    i˙˙˙˙i   i   i    i    i˙˙˙˙i˙˙˙˙(	   i   i    i˙˙˙˙i   i   i    i    i˙˙˙˙i˙˙˙˙(	   i   i    i˙˙˙˙i   i   i    i    i˙˙˙˙i˙˙˙˙(	   i   i    i˙˙˙˙i   i   i    i    i˙˙˙˙i˙˙˙˙(	   i   i    i˙˙˙˙i   i   i    i    i˙˙˙˙i˙˙˙˙(	   i   i    i˙˙˙˙i   i   i    i    i˙˙˙˙i˙˙˙˙(	   i    i    i    i    i    i    i    i    i    (	   i   i    i˙˙˙˙i   i   i    i    i˙˙˙˙i˙˙˙˙(	   i    i    i˙˙˙˙i   i    i    i    i˙˙˙˙iū˙˙˙(	   i   i    i    i    i   i    i    i    i   (	   i$   i    i    i    i$   i    i    i    i$   (	   i    i   i   i   i   i   i   i   i   (	   i    i˙˙˙˙i    i   i˙˙˙˙i    i    i    i   (	   i˙˙˙˙i   i    i˙˙˙˙i    i    i    i    i   (	   i   i    i    i    i   i    i    i    i   (	   i   i    i    i    i   i    i    i    i   (	   i    i˙˙˙˙i   i   i    i   i˙˙˙˙i   i   (	   iü˙˙˙i   iü˙˙˙iø˙˙˙i   i   i   i   i   (	   i˙˙˙˙i   i˙˙˙˙iū˙˙˙i   i   i   i   i   (   i   i   i   (   i   i   i   (   i   i   i   (   i   i   i   (   i   i   i   (   iū˙˙˙i˙˙˙˙i   (   i   iü˙˙˙i   (   i   i   i   (	   i   i    i    i    i   i    i    i    i   g      āŋg      ā?g      āŋg      ā?(	   i   i    i    i    i   i    i    i    i   (	   i˙˙˙˙i    i    i    i˙˙˙˙i    i    i    i˙˙˙˙(	   i    i    i    i    i    i    i    i    i    (	   i    i    i    i    i    i    i    i    i   (	   i    i   i    i˙˙˙˙i    i    i    i    i˙˙˙˙(	   i    i    i    i    i    i    i    i    i    (   i    i    i    (   i   i    i    (   i    i   i    (   i    i    i   (   i    i    i    (   i   i    i    (   i    i   i    (   i    i    i   (	   i˙˙˙˙i    i    i    i˙˙˙˙i    i    i    i   (   i    i    i   (	   i˙˙˙˙i    i    i    i   i    i    i    i˙˙˙˙(   i    i   i    (	   i   i    i    i    i˙˙˙˙i    i    i    i˙˙˙˙(   i   i    i    (	   i   i    i    i    i   i    i    i    i˙˙˙˙(   i    i    i   (   i   i    i    (   i    i   i    (	   i   i    i    i    i˙˙˙˙i    i    i    i   (   i    i   i    (   i   i    i    (   i    i    i   (	   i˙˙˙˙i    i    i    i   i    i    i    i   (   i   i    i    (   i    i   i    (   i    i    i   (	   i    i˙˙˙˙i    i˙˙˙˙i    i    i    i    i   (   i   i   i    (   i    i    i   (   i˙˙˙˙i   i    (	   i   i    i    i    i    i   i    i   i    (   i    i˙˙˙˙i   (   i   i    i    (   i    i   i   (	   i    i˙˙˙˙i    i   i˙˙˙˙i    i    i    i   (   i    i    i   (	   i    i˙˙˙˙i    i   i˙˙˙˙i    i    i    i   (   i    i    i   (	   i    i   i    i˙˙˙˙i   i    i    i    i˙˙˙˙(   i    i    i   (    (	   i    i   i    i˙˙˙˙i   i    i    i    i˙˙˙˙(   i    i    i   (    (	   i    i    i   i    i   i    i˙˙˙˙i    i    (   i    i   i    (	   i    i    i   i    i   i    i˙˙˙˙i    i    (   i    i   i    (	   i    i    i˙˙˙˙i    i˙˙˙˙i    i   i    i    (   i    i   i    (    (	   i    i    i˙˙˙˙i    i˙˙˙˙i    i   i    i    (   i    i   i    (    (	   i   i    i    i    i   i˙˙˙˙i    i   i    (   i   i    i    (	   i   i    i    i    i   i˙˙˙˙i    i   i    (   i   i    i    (	   i˙˙˙˙i    i    i    i˙˙˙˙i   i    i˙˙˙˙i    (   i   i    i    (    (	   i˙˙˙˙i    i    i    i˙˙˙˙i   i    i˙˙˙˙i    (   i   i    i    (    (	   i    i    i   i   i    i    i    i   i    (   i   i   i   (	   i    i    i   i   i    i    i    i   i    (   i   i   i   (	   i    i˙˙˙˙i    i˙˙˙˙i    i    i    i    i˙˙˙˙(   i˙˙˙˙i   i    (	   i˙˙˙˙i   i    i    i   i    i    i    i˙˙˙˙(   i   i   i    (	   i˙˙˙˙i   i    i    i   i    i    i    i˙˙˙˙(!   R   R   t   rot_mxt   rot_mx_infoR   R>   R   R   t
   is_unit_mxt   minus_unit_mxR   R   t   determinantt   ranget	   transposet   inverseR   t   inverse_cancelt   multiplyt   divideR   t   typet   ordert
   accumulatet   evt   basis_of_invariantt   senset   infot   as_xyzt   as_hklR   Rg   t   vec3_rat_from_str(   R   R   R   R   RA   t   r3Rm   (    (    sP   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/sgtbx/boost_python/tst_sgtbx.pyt   exercise_rot_mx  sŧ   					**!360033'B!!!$!$!!$!$!$!$$$$$$!$!$$$!$!$$$!$!$$$!$!$!$!*++c          C   s¤  t  j }  t  j } t  j } |   } | j   j   d k sB t  | j   j   t  j k sc t  | d  } | j   j   d k s t  | j   j   t  j k sŽ t  | d d  } | j   j   d k sÛ t  | j   j   d k sų t  | dg  } |  dh  } | | |  } | j   | k s8t  | j   | k sPt  | |  } | j   | k stt  | j   |    k st  | | d  } | j   | k sļt  | j   |  d  k sÔt  | |  } | j   |   k sût  | j   | k st  | | d  } | j   | d  k s@t  | j   | k sXt  t  j	 d  } | j
   d k st  | |  } | j   st  t  j	 d  } | |  } | j   d k sĐt  t  j	 d  } | | d	  } | j   d k st  t  j	 d
  } | | d	 d  } | j   j   d k sEt  | j   d k s]t  t  j	 d  } | | d	 d d  } | j   j   d k st  | j   j   d k sŊt  | j   d k sÕt  | d  } | j   d k sųt  | d d  } | j   d k s t  | d d d  } | j   j   d k sPt  | j   d k sht  | d d d d  } | j   j   d k st  | j   j   d k sšt  | j   d k sŅt  | d  | d  k sīt  | d  | d  k st  | d  | d  k s-t  | d  | d  k sKt  |   j   s`t  | d  j   syt  | d d d d  j   | d d  k sŠt  |   j   sžt  | d  j   s×t  | d  j   d k sõt  | d d d d  } t |  d k s"t  | j   t |  k s@t  | j t  t |  k sat  | j t  d  k s|t  | j t t  t |  k s t  | j t t  d! k sžt  | j t t d"  t |  k såt  | j t t d#  d$ k st  | j t t d" d%  t |  k s0t  | j t t d" d&  d' k sTt  | j   di k slt  | j   dj k st  | j d  j   j   d k sĢt  | j d* d+  j   j   d* k sÕt  | j d* d+  j   j   d+ k s˙t  | j | d d d* d+   j   j   d* k s5t  | j | d d d* d+   j   j   d+ k skt  | d,  j   | d-  k st  | d.  j   | d/  k sŗt  | d  j   | d0  k s×t  | d  } | j dk  dl k sūt  | d d d d1  j   | d d d d  k s4	t  | d  j   | d0  k sX	t  | d  j   | d0  j   k s	t  | d  j | d0   j   sŠ	t  t  j |    } | j   j   sĶ	t  | j   j   së	t  | j    j   s
t  t  j | d2   } | j   j!   d d dm f k s?
t  | j   j   sW
t  | j    j   so
t  t  j | d4   } | j   j!   d d dn f k sĢ
t  | j   j!   d do d f k sŌ
t  | j    j!   dp dq d f k sų
t  t" | d8  dr ds  st  t | d8  t  j# d9   d: k sCt  dt } du dv dw f } t | | |   d< k syt  t | | | d   d< k st  t | | | d d1   d< k sÄt  t | d=   d> k sât  t | d4  dx  d? k st  x\ | d  | d d  | d?  g D]6 } t$ j% |  } t$ j& |  }	 |	 | k s)t  q)Wt  j'   }
 |
 j( | d?   |
 j( | d   g  |
 D] } t |  ^ qd? d g k sÆt  t$ j% |
  } t$ j& |  }	 g  |	 D] } t |  ^ qëd? d g k st  |	 j) |
  |	 j*   d k s:t  |	 j+   |	 j*   d k s\t  t | d8  dy  d@ k s~t  t | dA  |  dz d7   dB k sŠt  t | dC   dC k sĮt  t | dD   dC k såt  y | dE  Wn/ t, k
 r$} t- t |  dF  s+t  n Xt.  y | d  Wn/ t, k
 rj} t- t |  dG  sqt  n Xt.  y | dH  Wn/ t, k
 r°} t- t |  dI  sˇt  n Xt.  y | dJ  Wn/ t, k
 rö} t- t |  dK  sũt  n Xt.  y | dL  Wn/ t, k
 r<} t- t |  dM  s=t  n Xy | dN  Wn/ t, k
 r|} t- t |  dO  s}t  n Xy | dP  Wn/ t, k
 rŧ} t- t |  dQ  sÃt  n Xt.  | dR  } d{ } d| } | j/ dY | dZ |  d} k s˙t  | j0 dY | dZ |  } t |  d] k s/t  t" | | d~  sHt  y  t  j da db dc d7 dd de  Wn/ t, k
 r} t- t |  df  s t  n Xt.  d  S(   Ni   i   i   i˙˙˙˙i    s   x,y,zs   -x,-y+1/2,zs   -x,-y+1/2,z;R   s   -  x,- y + 1/2, z ;s   -  x,-1* y + .5, z ;i   s
   1/2+x,-y,zs
   x+1/2,-y,zs   x-y,x,z+5/6#t   #s   x-y,x,z+5/6s   -y,x-y,z+.66666666#s   -y,x-y,z+2/3s   y,y-x,z+1/6#i   s   y,-x+y,z+1/6s   y,y-x,z+1/6s   y,y-x,z-1/6s   -x,-y,-zR   s   0.667+x, 0.333+y, 0.333+zs   x+2/3,y+1/3,z+1/3s   y,y-x,z+1/4i   s   y,-x+y,z+1/4s   y,-x+y,z+.25s   y,-x+y,1/4+zt   xyzt   abcs   b,-a+b,c+1/4t   ,s    ; s   y ; -x+y ; z+1/4iũ˙˙˙g      Đ?i	   i   s   x-1/2,y+4/3,z-1/3s   x+1/2,y+1/3,z+2/3s   x-1/2,y+5/3,z-2/3s   x+1/2,y-1/3,z+1/3s   y,-x+y,z-5/6i   s   -y,x-y,z+1/3g      đ?s   -x+y,-x+1/4,z+2/3g       @g      đŋi   s   z,x,ys   2,-1/7,10/-4s   (-5/2, 2, -1/7)g      (@s   -x+y+1/12,y+1/6,-z+1/4s&   +0*x-1*y+0*z,+0*x+0*y+1*z,-1*x+0*y-1*zs	   -y,z,-x-zs   -x+y+2,-x-3/4,z+11/3s   z+1,x+2,y-3s	   z+1/6,x,ys   z+1/4,x+1/6,y-1/4s	   -x+y,y,-zs	   -h,h+k,-ls   h,x,zs;   Parse error: mix of x,y,z and h,k,l notation:
  h,x,z
  __^s,   Parse error: unexpected end of input:
  
  ^s   x, s2   Parse error: unexpected end of input:
  x, 
  ___^R7   s1   Parse error: not enough row expressions:
  x
  _^s   x,y,x,zs9   Parse error: too many row expressions:
  x,y,x,z
  _____^s   x++s.   Parse error: unexpected character:
  x++
  __^s   a, b, csH   Parse error: a,b,c notation not supported in this context:
  a, b, c
  ^s   y-13/2,y-x+8/3,z+1/4gÍĖĖĖĖĖ@gÍĖĖĖĖĖĀgÍĖĖĖĖĖ!@gÍĖĖĖĖĖ ĀgÍĖĖĖĖĖĀgÍĖĖĖĖĖ)@t   site_frac_1t   site_frac_2i   iü˙˙˙s   y+23/2,-x+y-1/3,z-15/4g333333@g/šģģĀgÍĖĖĖĖL"@R;   s   h,k,1t   r_dent   t_deni   sn   h,k,l matrix symbol must not include a translation part:
  input symbol: "h,k,1"
  translation part: (0, 0, 1)(	   i˙˙˙˙i   i    i    i   i    i    i    i˙˙˙˙(   i   i   i   (   i    i   i    iũ˙˙˙i   i    i    i    i   i    i    i   (   i    i   i    i˙˙˙˙i   i    i    i    i   i    i    g      Đ?(   i   i   i   (   i   i   i   gUUUUUUÕ?gUUUUUUå?g      ĐŋgUUUUUUĩ?gUUUUUUÅ?(   i   i   i   (   i   i   i   (	   i˙˙˙˙i   i    i    i   i    i    i    i˙˙˙˙gUUUUUUĩ?gUUUUUUÅ?g      Đ?(   i   i˙˙˙˙i   (   i   i   iũ˙˙˙(   i   i   iũ˙˙˙(   gÍĖĖĖĖĖ@gÍĖĖĖĖĖĀgÍĖĖĖĖĖ!@(   gÍĖĖĖĖĖ ĀgÍĖĖĖĖĖĀgÍĖĖĖĖĖ)@(   i   iũ˙˙˙iü˙˙˙(   g333333@g/šģģĀgÍĖĖĖĖL"@(1   R   R   R   t   rt_mxR   R   R>   R   R   t   parse_stringt   stringR   RĢ   R   t   unit_mxRg   R   R   t   as_int_arrayt   as_double_arrayt   new_denominatorsR   R   R    t   refine_griddingR   RĄ   Rĸ   t   translation_part_infot   intrinsic_partR   t   location_partt   origin_shiftR   R   R­   t   picklet   dumpst   loadst   stl_vector_rt_mxRc   t   extendt   sizet   cleart
   ValueErrorR
   R   t   unit_shifts_minimum_distancet    add_unit_shifts_minimum_distance(   R   R   R¸   RA   R   R   t   pRm   t   mt   lt   vt   elemR~   R´   Rĩ   t   su(    (    sP   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/sgtbx/boost_python/tst_sgtbx.pyt   exercise_rt_mxä  s   				!!0!$'!*$'**66$'''''!$'"+11
"+       			 c          C   sˇ  t  j }  t  j } | |    |     } | j   s9 t  | |     } | j   sZ t  | d  } | d d  } | d d d  } | d d d d  } | j   s¯ t  | j   j   j   d k sĶ t  | j   j   j   d k s÷ t  | j	   j   j   d k st  | j	   j   j   d k s?t  t
 | j    d k s]t  t
 | j	    d k s{t  | j   } | j   st  | j   j   j   d k sŊt  | j   j   j   d k sát  | j	   j   j   d k st  | j	   j   j   d k s)t  t
 | j    d k sGt  t
 | j	    d k set  | j   swt  | d d  } | j   st  | j d d	  } | j   j   j   d k sĪt  | j   j   j   d	 k sķt  | j |  } | j   j   j   d k s&t  | j   j   j   d k sJt  | d  } | j t  | j   k swt  | j t  | j	   k st  | j   } | j   | j	   k sÂt  | j   | j	   k sāt  | d
  } | j   t
 | j    d k st  t
 | j   j    d k s8t  t
 | j   j	    d k s\t  | j   t
 | j    d k st  t
 | j	    d k sĸt  | d  } t
 | j |  d    d k sÕt  | d"  } x1 t d  D]# } t | | d# |  sît  qîW| j | d   t
 | j    d k sFt  | | j   j   sbt  | d  } t j d$  } t | j |  j   d%  sĄt  | j d&  d' k sŧt  t j d( d) f  } t | j |   d* d+ f k søt  | j d |  j    d k st  | d  } t! | j d |   d g k sOt  | j t j" d d g   } t! | j d |   d g k st  t# j$ |  } t# j% |  } t
 | j    t
 | j    k sÜt  xk d d d g D]Z } | |  } | j&   d k st  | j'   d k s.t  | j(   d k sėt  qėW| d  } | j&   d k snt  | j(   d k st  | j   j&   d k s¤t  | j   j)   }	 | j	   j)   }
 t
 |	 j*  j+ d d  d  k sīt  |	 |
 j* d, k st  t
 |
 j,   j*  j+ d d  d! k s5t  | j-   d k sMt  | j   j-   d k skt  t
 |  | j-   k st  t
 | j    | j   j-   k sŗt  d  S(-   Ns   z,x,ys
   z,x,y;junkR   i   i   s   y,z,xs   x,y,zi    i   s   x+3/2,y-5/4,z+1/3s   x+1/2,y+3/4,z+1/3s   x+1/2,y-1/4,z+1/3s   x+1/2,y+1/4,z-1/3s   -x,-y,zs   x,-y,-zgš?gÉ?g333333Ķ?i   iZ   i   t   miller_indicess   -x,-y,2zs	   -x+y,y,-zs	   -h,h+k,-ls	   -a,a+b,-cs   -a+1/8,a+b-1/3,-c+2/3s   -x+y+11/24,y+1/3,-z+2/3s   -x+y+1/8,y-1/3,-z+2/3t    R   s+   (-1,1,0,11/24,0,1,0,1/3,0,0,-1,2/3,0,0,0,1)s*   (-1,0,0,0,1,1,0,0,0,0,-1,0,1/8,-1/3,2/3,1)(   gš?gÉ?g333333Ķ?(   g333333Ķ?gš?gÉ?(   i   i   i   (   i   i   i   iZ   iZ   iZ   (   i   i   i   (   i   i   i   (   i   i   i   (   i   i   i   (   i   i   i   (   i   i   i   (   i   i    i    i    i    i   i    i    i    i    i   i    i    i    i    i   (.   R   R¸   t   change_of_basis_opt   is_identity_opR>   R{   R   R   R   t   c_invRg   t   identity_opR   Rž   t   selectR   R   R    t   mod_positive_in_placeR   t   mod_short_in_placet   applyt   xrangeR   t   updateR   t	   unit_cellt
   parametersR   t   miller_indexRY   t%   apply_results_in_non_integral_indicesRÉ   t   listt   size_tRÄ   RÅ   RÆ   RĢ   RŦ   t   as_abct   as_4x4_rationalt   elemsRb   R   R;   (   R¸   R×   R{   t   dt   xfRm   t   uRA   RĐ   R   R   (    (    sP   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/sgtbx/boost_python/tst_sgtbx.pyt   exercise_change_of_basis_op¸  s´    		$$$$$$$$$$$$!!
$$
' !$'$''*c    -         s)  t  j }  t  j } t  j } |   } t  j d  } | |  } t  j d  } | | t  } t  j d  } | | t t  } t  j d  } | | t t t  } | j   t  j k sŊ t  t  j d  } | | t t t d t  j  } | j   d t  j k s
t  | d  } | d t	  } | d t t	  } | d t t	 t	  } | d t t	 t	 d t  j  } | j   d t  j k st  | t  j
 d   } | |  } | j   | j   d k sÍt  | j   t  j k sčt  | j d  | j   d k st  | j   d k s%t  | j   | j |     | k sMt  | j   d k set  | j   | j |  d   | j   d k st  | j   | j |  d   | j   d k sĪt  | j   | j   d k sņt  | j   st  | j   st  | j |  d   | k s8t  | j   d k sPt  | j   sbt  | j   stt  | j   | j |  d   | j   sŖt  | j   sļt  | j   | j   d k sØt  | j | d	   | k sųt  | j   d k st  t  j   } | j d
  | k s8t  | j   sKt  | j   | k sct  | j   sut  | j   d k st  | j d  | j   d k s˛t  | j   sÅt  x& | D] } | j d |  sĖt  qĖW| j d t  j d   st  xX d d d d d d d f D]; \ } } | j   | j |  | j   | k s,t  q,Wt  j d  } | j   | j |  | j   d k sŠt  t |  d k sÁt  | j   d k sŲt  t  j d  } | j | t	  | j   d k st  t  j d  } | j | t t	  | j   d k sJt  | d  } t  j d  } | j |  }	 | |	 k st  t  j d  } | j |  }	 | |	 k sļt  | d  } | |	 k sÔt  | d  } | j   d k søt  | j   d k st  | d  } | j   d k s4t  | j   d k sLt  d }
 x t  | j    D] } x t  | j    D]m } xd t  | j    D]P } | | | |  | |
  k sÁt  | |
 | |
  k sŨt  |
 d 7}
 qWq~WqeWt t! |   | j   k st  | d   } | j | d	   | d!  }	 |	 j | d"   g  | D] } t" |  ^ q\} g  |	 D] } t" |  ^ q{} | | k sĨt  | j   |	 j   g  | D] } t" |  ^ qĀ} g  |	 D] } t" |  ^ qß} | | k s		t  | |	 k s	t  | |	 k s.	t  x0 d# D]( } | | d$  j#   | k s5	t  q5	W| d  j$   j%   s	t  | d%  j$   j%   s	t  | d%  j&   j%   sŊ	t  | d   j'   sÕ	t  | d&  j'   sî	t  | d'  } t( j) d d d f  } | j* d  s'
t  | j* d  s=
t  t! | j* |   t	 t t f k sg
t  | j d  s|
t  | j d  s
t  t! | j |   t t t	 f k sŧ
t  | j+ d  } | j,   sŪ
t  | j-   d k sö
t  | j. d | j/    st  | j. d | j/   t  s5t  | j. d | j/ t	  t	  sYt  | j. d | j/   t0 j1 d( t  st  | j. d | j/   t0 j1 d( t d)  sĩt  t2 | j3 d* t( j) d d g  d+ t( j4 d, d- g   d, d. g  s t  t2 | j3 d* t( j) d d g  d+ t( j4 d/ d0 g  d1 t	  d/ d2 g  sQt  | j5 d  t  d k sot  | j5 dĄ t	  d k st  t! | j5 | t   dĸ k sąt  t! | j5 | t	   dŖ k sÕt  | j6 d¤  d k sđt  t! | j6 |   dĨ k st  | d3      f d4   } | d5 d  | d6 d  | d7 d  | d8 d  | d9 d  | d: d  | d; d  | d< d  t7 j8 dĻ  } | j9 | d  j: |   sĮt  | d  j; |  sât  | d  j; | d?  s t  | d  j; | d? d  s!t  | d@  j; |  s=t  | d@  j: |  j9 t7 j8 d§  dC dD  spt  | d@  j; | d dE  st  t7 j8 d¨  } | dK  } | j; |  sÁt  t2 | j< dL t= d d dM   dŠ  sît  | dT  } | j> dU t	  }	 |	 | dV  k s$t  |	 j?   }	 |	 | dV  k sHt  | j> dU t  }	 |	 | dW  k srt  |	 j?   }	 |	 | dX  k st  | j@   }	 |	 | dW  k sēt  | jA   }	 |	 | dY  k sŪt  | jB   }	 |	 | dZ  k st  | jC   d[ k st  | jD   d\ k s2t  | jE   d] k sJt  xc t  jF   D]U } | |  } | jG   } | jH   | jH   k st  | j?   j   sWt  qWW| d^  } | jI   dĒ k sÔt  | jJ dĢ  dŦ k sīt  d d` da g } d d` db g } g  | jK   D] } t" |  ^ q| k s>t  g  | jK d  D] } t" |  ^ qN| k srt  g  | jK d  D] } t" |  ^ q| k sĻt  g  | jK dM  D] } t" |  ^ qļ| k sÚt  g  | jK dM t  D] } t" |  ^ qí| k st  g  | jK dM t	  D] } t" |  ^ q$| k sHt  | jK d t  d jL   jM   t  j k syt  | jK d t	  d jL   jM   d k s§t  | d^  } | jN   jH   dc k sŅt  tO jP |  } tO jQ |  } | | k st  | dd  } xú de df g D]ė } t  j |  } xÔ | jR   | jS   g D]ē } | dg |  }	 t  j |  } | j |  |	 k st  |	 j | jT    | k sŠt  xV | jT   jR   | jT   jS   g D]0 } t  j |  } |	 j |  | k sÎt  qÎWqHWqWdh } di } dj } xz | | | g D]i } t  j |  jR   | k sSt  t  j |  jU   | k stt  t  j |  jS   | k s,t  q,W| dk  } | dl  }	 xG| | | g D]6} | dm |  } t  j |  } | j |  | k st  | |	 k st  | jT   jR   dn k s1t  | jT   jU   do k sOt  | jT   jS   dp k smt  x | jT   jR   | jT   jU   | jT   jS   g D]R } | dq |  } t  j |  } |	 j |  | k sát  | | k sĄt  qĄWqÁWy | dr  Wn/ tV k
 r:} tW t" |  ds  sAt  n XtX  y | dt  Wn/ tY k
 r} tW t" |  du  st  n XtX  | dv  } t  j dw  }  | j |   }! |! j   rĘ|! j   sĐt  |! jZ   }" |! j |"  }# |# j   sũt  t" |  |"  dx k st  |   } t  j d d_  } | j[   jM   d k sRt  | jL   jM   d_ k spt  y | j |  Wn+ tY k
 rŽ} t" |  dy k sĩt  n XtX  t  j d dz  } | j[   jM   d k såt  | jL   jM   dz k st  y | j |  Wn+ tY k
 rA} t" |  d{ k sHt  n XtX  | d|  } | j   d  }$ x  t] | j^    d D] } |$ d  k	 rũ|$ | k  st  |$ | k sąt  | |$ k sÃt  | |$ k sÕt  | |$ k sįt  | |$ k sũt  n  | }$ q{WxP | D]H } | t" |   } | | k s8t  t_ |  t_ |  k st  qWt  j d} d~  }% |% j[   jM   d k st  |% j` d d d dz  }& t  j d} d  }' |' j[   jM   d k sŌt  |' j` d d d dz  }( t  j d} d  }) |) j[   jM   d k st  |) j` d d d dz  }* |% |& k sDt  |% |% k  sWt  |% |& k  sjt  |& |% k  s}t  |& |& k  st  |% |' k sĸt  |% |' k  s´t  |% |( k  sÆt  |& |' k  sØt  |& |( k  sęt  |% |) k süt  |% |) k  st  |% |* k  s"t  |& |) k  s5t  |& |* k  sHt  |% |% k  s[t  |% |% k smt  |% |% k st  |% |% k st  |% |' k s¤t  |% |' k sˇt  |% |' k sĘt  t  j d d d d d_ }+ t  j d d d d d_ }, |+ |, k st  |+ |, k s%t  d  S(­   Ns   P 1i   R8   i   i   i   i    i   s   -x,-y,zs   -x,y,-zs   -x,-y,-zt   smxs   y,z,xt   PR   t   BR{   R   R   t   Fs   P 4s   P 2xi   s   -1i   s   x,y,zs   z,x,ys   P 4xs   P 6s   -F 2 2i    s   P 3s   P 2s	   -x+y,-x,zt   PABCIRFs    1s   R 1s   -P 3s   P 41 (1,2,-1)i´   g    .ARÕ   t   phasesg°rhí|ŋ?gÁĘĄEļķÍ?ges-8RÁā?i{   ię   t   degiŌ   s	   F 2 2 -1dc            s(     j  t j |    | k s$ t  d  S(   N(   t   multiplicityR   R­   R>   (   RA   RĪ   (   t   gm(    sP   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/sgtbx/boost_python/tst_sgtbx.pyRB   ą  s    s   1/4,1/4,1/4s   1/4,1/4,-1/4s   1/8,1/8,1/8s   5/8,5/8,5/8s   1/9,1/4,1/4s   1/4,1/9,1/4s   1/4,1/4,1/9s   1/7,1/5,1/9iZ   ix   g{ŽGáz?s   P 3*g;ßOî
@gI&ÂfX@gņhãĩøä>güŠņŌMbP?i   g×ōAĪŌW@gŗęsĩX@gę46W@gX9´ČvÎ\@gøSãĨ´]@s   C 2y (x+y,-x+y+z,z)t   u_stari˙˙˙˙g      @g      @g      @g      @g      @g      ø?s   C 2 -2ct   anomalous_flags   C 2 -2s   -C 2 2s   C 2 2s   P 2 -2s   -P 2 2t   mm2t   mmmt   Orthorhombics   P 31i   s   -y,x-y,z+1/3s   -x+y,-x,z+2/3s   -x+y,-x,z-1/3i   s   -P 4 2s   c-1/3,a+1/4,b-1/8s   z-1/3,x+1/2,y-1/4s   -P 4 2 (%s)s5   2/3*x-1/3*y-1/3*z,1/3*x+1/3*y-2/3*z,1/3*x+1/3*y+1/3*zs   h-k,k-l,h+k+ls   a-b,b-c,a+b+cs   P 3* -2s   R 3 -2"s   P 3* -2 (%s)s   x+z,-x+y+z,-y+zs7   2/3*h+1/3*k+1/3*l,-1/3*h+1/3*k+1/3*l,-1/3*h-2/3*k+1/3*ls7   2/3*a+1/3*b+1/3*c,-1/3*a+1/3*b+1/3*c,-1/3*a-2/3*b+1/3*cs   R 3 -2" (%s)s
   -P 4 2 (p)s;   Parse error: unexpected character:
  -P 4 2 (p)
  ________^s   -P 4 2 (x,x,x)s/   cctbx Error: Rotation matrix is not invertible.s
   -P 2ac 2abs   x+1/12,y+1/12,z-1/12s	   a,b,c+1/2so   cctbx Error: sgtbx::space_group::expand_smx(): rotation-part denominator must be 1 (implementation limitation).i   sY   cctbx Error: sgtbx::space_group::expand_smx(): incompatible translation-part denominator.s   -I 4bd 2c 3R;   s   x+1/4,z+1/4,y+1/4Rļ   Rˇ   s   x+1/4,z-1/4,y+1/4s   -x,y,zs   -z,-y,-x+2*z(   i   i    i    (   i   i    i    (   i    i    i    (   i   i   i   (   Rī   i   (   R   i   (   Rđ   i   (   R{   i   (   R   i   (   R   i   (   Rņ   i   (   i    i    i   (   i    i    i   (   i   i    i    (   i    i    i   (   i    i    i   (   i   i    i    (   i    i    i   (   i   i    i    (   i   i    i    (   i   i    i    (   i   i    i    (   i   i    i    (   i   i    i    (   i   i   i   (   i   i    i    (   i   i   i   (   i   i    i    (   i   i   i   (   i   i   i   (   i   i   i   (   i   i   i   (   i   i   i   (   i   i   i   (   i   i   i   iZ   iZ   ix   (   g;ßOî
@g;ßOî
@g;ßOî
@gI&ÂfX@gI&ÂfX@gI&ÂfX@(   g×ōAĪŌW@g×ōAĪŌW@gŗęsĩX@gę46W@gX9´ČvÎ\@gøSãĨ´]@(   g      @g      @g      @g      @g      @g      ø?(   i   i   i   (   i   i   i   (   i   i   i   (a   R   R   R¸   Ri   Rš   R   Rˇ   R   R>   R   R<   t   resetRļ   t
   expand_ltrt   n_ltrt   f_invt
   is_centrict   is_origin_centrict
   expand_invt   n_smxt
   expand_smxt   is_tidyt	   make_tidyt   order_zt   containst!   expand_conventional_centring_typet   parse_hall_symbolRX   t   n_equivalent_positionsR×   t   change_basist   order_pRß   RY   Rg   t!   conventional_centring_type_symbolt   z2p_opRØ   t   construct_z2p_opt	   is_chiralR   Rã   t   is_sys_absentt   phase_restrictiont   sys_abs_was_testedt   htt   is_valid_phaset   ht_anglet   matht   piR   t   nearest_valid_phasest   doubleRõ   t   epsilonR   Rá   t   is_similar_tot   average_unit_cellt   is_compatible_unit_cellt   average_u_starR   t(   build_derived_reflection_intensity_groupt   build_derived_acentric_groupt   build_derived_patterson_groupt   build_derived_point_groupt   build_derived_laue_groupRN   RO   RP   RT   t   match_tabulated_settingsRH   t   griddingRŋ   t   all_opsR   R   R¤   RÄ   RÅ   RÆ   RĢ   Rį   R    RŦ   RË   R
   R   Rf   t,   change_of_origin_realising_origin_centricityR   t   NoneRå   Rî   t   hashRž   (-   R   R¸   Ri   t   gRÎ   RA   t   zRn   R{   t   ht   jt   i_ltrt   i_invt   i_smxt   gxt   hxRĪ   RB   Rė   t   mod_pt   mod_sRĐ   t   cct   cccR   t   chklR   R   R   t   ciR~   t   sgt   cbt   sg1t   icbt   sg2t   prev_st   sat   sxt   sbt   syt   sct   szR   R   (    (   Rö   sP   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/sgtbx/boost_python/tst_sgtbx.pyt   exercise_space_group  sļ   				




!

!"(

$$

&**!$-/*$$!$!!1444771.!+'!!%  	  

"c          C   sD
  t  j }  t  j } |   } | j   |    k s6 t  | j   d k sN t  | j   j   sf t  | d  } | j   d k s t  | j	   d k sĸ t  | d d  } | j   d k sÉ t  | j	   d k sá t  | d d  } | j   d k st  | j	   d k s t  | d	  } t
 | j t t   d
 k sPt  t
 | j t t   d k stt  t
 | j t t   d k st  t
 | j t t   d k sŧt  | j t t  } | | j   k sæt  | j t t  j   } | j   d k st  | j t t  j   } | j   d k sFt  | j t t  j   } | j   d k svt  | d	  j   st  | d  j   s§t  | d  j   j   sÅt  t | d  j   j    d k sīt  t | d  j   j    d k st  t | d  j   j    d k sCt  |  t  j d   } t  j d | d t  } | j   st  | j d t  d k sĄt  | j d t  d k sŋt  | j   d k s×t  | j	 d t  d k sõt  | j	 d t  d k st  | j	   d k s+t  t j |  } t j |  } | j   | j   k sgt  | j   szt  | j | j    j   } | j   s§t  d } | j   | k sÅt  | j d t  | k sãt  | j d t  | k st  d } | j	   | k st  | j	 d t  | k s=t  | j	 d t  | k s[t  | j   | k sst  | j   j   d k st  t j |  } t j |  } | j   | j   k sÍt  | j   sßt  x&t  j   D]}	 |	 j   d }
 t  j t  j |
   } | j   j	   } | |
 k rt  j t  j |   } | | k sbt  | j   j	   } | | k st  n  | j d   d
 k r| j d   \ } } | d! d" k sÉt  t  j t  j |   j t  j  | d!    } | | k st  n  | j | j    } | j   j	   } t  j t  j |   } | | k s]t  | j   j	   } | | k st  | j d   d
 k rė| j d   \ } } | d! d" k sÁt  t  j t  j |   j t  j  | d!    } | | k st  qėqėWt  j d#  } | j	   d$ k s/t  | j   d$ k sGt  t  j d%  } | j	   d& k snt  | j   d& k st  xÚ g  t! D] } | j   ^ qD]š } g  | D] } t  j" d' |  ^ qŗ\ } } x t t g D]w } | j   j d( |  } | j   j d( |  } t# | |  s0	t  | j$ d) d*  j% | t& |   sät  qäWqĻWt  j" d' d+  j'   } t# | j   j   d,  s	t  t# | j   j d( t  d-  sÅ	t  d.   } d
 } xW t  j(   D]I } | j   j)   } | | | j    k s
t  | rá	| d 7} qá	qá	W| d/ k s@
t  d  S(0   Ni   s   P 2s    P 2ys   P 1 2 1t   a1983t   i1952s    P 2y (z,x,y)s   P 1 2 1 (c,a,b)s   P 3i    i   i   s   P -3s   P 6 m ms	   P 6/m m ms   P 31s   P -1s   P 1s   -x,-y,-zt   I41s   -x+1/2,-y,-zs
   C c c a :1R:   t
   tidy_cb_ops   -C 2a 2ac (x+1/2,-y+1/4,-z-1/4)s   -C 2a 2ac (x+1/2,y-1/4,z+1/4)s    C c c a :2 (a+1/2,-b+1/4,-c-1/4)s   C c c a :2 (a+1/2,b+1/4,c-1/4)s!   -C 2a 2ac (x-y-1/4,x+y+1/4,z+1/4)s"   C c c a :2 (x-y-1/4,x+y+1/4,z+1/4)s    (z+1/4, x-1/4, y+3/4)t   (i˙˙˙˙t   )s   r -3 M :h (3*z,-x+2*z,-y+z)s   R -3 m :H (3*z,-x+2*z,-y+z)s	   r -3 M :hs	   R -3 m :HR;   t   ad_hoc_1992RÖ   R   t   Ae2as   A b a 2 (x,y-z,y+z)s   A e a 2 (x,y-z,y+z)c         S   sC   |  j    s t  x* |  j   D] } | j   j   s t Sq Wt S(   N(   R  R>   Rî   R   R   R   R   (   R,  RA   (    (    sP   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/sgtbx/boost_python/tst_sgtbx.pyt
   all_t_zeroí  s
     iI   (*   R   Ri   t   space_group_typeR:   R>   RH   t   cb_opRØ   t   hall_symbolt    universal_hermann_mauguin_symbolRX   t'   addl_generators_of_euclidean_normalizerR   R   t.   expand_addl_generators_of_euclidean_normalizerR¤   t   lookup_symbolt   is_enantiomorphict   change_of_hand_opRg   R{   R<   t   cb_op_is_tidyRÄ   RÅ   RÆ   R  R  RT   R=   Ra   Rd   R×   Rj   Rh   R
   Rb   t
   startswitht   intt   primitive_settingt   reference_space_group_infost   is_symmorphic(   Ri   RQ  R   R,  R/  RÎ   RĐ   R.  Rė   RA   t   uhm_int   g_outt   uhm_outt   g_out2t   uhm_out2t   ehmR<  Ry   R   R;   Rk   Rn   RN  t   l1t   l2t   sgiRP  t   n_symmorphicR_  (    (    sP   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/sgtbx/boost_python/tst_sgtbx.pyt   exercise_space_group_typex  sî    			$$$$***	&+3%	c          C   sF	  t  j }  t  j d  } |  | d  } | j   s9 t  |  | d t  } | j   s] t  |  | d t  } | j   s t  |  | d  } | j   s¤ t  |  | d  } | j   sÅ t  |  | d  } | j   sæ t  |  | d  } | j   st  |  | d  } | j	   d k s/t  | j
   | j
   k sMt  t | j   t | j	    | j
   t j  st  | j t  | j   k sĻt  t | j t  | j   d t j  sÕt  |  t  j d  d  } t | j d  d  st  t | j d  d  s)t  t | j t j d d  d  sRt  t | j t j d d  t j  s~t  t | j t j d  t j  sĻt  t | j t j d  t j  sÎt  |  | d  } | j   } t | j | d  |  st  t | j | d  |  s-t  t | j | t j d d  |  sZt  t | j | t j d d  | t j  st  t | j | t j d  | t j  sžt  t | j | t j d  | t j  sît  xĐt d d  D]ŋ} | j   | t j } | j |  s0t  | j | d t j t  sSt  | j | t d  snt  | j   | t j t j d } | j |  sĻt  | j | d t j t  sĘt  | j | t d  sæt  | j | t d  st  | j | j |   st  | j | j | t  t  sCt  | j | j | d t  t  skt  | j | j | d t  t  st  | j | j | t j d t  t  sÂt  | j | j | t j d t  t  sņt  | j | j | t  t  st  | j | j | d t  t  s=t  | j | j | d t  t  set  | j | j | d d t  t  st  | j | j | d d t  t  sūt  qūWx~t d d  D]m} | j   | t j } t j d | f  } t | | j |   s!t  t j d | t j d f  } t t | j |   d  set  t j d | t j d f  } t t | j |   d  sŠt  t j d | t j d f  } t t | j |   t j d  d  sút  t j d | t j d f  } t t | j |   t j d  d  sKt  t j d | t j d f  } t t | j |   t j d  d  st  t j d | t j d f  } t t | j |   t j d   sét  t j d | t j d f  } t t | j |   d t j d  d  sŅt  qŅWd  S(   Ns   P 61 (1 2 0)i   i   i   i    i   i´   s	   P 2ac 2abi
   i   gVį¯Ō<gVį¯Ōŧgíĩ ÷Æ°>iũ˙˙˙i   g    .Ag      ā?(   i   i   i   (   i   i   i   (   i   i   i   (   i    i    i   (   i    i    i   (   i   i    i    (   i    i    i   (   i   i    i    (   i    i
   i   (   i   i    i    (   R   t
   phase_infoRi   R  R>   R   R   R  R   R  Rˇ   R   R  t   floatR  R  t   nearest_valid_phaseRß   R  R   t   polart   valid_structure_factort   abst   sqrt(   Rk  R,  RÎ   t   phiRm   Ru   (    (    sP   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/sgtbx/boost_python/tst_sgtbx.pyt   exercise_phase_infoú  s    	8!/),((""-400#"$$((//$((,0 $ $ 1 1 1 - c          C   sA  t  j }  t  j d  } |  |  } | j   j   | j   j   k sN t  | j   s` t  | j   d k sx t  | j d  s t  | j d  sŖ t  | j	 d  d k sž t  | j	 d  d k sŲ t  t  j d	  } |  |  } | j   st  t  j d
  } |  |  } | j	 d  d k s=t  d  S(   Ns   P 1 2 1s!   k>=0 and (l>0 or (l==0 and h>=0))i   i   i   i˙˙˙˙iū˙˙˙iũ˙˙˙s   P 1 1 2s   P 3 1 2i    (   i   i   i   (   i˙˙˙˙iū˙˙˙iũ˙˙˙(   i   i   i   (   i˙˙˙˙iū˙˙˙iũ˙˙˙(   i˙˙˙˙i    i   (
   R   t   reciprocal_space_asuRQ  RR  R{   R>   t   is_referencet   reference_as_stringt	   is_insidet   which(   Rt  R   R   (    (    sP   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/sgtbx/boost_python/tst_sgtbx.pyt   exercise_reciprocal_space_asuH  s     	*c          C   s   t  j }  t  j } t  j d  } | |  } | j   d k sE t  | j   t |  k sc t  | j |  d   s~ t  | j |  d   s t  d  S(	   Ns   P 1 2 1s   0<=x<=1/2; 0<=y<1; 0<=z<1i   i   i   i   (   i   i   i   (   i   i   i   (   R   R   t   brickRQ  R   R>   Rg   Rw  (   R   Rz  R   R   (    (    sP   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/sgtbx/boost_python/tst_sgtbx.pyt   exercise_brickZ  s    		c    %      C   sō  t  j }  t j d~  } t  j d  } |  | | d  } |  | | d d	  } |  d
 | d | d d d d	 d t  } | j   j   | j   k s t  | j   | k są t  | j   d k sÉ t  t	 | j
   d	  sä t  | j   d k sü t  t	 | j   | j d d   s#t  | j   d	 k s;t  | j   sMt  | j   d k set  t | j    d k st  | j   st  | j   d k sŽt  g  | j   D] } t |  ^ qģd g k sât  t  j d  | k sũt  t  j d  } | j d |  } t | j    d k s<t  t | j   d  d k s^t  t | j   d  d k st  t | j   d  d k sĸt  t  j d  | k sŊt  | j   d k sÕt  t  j d  } | j d |  } t | j    d k st  | j   d k s,t  t j d  } t  j d  } |  d
 | d | d d  } | j   d k s}t  d } | j d" |  st  | j d" | d# d$  sēt  | j d" |  } | j d" |  sät  t | j    d% k st  t | j   d  d& k s$t  t  j   } | j d  | j   j    d k s[t  | j! d' |  | j   j    d k st  | j"   d k sĄt  t# | j$    d g k sÂt  | j%   d k sÚt  | j! d' |  | j   j    d k st  | j%   d k s t  |  d
 | d | d d  }	 |	 j   d k sSt  | j! d' |	  | j   j    d k st  | j%   d k st  | j! d' |  | j   j    d k sĮt  | j%   d k sßt  |  d
 | d | d d  }
 |
 j   d% k st  |
 j   s$t  |
 |
 k s6t  |
 |
 k sIt  |
 |	 k s\t  |
 |	 k snt  | j! d' |
  | j   j    d k st  | j%   d k s´t  t | j&    d k sŌt  t# | j    d d d d d g k s˙t  | j"   d k st  t# | j$    d d d d g k sAt  | j' d+ d  sYt  | j' d+ d  srt  | j( d  j   | j   k st  | j( d  j   | j   k sĀt  | j( d  j   |	 j   k sįt  | j( d  j   | j   k st  | j( d  j   |
 j   k s5t  | j( d  j   | j   k s\t  | j( d  j   | j   k st  | j( d  j   |	 j   k sĒt  | j( d  j   | j   k sŅt  | j( d  j   |
 j   k søt  | j( d  j)   d% k s	t  | j( d  j)   d% k s:	t  | j( d  j)   d k s[	t  | j( d  j)   d% k s|	t  | j( d  j)   d k s	t  xN t* d  D]@ } | j( |  j)   | j( |  j   | j+   k sĒ	t  qĒ	W| j( d  j   s

t  | j( d  j   s%
t  t | j( d  j   d  d k sP
t  t | j( d  j   d  d k s{
t  | j,   } t# | j    d d d d d g k s´
t  | j! d' |	  t# | j    d d d d d d g k sô
t  t# | j    d d d d d g k s!t  t  j d,  } | j d |  } t# | j    t# | j    k slt  t# | j$    t# | j$    k st  x| t- | j&   | j&    D]_ \ } } xP t- | j   | j    D]3 \ } } t |  t | j. |   k sÚt  qÚWq˛W| j! d' |
  t# | j    d d d d d d g k sUt  t# | j    d d d d d d g k st  t# | j$    d d d d g k s¯t  t# | j$    d d d d d g k sÜt  | j/ d- t0 j1 d d d d g   } t# | j    d d d d g k s-t  | j( d  j   | j( d  j   k s]t  | j( d  j   | j( d  j   k st  | j( d  j   | j( d  j   k sŊt  | j( d  j   | j( d  j   k sít  | j/ d- t0 j2 t t t3 t3 t t g   } | j( d  j   | j( d  j   k sJt  | j( d  j   | j( d  j   k szt  | j( d  j   | j( d  j   k sĒt  | j( d  j   | j( d  j   k sÚt  | j/ d- t0 j1    } | j   j    d k st  xt* | j   j     D]ø } | j( |  } t4 j5 |  } t4 j6 |  } | j   | j   k szt  | j   | j   k st  | d k rãt | j    d% k sÂt  t | j    d% k sãt  n  x; t- | j   | j    D] \ } } | | k s˙t  q˙Wq)Wt4 j5 |  } t4 j6 |  } | j   j    d k sat  | j&   d k syt  | j$   j    d k st  t4 j5 |  } t4 j6 |  } t# | j    d d d d d d g k såt  t | j&    d k st  t | j&   d j    d k s+t  x t- | j&   | j&    D]h \ } } | j   | j   k sqt  x; t- | j   | j    D] \ } } | | k st  qWqGWt# | j$    d d d d d g k sāt  t0 j7 d d d d g  } t  j   } | j! d
 | d | d. |  t# | j    d d d d g k sMt  | j8   } t# | j    d d d d g k st  t | j&    d k sĄt  | j&   d j   sŊt  | j&   d j   d k sßt  | j$   j    d k sũt  t  j   } | j! d
 | d | d. | d d d t3  t# | j    d d d d g k s[t  x/t3 t3 t3 t3 g d d d d g f t3 t3 t t3 g d d d d g f t t3 t3 t3 g d d d d g f t t3 t t3 g d d d d g f t t3 t t g d d d d g f t t t t g d d d d g f g D]a \ } } t  j   } | j! d
 | d | d. | d/ t0 j2 |   t# | j    | k s(t  q(Wt j d  } t  j d  } |  d
 | d | d d  } t | j    d k sät  |  d
 | d | d d d d  } t | j    d k s#t  |  d
 | d | d d  } t | j    d2 k s\t  | j9   } | j: d% k s}t  t# | j;    d3 d d d d3 d g k s­t  t	 | j< d3 d4 g  sËt  t# | j=  d g k sét  | j>   d k st  | j?   d k st  | j@ d5 d  } t	 | d1 g  sCt  | jA d8 |  } | jB d9 g  d k sst  t	 | d: d; d1 g  st  | jC   jD   d k s¯t  t	 | jC   d d d g  sĶt  | jE d< t0 jF d= d> d	 g   } t	 | d	 g  st  | jE d  } t	 | d	 g  s6t  | jG d? t0 jF d= d> d	 d@ d> dA g   }  t	 |  dA g  s{t  t j d  } t  j d  } |  | | d  }! |  | | d  }	 |  | | d  }
 t |! j    d k sít  t |	 j    d k st  t |
 j    dB k s)t  t  j   } | j! dC d d' |!  t# | j    d g k slt  t# | j$    g  k st  | j! dC d d' |	  t# | j    d d g k sÄt  t# | j$    d g k såt  t  j   } | j! dC d d' |	  t# | j    d g k s(t  t# | j$    d g k sIt  | j! dC d d' |!  t# | j    d d g k st  t# | j$    d g k s¤t  | j! dC d d' |
  t# | j    d d d g k sát  t# | j$    d d g k st  | j! dC d d' |	  t# | j    d d d d g k sEt  t# | j$    d d d g k slt  | j! dC d d' |
  t# | j    d d d d d g k s¯t  t# | j$    d d d d g k sŲt  | j! dC d d' |!  t# | j    d d d d d d g k st  t# | j$    d d d d g k sIt  | j! dC dD d' |!  t# | j    d d d d d d d g k st  t# | j$    d d d d g k sŧt  t j d  } t  j dE  } |  | | d  j9   }" |" jB d  d k st  t j d   } t  j dF  } |  | | dĄ  j9   }" |" jB dĸ  dŖ k s^t  t j d¤  } t  jH dI dJ  jI   } t0 j7 dĨ dĻ d§ d¨ dŠ dĒ dĢ dŦ d­ g	  }# t  j   } | j! d
 | d | d. |#  | jJ d\ |#  } t	 | dK dL dM dN dO dP dL dM dS dU dM dV dW dX dO dP dN dO d[ dP g  s:t  | jK d] |  } t	 | |#  sat  t0 j7 dŽ d¯ d° dą d˛ dŗ d´ dĩ dļ g	  }$ | jL dy |$  } t	 | d^ d_ d` da db dc dz df dh d{ dl dm dn do d| dr ds dt d} dx g  sît  d  S(ˇ   Ni   i   i   iP   id   in   s   P 2i    g      ā?Rá   Ri   t   original_sitegŠ?t   min_distance_sym_equivt   assert_min_distance_sym_equivi   s   0,0,zt   2s   -x,-y,zs   z,x,yRR  s   x,0,0s   x,y,zs   x,-y,-zs   -x,-y,-zi
   i   iZ   ix   s   -P 3 2i   i˙˙˙˙iū˙˙˙R÷   t	   toleranceg    .Ai   s   -y,x-y,zt   site_symmetry_opsg      Đ?gëQ¸å?g        t   i_seqs   y,z,xt	   selectiont   original_sites_fract$   unconditional_general_position_flagsgÍĖĖĖĖĖđ?g°rhí|ŋ?s   1,-2,zi   iĐ˙˙˙t
   all_paramsi   i   t   independent_paramsgüŠņŌMbĀ?g      đ?g       Āt   all_gradientsgš?gÉ?t   all_curvaturesg333333Ķ?gšŋs	   1/2,1/2,zt   insert_at_indexi   s   -Ps   R 3 (-y+z, x+z, -x+y+z)g+Y+@gR¸ëą3@R;   s
   P 63/m m cga2U0*Š3?gdĖ]KČÍ?gąŋė<,´?gö_LÕ?gĄø1æŽ%Ü?g' °áéÅ?gdĖ]KČŊ?gRĮÔë  pŧgˇŅ ŪÍ?gËĄEļķũŧŋgËĄEļķũŧ?gd]ÜFxĢ?giođÉTÕ?g      Ā?gĄø1æŽ%Ė?gú~jŧtÜ?gĀĘĄEļá?t
   sites_fract   packed_coordinatesgHÅĢŦmũ?gö)Įdq?đŋg'ĩŋsúŋgĢx#ķČĀg]¨ükyĨđ?gmp"úĩuú?g*D/Ŗ°#@gÕ'ĸŋĀgčžŲn Āg\Ģ=ėĸ@gjé{AĀgTût)ĀgcD(âøŋgĒÉC ĀgwcŅĀgē1=aˇ @g¯˛ļ)žĀgAŠNë\w?gĮģ#cĩųĀgyËÕMōŋgžPĀv0â @g{ŋŅ>üŋgŪĢÍ?@gö(\Â%)@gâZía/÷?gF˛G¨˙?gūî5&¤@t   g_fracgĐ+z¤Ą@gÆûqûåŪŋgkwĸŖĀg]iŠ÷ß?(   i   i   i   iP   id   in   (   i    i    i    (   i    i    i    (   gŠ?i    i    (   gŠ?i    i    (   i    i    i    (   gŠ?i    i    (   i    i    i    (   i
   i
   i   iZ   iZ   ix   (   i    i    i    (   i   i   i   i˙˙˙˙i   iū˙˙˙(   g      ā?g      ā?g      ā?(   g      Đ?gëQ¸å?g        (    (   i    i    i    (   g      Đ?gëQ¸å?g        (   i    i    i    (   g      ā?g      ā?g      ā?(   i   i   i   iP   id   in   (   i    i    i    (   i    i    i    (   gÍĖĖĖĖĖđ?iū˙˙˙g°rhí|ŋ?(   i   i   g°rhí|ŋ?(   i    i    güŠņŌMbĀ?(   i   i   (   gš?gÉ?g      ā?(   i   i   i   iP   id   in   (   gš?gÉ?g333333Ķ?(   i    i    i    (   g      ā?g      ā?i    (   i   i   i   iP   id   in   (   i    i   g      ā?(    (   i    i    i    (   i   i   i   iP   iP   iP   (   gš?gš?gš?(   güŠņŌMbĀ?(   güŠņŌMbĀ?güŠņŌMbĀ?güŠņŌMbĀ?(   g+Y+@g+Y+@gR¸ëą3@iZ   iZ   ix   (   ga2U0*Š3?gdĖ]KČÍ?gąŋė<,´?(   gö_LÕ?gĄø1æŽ%Ü?g' °áéÅ?(   gdĖ]KČŊ?gdĖ]KČÍ?gąŋė<,´?(   gRĮÔë  pŧgˇŅ ŪÍ?i    (   gËĄEļķũŧŋgËĄEļķũŧ?gąŋė<,´?(   gd]ÜFxĢ?giođÉTÕ?g      Ā?(   gĄø1æŽ%Ė?gĄø1æŽ%Ü?g' °áéÅ?(   gö_LÕ?gĄø1æŽ%Ü?g      Đ?(   gú~jŧtÜ?gĀĘĄEļá?g' °áéÅ?(   gHÅĢŦmũ?gö)Įdq?đŋg'ĩŋsúŋ(   gĢx#ķČĀg]¨ükyĨđ?gmp"úĩuú?(   g*D/Ŗ°#@gÕ'ĸŋĀgčžŲn Ā(   g\Ģ=ėĸ@gjé{AĀgTût)Ā(   gcD(âøŋgĒÉC ĀgwcŅĀ(   gē1=aˇ @g¯˛ļ)žĀgAŠNë\w?(   gĮģ#cĩųĀgyËÕMōŋgžPĀv0â @(   g{ŋŅ>üŋgŪĢÍ?@gö(\Â%)@(   gâZía/÷?gF˛G¨˙?gūî5&¤@(M   R   t   site_symmetryR   Rá   Ri   R   Râ   R>   R|  R   R}  t
   exact_sitet   distance_movedt   distancet   shortest_distancet   check_min_distance_sym_equivRõ   Rg   t
   special_opt   is_point_group_1RN   t
   unique_opsR¸   R×   R  t   matricest   is_compatible_u_starR   RX   t   site_symmetry_tablet   reservet   indicesRÉ   t   processt   n_special_positionsRå   t   special_position_indicest   n_uniquet   tablet   is_special_positiont   gett
   n_matricesRß   R  t	   deep_copyRe   RŪ   RÛ   R   Ræ   t   boolR   RÄ   RÅ   RÆ   t   vec3_doublet   discard_symmetryt   site_constraintst   row_echelon_lcmt   row_echelon_formt   row_echelon_constantst   independent_indicest   n_independent_paramst   n_dependent_paramsR  R  t
   all_shiftst   gradient_sum_matrixt   focust   independent_gradientsR  t   independent_curvaturesRh   R:   t   pack_coordinatest   unpack_coordinatest   pack_gradients(%   R  Rė   R,  RA   Rk   RR  RE  R   R   t   s2t   s3Rm   t   tct   tcbt   tcbtt   ttR   t   tsRÎ   RĐ   t	   unpickledt   originalt   unpt   origR  Rę   t   ugpft   tit   sst   ipt   apt   igt   ict   s1t   site_cR  R  (    (    sP   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/sgtbx/boost_python/tst_sgtbx.pyt   exercise_site_symmetryd  s   		$'4""""!-*''''''''''!!!!!>++-0-*((/00*-'*0000-0000!(0(((-	**"	*!!!!!1	"			0$		$!$!!!$!'$*'-*0*3*	c          C   s{  t  j }  t  j } | |  d   j   d k s6 t  |  d  } | |  } | j   j   | j   k sr t  | j   d k s t  | j d  j   j   sĢ t  | j d  j   j   sĖ t  | j d  j   | j d  j   k sü t  | j	 d  d k st  | j	 d	  d
 k s2t  xD t
 | j    D]0 } | j	 | j |  j    | k sEt  qEW| j d  } | j   d k s t  | j   d k s¸t  g  | j | j    D] } t |  ^ qÎd d g k søt  t j d1  } | j   } d2 }	 t  j | | |	  }
 | j |
  } t j |  } ~ | j | j    sjt  t | j   |	  st  | j   j   d k sŖt  | j   j   d k sÁt  t | j    d k sßt  t | j   |	  sút  t | j   |	  st  | j   d k  s-t  t | j    d k sKt  |   j   d k sft  ~ |   j   d k st  ~ |   d  k st  | |  } d3 }	 t  j | | |	  }
 | j |
  } | j | j    sít  t | j   |	  st  | j   j   d k s&t  | j   j   d k sDt  t | j    d k sbt  t | j   d4  s}t  t | j   d5  st  t | j   | j d6   sŧt  t | j    d" k sÚt  | j | |	  } | j | j    st  t | j   |	  s"t  | j   j   d# k s@t  | j   j   d$ k s^t  t | j    } | d7 k st |   t | j   d8  sŖt  t | j   d9  sžt  t | j   | j d:   sât  t | j    d) k s t  | j | |	 d*  } | j   j   d k s3t  t | j    d; k sQt  t | j    d+ k rt | j   d d< d f  s´t  n$ t | j   d d= d f  s´t  t | j   d>  sĪt  t | j   | j d?   sķt  t | j    d" k st  |  d.  } | |  } t | j d  j    d/ k sPt  t | j d  j    d0 k swt  d  S(@   Ns   P 1i   s   P m m mi   i    t   @Rn   i   t   ki   R   i   Rų   s	   1/2,1/2,zs
   1/2,1/2,-zi   i   g      ā?g        g°rhí|ŋ?RA   s   x,y,zgíĩ ÷Æ°>s   1/2,0,zg)\Âõ(Āg+ŲÎ÷ņ?gázŽGáĀRk   s	   x+3,y,z+5g      Āiû˙˙˙g{ŽGázŋg¸ëQ¸ŋs	   -5/2,y,-5R   Rú   s   x+3,y-1,z+5s   x+3,-y+1,z+5g      đ?g      Ās	   -5/2,1,-5gÉ?s   x+3,y-2,z+5s   x+3,-y+2,z+5g+ŲÎ÷ņŋs
   P 42/n c ms   1/2*x-1/2*y,-1/2*x+1/2*y,1/2s   x,-x,1/2(   i   i   i   (   g      ā?g        g°rhí|ŋ?(   g)\Âõ(Āg+ŲÎ÷ņ?gázŽGáĀ(   g      ā?g+ŲÎ÷ņ?i    (   g      Āg+ŲÎ÷ņ?iû˙˙˙(   g{ŽGázŋi    g¸ëQ¸ŋ(   s   x+3,y-1,z+5s   x+3,-y+1,z+5(   g      ā?i    i    (   g      Āg      đ?g      Ā(   g{ŽGázŋg°rhí|ŋ?g¸ëQ¸ŋ(   s   x+3,y-2,z+5s   x+3,-y+2,z+5gĒņŌMbėŋgĒņŌMbė?(   g      Āg+ŲÎ÷ņ?iû˙˙˙(   g{ŽGázŋi    g¸ëQ¸ŋ(    R   RQ  t   wyckoff_tableRÉ   R>   R:   t   positionR  R   t   lookup_indexRß   t   letterRõ   RN   R  Rg   R   Rá   R  t   mappingt   weakreft   refR  R   R|  t   sym_opt   representative_siteR  R  R*  t   lengtht   special_op_simplified(   RQ  RÎ  t   sg_typet   wRm   RÎ   RA   Rė   R,  R7   RÄ  RĪ   t   wwRą   (    (    sP   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/sgtbx/boost_python/tst_sgtbx.pyt   exercise_wyckoffĩ  s    		$$!!0.+$$'$$'c          C   sh  t  j }  t j dD  } t  j d  } | j   } t  j |  } xŗ	dE d dF f dG dH d f d dI f dJ dK d f d dL f dM dN dO f d dP f f D]`	\ } } } t  j | | |  } | j   | k sĐ t	  | j
 | |  }	 |	 j   j   | k s t	  xū| |	 f D]đ}
 |  |
  } | j   j |  s:t	  | j   | k sRt	  | j   | k sjt	  | j   | j   k st	  | j   d k  s t	  | j   j   | k sžt	  | d k rat | j    } dQ d dR f dS dT dU f dV dW dX f dY dZ d[ f d\ d] d^ f d_ d` da f f } x4 t d  D]# } t | | | |  s7t	  q7Wn  t | j    | k st	  | j   t | j    | j   j   k  k sĩt	  xE t | j   j    D]+ } | j |  | | |  k sÎt	  qÎWqWxķ t d  D]å } | d k r2|  | |  } n  | d k rn|  | | |  } | j   j |  snt	  n  | j   | k st	  | j   | k st	  | j   j   sˇt	  | j   d k  sĪt	  | j   j   | j   k st	  qW|  | | | | j    } | j   j |  s-t	  | j   | k sEt	  | j   | k s]t	  | j   | j   k s{t	  | j   d k  st	  | j   j   | k sąt	  x­t d  D]} | d k rô|  d | d | d | d |  } n | d k r|  d | d | d |  } nf | d k rN|  d | d | d | d d  } n6 | d k r|  d | d | d | d d d d  } n  | j   j |  st	  | j   | k sˇt	  | j   | k sĪt	  | d k r| j   j   sķt	  | j   d k  s?t	  n1 | j   j   s't	  | j   d k s?t	  | j   j   | k sžt	  qžW|  | | | d d  } | j   j   d k st	  xZt d  D]L} | d k rČ|  d |  } nđ | d k rø|  d | d | d | d |  } nĀ | d k r|  d |	  } nĸ | d k rL|  d | d | d | d | j    } nl | d k r|  d | d | d | d | j   d  | j    } n* | d	 k r¸|  d | d | d |  } n  t  j d! | d" |  } | j   d k sčt	  t | j    d# k st	  | j   db k st	  t | j    dc  s9t	  t | j!   d  sTt	  t | j   | |  sst	  | j" d$ | j    } | j   | j   j   k s¯t	  x9 t# | j    D]% \ } } t | | |  sÂt	  qÂWxl t# | j    D]X \ } } t  j | |  } t | j!   d  s7	t	  t | j   | |  sūt	  qūWt  j d! | d% t$ j% | d d | d d | d d& f | g   } | j   d k sē	t	  t | j   dd  sÕ	t	  t | j!   d  s¤t	  q¤Wq Wde } x df D] } t  j |  } |  | |  } | j   } | j   | j   k sS
t	  x9 t# |  D]+ \ } } t | |  | |  s`
t	  q`
Wq
Wt  j   } |  | dg t j dh   } t  j | di  } t | j!   d d7  së
t	  xkd* t& t& t& f f d8 t' t' t& f f d9 t& t& t' f f d: t& t' t' f f d; t' t' t' f f f D]	\ } } xúdj dk f D]ė} t  j |  } |  | | t j dl   } t  j d! | d" | d< |  } t | j   dm  sÎt	  t | j!   d  sét	  g  t( | dn  D] \ } } | | ^ qų} x9| j   D]+} t  j | | |  } t | j!   d  sXt	  t | j   | |  swt	  g  do D] } | | | | ^ q~} t  j | | |  } t | j!   d  sĖt	  | dp k rút) | j   | |  st	  n t | j   | |  st	  t$ j% d |  } t | j" |  d |  s"t	  q"WqeWqLWt  j   } |  | dq |  } t  j | dr  } t | j    ds  s¤t	  t | j!   | j* dt   sČt	  t j du  } t  j d8  } |  d | d | d dv  } | j   j   d k st	  |  d | d | d dw d d d d  } | j   j   d k sdt	  d  S(x   Ni   i   iZ   ix   s   P 3 1 2i    i   g      đ?i   g      đŋg      ø?i   i   g°rhí|ŋ?i   i   gÉ?i   Rá   Ri   R|  R  t   minimum_distancegš?R  güŠņŌMbP?id   i2   R  t   wyckoff_mappingR  Rõ   t   reference_sitest   others   x,y,zR  t   othersg333333Ķ?gĀĘĄEļû?g9´ČvžöŋgŲÎ÷Sã@s   P 1s   P -1 (2,-1,1)s   R 1 (3,2,-1)s   P -4 2 3 (2,1,-1)s   -P 2ab 2bc 3 (1,2,-2)s   F -4 2 3 (-2,2,-1)s   -F 2uv 2vw 3 (1,-2,-1)güŠņŌMb?g¤p=
×Ŗė?gŅ"Ûų~jŧ?g?5^ēIî?güŠņŌMbĀ?gbX9´ČÆ?gkŌPŖ°?s   P 2s   P -2s   P 3xs   P 3 2t/   principal_continuous_allowed_origin_shift_flagsgÁĘĄEļķÍ?gŽGázÖ?gŲ?gšŋgÉŋiP   in   (   i   i   i   iZ   iZ   ix   (   i    i    i    (   i    gÉ?gÉŋ(   i    i   i   gUUUUUUÕŋgUUUUUUÕ?(   i    i   g      Đ?gÉ?gUUUUUUÕ?(   i    i   i   i   i   i   g      Đ?gUUUUUUÕ?gÉŋgŠ?gUUUUUUÕ?gŠŋg      ĐŋgUUUUUUÕ?gÉŋg      ĐŋgUUUUUUÕŋg      Đ?gŠ?gUUUUUUÕŋgŠŋgÉ?gUUUUUUÕŋ(   i    i    i    (   i    i    i    (   i    i    i    (   gĀĘĄEļû?g9´ČvžöŋgŲÎ÷Sã@(   s   P 1s   P -1 (2,-1,1)s   R 1 (3,2,-1)s   P -4 2 3 (2,1,-1)s   -P 2ab 2bc 3 (1,2,-2)s   F -4 2 3 (-2,2,-1)s   -F 2uv 2vw 3 (1,-2,-1)(   güŠņŌMb?g¤p=
×Ŗė?gŅ"Ûų~jŧ?(    (   g?5^ēIî?güŠņŌMbĀ?gbX9´ČÆ?(   gĀĘĄEļû?g9´ČvžöŋgŲÎ÷Sã@(   g?5^ēIî?güŠņŌMbĀ?gbX9´ČÆ?(    (   i    i    i    (   g°rhí|ŋ?gÁĘĄEļķÍ?gŽGázÖ?(   i    i   i   (   i    i    i    (   gš?gÉ?g333333Ķ?(   gÉ?gŲ?gš?(   gšŋgÉŋgÉ?(   gšŋgÉŋgÉ?(   i   i   i   iP   id   in   (   i    i    i    (   i    i    i    (+   R   t   sym_equiv_sitesR   Rá   RQ  R:   RÎ  R  Rõ   R>   RŌ  RĪ  R  Ri   R|  R  t   max_accepted_tolerancet   coordinatesRÉ   RY   Rß   R   t   sym_op_indicesRĄ  RX   R  RÕ  R   t   min_sym_equiv_distance_infot   i_otherRg   t   continuous_shiftst   difft   distRŪ   t	   enumerateR   RĻ  R   R   Re   R	   R×  (   Rã  Rė   RŲ  R,  t   wtabR7   t   multt   sym_iRÄ  t   wmRĪ   R~   R{   t   vfyRm   Rę   R   t   yRS  RŅ   t   shift_flagsRA   Ru   t   shiftR-  t   fz(    (    sP   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/sgtbx/boost_python/tst_sgtbx.pyt   exercise_sym_equiv_sites  s   	($	--("$#	9#     
'"		,%".$	c       9   C   s3	  t  j }  t  j } d dM dO dQ g f d dS dU dW g f d dY d[ d] g f d d_ da dc g f d de dg di g f d	 dk dm do g f d
 dq ds du g f d dw dy d{ g f d d} d d g f d d d d g f d d d d g f d d d d g f d d d d g f d d d g f d d dĄ g f d dŖ dĨ g f d d§ g f d dŠ g f d dĢ g f d d­ g f d d¯ g f d dą g f d dŗ g f d dĩ g f d dˇ g f d  dš g f d! dģ g f d" dŊ dŋ g f d# dÁ dÃ g f d$ dÅ dĮ g f d% dÉ dË g f d& dÍ dĪ g f d' dŅ dĶ g f d( dÕ g f d) d× g f d* dŲ g f d+ dÛ dŨ g f d, dß dá g f d- dã g f d. då g f d/ g  f d0 dį dé g f d1 dë dí g f d2 dī dņ g f d3 dķ dõ g f d4 d÷ dų g f d5 dû dũ g f d6 d˙ dg f d7 dg f d8 dg f d9 dg f d: d	g f d; dg f d< dg f d= g  f f7 } x | D] \ } } |  |  } | d> |  } | j   t | j    k s|t  g  | j   D] } | j | j f ^ q| k s1t  q1W| |  d   } | j	 d? d sát  | j
 d? d dk s˙t  | j	 d st  | j
 d dk s0t  | |  d0   } | j	 d sWt  | j
 d dk srt  | j	 d st  | j
 d dk sŖt  | |  d3   } | j	 d sĘt  | j
 d dk såt  | j	 d sût  | j
 d dk st  | j
 d  d!k s1t  | j
 d" d#k sLt  | |  d9   } | j	 d$ sst  | j
 d% d&k st  | j	 d' s¤t  | j
 d( d)k sŋt  | |  d=   } | j	 d* sæt  | j
 d+ d,k st  | |  d;   } | j   d-k s+t  | j dB d. d/k sIt  | |  d   } | j dE d0 } g  | D] } | j ^ qtd dA dF g k st  | |  d   } | j d1 } g  | D] } | j ^ qÆd3g k sęt  | j d4 } g  | D] } | j ^ q dH g k s$t  | |  d   } | j dI t  }	 |	 j   d k s`t  |	 j   d j d k st  |	 j   d j d5k st  | j dI t  }
 |
 j   d k sČt  |
 j   d j d k sįt  |
 j   d j d6k st  |
 j   d j d k s%t  |
 j   d j d7k sDt  | j   sVt  | j   t t t f k swt  t | j dJ d d d g  d d d g  sĒt  | |  d   } | j   sĪt  | j dK t  t t t f k söt  t | j dJ d d d g dK t  d d d g  s/	t  d  S(8  Ns   P 1i   i    s   -P 1i   s   P 2s   P 2ys   P 2xs   P -2s   P -2ys   P -2xs   P 2 2s   P -2 2s   P -2 -2s   P 2 -2s   -P 2 2s   P 3i   s   P 3ys   P 3xs   P 3*s   -P 3s   -P 3ys   -P 3xs   -P 3*s   P 3 2i   i   s   P 3y 2s   P 3x 2s   P 3 2"s   P 3y 2"s   P 3x 2"s   P 4s   P 4ys   P 4xs   -P 4s   -P 4ys   -P 4xs   P 6s   P 6ys   P 6xs   -C 2 2s   -I 2 2s   -F 2 2s   -I 4s   -I 2 2 3s   C 2ys   C -2ys   C 2 -2s   C 2 2s   A 2 -2s   I 2 -2s   I 2 2s   F 4 2 3s   F 2 2s   I 4s   I 4 2s   I -4s   F 2 -2s   I 2 3Ri   Rã   iū˙˙˙i   t   gridi
   i   t   dimi   i   i<   t   discretet   translationt   assert_principal(   i   i    i    (   (   i   i    i    i    (   i    i   i    (   (   i    i   i    i    (   i    i    i   (   (   i    i    i   i    (   i   i    i    (   (   i   i    i    i   (   i    i   i    (   (   i    i   i    i   (   i    i    i   (   (   i    i    i   i   (   i   i    i    (   (   i   i    i    i   (   i    i   i    (   (   i    i   i    i   (   i    i    i   (   (   i    i    i   i    (   i   i    i    (   (   i   i    i    i   (   i    i   i    (   (   i    i   i    i    (   i    i    i   (   (   i    i    i   i   (   i   i    i    (   (   i   i    i    i    (   i    i   i    (   (   i    i   i    i   (   i    i    i   (   (   i    i    i   i   (   i   i    i    (   (   i   i    i    i    (   i    i   i    (   (   i    i   i    i    (   i    i    i   (   (   i    i    i   i   (   i   i    i    (   (   i   i    i    i    (   i    i   i    (   (   i    i   i    i   (   i    i    i   (   (   i    i    i   i    (   i   i    i    (   (   i   i    i    i   (   i    i   i    (   (   i    i   i    i    (   i    i    i   (   (   i    i    i   i    (   i   i    i    (   (   i   i    i    i   (   i    i   i    (   (   i    i   i    i   (   i    i    i   (   (   i    i    i   i   (   i   i    i    (   (   i   i    i    i    (   i    i   i    (   (   i    i   i    i   (   i    i    i   (   (   i    i    i   i   (   i   i    i    (   (   i   i    i    i   (   i    i   i    (   (   i    i   i    i    (   i    i    i   (   (   i    i    i   i   (   i   i    i    (   (   i   i    i    i   (   i    i   i    (   (   i    i   i    i   (   i    i    i   (   (   i    i    i   i    (   i   i    i    (   (   i   i    i    i   (   i    i   i    (   (   i    i   i    i   (   i    i    i   (   (   i    i    i   i   (   i    i    i   (   (   i    i    i   i    (   i   i   i    (   (   i   i   i    i   (   i    i   i    (   (   i    i   i    i    (   i   i    i   (   (   i   i    i   i   (   i   i    i    (   (   i   i    i    i    (   i    i   i   (   (   i    i   i   i   (   i   i   i   (   (   i   i   i   i    (   i    i    i   (   (   i    i    i   i   (   i    i   i    (   (   i    i   i    i   (   i   i    i    (   (   i   i    i    i   (   i   i   i   (   (   i   i   i   i   (   i   i   i   (   (   i   i   i   i   (   i   i   i   (   (   i   i   i   i   (   i   i   i   (   (   i   i   i   i   (   i    i    i   (   (   i    i    i   i   (   i    i   i    (   (   i    i   i    i   (   i   i    i    (   (   i   i    i    i   (   i    i    i   (   (   i    i    i   i    (   i   i   i    (   (   i   i   i    i   (   i    i   i    (   (   i    i   i    i    (   i   i    i   (   (   i   i    i   i   (   i   i    i    (   (   i   i    i    i    (   i    i   i   (   (   i    i   i   i   (   i    i    i   (   (   i    i    i   i   (   i   i   i    (   (   i   i   i    i   (   i    i   i    (   (   i    i   i    i   (   i   i    i   (   (   i   i    i   i   (   i   i    i    (   (   i   i    i    i   (   i    i   i   (   (   i    i   i   i   (   i    i    i   (   (   i    i    i   i    (   i    i   i    (   (   i    i   i    i    (   i   i    i    (   (   i   i    i    i    (   i   i    i    (   (   i   i    i    i   (   i    i    i   (   (   i    i    i   i   (   i   i    i    (   (   i   i    i    i   (   i    i   i    (   (   i    i   i    i   (   i   i    i    (   (   i   i    i    i   (   i    i    i   (   (   i    i    i   i   (   i    i   i    (   (   i    i   i    i    (   i    i    i   (   (   i    i    i   i   (   i   i    i    (   (   i   i    i    i    (   i    i    i   (   (   i    i    i   i    (   i   i    i    (   (   i   i    i    i   (   i    i    i   (   (   i    i    i   i    (   i   i    i    (   (   i   i    i    i   (   i    i    i   (   (   i    i    i   i   (   i   i    i    (   (   i   i    i    i   (   i    i    i   (   (   i    i    i   i    (   i   i    i    (   (   i   i    i    i   (   i    i    i   (   (   i    i    i   i    (   i   i    i    (   (   i   i    i    i   (   i    i   i    (   (   i    i   i    i   (   i   i    i    (   (   i   i    i    i   (   i   i   i   (   (   i   i   i   i   (   i    i    i   (   (   i    i    i   i    (   i    i    i   (   (   i    i    i   i   (   i   i    i   (   (   i   i    i   i   (   i    i    i   (   (   i    i    i   i    (   i   iū˙˙˙i    (   i   iū˙˙˙i    (   i    i    i    (   i   i   i    (   i   i   i    (   i    i   i    (   i   i    i   (   i   i    i   (   i    i    (   i   i   i   (   i   i   i   (   i   i    (   i   i   i   (   i   i   i   (   i    i    (   i   i   i   (   i   i   i   (   i   i    (   i   i   i   (   i    i   (   i   i   i   (   i   i   (   i   i   i    (   i   i   i    (   i    (   i   i   i   (   i   i   i   (   i   (   i   i   i   (   i   i   i   (    (   i   i   i   (   i   i   i
   (   i   i   i   (   i   i   i   (   i   i   i   i   ii   (   i   i   i   (   i    i    i   (   i   i    i    (   i    i   i    (   R   Ri   t   structure_seminvariantsRÉ   RX   t   vectors_and_moduliR>   RŅ   RĪ   t   is_sst	   apply_modR'  Rŋ   t   grid_adapted_moduliRÛ   R   R   t   continuous_shifts_are_principalt    principal_continuous_shift_flagsR   t$   subtract_principal_continuous_shifts(   Ri   Rü  t   testst   hsRņ  R,  RÄ  t   vmR   t   ss_continuoust   ss_discrete(    (    sP   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/sgtbx/boost_python/tst_sgtbx.pyt   exercise_seminvariantÖ  sđ    			$;1++!0	c          C   sm   t  j d  }  t j d |  d d	 d
 t  } | j   d k sE t  t j d |  d |  d k  si t  d  S(   Ni   i   i   iP   iS   iV   t   reduced_cellt	   max_deltai   t)   enforce_max_delta_for_generated_two_foldsi   Ri   gģŊ×Ųß|Û=(   i   i   i   iP   iS   iV   (   R   Rá   R   t   lattice_symmetry_groupR   R  R>   t   lattice_symmetry_find_max_delta(   R
  t   lattice_group(    (    sP   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/sgtbx/boost_python/tst_sgtbx.pyt   exercise_lattice_symmetry[  s    			c          C   sØ   t  j d  }  d t d f d t d f d	 t d f d	 t d
 f d t d
 f d t d
 f g } xt | D]l \ } } } t j d |  d | d |  } t j d |  } t j |  j   } t	 |  | k sd t
  qd Wd  S(   NgėŖSWQy@gĐT¸y@g5Ķz@gqū&~V@gįŪÃqV@gYŖĸŅyV@gÍĖĖĖĖĖė?i
   gffffffö?i   gÍĖĖĖĖĖü?R
  R  R  R:   (   gėŖSWQy@gĐT¸y@g5Ķz@gqū&~V@gįŪÃqV@gYŖĸŅyV@(   R   Rá   R   R   R   R  Rh   R   t   groups_parent_settingRX   R>   (   t   niggli_cellt   testing_combinationsR  t   enforcet	   n_subgrpsR:   t
   group_infot   subgrs(    (    sP   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/sgtbx/boost_python/tst_sgtbx.pyt!   exercise_lattice_symmetry_optionse  s    			c          C   s   x d d d d d g D]~ \ }  } t  j |   } x` t t g D]R } t  j | d	  } | j   } t |  | k sz t  | j   d
 k r> Pq> q> Wq Wd  S(   Ns   P 1ix s   P 2ih   s   C 2yi$   s   B 2xs   A 2zi   i   (   s   P 1ix (   s   P 2ih   (   s   C 2yi$   (   s   B 2xi$   (   s   A 2zi$   (	   R   Ri   R   R   t   find_affinet   cb_mxRX   R>   R  (   t   symRn   R:   t   use_p1_algorithmt   affineR  (    (    sP   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/sgtbx/boost_python/tst_sgtbx.pyt   exercise_find_affinet  s    " c          C   sc  t  j d t  }  t  j d t d d d t d t d t  }  |  j   sO t  |  j   d k sg t  |  j   sz t  |  j   s t  |  j	   s t  |  |  k są t  |  |  k sÄ t  |  t  j t d t t t  k së t  |  t  j t d t t t  k st  |  t  j t d t t t  k s:t  |  t  j t d t t t  k sbt  xž t t g D]° } x§ d d d g D] } x t t g D] } xv t t g D]h } x_ t t g D]Q } t  j | | | | |  }  t
 j |   } t
 j |  } | |  k sžt  qžWqĢWqWqWqoWt  j d	  } | j   }	 t  j d
  }
 |
 j   } t  j d  } | j   } t  j d t  j t d t t t  d | j    } | j   j   j   d k sËt  t  j d t  j t d t t t  d | j    } | j   j   j   d k s"t  t  j d t  j t d t t t  d | j    } | j   j   j   d k syt  t  j d t  j t d t t t  d | j   d |  } | j   t  j d  k sĶt  | j   d# k sët  | j   sũt  | j d t  t t t f k s$t  t  j d t  j t d t t t  d | j    } | j   t  j d  k sxt  t  j d t  j t d t t t  d | j    } | j   t  j d  k sĖt  t  j d t  j t d t t t  d | j    } | j   j   j   d k s#t  t  j d t  j t d t t t  d | j    } | j   t  j t d t t t  k st  | j   j   j   d k s§t  t  j d t  j t d t t t  d | j   d |  } | j   t  j d  k st  t  j d t  j t d t t t  d |
 j    } | j   t  j d  k sUt  t  j d t  j t d t t t  d |
 j    } | j   t  j d  k sŠt  t  j d t  j t d t t t  d |
 j    } | j   t  j d  k sũt  t  j d t  j t d t t t  d |
 j    } | j   t  j d  k sQt  t  j d t  j t d t t t  d |
 j   d |  } | j   j   j   d k sŽt  t  j d t  j t d t t t  d |
 j   d |  } | j   t  j d  k st  t  j d t  j t d t t t  d |
 j   d |  } | j   t  j d  k sbt  t  j d t  j t d t t t  d | j   d |	  } | j   j   j   d k sŋt  | j   d% k s×t  | j   sét  | j   t t t f k s
	t  t  j d t  j t d t t t  d | j   d |	  } | j   j   j   d k sg	t  | j   d' k s	t  t  j d d  } | j   } t  j d t  j t d t t t  d | j   d |  } | j   t  j d  k s÷	t  | j   d( d) d* f k s
t  | j   s*
t  | j   t t t f k sK
t  t  j d d  } | j   } t  j d t  j t d t t t  d | j   d |  } | j   t  j d  k sÃ
t  | j   d+ d, f k sá
t  | j   t t t f k st  t  j d  } | j   } t  j d t  j t d t t t  d | j   d |  } | j   t  j d  k swt  | j   d. k st  | j   sĸt  | j d t  t t t f k sÉt  t  j d   } | j   } t  j d t  j t d t t t  d | j   d |  } | j   t  j d!  k s>t  | j   t  j d"  k s_t  d  S(/   Nt   use_space_group_symmetryt   use_space_group_ltri   t   use_seminvariantst   use_normalizer_k2lt   use_normalizer_l2ni    i˙˙˙˙s   P 3s   R 3 hs   P 3 1 2t   flagsRQ  s   P 1t   seminvariants$   P 1 (-1/3*y-1/3*z,1/3*y-2/3*z,1/2*x)Rû  s   -P 1s   P 2zs   P -3 1 ms	   P 6/m m ms'   -P 6 2 (1/3*x+1/3*y,-1/3*x+2/3*y,1/2*z)s   R 1s   R -3s   -R 3 2"s     P 1 (2/3*x-1/3*y,1/3*x+1/3*y,z)s#   -P 6 2 (1/3*x+1/3*y,-1/3*x+2/3*y,z)RH   i   s   -P 2y (x,1/2*y,z)s   R 3 rs   P 31s!   P 31 (1/3*x+1/3*y,-1/3*x+2/3*y,z)s    P 3 (1/3*x+1/3*y,-1/3*x+2/3*y,z)(    (   i    i    i   (   (   i    i    i   (   i    i    i   (   (   i    i    i   (   i   i    i    (   i    i   i    (   i    i    i   (   i   i    i    (   i    i    i   (   i   i   i   (   (   i   i   i   (   R   t   search_symmetry_flagsR   R   R  R>   R   R!  R"  R#  RÄ   RÅ   RÆ   Rh   Rü  t   search_symmetryR¤   t   subgroupRW  Ri   Ré  R  t   continuous_shift_flagsR$  RS  t   projected_subgroup(   Ru   R  R   R!  R"  R#  RÎ   RĐ   t   sg143t   ss143t   sg146t   ss146t   sg149t   ss149RA   R=  t   ss1t   sg6t   ss6t   sg146rt   ss146rt   sg144t   ss144(    (    sP   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/sgtbx/boost_python/tst_sgtbx.pyt   exercise_search_symmetry}  sN   		'('(	&	$	$	$			'	!	!	$	-$				!	!	!	!		$		!		!		!				!!!		!!		!'		!	c          C   se  t  j d  }  t j d  } t j |  | d  } t j } x¤ | d | d t  | d	 | j   d
 d d t  g D]l } t | j	    d d d d d d d d d d d d d d d d d d d d d d d d g k ss t
  qs Wx{| d | d t  | d	 | j   d
 d d t  | j   g D]:} t | j	    d d d d d d d d d d d d d d d d d d d d d d d d g k st
  t | j  d d g k s°t
  t | j   d d d d d d d d d d d d g  sīt
  | j   d k st
  | j   d k st
  t | j d d d d d d d g  d d g  sXt
  t | j d d d g  d d d d d d g  st
  d d d d d d g } d d d d  d d d! d d g } t | j d |  d d g  sôt
  t | j d |  d d g  st
  t j t d d   } t | j d |  d d d g  s#t
  q#Wd  S("   Ni   i   iZ   ix   s   P 6 2i    Ri   t   reciprocal_spacet   symmetry_matricest   i_first_matrix_to_usei   i˙˙˙˙i   iū˙˙˙i   i   R  i   i   R  g      @iũ˙˙˙R  i
   i   R  i#   it   (   i   i   i   iZ   iZ   ix   (   i    i    i    gUUUUUUÕ?gUUUUUUÕ?gUUUUUUÕ?(   R   Rá   R   Ri   R  t   tensor_rank_2_constraintsR   R  Rå   RĒ  R>   R   t   adp_constraintsRŦ  R   R°  R­  RŽ  R  R  R˛  R   R  Rß   Rŗ  (   Rė   R,  RÄ  t   tr2cR{   R   RA   (    (    sP   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/sgtbx/boost_python/tst_sgtbx.pyt"   exercise_tensor_rank_2_constraints&	  sF    		[	W!?99$''c    
      C   s3  t  j d  }  t g  |  D] } | ^ q  } t |  t |   k sL t  x  |  D] } | | k sS t  qS Wi  } xD |  D]< } | j | j   t    | | j   j | j    q| WxH |  D]@ } | j   | k sá t  | j   | | j   k sÃ t  qÃ Wt g  t  j	   D] } | j
   ^ q } t |  d k sJt  g  | D] } t  j |  j   ^ qQ} t |  } t |  t |  k st  x  | D] }  |  | k sŖt  qŖWt  j d  }  |  j t  j d   y t |   t  Wn4 t k
 r.}	 t |	  j d  d k s/t  n Xd  S(   Ns   P 4 2 3i  s   P 2zs	   -x, y, -zt   tidyi˙˙˙˙(   R   Ri   t   setRX   R>   t
   setdefaultR   t   addR   RT   RM   R  R  R¸   R+  R   Rf   Rg   Ra   (
   R;  t   opt   op_setR,  Rę   R;   t
   symbol_sett   sg_listt   sg_setR~   (    (    sP   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/sgtbx/boost_python/tst_sgtbx.pyt   exercise_hashingK	  s6    !&%(

c           C   s@   t  t j d  d  s t  t  t j d	  d
  s< t  d  S(   NgšŋgÉ?g333333ĶŋgÍĖĖĖĖĖė?gffffffæ?gŲ?(   gšŋgÉ?g333333Ķŋ(   gÍĖĖĖĖĖė?gÉ?gffffffæ?(   gŲ?gÍĖĖĖĖĖė?gffffffæ?(   gŲ?gšŋg333333Ķŋ(   R   R   t   fractional_mod_positiveR>   t   fractional_mod_short(    (    (    sP   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/sgtbx/boost_python/tst_sgtbx.pyt   exercise_fractional_modn	  s    c           C   s   t    t   t   t   t   t   t   t   t   t	   t
   t   t   t   t   t   t   t   t   t   t   t   GHd  S(   N(   R   R   R¯   RÔ   Rí   RG  Rj  Rs  Ry  R{  RË  RÜ  Rö  R	  R  R  R  R8  R?  RI  RL  R   (    (    (    sP   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/sgtbx/boost_python/tst_sgtbx.pyt   runv	  s,    t   __main__(2   t
   __future__R    t   cctbx.sgtbxR   t   cctbx.array_familyR   R2   R   R   RZ   R   t   libtbx.utilsR   t   libtbx.test_utilsR   R   R	   R
   t   libtbx.load_envR  RĶ  RÄ   t	   cStringIOR   R]   t
   splitlinesRj   R   R   R¯   RÔ   Rí   RG  Rj  Rs  Ry  R{  RË  RÜ  Rö  R	  R  R  R  R8  R?  RI  RL  RM  t   __name__(    (    (    sP   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/sgtbx/boost_python/tst_sgtbx.pyt   <module>   sP   "		9	ā	Ô	[	˙ f		N		
	˙ R	Q	Đ		
				Š	%	#		