ó
`™xTc           @   s…   d  d l  m Z d  d l m Z d  d l m Z d „  Z d „  Z d „  Z d „  Z	 e
 d k r� d	 Z d
 Z e	 e e ƒ d GHn  d S(   iÿÿÿÿ(   t   division(   t   flex(   t   mathc          C   s^   t  j ƒ  }  |  j d ƒ |  j d	 ƒ |  j d
 ƒ |  j d ƒ |  j d ƒ |  j d ƒ |  S(   Ni   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   vec3_doublet   append(   t   xyz(    (    sI   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/math/tst_zernike_mom.pyt   makexyz   s    c      
   C   sJ  d } d } d } d } t  } t } t } t ƒ  }	 t j |	 j ƒ  d ƒ }
 t j | | | | | | | |	 |
 ƒ	 } | j ƒ  | k sŠ t	 ‚ t
 | j ƒ  d ƒ d k  s¬ t	 ‚ | j ƒ  d k sÄ t	 ‚ | j ƒ  } d	 } | | k sè t	 ‚ | j ƒ  } xO t |	 | ƒ D]> \ } } x/ t | | ƒ D] \ } } | | k s t	 ‚ q WqW| S(
   Ni   gÍÌÌÌÌÌì?gffffffæ?g      ð¿g      ð?i   g-Cëâ6?i¢   s±   number of grid point is:    68921
rmax is                : 25.00000000
max fraction one 1-d is: 0.90000000
non-empty grid point is:      162
non-empty grid fract is: 0.00235052
(   t   Truet   FalseR   R   t   doublet   sizeR   t   sphere_voxelt   npt   AssertionErrort   abst   rmaxt   occupied_sitest   statusR   t   zip(   t   nmaxR   t   splat_ranget   fractiont
   default_dxt   external_rmaxt   uniformt	   adjust_dxt	   centeringR   t   densityt	   voxel_objt   infot   expect_infot   new_xyzt   xxxt   yyyt   x1t   x2(    (    sI   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/math/tst_zernike_mom.pyt	   tst_voxel   s*    	'"c         C   sc   t  |  | ƒ } t j | |  ƒ } t } | j | | ƒ | j ƒ  | j ƒ  | j ƒ  k s_ t ‚ | S(   N(   R$   R   t   sphere_gridR   t   clean_spacet   construct_space_sumR   R   (   R   R   R   t   grid_objt   pdb_out(    (    sI   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/math/tst_zernike_mom.pyt   tst_grid1   s    
c      $   C   s…  t  |  | ƒ } t j | |  ƒ } | j ƒ  } | j ƒ  } | j ƒ  } | j ƒ  } d } d d d d d d d d	 d
 g	 }	 x? t |	 | j ƒ  ƒ D]( \ }
 } t	 |
 | ƒ | k  sŽ t
 ‚ qŽ Wd d d d d d d d d g	 } x? t | | j ƒ  ƒ D]( \ }
 } t	 |
 | ƒ | k  sñ t
 ‚ qñ Wd0 d d d1 d2 d d d3 d d4 d d d5 d d d d d6 d d7 d8 d d d9 d d: d d d d d; d d< d d= g# } x? t | | j ƒ  ƒ D]( \ }
 } t	 |
 | ƒ | k  s¢t
 ‚ q¢Wd> } d? } d@ } dA } dB } dC } dD } t	 | j d) d) d) ƒ | ƒ | k  s#t
 ‚ t	 | j d* d* d) ƒ | ƒ | k  sNt
 ‚ t	 | j d* d* d* ƒ | ƒ | k  syt
 ‚ t	 | j d+ d) d) ƒ | ƒ | k  s¤t
 ‚ t	 | j d+ d+ d* ƒ | ƒ | k  sÏt
 ‚ t	 | j d, d+ d) ƒ | ƒ | k  sút
 ‚ t	 | j d, d, d) ƒ | ƒ | k  s%t
 ‚ d- d. l m } | j ƒ  } | j ƒ  } | j | | ƒ } t	 | j ƒ  d* ƒ d/ k  s�t
 ‚ t S(E   Ng:Œ0âŽyE>gÊ=ÎfŠ�ø>g¨‘®?h�>gcSÁ5„_ç>gˆï\:è>gš/a7›ˆ>g~{y…¦P’>g³«`ØÖeÞ>g°ÇŒ;Bù>gÑ:&Ç ?gÊ=ÎfŠ�è>g§‘®?h}>g?Ö�Oìð>gv*X&ðÌç>g~á7`²R>gL*¡'žŽ>gcg!ÄKë>gÞÛ@Ô¾gZüß­;?y                g?Ö�Oìð¾gcSÁ5„_×>g‡ï\:Ø>g~á7`²R¾g™/a7›x>g~{y…¦P‚>gžcÈÙâ¾g¬R¶4æì>g³«`ØÖeÎ>g±ÇŒ;Bé>gÐ:&Ç ö>gš.îó)Ís?gnÆz}ÿµ1?gUiž
)¿y        Uiž
)?g6Ã86Yk¿gºóDêÝ�ê¾y        ºóDêÝ�ê>gu Šhn¿gž¾Ðf�j?i    i   i   i   iÿÿÿÿ(   t   zernike_align_fftgü©ñÒMbP?yÊ=ÎfŠ�è>        y§‘®?h}>        y?Ö�Oìð¾        ycSÁ5„_×>        y‡ï\:Ø>        y~á7`²R¾        y™/a7›x>        y~{y…¦P‚>        ycg!ÄKë>        yžcÈÙâ¾        y¬R¶4æì>        y³«`ØÖeÎ>        y±ÇŒ;Bé>        yÐ:&Ç ö>        yš.îó)Ís?        ynÆz}ÿµ1?        yUiž
)¿Uiž
)?y6Ã86Yk¿        yºóDêÝ�ê¾ºóDêÝ�ê>yu Šhn¿        yž¾Ðf�j?        (   R*   R   t   zernike_momentst   momentst   fnlt   fnnt   fnnlR   t   coefsR   R   t   get_coeft   scitbx.mathR+   t   alignt   get_ccR   (   R   R   R(   t   mom_objR-   t   Fnlt   Fnnt   Fnnlt   epst   check_nlt   i_pret   i_calt   check_nnt	   check_nnlt	   mom_0_0_0t	   mom_1_1_0t	   mom_1_1_1t	   mom_2_0_0t	   mom_2_2_1t	   mom_4_2_0t	   mom_4_4_0t   zafftt   fixedt   movingt   al_obj(    (    sI   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/math/tst_zernike_mom.pyt   tst_moments=   sH    !" !" o" +++++++"t   __main__i   i   t   OKN(   t
   __future__R    t   scitbx.array_familyR   t   scitbxR   R   R$   R*   RK   t   __name__R   R   (    (    (    sI   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/math/tst_zernike_mom.pyt   <module>   s   		!		8