ó
>™xTc        y   @   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 d  d	 l m Z d  d
 l Z d  d
 l Z d  d
 l Z d  d
 l Z d  d
 l 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! e 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/ d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d: d; d< d= d> d? d@ dA dB dC dD dE dF dG dH dI dJ dK dL dM dN dO dP dQ dR dS dT dU dV dW dX dY dZ d[ d\ d] d^ d_ d` da db dc dd de df dg dh di dj dk dl dm dn do dp dq dr ds dt du dv dw dx dy dz d{ d| d} d~ d d€ d� d‚ dƒ d„ d… d† d‡ dˆ d‰ dŠ d‹ dŒ d� dŽ gx ƒ 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 dœ „  Z1 d� „  Z2 dž „  Z3 dŸ „  Z4 d  „  Z3 d¡ d¡ d¡ d¢ „ Z5 d£ „  Z6 e7 d¤ k r›e6 d¥ e j8 d¦ ƒ n  d
 S(§   iÿÿÿÿ(   t   division(   t   maptbx(   t   uctbx(   t   sgtbx(   t   flex(   t   crystal(   t   matrix(   t   Exception_expectedt   approx_equalt   not_approx_equal(   t   n_dim_index_from_one_dimNc           C   s   t  j t  j f S(   N(   R   t   floatt   double(    (    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/maptbx/boost_python/tst_maptbx.pyt
   flex_types   s    c          C   sž  x—t  ƒ  D]Œ}  |  d. ƒ } | j t j d d ƒ ƒ t j d | d | j ƒ  ƒ } t | ƒ t | ƒ k sq t ‚ t j d | d t j d d ƒ j	 d d ƒ ƒ } t
 t | ƒ d/ ƒ s¼ t ‚ t j | d | j ƒ  ƒ} t
 t | ƒ t | ƒ ƒ sø t ‚ t j | t j d d ƒ j	 d d ƒ ƒ } t
 t | ƒ d0 ƒ s=t ‚ t j | | j ƒ  ƒ } t
 t | ƒ t | ƒ ƒ svt ‚ |  d1 ƒ } | j t j d2 d3 ƒ ƒ t j | | j ƒ  ƒ } t
 t | ƒ t | ƒ ƒ sÔt ‚ t j | t j d4 d5 ƒ j	 d d ƒ ƒ } t
 t | ƒ d6 ƒ st ‚ t j | | j ƒ  ƒ } t
 t | ƒ t | ƒ ƒ sRt ‚ t j | t j d7 d8 ƒ j	 d d ƒ ƒ } t
 t | ƒ d9 ƒ s—t ‚ t j | | j ƒ  ƒ } t
 t | ƒ t | ƒ ƒ sÐt ‚ |  ƒ  } x_ t d ƒ D]Q } xH t d ƒ D]: } x1 t d ƒ D]# } | j | d
 | d | ƒ qWqùWqæW| j t j d d d ƒ j	 d: ƒ ƒ xË t d d ƒ D]º } x± t d d ƒ D]  } x— t d d ƒ D]† } t j d | d | | | f d | | | f ƒ } | j ƒ  d k sêt ‚ | | | | f | | d | d | d f k sœt ‚ qœWq†WqpWt j d | d d; d d< ƒ } t | ƒ d d d d d d d d d d d d d d d d d d g k sšt ‚ | j ƒ  } t j d= d> ƒ j	 d? ƒ } | j | ƒ xé t d d ƒ D]Ø } xÏ t d d ƒ D]¾ } xµ t d d ƒ D]¤ } t j d | d | | | f d | | | f ƒ } | j ƒ  d k sXt ‚ | d d d | d d d | d d d f }	 | | | | f | |	 k s
t ‚ q
WqôWqÞWt j d | d d@ d dA ƒ } t | ƒ d d d d d d d d d d d d d d  d d g k s t ‚ xWt d ƒ D]I}
 x@t d ƒ D]2} x)t d ƒ D]} xt d ƒ D]} t j |
 | | | f ƒ j	 |
 | | f ƒ } |  t d d | j ƒ  ƒ ƒ } | j | ƒ | j ƒ  } t j d | ƒ | j ƒ  |
 | | f k st ‚ | j ƒ  st ‚ |
 | | d k rfx= t j |
 | | f ƒ D]  } | | | | k sCt ‚ qCWqfqfWqSWq@Wq-WdB \ }
 } } } t j |
 | | | f ƒ j	 |
 | | f ƒ } |  t d d | j ƒ  ƒ ƒ } | j | ƒ | j ƒ  } t j d | ƒ | j ƒ  |
 | | f k s#t ‚ | j ƒ  s6t ‚ t | ƒ 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 ‚ q
 Wd  S(C   Ni   i   i   i   t   mapt   result_gridi    i   i   id   i
   iûÿÿÿt   map_unit_cellt   firstt   lastiÿÿÿÿiþÿÿÿip   iq   in   iz   i{   ix   i   i   i   i   i   i   i   io   iy   i   i   i	   i   i   i   i   i   i   i   i   i   i   (   i   i   i   i   (   i   i   i    i   i   i    (   i   i   i   i   i    i    (   i   i   i   i   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   i   i    i   i   i   i    (   i   i   (   i   i   (	   i   i   i   i   i   i   i    i    i    (   i   i   i   (   iÿÿÿÿ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   resizeR   t   gridR   t   copyt   accessort   tuplet   AssertionErrort	   set_focusR   t   xranget   appendt   sizet   listt	   deep_copyt   copy_boxt   ranget   size_1dt   unpad_in_placet   allt	   is_paddedt   nested_loop(   t	   flex_typet   mt   ct   nt   it   jt   kt   m2R   t   indt   n0t   n1t   n2t   d2t   gt   map1t   map2(    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/maptbx/boost_python/tst_maptbx.pyt   exercise_copy   s¤    0!*!!*!*!	)%0D$*03/$$.!1.!	c    
      C   sD  d d  l  }  xßt ƒ  D]Ô} | t j d ƒ ƒ } t j | ƒ } | j ƒ  d k sX t ‚ | j ƒ  d k sp t ‚ | j	 ƒ  d k sˆ t ‚ | j
 ƒ  d k s  t ‚ | j ƒ  d k s¸ t ‚ | g  t d ƒ D] } t j ƒ  ^ qÈ ƒ } | j t j d ƒ ƒ t j | ƒ } t t j | ƒ | j ƒ  ƒ s,t ‚ t t j | ƒ | j ƒ  ƒ sPt ‚ t t j	 | ƒ | j	 ƒ  ƒ stt ‚ t t j
 | ƒ | j
 ƒ  ƒ s˜t ‚ t t j
 | ƒ t j	 | ƒ d | j ƒ  d ƒ sÑt ‚ | t j d ƒ j d ƒ ƒ } xE t d ƒ D]7 } x. t d ƒ D]  } | | | f | | | f <qWqüWd | d <d | d <| j t j d d ƒ j d ƒ ƒ t j | ƒ } t t j | ƒ | j ƒ  ƒ s t ‚ t t j | ƒ | j ƒ  ƒ sÄt ‚ t t j	 | ƒ | j	 ƒ  ƒ sèt ‚ t t j
 | ƒ | j
 ƒ  ƒ st ‚ t t j
 | ƒ t j	 | ƒ d | j ƒ  d ƒ sEt ‚ t | j ƒ  | j ƒ  ƒ sft ‚ t | j ƒ  | j ƒ  ƒ s‡t ‚ t | j	 ƒ  | j	 ƒ  ƒ s¨t ‚ t | j
 ƒ  | j
 ƒ  ƒ sÉt ‚ t | j ƒ  | j ƒ  ƒ s t ‚ q Wt j t j d d ƒ ƒ } t j | ƒ } | j ƒ  d k s0t ‚ | j ƒ  d k sHt ‚ | j	 ƒ  d k s`t ‚ | j
 ƒ  d k sxt ‚ | j ƒ  d k s�t ‚ | j ƒ  d k s¨t ‚ | j ƒ  d k sÀt ‚ t j d ƒ } |  j j | ƒ } | j t j d d ƒ ƒ t j | ƒ } t | j ƒ  | j ƒ s't ‚ t | j ƒ  | j ƒ sEt ‚ t | j	 ƒ  | j	 ƒ sct ‚ t | j ƒ  | j ƒ s�t ‚ t | j ƒ  | j ƒ sŸt ‚ t | j ƒ  | j ƒ s½t ‚ t j t j d ƒ j d ƒ ƒ } xE t d ƒ D]7 } x. t d ƒ D]  } | | | f | | | f <qþWqëWd | d <d | d <| j t j d d ƒ j d ƒ ƒ t j | ƒ } t | j ƒ  | j ƒ s‰t ‚ t | j ƒ  | j ƒ s§t ‚ t | j	 ƒ  | j	 ƒ sÅt ‚ t | j ƒ  | j ƒ sãt ‚ t | j ƒ  | j ƒ st ‚ t | j ƒ  | j ƒ st ‚ t j t j d ƒ j d  ƒ ƒ }	 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   (   iþÿÿÿi   (   i   i	   (   i   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   iþÿÿÿ(   i	   i   (   i   i   (   i   i   i   (   i   i   i   (   t   scitbx.mathR   R   R   R   t
   statisticst   minR   t   maxt   meant   mean_sqt   sigmaR   t   randomR   R   R   R	   R   t   more_statisticst   skewnesst   kurtosist   random_doublet   matht   basic_statisticst   biased_standard_deviationt   skew(
   t   scitbxR&   t   at   sR*   t   bR+   t   tt	   referenceR'   (    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/maptbx/boost_python/tst_maptbx.pyt   exercise_statisticsl   sŠ    +$$$$9"

"$$$$9!!!!%!"

"c          C   sC  t  j d ƒ }  |  j ƒ  s" t ‚ |  j ƒ  j ƒ  d k s@ t ‚ t j d ƒ } xít d ƒ D]ß} t j	 d | d d k d d d	 | d
 d d k d | d d d k d t
 ƒ } |  j | j ƒ  | ƒ |  j ƒ  sÚ t ‚ |  j ƒ  j ƒ  | j ƒ  k sþ t ‚ |  j ƒ  | k st ‚ | j ƒ  r_g  |  j ƒ  D] } | j | j f ^ q/d g k s_t ‚ n  |  j ƒ  d k swt ‚ |  j ƒ  d | k s“t ‚ |  j ƒ  |  j ƒ  |  j ƒ  j ƒ  k sÁt ‚ x„ t ƒ  D]y } | |  j ƒ  j ƒ  ƒ } |  j ƒ  d k s|  j | d ƒ j ƒ  d k st ‚ |  j | d ƒ s7t ‚ |  j | ƒ qËW| d k r{|  j ƒ  |  j ƒ  j ƒ  k s;t ‚ q\ |  j ƒ  |  j ƒ  j ƒ  k  sŸt ‚ x™ t ƒ  D]Ž } | g  t |  j ƒ  j ƒ  ƒ D] } t j ƒ  ^ qËƒ } | j |  j ƒ  j ƒ  ƒ |  j | ƒ st ‚ |  j | ƒ |  j | ƒ s©t ‚ q©Wq\ Wd  S(   Ni   i
   i   s   P 21t   use_space_group_symmetryi   i    t   use_space_group_ltrt   use_seminvariantsi   t   use_normalizer_k2lt   use_normalizer_l2ni   iÀ  ià  iä  iò   i   i   g»½×Ùß|Û=g®Gáz®ï?g+‡ÙÎ÷ï?(   i   i
   i   (   i   i
   i   (   i    i   i    (   (   i    i   i    i
   (   iÀ  ià  iä  iò   i   i   i   i   (    R   t	   grid_tagst   is_validR   t	   tag_arrayR#   R   t   space_group_infoR   t   search_symmetry_flagst   Falset   buildt   typet   space_group_typet   groupt   symmetry_flagsRP   t   grid_ss_continuoust   vR'   t   n_grid_missest   n_independentt   n_dependentR   R   R   t   dependent_correlationt   coefficientt   verifyt   sum_sym_equiv_pointsR>   R   (   RK   RI   t   i_flagst   ft   vmR&   t   dt   x(    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/maptbx/boost_python/tst_maptbx.pyt   exercise_grid_tags³   sH    		$(.$'$7c       
   C   s¿  t  j t  j d	 ƒ ƒ }  x t ƒ  D]•} | t  j d
 ƒ ƒ } t j | |  d d d t ƒ} | j ƒ  | j ƒ  k sy t	 ‚ | j
 d ƒ d k s” t	 ‚ t | j ƒ  ƒ d g k sµ t	 ‚ t | j ƒ  ƒ d g k sÖ t	 ‚ t | j ƒ  ƒ d g k s÷ t	 ‚ t j | |  d d d d d t ƒ} | j ƒ  | j ƒ  k s9t	 ‚ | j
 d ƒ d k sTt	 ‚ t | j ƒ  ƒ d g k sut	 ‚ t | j ƒ  ƒ d g k s–t	 ‚ t | j ƒ  ƒ d g k s" t	 ‚ q" Wd  S(   Ni   i   i   t   peak_search_leveli    t   interpolatet   peak_cutoffiÿÿÿÿ(   i   i   i   (   i   i   i   (   i    i    i    (   i    i    i    (   i    i    i    (   i    i    i    (   R   t   longR   R   R   t	   peak_listRX   t   griddingt   focusR   t   grid_indicesR   t   grid_heightst   sitest   heights(   RK   R&   Rj   t   l(    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/maptbx/boost_python/tst_maptbx.pyt   exercise_peak_searchÚ   s     !!!!!c       	   C   s]   xV t  ƒ  D]K }  |  t j d d d ƒ j d d d ƒ ƒ } t j | d d d d	 ƒ} q
 Wd  S(
   Ni   i   i   i   R   i    R   (   i    i    i    (   i   i   i   (   R   R   R   R   R   t   as_CObjectZYX(   R&   R'   t   o(    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/maptbx/boost_python/tst_maptbx.pyt   exercise_pymol_interfaceì   s    *c          C   sª  t  j d ƒ }  t j d ƒ } t j d d f ƒ } t j d d f ƒ } x[t t f D]M} xDt t f D]6} t	 j
 j d | j ƒ  d | d | d | d d  d t j d d d ƒ d | ƒ } | j ƒ  j ƒ  d! k sÚ t ‚ t	 j
 j d | j ƒ  d | d | d | d d" d t j d d d ƒ d | d t ƒ } | j ƒ  j ƒ  d# k sLt ‚ t	 j
 j d |  d | j ƒ  d | d d d | j ƒ  d | ƒ } | j ƒ  j ƒ  d k s©t ‚ | j ƒ  j ƒ  | j ƒ  j ƒ  k sÓt ‚ t	 j
 j d | d | d | j ƒ  d | ƒ } | j ƒ  j ƒ  d k st ‚ | j ƒ  j ƒ  | j ƒ  k sBt ‚ t	 j
 j d | d | d | j ƒ  d | d t ƒ } | j ƒ  j ƒ  d k s“t ‚ | j ƒ  j ƒ  | j ƒ  k s·t ‚ | j ƒ  d k sÏt ‚ | j ƒ  j ƒ  d k sít ‚ t	 j
 j d | j ƒ  d | d | d | j ƒ  d | ƒ } | j ƒ  j ƒ  d k sDt ‚ | j ƒ  j ƒ  | j ƒ  k sht ‚ | j ƒ  d k s€t ‚ | j ƒ  j ƒ  d k sh t ‚ qh WqU Wd  S($   Ni   i   i   s   P 31i   i   i   i   y               @y              @t   space_groupt   anomalous_flagt   miller_indicest   structure_factorst   n_reali	   t   map_gridt   conjugate_flagt   treat_restrictedt	   unit_cellR[   t   d_ming      @t   complex_mapi    t    allow_miller_indices_outside_map(   i   i   i   (   i   i   i   (   i   i   i   y      ð?       @y       @      @(   i   i   i	   (   i   i   i	   (   i   i   i	   (   i   i   i	   (   R   R…   R   RV   R   t   miller_indext   complex_doubleRX   t   TrueR   R€   t   to_mapR\   R   R‡   Rs   R   t   from_mapRZ   R   R   t   datat   n_indices_affected_by_aliasingt   outside_map(   t   uct   sgt   miRj   R~   Rƒ   RK   Rh   (    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/maptbx/boost_python/tst_maptbx.pyt   exercise_structure_factorsñ   sz    			*	$	$	$c       	   C   s  t  j d ƒ j ƒ  }  t j d" d# f ƒ } t j d$ d% f ƒ } t j d |  d	 d& d | d | ƒ } | j ƒ  su t	 ‚ | j
 ƒ  sˆ t	 ‚ | j ƒ  d' k s  t	 ‚ t | d  d d d d d g ƒ sÈ t	 ‚ t | d d !d d d d d g ƒ só t	 ‚ t | d d d d d  d! g ƒ st	 ‚ d  S((   Ns   P 31i   i   i   i   y               @y              @R}   R�   i
   i   i   R   RŽ   i   i   gÿÉ„1Õ*@gu*Ïr×@g‡é1€¦4 Àgug7D&^*Àiè  ií  gh È‘…1Àg´r/0+ô÷¿g³^åD%4@gP*+—×#Àgš|³Í�ÙÀiûÿÿÿg¯žî—ªw!@g*ÍB–`é¿gÃtkã™‰Àg½â©G<ÿ¿gè®ÛVia@(   i   i   i   (   i   i   i   y      ð?       @y       @      @(   i
   i   i   (   i
   i   i   (   R   RV   R\   R   R‰   RŠ   R   t   fft_to_real_map_unpaddedt
   is_0_basedR   R$   Rs   R   (   R’   R“   Rj   R   (    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/maptbx/boost_python/tst_maptbx.pyt   exercise_fft0  s"    		%(c          C   s¸   t  j d ƒ }  t j j |  d d d d t ƒ d k s< t ‚ t j d t d d d t	 d t d t	 ƒ } t j
 d ƒ j ƒ  j ƒ  } t j j |  d d | | d d t ƒ d k s´ t ‚ d  S(   Ni   i   i   i   i   g      @i   i   i	   i   RN   RO   i    RP   RQ   RR   s   F 2 2 2(   i   i   i   gUUUUUUÕ?(   i   i   i   (   i   i	   i   gUUUUUUÕ?(   i   i   i   (   i   i   i   (   R   R…   R   t   extt   determine_griddingR‹   R   R   RW   RX   RV   t   primitive_settingRZ   (   t   uRh   RK   (    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/maptbx/boost_python/tst_maptbx.pyt   exercise_griddingC  s    		$c    	      C   s<  x‹ t  ƒ  D]€ }  |  d d d d d d g ƒ } t j | d d ƒ t t | ƒ d2 ƒ s\ t ‚ t j | d d ƒ t t | ƒ d3 ƒ s
 t ‚ q
 Wd	 d
 l m } | j d t	 j
 d t	 j d d4 d d ƒ ƒ d t j | j d d d d5 d d ƒ g ƒ ƒ } | j d d ƒ j ƒ  } | j d d6 ƒ } | j ƒ  | j ƒ  } t j d | d | j ƒ  d d7 d d  ƒ } t | j d! d" d# ƒs€t ‚ t | j d$ d" d# ƒsžt ‚ | j d% k  s³t ‚ t j d | d | j ƒ  d d8 d d  ƒ } t | j d' d" d# ƒsût ‚ t | j d( d" d# ƒst ‚ t | j d) d" d# ƒs7t ‚ | j d d* ƒ j ƒ  } | j ƒ  j ƒ  d+ k smt ‚ | j d d9 ƒ } | j ƒ  | j ƒ  } t j d | d | j ƒ  d d: d d, ƒ } t | j ƒ  d; ƒ sÚt ‚ t | j ƒ  d< d" d/ ƒsût ‚ t t | j ƒ  j  ƒ  ƒ d= d" d/ ƒs(t ‚ | j d t	 j
 d t	 j d d> d d ƒ ƒ d t j | j d d d d? d d@ ƒ g ƒ ƒ } | j d d* ƒ j ƒ  } | j ƒ  j ƒ  d+ k s¸t ‚ | j d dA ƒ } | j ƒ  | j! d0 ƒ | j ƒ  } t j d | d | j ƒ  d dB d d, ƒ } t | j ƒ  dC d" d1 ƒs8t ‚ d  S(D   Ni   i   iýÿÿÿi   iûÿÿÿi   i    i	   iÿÿÿÿ(   t   xrayt   special_position_settingst   crystal_symmetryR…   g      $@iZ   t   space_group_symbolt   P1t
   scattererst   labelt   Ot   siteg      à?R›   gš™™™™™É?R†   t   resolution_factorg      @t   real_mapt	   site_cartg      @t   radiusg      ð?gš™™™™™ @t   epsgš™™™™™¹?g      !@g333333Ã?g      @g      è¿gš™™™™™õ?g      
@g®Gáz @iò   g       @g×£p=
<@g        gü©ñÒMbP?s
   aniso.ccp4g{®Gáz„?(   i   i   i    i   i    i   (   i	   i   i	   i   i	   i   (   g      $@g      $@g      $@iZ   iZ   iZ   (   g      à?g      à?g      à?g      Ð?(   g      @g      @g      @(   g      @g      @g      @g      Ð?(   g      @g      @g      @(   g      @g      @g      @(   g×£p=
<@g×£p=
<@g×£p=
<@g        g        g        (   g×£p=
<@g×£p=
<@g×£p=
<@(   g      $@g      $@g      $@iZ   iZ   iZ   (   g      à?g      à?g      à?(   gš™™™™™É?gš™™™™™É?gš™™™™™É?gš™™™™™¹?g        g        g      Ð?(   g      @g      @g      @(   g      @g      @g      @("   R   R   t   set_if_less_thanR   R   R   t   cctbxR�   t	   structureR   Rž   t   symmetryR   t   xray_scatterert	   scattererR€   t   f_calct   fft_mapt   apply_sigma_scalingt   real_map_unpaddedt   spherical_variance_around_pointR…   R9   R;   t   standard_deviationt   indicesR   t   principal_axes_of_inertiat   center_of_masst   inertia_tensorR   t   eigensystemt   valuest   as_ccp4_map(	   R&   R'   R�   R­   t   fct   fc_mapR§   t   statst   pai(    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/maptbx/boost_python/tst_maptbx.pyt   exercise_miscQ  s”    				
				
						
		c       
   C   sâ  t  j t  j d d d ƒ d ƒ }  x¸ d d d g D]§ } xž t  j |  j ƒ  ƒ D]‡ } g  t | |  j ƒ  ƒ D]  \ } } t | ƒ | | ^ qi } t t j	 |  | ƒ d ƒ s° t
 ‚ t j |  j ƒ  | ƒ | k sM t
 ‚ qM Wq1 Wx_ t d ƒ D]Q } g  t d ƒ D] } d t j ƒ  d ^ qü } t |  j	 | ƒ d ƒ sé t
 ‚ qé Wt  j t d	 ƒ ƒ }  |  j t  j d d d ƒ ƒ xê d d d g D]Ù } d } xÊ t  j |  j ƒ  ƒ D]³ } g  t | |  j ƒ  ƒ D]  \ } } t | ƒ | | ^ q½} t |  j	 | ƒ | ƒ st
 ‚ t |  t j |  j ƒ  | ƒ | ƒ s,t
 ‚ t |  j | ƒ | ƒ sJt
 ‚ | d 7} q¡WqWt  j ƒ  }  x% t d
 ƒ D] } |  j | d ƒ quW|  j t  j d d d ƒ ƒ x/d d d g D]} xd d d d g D]} | } xò t  j |  j ƒ  ƒ D]Û } g  t | |  j ƒ  ƒ D] \ } } | | | | ^ q} t |  j	 | ƒ | ƒ sUt
 ‚ | d k rÈt j |  j ƒ  | ƒ t g  t | |  j ƒ  ƒ D]$ \ } } t | | d ƒ | ^ q�ƒ k sÈt
 ‚ n  d | } q÷WqÕWq¼Wd  S(   Ni   i   i   i
   i    i   iÿÿÿÿid   i   i0   i   i   g        g      à?g      Ð?g      è?(   R   R   R   R%   Rs   t   zipR   R   R   t   eight_point_interpolationR   t   closest_grid_pointR   R   R>   R    R   t   value_at_closest_grid_pointR   R   t   int(   R   t   shiftt   indexR*   R)   t   x_fracR_   t   offs(    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/maptbx/boost_python/tst_maptbx.pyt"   exercise_eight_point_interpolation¦  sD    !<!,-"<( :Oc            sÞ  t  j d! ƒ ‰ ‡  ‡ f d †  } x d" d# d$ g D] ‰  | ƒ  q1 WxI t d ƒ D]; } g  d d d g D] } t j d d ƒ ^ qe ‰  | ƒ  qO W|  r� d } n d } t j t j d | d ƒ d d ƒ } t j t j	 d d d ƒ j
 d d d ƒ d ƒ } t j d ˆ d | d | d t j | j ƒ  t ƒ ƒ } t | | ƒ sEt ‚ t j ƒ  } t j d ˆ d | d | d d d t j | j ƒ  t ƒ ƒ t j ƒ  | }	 d |	 | f }
 |	 d k rÌ|
 d  | |	 7}
 n  |  rÚ|
 GHn  d  S(%   Ni   i   i   c             s�  t  j t  j d d d ƒ j d d d ƒ ƒ }  g  t ˆ  |  j ƒ  ƒ D] \ } } | | ^ qC } t  j ˆ j | ƒ g ƒ } t j	 d ˆ d |  d | d t  j
 | j ƒ  t ƒ ƒ } t | d	 ƒ sÅ t ‚ t j d ˆ d |  d | ƒ } t | d	 g ƒ sû t ‚ t j d ˆ d |  d | d
 d d t  j
 | j ƒ  t ƒ ƒ } t | d g ƒ sOt ‚ g  t ˆ  |  j ƒ  ƒ D] \ } } | | ^ qe} d |  | <t j	 d ˆ d |  d | d t  j
 | j ƒ  t ƒ ƒ } t | d ƒ sÖt ‚ t j d ˆ d |  d | ƒ } t | d g ƒ st ‚ t j d ˆ d |  d | d
 d d t  j
 | j ƒ  t ƒ ƒ } t | d g ƒ s`t ‚ | \ } }	 }
 |  j ƒ  \ } } } d |  | d | |	 |
 f <d |  | |	 d | |
 f <d |  | |	 |
 d | f <t j	 d ˆ d |  d | d t  j
 | j ƒ  t ƒ ƒ } t | d ƒ s t ‚ xh d d g D]Z } t j d ˆ d |  d | d
 | d t  j
 | j ƒ  t ƒ ƒ } t | d g ƒ s-t ‚ q-Wd  S(   Ni   i   i$   i"   R…   t   density_mapt
   sites_cartt	   selectioni    t   deltagš™™™™™¹?i   g333333Ó?g      à?gffffffæ?gš™™™™™É?(   i    i    i    (   i    i    i    (   g333333Ó?g      à?gffffffæ?(   R   R   R   R   RÃ   Rs   t   vec3_doublet   orthogonalizeR   t   real_space_target_simplet   boolR   R‹   R   R   t!   real_space_target_simple_per_sitet   real_space_gradients_simple(   R   R*   R)   t	   site_fracRÎ   t   targett   termst   gradst   grid_point_modR+   R,   R›   R_   t   wRÐ   (   t
   grid_pointR‘   (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/maptbx/boost_python/tst_maptbx.pyt   checkË  sR    -2			2
					i    i   i   i   iýÿÿÿi   i   i
   i   i   iœÿÿÿid   i@B R   i(   i   i   i$   i"   R…   RÍ   RÎ   RÏ   RÐ   gš™™™™™¹?s.   real_space_gradients_simple: %.2f s / %d sitesg{®Gáz„?s   , %.0f sites / s(   i   i   i   (   i    i    i    (   i   i   i   (   iýÿÿÿi   i   (   R   R…   R   R>   t	   randrangeR   RÑ   RB   R   R   R   R   RÓ   RÔ   R   R‹   R   R   t   timeRÖ   (   t   timingRÞ   t   i_trialR*   R)   RÎ   R   RØ   t   t0t   tmt   msg(    (   RÝ   R‘   sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/maptbx/boost_python/tst_maptbx.pyt$   exercise_real_space_gradients_simpleÉ  s4    *. 	'0		  g!YÀnÝ±¿gd#¯ë¼¿g—ÊÛNÆ¿g»DõÖÀÊ¿gh?RD†UÐ¿gF±ÜÒjHÒ¿gJï_{fÓ¿gŸÍªÏÕVÌ¿g¨©ek}Á¿gž{—¿¿gè‡Â£�Ë¿g˜`�ºÒ¿g�•C‹lçß¿gHùIµOÇ×¿gŽÙëÝÇ¿g_zo¸¿g…™¶e¥É¿g²KTolÕ¿gùÚ3KÔÖ¿g*Œ-9(Õ¿g¾jeÂ/õÏ¿gúíëÀ9#Ê¿gZžwgíÐ¿gM-[ë‹„Ô¿g1%’èeÈ¿g9(a¦í_Ó¿gG¬Å§ Ø¿gD£;ˆ�)Ø¿guå³<îÔ¿gcœ¿	…Ì¿gTÿ ’!Ç®?g–^›�•˜—¿gs€`Ž¿Ç¿g�œ…=íðÓ¿gZd;ßOÙ¿göÑ©+ŸåÛ¿gZ�!«[=Ç¿gòÍ67¦'Ä¿gž{—Ì¿g¥t{IcÔ¿gÈêVÏIïÙ¿gfË-­†Ú¿g‚�,`·Þ¿g#Ûù~j¼Ö¿gµ7øÂdªÐ¿g¡ó»DõÐ¿g‰{,}èÖ¿gšBç5v‰Ú¿gÿ+j0×¿g³^åD»Ò¿gé+H3MÏ¿gÆ3hèŸàÒ¿g7TŒó7¡Ú¿g$EdXÅß¿g<úDž¼¿gõ-sº,&Æ¿gÜº›§:äÒ¿gŒøNÌz1Ü¿gjÁ‹¾‚4à¿g¼"øßJvÜ¿gºN#-•·³?g£Ë›ÃµÚ£?g/5B?S¯«¿gX�f,šÎÆ¿g¥÷�¯=³Ô¿gäƒžÍªÏÛ¿g&jjÙZ�¿g�“p!Ÿ¿gV¼‘yäÂ¿g¹ÇÒ‡.¨Ñ¿g¶¹1=a‰Ù¿geä,ìi‡Ý¿gÒ:ªš êÎ¿g»aÛ¢ÌÊ¿g…ÎkìÕÏ¿g�î v¦Ô¿gAÔ} R›Ø¿g½©H…±…Ø¿gð3.ÉÊ¿g$(~Œ¹Ç¿göb('ÚUÌ¿gð¢¯ ÍXÔ¿gûyS‘
cÙ¿g`«‹Ã™Ù¿g_ÎQÚ[¿g�–®`ñ°¿g”0Óö¯¬Ì¿g9(a¦í_Û¿g$0ðÜ{à¿gåD»
)?Ý¿g=`2åC�?gZ ¦–­¥?góæp­ö°¯?g�hW!å'•¿gu°þÏa¾È¿gzÅrK«Õ¿g£ÉÅXÇ¡?gF~ý,°?g$˜jf-¬?gÊÞå"¾“¿gœ§:äf¸Å¿gDÀ!T©ÙÕ¿gˆ+gïŒ¶š?g¤Œ¸ 4J—¿gáíAÈ·¿gnÀç‡Â¿gÇc*ãßÇ¿g—wJëÏ¿gÒ6þDeÃª?g]ß‡ƒ„(�¿g#øßJvl¼¿gðPèyÆ¿gÖVì/»'Ç¿g6°U‚ÅáÄ¿gV¶yËÕ·?gÉ¡fH…?g%ušÂ¿gúDž$Ó¿g}³Í�é	Õ¿gV-²�ïÏ¿c          C   s×  d? }  d@ } t  j |  ƒ } t j ƒ  } | j t j dA dB ƒ ƒ t j d ƒ } t j	 t j
 ƒ  | | | j ƒ  | j ƒ  | ƒ } t j ƒ  } | j dC ƒ | j dD ƒ t j | j ƒ  d ƒ } t t j d | d | d | ƒ d ƒ sê t ‚ t j ƒ  } | j dE ƒ | j dF ƒ | j dG ƒ | j dH ƒ | j dI ƒ dJ dK dL dM dN g } xD t t j d | d | ƒ | ƒ D]! \ }	 }
 t |	 |
 ƒ snt ‚ qnWt j t j d+ d
 d ƒ d, ƒ } t  j dO ƒ } t j ƒ  } t j	 t j ƒ  | | j ƒ  | j ƒ  | j ƒ  | ƒ } t j ƒ  } | j dP ƒ | j dQ ƒ | j dR ƒ | j dS ƒ t j | j ƒ  d ƒ } t t j d | d | d | ƒ d8 d9 d: ƒs�t ‚ t j d; d ƒ } xV t t j d | d | ƒ j ƒ  t | ƒ ƒ D]' \ }	 }
 t |	 |
 d9 d: ƒsÐt ‚ qÐWt j d< | d= d> ƒ } | j | | j ƒ  | j ƒ  j  ƒ  | j ƒ  d t! ƒ t t j d | d | d | ƒ d8 d9 d: ƒszt ‚ xV t t j d | d | ƒ j ƒ  t | ƒ ƒ D]' \ }	 }
 t |	 |
 d9 d: ƒs¨t ‚ q¨Wd  S(T   NgfffffN`@g¤p=
×G`@g®GázFx@iZ   ix   i�   ih  iÿÿÿÿiþÿÿÿi   i   i    g0Hú´ŠþÝ?gJÔ>ÍÉø¿g�GÅÿÑ
@gJ_9ïÿã?g“5ê!Ýø?gôn,(Jó?g      ð?t	   basic_mapRv   t   weightsguq©ð+©Ð?g      à?g      Ð?g      Ð¿g        gdµQ¤=³¼¿g	h ~ª«¿gLï5‘Ü9”?gP\RÚýî³¿gN¨”	œ¸¥?gH³#NœA¥¿g tþS°¿gÀšj§Š?g\We±1¨¿g»|Yu¾¾¿g|9àæX½¥?gx¼�À4Øž¿g 0òÿ‹?¬¿g€ö�Zçq¿g€ ^Óœú§¿i   i
   i   i   g    ýC´ÁgÍÌÌÌÌÌ@g)\�Âõ(ð?g¸…ëQ¸@gF¶óýÔx@i   i   i=   i   iöÿÿÿRª   g-Cëâ6?i   R…   R}   R¡   (   gfffffN`@g¤p=
×G`@g®GázFx@iZ   iZ   ix   (   i�   i�   ih  (   iÿÿÿÿiþÿÿÿiÿÿÿÿ(   i   i   i   (   g0Hú´ŠþÝ?gJÔ>ÍÉø¿g�GÅÿÑ
@(   gJ_9ïÿã?g“5ê!Ýø?gôn,(Jó?(   g      à?g      à?g      à?(   g      Ð?g      Ð¿g      Ð?(   g      Ð?g        g      à?(   g      à?g      Ð¿g        (   i    g      Ð?g      à?(   gdµQ¤=³¼¿g	h ~ª«¿gLï5‘Ü9”?(   gP\RÚýî³¿gN¨”	œ¸¥?gH³#NœA¥¿(   g tþS°¿gÀšj§Š?g\We±1¨¿(   g»|Yu¾¾¿g|9àæX½¥?gx¼�À4Øž¿(   g 0òÿ‹?¬¿g€ö�Zçq¿g€ ^Óœú§¿(   i   i   i   iZ   iZ   iZ   (   i   g    ýC´ÁgÍÌÌÌÌÌ@(   g)\�Âõ(ð?g¸…ëQ¸@gF¶óýÔx@(   i   i   i   (   i   i=   i   ("   R   R…   t   test_mapR   R   R   R   R   t   out_of_bounds_clampRç   t   basic_map_non_symmetric_flagt   orthogonalization_matrixt	   as_handleRÑ   R   R   R   R   t   real_space_refinement_residualR   RÃ   t   real_space_refinement_gradientst   out_of_bounds_raiset   basic_map_unit_cell_flagRs   t	   as_doubleR   R   R®   t   as_asuR}   t   direct_space_asut   as_float_asuR‹   (   t   unit_cell_parameterst   unit_cell_gridding_nR…   t   emapRê   Rç   RÎ   Rè   t   expected_gradst   gradt   correctRð   Rv   t   expected_gradientst   cs(    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/maptbx/boost_python/tst_maptbx.pyt   exercise_real_space_refinement!  s¦    			          	!				%		4%c          C   s  t  j t  j d d d ƒ d ƒ }  t j d d d d	 ƒ } | j d
 d ƒ } x— d d d g D]† } x} t  j |  j ƒ  ƒ D]f } g  t | |  j ƒ  ƒ D]  \ } } t	 | ƒ | | ^ q“ } t
 t j |  | | ƒ d ƒ sw t ‚ qw Wq[ Wt
 t j |  | d ƒ d ƒ s	t ‚ d  S(   Ni   i   i   i
   R…   i   iZ   R}   R¡   t   buffer_thicknessi    iÿÿÿÿi   i   (   i   i   i   iZ   iZ   iZ   (   i
   i   i   (   R   R   R   R   R®   t   asu_mappingsR%   Rs   RÃ   R   R   R   t   asu_eight_point_interpolationR   (   R   Rý   R   RÈ   RÉ   R*   R)   RÊ   (    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/maptbx/boost_python/tst_maptbx.pyt&   exercise_asu_eight_point_interpolationz  s    !		<)c          C   sÔ  t  j d ƒ }  d d f } d d f } d d f } d  } t j |  j ƒ  ƒ } t j |  j ƒ  | ƒ } t j ƒ  } t j ƒ  } t j |  j	 ƒ  ƒ }	 t j
 | ƒ }
 t j | ƒ } t j ƒ  } t j | |  j	 ƒ  ƒ } xª | D]¢ } t | | ƒ |  j | ƒ ƒ st ‚ |  j | ƒ } | d | d | d | d | d | d f } t | | ƒ | ƒ sct ‚ t | | ƒ | ƒ sÜ t ‚ qÜ Wx› | D]“ } t | | ƒ | ƒ sªt ‚ t |	 | ƒ |  j | ƒ ƒ sÎt ‚ | d | d | d | d | d | d f } t |
 | ƒ | ƒ s‰t ‚ q‰Wx­ | D]¥ } | d t | d ƒ | d t | d ƒ | d t | d ƒ f } t | | ƒ | ƒ s�t ‚ t | | ƒ | ƒ s¨t ‚ t | | ƒ |  j | ƒ ƒ s't ‚ q'Wd  S(!   Ni
   iZ   g      #@gffffff%@gš™™™™™	@g      à¿g333333û?gffffff*@g      ð?gffffffþ?gáz®GáÊ¿gÍÌÌÌÌÌ@gffffffæ?gÍÌÌÌÌ,YÀi   i   i3   iôÿÿÿi   ii   id   i    i   i   (   i
   i
   i
   iZ   iZ   iZ   (   g      #@gffffff%@gš™™™™™	@(   g      à¿g333333û?gffffff*@(   g      ð?gffffffþ?gáz®GáÊ¿(   gÍÌÌÌÌÌ@gffffffæ?gÍÌÌÌÌ,YÀ(   i   i   i3   (   iôÿÿÿi   ii   (   id   id   id   (   R   R…   R   t	   cart2fract   fractionalization_matrixt	   cart2gridt	   cart2cartt	   frac2fract	   frac2cartRì   t	   frac2gridt	   grid2fract	   grid2gridt	   grid2cartR   t   fractionalizeR   RÒ   R   (   R…   RÎ   t
   sites_fract
   sites_gridt   extentst   c2ft   c2gt   c2ct   f2ft   f2ct   f2gt   g2ft   g2gt   g2cR¨   t   frac_ptt   grid_ptR×   t	   site_grid(    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/maptbx/boost_python/tst_maptbx.pyt   exercise_transformersˆ  s<    $3$3Ec    
      C   sÈ  t  j d ƒ }  t j |  d ƒ } d d f } d d f } d d f } d d f } t j ƒ  } t j ƒ  } t j | j ƒ  | j	 ƒ  j
 ƒ  d t ƒ } x.t t | ƒ ƒ D]}	 t t j | |	 ƒ j | |	 ƒ sÕ t ‚ t | j | |	 ƒ j | |	 ƒ sþ t ‚ t t j | |	 ƒ j | |	 ƒ s't ‚ t | j | |	 ƒ j | |	 ƒ sPt ‚ t t j | |	 | j ƒ  | j	 ƒ  j
 ƒ  d t ƒ j | |	 ƒ s—t ‚ t | j | |	 ƒ j | |	 ƒ s¦ t ‚ q¦ Wd  S(   Ni
   iZ   t   P2g      ð?gffffffþ?gáz®GáÊ¿gÍÌÌÌÌÌ@gffffffæ?gÍÌÌÌÌ,YÀg        gÍÌÌÌÌÌì?gHáz®Gé?g333333ã?g333333Ó?i    gáz®GáÊ?g      à?(   i
   i
   i
   iZ   iZ   iZ   (   g      ð?gffffffþ?gáz®GáÊ¿(   gÍÌÌÌÌÌ@gffffffæ?gÍÌÌÌÌ,YÀ(   g      ð?gffffffþ?gáz®GáÊ¿(   gÍÌÌÌÌÌ@gffffffæ?gÍÌÌÌÌ,YÀ(   g        gÍÌÌÌÌÌì?gHáz®Gé?(   g333333ã?gffffffæ?g333333Ó?(   i    gÍÌÌÌÌÌì?gáz®GáÊ?(   g333333ã?gffffffæ?g333333Ó?(   R   R…   R   R®   R   t   non_symmetric_factoryt   unit_cell_factoryt   asu_factoryR}   Rô   Rõ   R‹   R   t   lenR   t   get_non_symmetric_mappert   mapped_coordinateR   R   t   get_unit_cell_mappert   get_asu_mapper(
   R…   Rý   R  t   ns_sites_fract   uc_sites_fract   as_sites_fract   nsft   ucft   asft   idx(    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/maptbx/boost_python/tst_maptbx.pyt   exercise_mappers¨  s"    *))))7c          C   sð  dE }  dF } t  j |  ƒ } t j ƒ  } | j t j dG dH ƒ ƒ t j ƒ  } t j	 d ƒ } t j
 t j ƒ  | | | j ƒ  | j ƒ  | ƒ } xƒ dI d g dJ d g dK d g dL d g dM d  g dN d$ g dO d( g dP d, g dQ d0 g f	 D]* \ } } t | j | ƒ | ƒ sã t ‚ qã Wx t d1 d2 ƒ D]n }	 xe t d d2 ƒ D]T }
 xK t d1 d3 ƒ D]: } t | j |	 |
 | f ƒ | |	 |
 | f ƒ sMt ‚ qMWq7Wq!Wy | j dR ƒ } Wn+ t k
 rÓ} t | ƒ d4 k sÚt ‚ n Xt ‚ | j | j ƒ  ƒ t | j dS ƒ d ƒ st ‚ t  j dT ƒ } t j t j d2 d
 d ƒ d6 ƒ } t j
 t j ƒ  | | j ƒ  | j ƒ  | j ƒ  | ƒ } | j dU ƒ d6 k sŒt ‚ d7 | dV <| j dW ƒ d7 k s±t ‚ d6 | dX <| j dY ƒ d6 k sÖt ‚ x¬ d1 d5 d g D]› } x’ t j | j ƒ  ƒ D]{ } g  t | | j ƒ  ƒ D]  \ } } t | ƒ | | ^ q} t | j | ƒ d6 ƒ sbt ‚ | j | ƒ | k st ‚ qWqæWx_ t d8 ƒ D]Q } g  t d
 ƒ D] } d
 t  j  ƒ  d5 ^ q¥} t | j | ƒ d6 ƒ s’t ‚ q’Wt j t d9 ƒ ƒ } | j t j d2 d
 d ƒ ƒ | j! | ƒ xá d1 d5 d g D]Ð } d1 } xÁ t j | j ƒ  ƒ D]ª } g  t | | j ƒ  ƒ D]  \ } } t | ƒ | | ^ qs} t | j | ƒ | ƒ s·t ‚ t | | j | ƒ | ƒ sÙt ‚ t | j" | ƒ | ƒ s÷t ‚ | d5 7} qWWq5Wt j ƒ  } x% t d: ƒ D] } | j# | d2 ƒ q"W| j t j d2 d3 d; ƒ ƒ | j! | ƒ | j$ | j ƒ  | j ƒ  ƒ x&d1 d5 d g D]} xd< d= d> d? g D]ø } | } xé t j | j ƒ  ƒ D]Ò } g  t | | j ƒ  ƒ D] \ } } | | | | ^ qé} t | j | ƒ | ƒ s+t ‚ | d= k r•| j | ƒ t% g  t | | j ƒ  ƒ D]$ \ } } t& | | d= ƒ | ^ q\ƒ k s•t ‚ n  d5 | } qÍWq«Wq’Wt j t j d2 d
 d ƒ d6 ƒ } t' j( d@ dZ dA dB ƒ } | j) | | j* ƒ  | j+ ƒ  j, ƒ  | j ƒ  d= t- ƒ | j$ | j ƒ  | j ƒ  j ƒ  ƒ x‘ d1 d5 d g D]€ } xw t j | j ƒ  ƒ D]` } g  t | | j ƒ  ƒ D]  \ } } t | ƒ | | ^ q‚} t | j | ƒ d6 ƒ sft ‚ qfWqJWt | j d[ ƒ d6 ƒ sìt ‚ d  S(\   NgfffffN`@g¤p=
×G`@g®GázFx@iZ   ix   i�   ih  iÿÿÿÿiþÿÿÿi   i   i…ÿÿÿg0Hú´ŠþÝ?gJÔ>ÍÉø¿g�GÅÿÑ
@gý‚Ý°mQÕ¿gJ_9ïÿã?g“5ê!Ýø?gôn,(Jó?gæ“ÃÕÈ¿g¯%äƒžÍÑ?gµÅ5>“ýî?g_{fI @g¬q6Ø¿g#¼=ùÐ?guŽÙë�÷¿g“�ÝJŠæ?gä.ÂåÒÂ¿g áC‰–¼ô?gÓ¢>É6a?gxEð¿•¬@g©÷TN{Ó¿gÖµÂôÒ?g¸ [–¯‹õ¿g¼ÊÚ¦x|@g¹ªì»"øÒ¿g}ÎÝ®—¦á?gŸä›ÈŒô¿g<f 2þ�	@gÂ26t³?×¿gWÐ´ÄÊhë?gÎˆÒÞàé¿gLý¼©H…ï¿gåòÒo_»¿g!£Ë›ÃÃ?g¢'eRCñ?gä/-ê“\í¿gDÁŒ)XÃ¿i    i   i   s;   cctbx Error: basic_map<T>: the coordinate is out of bounds.i   i
   iœÿÿÿid   i   i0   i   g        g      à?g      Ð?g      è?R…   R}   R¡   i   i   (   gfffffN`@g¤p=
×G`@g®GázFx@iZ   iZ   ix   (   i�   i�   ih  (   iÿÿÿÿiþÿÿÿiÿÿÿÿ(   i   i   i   (   g0Hú´ŠþÝ?gJÔ>ÍÉø¿g�GÅÿÑ
@(   gJ_9ïÿã?g“5ê!Ýø?gôn,(Jó?(   g¯%äƒžÍÑ?gµÅ5>“ýî?g_{fI @(   g#¼=ùÐ?guŽÙë�÷¿g“�ÝJŠæ?(   g áC‰–¼ô?gÓ¢>É6a?gxEð¿•¬@(   gÖµÂôÒ?g¸ [–¯‹õ¿g¼ÊÚ¦x|@(   g}ÎÝ®—¦á?gŸä›ÈŒô¿g<f 2þ�	@(   gWÐ´ÄÊhë?gÎˆÒÞàé¿gLý¼©H…ï¿(   g!£Ë›ÃÃ?g¢'eRCñ?gä/-ê“\í¿(   i   i   i   (   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   iZ   iZ   iZ   (   i
   i   i   (.   R   R…   Ré   R   R   R   R   R   Rð   Rê   Rç   Rë   Rì   Rí   R   t   get_cart_valueR   R    t   get_grid_valuet   RuntimeErrort   strR   t   set_out_of_bounds_handleR   Rñ   Rs   R%   RÃ   R   t   get_frac_valuet   nearest_grid_point_fractionalR   R>   t   as_unit_cellt&   value_at_nearest_grid_point_fractionalR   t   rebuild_transformersR   RÇ   R   R®   Ró   R}   Rô   Rõ   R‹   (   Rö   R÷   R…   Rø   Rð   Rê   Rç   R¨   t   expected_resultRk   t   yt   zt   valt   eRÈ   RÉ   R*   R)   RÊ   R_   RË   Rý   (    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/maptbx/boost_python/tst_maptbx.pyt   exercise_basic_map¿  sÀ    										"=	!				

<#-"< :O!		4"<&c          C   s  d; }  d< } t  j d= d> d? d d d f ƒ } | j ƒ  } t j ƒ  } | j t j d@ dA ƒ ƒ xž dB d g dC d g dD d g dE d g dF d  g dG d$ g dH d( g dI d, g dJ d0 g f	 D]E \ } } t t	 j
 d1 | d2 | d3 | d4 t d5 d6 ƒ | ƒ s¶ t ‚ q¶ WxŽ t d6 d7 ƒ D]} } xt t d	 d7 ƒ D]c } xZ t d6 d8 ƒ D]I }	 t t	 j
 | | | j | | |	 f ƒ ƒ | | | |	 f ƒ s;t ‚ q;Wq%WqWy t	 j
 | | dK ƒ }
 Wn+ t k
 rÖ} t | ƒ d9 k sÝt ‚ n Xt ‚ t t	 j
 | | dL t d: ƒ d: ƒ st ‚ d  S(M   NgfffffN`@g¤p=
×G`@g®Gázr@iZ   ix   i�   ih  g®GázFx@iÿÿÿÿiþÿÿÿi   i   g0Hú´ŠþÝ?gJÔ>ÍÉø¿g�GÅÿÑ
@gý‚Ý°mQÕ¿gJ_9ïÿã?g“5ê!Ýø?gôn,(Jó?gæ“ÃÕÈ¿g¯%äƒžÍÑ?gµÅ5>“ýî?g_{fI @g¬q6Ø¿g#¼=ùÐ?guŽÙë�÷¿g“�ÝJŠæ?gä.ÂåÒÂ¿g áC‰–¼ô?gÓ¢>É6a?gxEð¿•¬@g©÷TN{Ó¿gÖµÂôÒ?g¸ [–¯‹õ¿g¼ÊÚ¦x|@g¹ªì»"øÒ¿g}ÎÝ®—¦á?gŸä›ÈŒô¿g<f 2þ�	@gÂ26t³?×¿gWÐ´ÄÊhë?gÎˆÒÞàé¿gLý¼©H…ï¿gåòÒo_»¿g!£Ë›ÃÃ?g¢'eRCñ?gä/-ê“\í¿gDÁŒ)XÃ¿R   t   gridding_matrixR¨   t   allow_out_of_boundst   out_of_bounds_substitute_valuei    i   i   so   cctbx Error: non_crystallographic_eight_point_interpolation: point required for interpolation is out of bounds.i…ÿÿÿ(   gfffffN`@g¤p=
×G`@g®Gázr@iZ   iZ   ix   (   i�   i�   ih  gÒ'}Ò'ýì?g²äK~ñì?gáç!�/Cñ?(   iÿÿÿÿiþÿÿÿiÿÿÿÿ(   i   i   i   (   g0Hú´ŠþÝ?gJÔ>ÍÉø¿g�GÅÿÑ
@(   gJ_9ïÿã?g“5ê!Ýø?gôn,(Jó?(   g¯%äƒžÍÑ?gµÅ5>“ýî?g_{fI @(   g#¼=ùÐ?guŽÙë�÷¿g“�ÝJŠæ?(   g áC‰–¼ô?gÓ¢>É6a?gxEð¿•¬@(   gÖµÂôÒ?g¸ [–¯‹õ¿g¼ÊÚ¦x|@(   g}ÎÝ®—¦á?gŸä›ÈŒô¿g<f 2þ�	@(   gWÐ´ÄÊhë?gÎˆÒÞàé¿gLý¼©H…ï¿(   g!£Ë›ÃÃ?g¢'eRCñ?gä/-ê“\í¿(   i   i   i   (   i   i   i   (   R   R…   R  Ré   R   R   R   R   R   R   t.   non_crystallographic_eight_point_interpolationRX   R   R    RÒ   R1  R2  R   R‹   (   R…   R÷   t	   grid_cellt   grid_matR   R¨   R9  Rk   R:  R;  R<  R=  (    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/maptbx/boost_python/tst_maptbx.pyt7   exercise_non_crystallographic_eight_point_interpolation'  sL    !							@		c       	   C   sà   t  j ƒ  }  |  j t j d d d ƒ ƒ t j d d d  d! g ƒ } t j d" ƒ } t j	 d | d |  d | d d ƒ } t
 | d d d d g ƒ s— t ‚ t j	 d | d |  d | d d ƒ } t
 | d d d d g ƒ sÜ t ‚ d  S(#   Ni   i   i   gú,û�ù,ë¿gLv_³Lvß?g¼ÌqÛ¼Ìá?g€7�7»?gìÈXÜëÈØ¿gpb‘åobÁ¿g�D˜ŒDÈ?gtÐ\sÐ¿gŒÕ3eŒÕã¿gPy¼šOyì¿gp9úpé¿g€nèhn�?i‚   i   iZ   ix   R…   RŽ   R  R©   i    i2   g°­HõFVÑ¿gDó ùõÕ¿gj7jOìÐ¿g-¿T´ºÊ¿(   gú,û�ù,ë¿gLv_³Lvß?g¼ÌqÛ¼Ìá?(   g€7�7»?gìÈXÜëÈØ¿gpb‘åobÁ¿(   g�D˜ŒDÈ?gtÐ\sÐ¿gŒÕ3eŒÕã¿(   gPy¼šOyì¿gp9úpé¿g€nèhn�?(   i‚   i‚   i   iZ   iZ   ix   (   Ré   R   R   R   R   RÑ   R   R…   R   t   average_densitiesR   R   (   R   R  R…   t	   densities(    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/maptbx/boost_python/tst_maptbx.pyt   exercise_average_densityP  s0    		!		c             sË  t  j dA ƒ ‰ dB ‰ dC ‰  t j d dD d g ƒ ‰ ‡  ‡ ‡ ‡ ‡ f d †  ‰ t j dE g ƒ ‰ ˆ ƒ  d d d d d	 d
 d d g k s� t ‚ t j dF g ƒ ‰ ˆ ƒ  d d d d d d d d g k sÎ t ‚ ‡ f d †  }  |  ƒ  t  j dG ƒ ‰ dH ‰ dI ‰  t j dJ g ƒ ‰ ˆ ƒ  d d d d d d d d g k s>t ‚ dK ‰  ˆ ƒ  d d d d d d d d g k sqt ‚ dL ‰  ˆ ƒ  d d d d d d d d g k s¤t ‚ |  ƒ  t j d  g ƒ ‰ t ˆ ƒ  ƒ d dM k sÜt ‚ t j d" g ƒ ‰ t ˆ ƒ  ƒ dO k s	t ‚ t  j dP ƒ ‰ dQ ‰ dR ‰  xUt d ƒ D]G} d  | d } t j | g d g ƒ ‰ dS | d } t j | d g ƒ ‰ t ˆ ƒ  ƒ } t j | d g ƒ ‰ t ˆ ƒ  ƒ } xi t	 | | ƒ D]W } t
 | ˆ  ƒ \ } } }	 t t t j | | | | |	 | f ƒ ƒ | ƒ sÇt ‚ qÇWt | ƒ d d d& d' d( g | k sMt ‚ t | ƒ d d) d* d+ d, g | k s1t ‚ q1Wt  j dT ƒ ‰ dU ‰ dV ‰  t j dW g ƒ ‰ g  }
 d } x t j d ƒ D]n } t j | g ƒ ‰ t ˆ ƒ  ƒ } | | k sþt ‚ |
 j | ƒ | dY k rPn  | d k  s-t ‚ | } qÅW|
 d# d4 d5 d6 d7 d8 d9 g k s^t ‚ dZ ‰  y, t j d; ˆ d< ˆ d= ˆ  d> ˆ d? ˆ ƒ Wn. t k
 rÀ} t | ƒ j d@ ƒ sÇt ‚ n Xt ‚ d  S([   Ni   g      à?i   g�íµ ÷Æ°>c             s4   t  j d ˆ d ˆ d ˆ  d ˆ d ˆ ƒ }  t |  ƒ S(   NR…   t
   fft_n_realt
   fft_m_realRÎ   t
   site_radii(   R   t   grid_indices_around_sitesR   (   Rt   (   RJ  RI  RK  RÎ   R…   (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/maptbx/boost_python/tst_maptbx.pyt   geto  s    	i    i   i   i   i   i   i   g      ø?i    i$   i%   i8   i9   i=   i>   c             s”   x� t  d d ƒ D]| }  xs t  d d ƒ D]b } xY t  d d ƒ D]H } t j |  d | d | d f g ƒ } t ˆ  ƒ  ƒ d k s< t ‚ q< Wq& Wq Wd  S(   Niþÿÿÿi   g      à?i   (   R   R   RÑ   R"  R   (   R*   R+   R,   RÎ   (   RM  (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/maptbx/boost_python/tst_maptbx.pyt   samplex  s
    'i   i   i*   i+   i1   i2   i	   i0   i@   iA   i   i   iè  i   i   i   i0  i�  ip  iX   ih  iÈ  iØ  iP   id   in   i   i   i   i   i›   i  iÉ  i”  i[  ia  i   @R…   RI  RJ  RÎ   RK  s   product of fft_m_real(   i   i   i   (   i   i   i   (   i   i   i   gªLXèz¶û?(   g      à?g      à?g      à?(   g      ø?g      ø?g      ø?(   i   i   i   (   i   i   i   (   i   i   i   (   g      à?g      à?g      à?(   i   i   i   (   i   i   i   i   i   iÒ   (   i   i   i   (   i   i   i   (   i   i   i   gªLXèz¶û?(   i   i	   i   iP   id   in   (   i   i   i   (   i   i   i   (   i   i   i   i�   ia  (   i   @i   @i   @(   R   R…   R   R   RÑ   R   R"  R   t   sett   sortedR
   R   t   absR   t   colt	   itertoolst   countR   R   RL  R1  R2  t
   startswithR   (   RN  t   ishRk   t   sht   s1t   s2t   giR*   R+   R,   t   lst   prevt   rRx   R=  (    (   RJ  RI  RM  RK  RÎ   R…   sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/maptbx/boost_python/tst_maptbx.pyt"   exercise_grid_indices_around_sitesj  s‚    -----=+/
'	c             s¿   t  j d
 ƒ ‰ d }  d } t j t j | ƒ j |  ƒ d ƒ ‰  t j d g ƒ ‰ t j d g ƒ ‰ ‡  ‡ ‡ ‡ f d †  } t | ƒ  d g ƒ s– t ‚ d ˆ  d <t | ƒ  d	 g ƒ s» t ‚ d  S(   Ni   i   i    g      @g333333ó?c        	      s"   t  j d ˆ d ˆ  d ˆ d ˆ ƒ S(   NR…   RÍ   RÎ   RK  (   R   t    standard_deviations_around_sites(    (   RÍ   RK  RÎ   R…   (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/maptbx/boost_python/tst_maptbx.pyRM  Â  s    	i   i   gÍ;fž Ö?(   i   i   i   (   i   i   i   (   i   i   i   (   g      @g      @g      @(   i   i   i   (	   R   R…   R   R   R   R   RÑ   R   R   (   RI  RJ  RM  (    (   RÍ   RK  RÎ   R…   sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/maptbx/boost_python/tst_maptbx.pyt(   exercise_standard_devations_around_sites»  s    $
c             sq  t  j d, d- d. d/ d0 g ƒ ‰ d	 d
 l m }  |  j d t j d d1 d d ƒ d t  j g  t ˆ ƒ D]0 \ } } |  j	 d t
 | ƒ d d d | ƒ ^ qb ƒ ƒ ‰ d ‰  ˆ j d ˆ  ƒ j ƒ  } | j ƒ  j ƒ  ‰ ‡  ‡ ‡ ‡ f d †  } | d t  j d t ƒ ƒ } | d  k st ‚ | d t  j d t ƒ ƒ } t | d ƒ sCt ‚ | d t  j d g ƒ ƒ } t | d d  d! ƒsyt ‚ | d t  j d" d g ƒ ƒ } t | d# d  d! ƒs²t ‚ | d t  j d d$ g ƒ ƒ } t | d% d  d! ƒsët ‚ | d t  j d" d g ƒ ƒ } t | d& d  d! ƒs$t ‚ d2 ˆ j ƒ  d _ | d t  j d g ƒ ƒ } t | d* d  d+ ƒsmt ‚ d  S(3   Ng{®Gáz”?gš™™™™™¹?gš™™™™™Ù?g\�Âõ(\ï?g333333ã?gš™™™™™é?gš™™™™™É?g      à?iÿÿÿÿ(   R�   RŸ   R…   i   i2   iZ   ix   R    R¡   R¢   R£   t   scattering_typet   SiR¥   i   R†   c            sm   t  j d ˆ j ƒ  d ˆ  d ˆ d ˆ j ƒ  j |  ƒ d t j ˆ j ƒ  d ƒ j |  ƒ d ˆ j ƒ  j |  ƒ ƒ S(   Nt   large_unit_cellt   large_d_mint   large_density_mapRÎ   RK  i   t   work_scatterers(	   R   t   region_density_correlationR…   RÎ   t   selectR   R   R   R¢   (   t
   region_sel(   R†   RÍ   R  t   xray_structure(    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/maptbx/boost_python/tst_maptbx.pyRM  Ü  s    	!Ri  i   i   i   gF ¬H_ÿï?Rª   g-Cëâ6?i    gà?	Ýôï?i   g¨A]}wúï?gà;	Ázüï?g=
×£p=Ê?gj¼t“à?g^ºI+ï?gã‘±ÿžå?gü©ñÒMbP?(   g{®Gáz”?gš™™™™™¹?g{®Gáz”?(   gš™™™™™¹?g{®Gáz”?gš™™™™™Ù?(   g\�Âõ(\ï?gš™™™™™¹?g333333ã?(   gš™™™™™¹?g\�Âõ(\ï?gš™™™™™é?(   gš™™™™™É?g      à?g\�Âõ(\ï?(   i   i   i2   iZ   iZ   ix   (   g=
×£p=Ê?gj¼t“à?g^ºI+ï?(   R   RÑ   R¬   R�   R­   R   R®   R¯   t	   enumerateR°   R2  R€   R±   R²   R´   RÔ   RX   t   NoneR   R‹   R   t   size_tR¢   R¥   (   R�   R*   R×   R±   RM  t   cc(    (   R†   RÍ   R  Rj  sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/maptbx/boost_python/tst_maptbx.pyt#   exercise_region_density_correlationÊ  sB    			Fc          C   s8   d }  t  j d d d d ƒ } t j d |  d d ƒ d  S(   Ni<   id   i    R…   i   i%   i:   iP   io   iu   R    R¡   R�   t   fractiongš™™™™™¹?(   i<   id   i    (   i   i%   i:   iP   io   iu   (   R   R®   R   t   boxes(   R�   Rý   (    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/maptbx/boost_python/tst_maptbx.pyt   exercise_boxingô  s
    		c          C   s9  d d d d d d d d d	 d
 d d g }  t  j d d d d d d d d d d d d g ƒ g  t d ƒ D]1 } |  t  j d d d d d d d d g ƒ ^ qh } t j | ƒ } | j t j d ƒ ƒ | j ƒ  } t j	 d | d d ƒ t j
 | ƒ d k st ‚ t j | j ƒ  j | j ƒ  d k ƒ ƒ } | j | | d k | d ƒ | t j | ƒ } d | | d | | | } t j
 | ƒ d k s•t ‚ t j | ƒ d k s°t ‚ | j ƒ  } t j d | d d d d ƒ t j
 | ƒ d k sót ‚ t j | ƒ d k st ‚ t t j | ƒ t j | ƒ ƒ s5t ‚ d  S(   Niþÿÿÿiÿÿÿÿg333333Ó¿gš™™™™™É¿gš™™™™™¹¿i    gš™™™™™¹?gš™™™™™É?g333333Ó?gš™™™™™Ù?i   i   i   i   i   i   i   i   i	   i
   i   i   i   RŽ   t   substitute_valuet
   mean_scalet   n_iterationsiÈ   ip  (   i
   i   i   (   R>   t   choiceR   R   R   R   R   R   R   t   convert_to_non_negativeR9   R   R;   t   as_1dRh  t   set_selectedR:   t   hoppe_gassman_modificationR   (   R¼   R*   t   avRH   t   a1t   avet   a2(    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/maptbx/boost_python/tst_maptbx.pytA   exercise_hoppe_gassman_modification__and__convert_to_non_negativeû  s&    *1D*c    
   
   C   sm  d }  |  d |  d |  d } t  j d d d d ƒ } t j d |  d d ƒ } t j g  t | ƒ D] } d ^ qc ƒ } | j t j |  ƒ ƒ t j g  t | ƒ D] } d ^ q¡ ƒ } | j t j |  ƒ ƒ xv t	 | j
 | j ƒ D]_ \ } } t j | | | ƒ }	 |	 j t j |	 j ƒ  ƒ ƒ t j d |	 d | d | d | ƒ qâ W| j ƒ  j ƒ  j ƒ  d k sit ‚ d  S(   Ni<   id   i    i    i   i   R…   i   i%   i:   iP   io   iu   R    R¡   R�   Rp  gš™™™™™¹?iÿÿÿÿt   map_data_fromt   map_data_tot   startt   endg      ð?(   i<   id   i    (   i   i%   i:   iP   io   iu   (   g      ð?g      ð?g      ð?(   R   R®   R   Rq  R   R   R   R   R   RÃ   t   startst   endsR   t   reshapeR#   t   set_boxRx  t   min_max_meant   as_tupleR   (
   R�   R)   Rý   t   beR*   t   m1R-   RI   R=  t   box(    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/maptbx/boost_python/tst_maptbx.pyt   exercise_set_box  s&    		(("	c          C   s­   d d d d d d d d d	 d
 d d g }  g  t  d ƒ D]1 } |  t j d d d d d d d d g ƒ ^ q7 } t j | ƒ } | j t j d ƒ ƒ t j d | d d ƒ d  S(   Niþÿÿÿiÿÿÿÿg333333Ó¿gš™™™™™É¿gš™™™™™¹¿i    gš™™™™™¹?gš™™™™™É?g333333Ó?gš™™™™™Ù?i   i   i
   i   i   i   i   i   i   i   t   map_datat
   index_spaniÈ   ip  (   i
   i   i   (	   R   R>   Rv  R   R   R   R   R   t   median_filter(   R¼   R*   R{  RH   (    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/maptbx/boost_python/tst_maptbx.pyt   exercise_median_filter*  s
    *Dc          C   s­   d d d d d d d d d	 d
 d d g }  g  t  d ƒ D]1 } |  t j d d d d d d d d g ƒ ^ q7 } t j | ƒ } | j t j d ƒ ƒ t j d | d d ƒ d  S(   Niþÿÿÿiÿÿÿÿg333333Ó¿gš™™™™™É¿gš™™™™™¹¿i    gš™™™™™¹?gš™™™™™É?g333333Ó?gš™™™™™Ù?i   i   i
   i   i   i   i   i   i   i   RŽ  R�  iÈ   ip  (   i
   i   i   (	   R   R>   Rv  R   R   R   R   R   t   kuwahara_filter(   R¼   R*   R{  RH   (    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/maptbx/boost_python/tst_maptbx.pyt   exercise_kuwahara_filter1  s
    *Dc          C   sˆ   t  j d d d d d d d d d	 d	 d
 g ƒ }  d „  } | ƒ  } | ƒ  } x6 t t g D]( } t j d | d | d |  d | ƒ qX Wd  S(   Ni    gš™™™™™¹?gš™™™™™É?g333333Ó?gš™™™™™Ù?g      à?g333333ã?gffffffæ?gš™™™™™é?g      ð?c          S   sN   g  t  d ƒ D] }  t j ƒ  ^ q } t j | ƒ } | j t j d ƒ ƒ | S(   Ni
   i   i   iÈ   ip  (   i
   i   i   (   R   R>   R   R   R   R   (   R*   R{  R'   (    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/maptbx/boost_python/tst_maptbx.pyt   get_map:  s    %t
   map_data_1t
   map_data_2t
   thresholdst   average(   R   R   R‹   RX   R   t   intersection(   R—  R”  R‹  R-   R˜  (    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/maptbx/boost_python/tst_maptbx.pyt   exercise_intersection8  s    0				c          C   s�   t  j d d d d d d d d d	 d	 d
 g ƒ }  d „  } | ƒ  } t j d | d d d d d d ƒ | j ƒ  j ƒ  j ƒ  d  d k sŒ t ‚ d  S(   Ni    gš™™™™™¹?gš™™™™™É?g333333Ó?gš™™™™™Ù?g      à?g333333ã?gffffffæ?gš™™™™™é?g      ð?c          S   sN   g  t  d ƒ D] }  t j ƒ  ^ q } t j | ƒ } | j t j d ƒ ƒ | S(   Ni
   i   i   iÈ   ip  (   i
   i   i   (   R   R>   R   R   R   R   (   R*   R{  R'   (    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/maptbx/boost_python/tst_maptbx.pyR”  J  s    %RŽ  t	   thresholdt   substitute_value_belowt   substitute_value_abovei   i   (   i    i   (   R   R   R   t   binarizeRx  Rˆ  R‰  R   (   R—  R”  R'   (    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/maptbx/boost_python/tst_maptbx.pyt   exercise_binarizeH  s    0		c          C   s0  t  j d  d! d" d# d$ g ƒ }  d	 d
 l m } | j d t j d d% d d ƒ d t  j g  t |  ƒ D]0 \ } } | j	 d t
 | ƒ d d d | ƒ ^ qb ƒ ƒ } d } | j d | ƒ j ƒ  } | j d d& ƒ } | j ƒ  | j ƒ  } | j ƒ  }	 t j d | d | j ƒ  d d ƒ }
 t |	 |
 d ƒ s,t ‚ d  S('   Ng{®Gáz”?gš™™™™™¹?gš™™™™™Ù?g\�Âõ(\ï?g333333ã?gš™™™™™é?gš™™™™™É?g      à?iÿÿÿÿ(   R�   RŸ   R…   i   i2   iZ   ix   R    R¡   R¢   R£   Ra  Rb  R¥   gffffffæ?R†   R¦   i   g      @RŽ  t   cutoffi   (   g{®Gáz”?gš™™™™™¹?g{®Gáz”?(   gš™™™™™¹?g{®Gáz”?gš™™™™™Ù?(   g\�Âõ(\ï?gš™™™™™¹?g333333ã?(   gš™™™™™¹?g\�Âõ(\ï?gš™™™™™é?(   gš™™™™™É?g      à?g\�Âõ(\ï?(   i   i   i2   iZ   iZ   ix   gUUUUUUÅ?(   R   RÑ   R¬   R�   R­   R   R®   R¯   Rk  R°   R2  R€   R±   R²   R³   R´   R¹   R   R…   R   R   (   R  R�   R*   R×   Rj  R†   R±   R²   RÍ   t   cm1t   cm2(    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/maptbx/boost_python/tst_maptbx.pyRš  T  s.    			F
	i   c         C   sÔ  t  d d „ } d „  } d „  } t j d g d ƒ } | |  | | | ƒ } t | | j ƒ  ƒ dX ƒ sm t ‚ t j d g d ƒ } | |  | | | ƒ } t | | j ƒ  ƒ dY ƒ s¹ t ‚ t j d g d ƒ } | |  | | | ƒ } t | | j ƒ  ƒ dZ ƒ st ‚ t j g  t d ƒ D] } | d
 ^ qƒ } | |  | | | ƒ } t | | j ƒ  ƒ d[ ƒ sgt ‚ t j d d d d d d d d d d d d d d d d d g ƒ } | |  | | | ƒ } t | | j ƒ  ƒ d\ d ƒ sât ‚ t j d g d d g d ƒ } | |  | | | ƒ } t | | j ƒ  ƒ d] ƒ s9t ‚ t j d g d d g d d g d ƒ } | |  | | | ƒ } t | | j ƒ  ƒ d^ ƒ s›t ‚ t j d g d d g d d g d ƒ } | |  | | | ƒ } t | | j ƒ  ƒ d_ ƒ sýt ‚ t j d g d d g d  d g d ƒ } | |  | | | ƒ } t | | j ƒ  ƒ d` ƒ s_t ‚ t j d d d! d" d# d$ d% d& d' d( d) d* d+ d, d d g ƒ } | |  | | | ƒ } t | | j ƒ  ƒ da d ƒ s×t ‚ t j d d. d/ d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d: d; d< d g ƒ } | |  | | | ƒ } t | | j ƒ  ƒ db d ƒ sRt ‚ t j d> d? d@ d? dA dB dC dD d? dE dF d; dG dH dI dJ g ƒ } | |  | | | ƒ } t | | j ƒ  ƒ dc ƒ sÇt ‚ dK }	 i  }
 xe |	 j ƒ  D]W } xN t | j	 ƒ  ƒ D]: \ } } | d k rù|
 j
 | g  ƒ j t | ƒ ƒ qùqùWqàWg  } g  } xn |
 j ƒ  D]` } | |  | | | ƒ } | | j ƒ  ƒ } | j | d ƒ | j | dL | dM t  dN d ƒ ƒ qTWt | dd d. ƒ sÐt ‚ d  S(e   Ni   c         S   s†  d „  } d „  } t  j ƒ  } xN t |  ƒ D]@ \ } } | | ƒ } | j | ƒ | r+ d | | | f GHq+ q+ W| rƒ t | ƒ GHn  t  j d g d ƒ }	 t  j t d ƒ ƒ }
 |	 j ƒ  |
 j ƒ  k sÌ t ‚ t	 } t	 } xr | D]j } xa t
 d d ƒ D]P } | | } | d k rõ | d k rõ |	 | c | d	 | d
 | d | ƒ 7<qõ qõ Wqß W| r‚x, t |	 ƒ D] \ } } d | | f GHq`Wn  |	 S(   Nc         S   s"   t  j |  | d d | d ƒ S(   Ni   (   RC   t   exp(   Rk   RH   RJ   (    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/maptbx/boost_python/tst_maptbx.pyt   smearq  s    c         S   s=   d } |  | k r d St  t d |  | d | ƒ d d ƒ S(   Ni    i   g      ð?i   iÿ   (   R9   RÇ   (   Rh   t   p0(    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/maptbx/boost_python/tst_maptbx.pyt   to_ints  s     s   %2d: %8.4f %3di    i   iöÿÿÿi   iÿ   Rk   RH   RJ   s
   %4d %10.7f(   R   RÇ   Rk  R   R   R   R   R   R   RX   R    (   t   pointst   showRJ   R¤  R¦  t   AsR*   t   t_RH   t   Rt   Rxt   hit_lt   hit_rRk   t   rx(    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/maptbx/boost_python/tst_maptbx.pyt   py_exercisep  s0    		  
0c         S   s•   t  j d |  | | f ƒ } xs | D]k } g  t |  | | ƒ D] } | ^ q= } t j | ƒ } | j t j |  | | f ƒ ƒ | j d | ƒ q" W| S(   NR�   RŽ  (   R   t   map_accumulatorR   R   R   R   R   t   add(   R0   R1   t   n3R§  t   mat   valueR*   R'   (    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/maptbx/boost_python/tst_maptbx.pyt   get_ma�  s    'c         S   s   |  j  ƒ  j ƒ  j ƒ  S(   N(   Rx  Rˆ  R‰  (   R'   (    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/maptbx/boost_python/tst_maptbx.pyt   mmm˜  s    i    i   iÿ   g      à?i�   g      0@gš™™™™™ß?g333333ß?gÍÌÌÌÌÌÞ?gffffffÞ?g      Þ?gš™™™™™Ý?g333333Ý?g333333à?gffffffà?gš™™™™™à?gÍÌÌÌÌÌà?g      á?g333333á?gffffffá?gfffff`@g{®Gáz„?i   i   i   i   i   i
   g
×£p=
×?g®Gáz®×?gR¸…ëQØ?gö(\�ÂõØ?gš™™™™™Ù?g=
×£p=Ú?gáz®GáÚ?gq=
×£på?gÃõ(\�Âå?g®Gázæ?gffffffæ?g¸…ëQ¸æ?g{®Gá
Y@gš™™™™™¹?g)\�Âõ(¼?g)\�Âõ(Ü?gR¸…ëQà?g46<½Rà?g{®Gázà?gJ+‡á?gHáz®Gá?gš™™™™™á?gX9´Èvâ?gö(\�Âõè?gsh‘í|?é?g¤p=
×£è?gHáz®Gé?gš™™™™™é?g=
×£pÕ`@gËÇº¸�ä?g        gÊTÁ¨¤Nä?gû:pÎˆæ?g?ÆÜµ„æ?g¨WÊ2Ä±æ?gS–!Žuq{?g:’ËH¿å?gà¾œ3¢æ?gèj+ö—Ýé?glxz¥,Cè?g¥½Á&å?gÎªÏÕVìå?s‘  
 0 0.8425 0.5849 0.7631 0.7929 0.7979 0.8319 0.6423 0.8151 0.6436 0.8064
 1 0.7954 0.0000 0.8245 0.8124 0.8245 0.8356 0.0000 0.7857 0.7891 0.8261
 2 0.7798 0.5470 0.8324 0.8453 0.8334 0.8256 0.6346 0.8167 0.5750 0.8150
 3 0.6782 0.7564 0.8275 0.7687 0.8300 0.8496 0.0000 0.6892 0.7873 0.8129
 4 0.7508 0.7976 0.8347 0.8284 0.8325 0.8334 0.7042 0.8344 0.6594 0.8312
 5 0.7192 0.5254 0.8341 0.8376 0.8336 0.8283 0.7037 0.8147 0.0693 0.7969
 6 0.7715 0.5572 0.8238 0.7971 0.8219 0.8312 0.7092 0.8138 0.7656 0.8116
 7 0.7813 0.5117 0.8071 0.8205 0.7839 0.7857 0.0067 0.8208 0.8069 0.7658
 8 0.8228 0.7991 0.8310 0.8057 0.8289 0.8343 0.0000 0.8295 0.7911 0.8072
 9 0.7975 0.6647 0.8411 0.8421 0.8437 0.8383 0.6796 0.8463 0.4164 0.8147
10 0.7570 0.4042 0.8310 0.8263 0.8357 0.8306 0.7073 0.8263 0.7749 0.8061
11 0.7565 0.7787 0.8140 0.8176 0.8302 0.8381 0.7900 0.8109 0.5895 0.8068
12 0.8105 0.3355 0.8273 0.8390 0.7878 0.8159 0.8083 0.8421 0.5090 0.8254
13 0.7748 0.5478 0.8075 0.8365 0.8278 0.8230 0.7582 0.8336 0.4904 0.8077
14 0.8250 0.7528 0.8053 0.8416 0.8251 0.8518 0.6609 0.8097 0.7752 0.7933
15 0.7847 0.4245 0.8193 0.8146 0.8283 0.8435 0.6851 0.8297 0.8027 0.8125
R§  R¨  RJ   gfffffi@gáz®G‘a@gÃõ(\�rj@gq=
×£ˆj@g…ëQ¸–j@gìQ¸…»j@gq=
×£hj@g�Âõ(\?i@g33333j@(   i    i    i    (   iÿ   iÿ   iÿ   (   i�   i�   i�   (   i    i    i    (   gfffff`@gfffff`@gfffff`@(   i    i    i    (   i    i    i    (   i    i    i    (   i�   i�   i�   (   g{®Gá
Y@g{®Gá
Y@g{®Gá
Y@(   g=
×£pÕ`@g=
×£pÕ`@g=
×£pÕ`@(   i    i    i    (
   gfffffi@gáz®G‘a@gÃõ(\�rj@gq=
×£ˆj@g…ëQ¸–j@gìQ¸…»j@g        gq=
×£hj@g�Âõ(\?i@g33333j@(   RX   R   R   R   t   as_median_mapR   R   t
   splitlinesRk  t   splitt
   setdefaultR   R   R¼   (   R0   R1   R³  R°  R¶  R·  R§  R´  R*   t   tableRj   Rx   R_   t   Rst   resultsR]  (    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/maptbx/boost_python/tst_maptbx.pyt   exercise_map_accumulatorn  s„     		!!!,!$!!,!,!,!$$$$! *&c         C   s  |  g  d g g k s t  ‚ t |  ƒ d k } t ƒ  t ƒ  t ƒ  t ƒ  t ƒ  t ƒ  t ƒ  t	 ƒ  t
 ƒ  t ƒ  t ƒ  t ƒ  t ƒ  t ƒ  t ƒ  t ƒ  t ƒ  t ƒ  t ƒ  t ƒ  t d | ƒ t ƒ  t ƒ  t ƒ  t ƒ  t ƒ  t ƒ  t ƒ  t ƒ  d GHd  S(   Ns   --timingi    Rá   t   OK(   R   R"  R¿  RŸ  Rš  Rr  R“  R‘  R�  R6   RM   Rl   Rœ   RÂ   Ry   R|   R”   R—   R  R.  R>  RÌ   Ræ   RE  R  Rþ   RH  R^  R`  Ro  R  (   t   argsRá   (    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/maptbx/boost_python/tst_maptbx.pyt   run  s@    t   __main__RÁ  i   (9   t
   __future__R    R¬   R   R   R   t   cctbx.array_familyR   R   RG   R   t   libtbx.test_utilsR   R   R	   t   libtbx.utilsR
   RS  Rà   t   sysR>   RC   R   R6   RM   Rl   Ry   R|   R”   R—   Rœ   RÂ   RÌ   Ræ   R   Ré   Rþ   R  R  R.  R>  RE  RH  R^  R`  Ro  Rr  R  R�  R‘  R“  Rš  RŸ  R¿  RÂ  t   __name__t   argv(    (    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/maptbx/boost_python/tst_maptbx.pyt   <module>   sˆ   		X	G	'			?			U	#	B	Y		 		h	)		Q		*								”	"