ó
6™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	 m
 Z
 d  d l m Z m Z d  d l m Z d	 „  Z d
 „  Z e d k r´ e ƒ  n  d S(   iÿÿÿÿ(   t   division(   t   miller(   t   crystal(   t   sgtbx(   t   flex(   t   expt   pi(   t   rowt   col(   t   approx_equalc       !   C   sÀ  t  j t  j t j d d d t j d ƒ ƒ 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( d) d* g ƒ ƒd
 t j	 t j
 d ƒ t j
 d ƒ ƒ ƒ}  t t |  j ƒ  |  j ƒ  ƒ ƒ } xä d+ D]Ü } t j | ƒ } |  j |  j t j | j ƒ  ƒ ƒ ƒ \ } } x* | D]" \ } } | | | k s%t ‚ q%Wxj | D]b \ } } t | | | | j ƒ  t d, t t | ƒ j t | j ƒ  j ƒ  ƒ ƒ ƒ ƒ sRt ‚ qRWqÜ Wd  S(-   Nt	   unit_celli   iZ   t   space_groups   P 2xt   indicesi   i    iÿÿÿÿt   datai   s   -x, y+1/2, -zs   x+1/2, -y, z-1/2y              ð?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    iÿÿÿÿiÿÿÿÿ(   i   iÿÿÿÿi    (   i   i    iÿÿÿÿ(   i    i   iÿÿÿÿ(   iÿÿÿÿi   i    (   iÿÿÿÿi    i   (   i    iÿÿÿÿi   (   i   i   i   (   iÿÿÿÿi   i   (   i   iÿÿÿÿi   (   i   i   iÿÿÿÿ(   iÿÿÿÿiÿÿÿÿiÿÿÿÿ(   i   iÿÿÿÿiÿÿÿÿ(   iÿÿÿÿi   iÿÿÿÿ(   iÿÿÿÿiÿÿÿÿi   (   s   -x, y+1/2, -zs   x+1/2, -y, z-1/2y               @(   R   t   arrayt   setR   t   symmetryR   R   R   t   miller_indext   complex_doublet   random_doublet   dictt   zipR   R   t   rt_mxt   common_setst   change_basist   change_of_basis_opt   inverset   AssertionErrorR	   t   rR   R   R   t   dotR   t   tt	   as_double(   t   mat   f_at_ht   opt   originalt   transformedt   ht   ft   op_f(    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/examples/miller_transform.pyt   exercise
   s0    						'!'c           C   s   t  ƒ  d GHd  S(   Nt   OK(   R(   (    (    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/examples/miller_transform.pyt   run$   s    t   __main__N(   t
   __future__R    t   cctbxR   R   R   t   cctbx.array_familyR   t   cmathR   R   t   scitbx.matrixR   R   t   libtbx.test_utilsR	   R(   R*   t   __name__(    (    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/examples/miller_transform.pyt   <module>   s   		