ó
N™xTc           @   sx  d  Z  d d l m Z d d l m Z d d l m Z d d l m Z d d l	 m
 Z
 d d l Z d d l Z d e f d	 „  ƒ  YZ d
 Z g  Z x£ e j d ƒ d d !D]‹ Z e j ƒ  Z e j ƒ  Z i e e d ƒ d 6e d d 6e d d 6e g  e d j d ƒ D] Z e e ƒ ^ qƒ d 6Z e j e ƒ q§ Wd e f d „  ƒ  YZ d „  Z d „  Z e d k rte ƒ  n  d S(   sZ  
Reference implementation of BZW lattice characters, from Table 9.3.1 of
the International Tables.  Use of this method is not recommended.  See
counterexamples given below.

Literature:  Crystal lattices. H. Burzlaff, H. Zimmermann and P.M. de Wolff.
In International Tables for Cyrstallography, Volume A: Space-group symmetry
ed. Theo Hahn.  Dordrecht: Kluwer Academic Publishers (1996).
Note correction in the lattice_text table as given by W. Kabsch,
J. Appl. Cryst. 26: 795-800 (1993).  The 1996 edition of International
Tables is apparently uncorrected from the 1989 edition.

Author: N.K. Sauter
iÿÿÿÿ(   t   division(   t   crystal(   t	   unit_cell(   t   matrix(   t   metric_subgroupsNt   MetricCriteriac           B   sS   e  Z d  „  Z d „  Z d „  Z d „  Z d d „ Z d „  Z d „  Z d „  Z	 RS(	   c         C   s`   |  j  | | k  o% d |  j  k  n sT |  j  | | k  oO d |  j  k  n rX t St Sd  S(   Ng      ð?(   t   int_tolt   Truet   False(   t   selft   At   B(    (    sW   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/crystal/burzlaff_zimmermann_dewolff.pyt   equal   s    ** c         C   s+   | | } | d k r# d | } n  d | S(   Ng      ð?(    (   R	   R
   R   t   ratio(    (    sW   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/crystal/burzlaff_zimmermann_dewolff.pyt   equal_penalty   s    
 c         C   sJ   | d } | d } t  | t j | | ƒ ƒ d |  j k  rB t St Sd S(   sT  
    Product == 0 within fractional tolerance referred to by the quantities B.
    Usage: zero(D,(B,C)) | zero(E,(A,C)) | zero(F,(A,B))
    Only these combinations can be used.  This translates exactly into
    a tolerance on right angle, based on formula D=b.dot(c)=|b||c|cos(theta)
    internal_tolerance=0.97 corresponds to 1.72 degrees.i    i   g      ð?N(   t   abst   matht   sqrtR   R   R   (   R	   t   ProductR   t   ldott   rdot(    (    sW   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/crystal/burzlaff_zimmermann_dewolff.pyt   zero'   s
    

* c         C   s/   | d } | d } t  | t j | | ƒ ƒ S(   Ni    i   (   R   R   R   (   R	   R   R   R   R   (    (    sW   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/crystal/burzlaff_zimmermann_dewolff.pyt   zero_penalty3   s    

g
×£p=
ï?c   	         sô  ‡  ‡ ‡ ‡ ‡ ‡ ‡ ‡ ‡ ‡	 ‡
 ‡ ‡ ‡ f d †  } | |  _  |  j | ƒ } | j ƒ  } | d ‰  | d ‰ | d } | d ‰ | d ‰ | d ‰
 |  j ‰ |  j } | ˆ ˆ | f ƒ ‰ | ˆ ˆ  | f ƒ ‰	 | ˆ
 ˆ  ˆ f ƒ ‰ ˆ ˆ ˆ
 d k rd ‰ n! ˆ sˆ	 sˆ rd ‰ n d ‰ ‡ f d †  ‰ ˆ ˆ  ˆ ƒ ‰ ˆ ˆ | ƒ ‰ ˆ ˆ  | ƒ ‰ ˆ d t ˆ ˆ ˆ
 ƒ ˆ  ˆ ƒ ‰ | ƒ  |  _ |  j ‰ |  j } | ˆ ˆ | f ƒ ‰ | ˆ ˆ  | f ƒ ‰	 | ˆ
 ˆ  ˆ f ƒ ‰ ˆ ˆ ˆ
 d k r d ‰ n0 ˆ d ƒ r*d	 d	 t	 ˆ ˆ	 ˆ ƒ f ‰ n d ‰ ‡ f d
 †  ‰ ˆ ˆ  ˆ ƒ ‰ ˆ ˆ | ƒ ‰ ˆ ˆ  | ƒ ‰ ˆ d t ˆ ˆ ˆ
 ƒ ˆ  ˆ ƒ ‰ | ƒ  |  _
 t rðxJ |  j
 D]< } | G|  j | Gg  |  j
 | D] } d d | ^ qÐGHq­Wn  d  S(   Nc        	      sÊ  i, ˆ ˆ ˆ d ƒ ˆ ˆ  d ˆ ƒ ˆ ˆ  d ˆ ƒ ˆ ˆ  d ˆ
 ƒ g d 6ˆ ˆ ˆ d ƒ ˆ ˆ ˆ ƒ ˆ ˆ
 ˆ ƒ g d 6ˆ ˆ ˆ d ƒ ˆ ˆ	 ˆ g d 6ˆ ˆ ˆ d ƒ ˆ ˆ  d ˆ ƒ ˆ ˆ  d ˆ ƒ ˆ ˆ  d ˆ
 ƒ g d 6ˆ ˆ ˆ d ƒ ˆ ˆ ˆ ƒ ˆ ˆ
 ˆ ƒ g d 6ˆ ˆ ˆ d ƒ ˆ ˆ ˆ ˆ ƒ g d 6ˆ ˆ ˆ d ƒ ˆ ˆ ˆ
 ˆ ƒ g d	 6ˆ ˆ ˆ d ƒ ˆ g d
 6ˆ ˆ d ƒ ˆ ˆ  d ˆ ƒ ˆ ˆ  d ˆ ƒ ˆ ˆ  d ˆ
 ƒ g d 6ˆ ˆ d ƒ ˆ ˆ ˆ ƒ g d 6ˆ ˆ d ƒ ˆ ˆ	 ˆ g d 6ˆ ˆ d ƒ ˆ ˆ	 ˆ ˆ  d ˆ
 ƒ g d 6ˆ ˆ d ƒ ˆ ˆ	 g d 6ˆ ˆ d ƒ ˆ ˆ  d ˆ ƒ ˆ ˆ  d ˆ ƒ ˆ g d 6ˆ ˆ d ƒ ˆ ˆ ˆ ˆ ƒ g d 6ˆ ˆ d ƒ ˆ ˆ ˆ ƒ g d 6ˆ ˆ d ƒ ˆ g d 6ˆ ˆ d ƒ ˆ ˆ  d ˆ ƒ ˆ ˆ  d ˆ ƒ ˆ ˆ  d ˆ
 ƒ g d 6ˆ ˆ d ƒ ˆ ˆ  d ˆ ƒ ˆ ˆ  d ˆ
 ƒ g d 6ˆ ˆ d ƒ ˆ ˆ
 ˆ ƒ g d 6ˆ ˆ d ƒ ˆ ˆ	 ˆ g d 6ˆ ˆ d ƒ ˆ ˆ d ˆ ƒ ˆ	 ˆ g d 6ˆ ˆ d ƒ ˆ	 ˆ g d 6ˆ ˆ d ƒ ˆ ˆ ˆ  d ˆ ƒ ˆ ˆ  d ˆ
 ƒ g d 6ˆ ˆ d ƒ ˆ ˆ
 ˆ ƒ g d 6ˆ d ƒ ˆ ˆ  d ˆ ƒ ˆ ˆ  d ˆ ƒ ˆ ˆ  d ˆ
 ƒ g d 6ˆ d ƒ ˆ ˆ  d ˆ ƒ ˆ ˆ  d ˆ
 ƒ g d 6ˆ d ƒ ˆ ˆ  d ˆ ƒ ˆ d ˆ ˆ
 ƒ g d 6ˆ d ƒ ˆ d ˆ ˆ ƒ ˆ ˆ  d ˆ
 ƒ g d  6ˆ d ƒ ˆ ˆ d ˆ ƒ ˆ d ˆ ˆ
 ƒ g d! 6ˆ d ƒ g d" 6ˆ d ƒ ˆ ˆ	 ˆ g d# 6ˆ d ƒ ˆ ˆ d ˆ ƒ ˆ	 ˆ g d$ 6ˆ d ƒ ˆ	 ˆ g d% 6ˆ d ƒ ˆ ˆ ˆ  d ˆ ƒ ˆ g d& 6ˆ d ƒ ˆ ˆ g d' 6ˆ d ƒ ˆ ˆ	 ˆ ˆ  d ˆ
 ƒ g d( 6ˆ d ƒ ˆ ˆ	 g d) 6ˆ d ƒ ˆ ˆ d ˆ ƒ ˆ ˆ  d ˆ ƒ ˆ g d* 6ˆ d ƒ ˆ ˆ d ˆ ƒ ˆ g d+ 6ˆ d ƒ ˆ ˆ  d ˆ ƒ ˆ g d, 6ˆ d ƒ ˆ	 ˆ ˆ  d ˆ
 ƒ g d- 6ˆ d ƒ ˆ ˆ t  d ˆ ˆ
 ƒ ˆ ƒ g d. 6ˆ d ƒ g d/ 6S(0   Ni   g       @i   i   g      @i   i   i   i   i   i	   i
   i   i   i   i   i   i   i   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,   (   R   (    (   R
   t   ABt   ACR   t   BCt   Dt   D0t   Dstart   Et   E0t   Ft   F0t   TypeR   (    sW   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/crystal/burzlaff_zimmermann_dewolff.pyt   criteria_encoding9   sZ    F.I.%%C*8"C3*8@0000'''5$$$-i    i   i   i   i   i   c            s
   |  ˆ  k S(   N(    (   t   flag(   t   fType(    sW   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/crystal/burzlaff_zimmermann_dewolff.pyR!   ‚   s    g        c            s   ˆ  |  S(   N(    (   R#   (   t   type_penalty(    sW   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/crystal/burzlaff_zimmermann_dewolff.pyR!   –   s    s   %4.2f%%g      Y@(   g        g        g        (   g        g        g        (   R   t   apply_sign_correctiont   metrical_matrixR   R   R   t   metric_testsR   R   t   mint	   penaltiesR   (	   R	   R   R   R"   t   mmt   CR   t   keyt   x(    (   R
   R   R   R   R   R   R   R   R   R   R   R    R!   R   R$   R%   sW   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/crystal/burzlaff_zimmermann_dewolff.pyt   __init__8   s\    65	
 
 
 
 
 
		 		%		 	 %c      
   C   sâ  | j  ƒ  } | d } | d } | d } | d } | d } | d } |  j | | | f ƒ }	 |  j | | | f ƒ }
 |  j | | | f ƒ } | | | d k rÞ|	 s¶ |
 s¶ | rÞt j | j ƒ  ƒ } |	 rø |
 rø | d k r¾t j d ƒ } q¾nÆ |
 r%| r%| d k r¾t j d ƒ } q¾n™ | rR|	 rR| d k r¾t j d ƒ } q¾nl |
 rv| d k rvt j d ƒ } nH | rš| d k ršt j d ƒ } n$ |	 r¾| d k r¾t j d ƒ } n  t d
 | | ƒ } d G| GH| S| S(   Ni    i   i   i   i   i   g      ð¿g        g      ð?t   orthogonalization_matrixs   Adjusted cell:(	   g      ð¿g        g        g        g      ð?g        g        g        g      ð¿(	   g      ð¿g        g        g        g      ð¿g        g        g        g      ð?(	   g      ð?g        g        g        g      ð¿g        g        g        g      ð¿(	   g      ð¿g        g        g        g      ð?g        g        g        g      ð¿(	   g      ð¿g        g        g        g      ð¿g        g        g        g      ð?(	   g      ð?g        g        g        g      ð¿g        g        g        g      ð¿(   R'   R   R   t   sqrR0   R   (   R	   t   cellR+   R
   R   R,   R   R   R   R   R   R    t   ortht	   inversiont   uc(    (    sW   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/crystal/burzlaff_zimmermann_dewolff.pyR&   ¦   s>    	
 
 
 
 
 
&      	c         C   s   |  j  S(   N(   R(   (   R	   (    (    sW   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/crystal/burzlaff_zimmermann_dewolff.pyt   character_testsÇ   s    c         C   s   |  j  S(   N(   R*   (   R	   (    (    sW   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/crystal/burzlaff_zimmermann_dewolff.pyt   penalty_scoresÊ   s    (
   t   __name__t
   __module__R   R   R   R   R/   R&   R6   R7   (    (    (    sW   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/crystal/burzlaff_zimmermann_dewolff.pyR      s   				n	!	s  
1         cubic  cF  1,-1,1,1,1,-1,-1,1,1
2  rhombohedral  hR  1,-1,0,-1,0,1,-1,-1,-1
3         cubic  cP  1,0,0,0,1,0,0,0,1
5         cubic  cI  1,0,1,1,1,0,0,1,1
4  rhombohedral  hR  1,-1,0,-1,0,1,-1,-1,-1
6    tetragonal  tI  0,1,1,1,0,1,1,1,0
7    tetragonal  tI  1,0,1,1,1,0,0,1,1
8  orthorhombic  oI  -1,-1,0,-1,0,-1,0,-1,-1
9  rhombohedral  hR  1,0,0,-1,1,0,-1,-1,3
10   monoclinic  mC  1,1,0,1,-1,0,0,0,-1
11   tetragonal  tP  1,0,0,0,1,0,0,0,1
12    hexagonal  hP  1,0,0,0,1,0,0,0,1
13 orthorhombic  oC  1,1,0,-1,1,0,0,0,1
15   tetragonal  tI  1,0,0,0,1,0,1,1,2
16 orthorhombic  oF  -1,-1,0,1,-1,0,1,1,2
14   monoclinic  mC  1,1,0,-1,1,0,0,0,1
17   monoclinic  mC  1,-1,0,-1,-1,0,-1,0,-1
18   tetragonal  tI  0,-1,1,1,-1,-1,1,0,0
19 orthorhombic  oI  -1,0,0,0,-1,1,-1,1,1
20   monoclinic  mC  0,1,1,0,1,-1,-1,0,0
21   tetragonal  tP  0,1,0,0,0,1,1,0,0
22    hexagonal  hP  0,1,0,0,0,1,1,0,0
23 orthorhombic  oC  0,1,1,0,-1,1,1,0,0
24 rhombohedral  hR  1,2,1,0,-1,1,1,0,0
25   monoclinic  mC  0,1,1,0,-1,1,1,0,0
26 orthorhombic  oF  1,0,0,-1,2,0,-1,0,2
27   monoclinic  mC  -1,2,0,-1,0,0,0,-1,1
28   monoclinic  mC  -1,0,0,-1,0,2,0,1,0
29   monoclinic  mC  1,0,0,1,-2,0,0,0,-1
30   monoclinic  mC  0,1,0,0,1,-2,-1,0,0
31    triclinic  aP  1,0,0,0,1,0,0,0,1
32 orthorhombic  oP  1,0,0,0,1,0,0,0,1
40 orthorhombic  oC  0,-1,0,0,1,2,-1,0,0
35   monoclinic  mP  0,-1,0,-1,0,0,0,0,-1
36 orthorhombic  oC  1,0,0,-1,0,-2,0,1,0
33   monoclinic  mP  1,0,0,0,1,0,0,0,1
38 orthorhombic  oC  -1,0,0,1,2,0,0,0,-1
34   monoclinic  mP  -1,0,0,0,0,-1,0,-1,0
42 orthorhombic  oI  -1,0,0,0,-1,0,1,1,2
41   monoclinic  mC  0,-1,-2,0,-1,0,-1,0,0
37   monoclinic  mC  1,0,2,1,0,0,0,1,0
39   monoclinic  mC  -1,-2,0,-1,0,0,0,0,-1
43   monoclinic  mI  -1,0,0,-1,-1,-2,0,-1,0
44    triclinic  aP  1,0,0,0,1,0,0,0,1
s   
i   i    t   numbert   systemi   t   bravaisi   t   ,R   t   LatticeCharacterc           B   sA   e  Z d  d „ Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   g      @c         C   s-   | |  _  d | d |  _ |  j ƒ  |  _ d  S(   Ng      ð?g      Y@(   R   R   t   best_bravais__t   possible_characters(   R	   R   t	   tolerance(    (    sW   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/crystal/burzlaff_zimmermann_dewolff.pyR/     s    	c         C   s   |  j  d S(   Ni    (   t   possible_charcters(   R	   (    (    sW   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/crystal/burzlaff_zimmermann_dewolff.pyt   best  s    c         C   s   |  j  S(   N(   R@   (   R	   (    (    sW   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/crystal/burzlaff_zimmermann_dewolff.pyt   all  s    c         C   sX   xQ |  j  D]F } d | d | d | d f Gd t | d ƒ Gd d | d	 GHq
 Wd  S(
   Ns   %2d: %2s %14s, matrixR:   R<   R;   s   %30sR   s   max_penalty=%4.2f%%g      Y@t   penalty(   R@   t   str(   R	   t   item(    (    sW   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/crystal/burzlaff_zimmermann_dewolff.pyt   show_summary  s
    c         C   sc   x\ |  j  D]Q } d | d f Gd d | d f Gd | d | d f Gd	 t | d
 ƒ GHq
 Wd  S(   Ns       %2dR:   s        %4.2f%%g      Y@RE   s                  %14s %2sR;   R<   s   %30sR   (   R@   RF   (   R	   RG   (    (    sW   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/crystal/burzlaff_zimmermann_dewolff.pyt   show_summary_labelit_format  s
    c         C   sx   t  |  j |  j ƒ } g  } xV t D]N } t | j ƒ  | d k r" t | j ƒ  | d ƒ | d <| j | ƒ q" q" W| S(   NR:   RE   (	   R   R   R   t   latticesR   R6   t   maxR7   t   append(   R	   t   MCt   answerst	   character(    (    sW   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/crystal/burzlaff_zimmermann_dewolff.pyR?   $  s    (   R8   R9   R/   RC   RD   RH   RI   R?   (    (    (    sW   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/crystal/burzlaff_zimmermann_dewolff.pyR>     s   				c          C   s¢   x› d: d; d< d= d> d? d@ dA dB g	 D]x }  t  |  ƒ } | j ƒ  sF t ‚ d4 G| GHd5 GHt | d6 ƒ j ƒ  t j d7 | d8 d9 ƒ } t | d6 ƒ } | j ƒ  HHq" Wd  S(C   Ng{·Ã¤ãa@g™…}”Dóa@gjleð õg@g0G3Ú€V@g›¼åArö[@gô‘x¤ø]@g…ëQ¸^^@gÍÌÌÌÌœ^@gR¸…ëb@g\�Âõ(|V@gö(\�ÂEP@g�Âõ(\V@g)\�ÂõX^@g
×£p=Š^@g�Âõ(\ÿa@g�Âõ(\OP@g®Gáz~V@g,ƒ+†3@T@g’W½WHT@gdw”N0e@gˆ 
õ`yV@gá½"KðV@g„R,ON@g¸…ëQxT@g{®GázT@g\�Âõ(Le@gÍÌÌÌÌ|V@g…ëQ¸~V@g…ëQ¸N@gö(\�ÂuT@gfffffvT@g)\�Âõ(e@gÃõ(\�N@gHáz®·b@g®Gáz¼b@gÍÌÌÌÌ\c@g=
×£p}V@gáz®GqV@gÍÌÌÌÌN@gÙ=yX¨!P@g…|Ð³YaP@gé&1¬”a@gòAÏfÕƒV@gaTR' �V@gù1æ®%€V@g
×£p=*Y@gR¸…ë1Y@g     @Y@g=
×£p=]@gÃõ(\�âW@g¸…ëQ(]@s   Input Niggli cell:s   BZW Table lookup:g      @R   t   space_group_symbols   P 1(   g{·Ã¤ãa@g™…}”Dóa@gjleð õg@g0G3Ú€V@g›¼åArö[@gô‘x¤ø]@(   g…ëQ¸^^@gÍÌÌÌÌœ^@gR¸…ëb@g\�Âõ(|V@gö(\�ÂEP@g�Âõ(\V@(   g)\�ÂõX^@g
×£p=Š^@g�Âõ(\ÿa@g\�Âõ(|V@g�Âõ(\OP@g®Gáz~V@(   g,ƒ+†3@T@g’W½WHT@gdw”N0e@gˆ 
õ`yV@gá½"KðV@g„R,ON@(   g¸…ëQxT@g{®GázT@g\�Âõ(Le@gÍÌÌÌÌ|V@g…ëQ¸~V@g…ëQ¸N@(   gö(\�ÂuT@gfffffvT@g)\�Âõ(e@g\�Âõ(|V@g®Gáz~V@gÃõ(\�N@(   gHáz®·b@g®Gáz¼b@gÍÌÌÌÌ\c@g=
×£p}V@gáz®GqV@gÍÌÌÌÌN@(   gÙ=yX¨!P@g…|Ð³YaP@gé&1¬”a@gòAÏfÕƒV@gaTR' �V@gù1æ®%€V@(   g
×£p=*Y@gR¸…ë1Y@g     @Y@g=
×£p=]@gÃõ(\�âW@g¸…ëQ(]@(	   R   t   is_niggli_cellt   AssertionErrorR>   RH   R   t   symmetryR   t   show(   t   exampleR5   t   input_symmetryt   Groups(    (    sW   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/crystal/burzlaff_zimmermann_dewolff.pyt   counterexamples-  s.      		
 c          C   sÉ   t  t j ƒ d k  r) t ƒ  t j ƒ  n  g  t j d d !D] }  t |  ƒ ^ q: } t | ƒ } | j ƒ  } d G| Gd d g | GH| sŸ | j ƒ  } d G| GHn  t t j d ƒ } t	 | | ƒ j
 ƒ  d  S(   Ni   i   i   s   Input cell:s   is not Niggli reduceds   is Niggli reduceds   Niggli cell:(   t   lent   syst   argvRX   t   exitt   floatR   RQ   t   niggli_cellR>   RH   (   t   it   paramsR5   t   niggliRA   (    (    sW   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/crystal/burzlaff_zimmermann_dewolff.pyt   runS  s    )t   __main__(   t   __doc__t
   __future__R    t   cctbxR   t   cctbx.uctbxR   t   scitbxR   t   cctbx.sgtbx.lattice_symmetryR   R   RZ   t   objectR   t   lattice_textRJ   t   splitt   linet   stript   itemst   intt   tupleR.   t   dRL   R>   RX   Rb   R8   (    (    (    sW   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/crystal/burzlaff_zimmermann_dewolff.pyt   <module>   s.   â6%	&	