ó
U™xTc           @   s  d  d l  m Z d 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 d	 „ Z d
 „  Z d d „ Z e d k rd Z d Z e e j ƒ d k rÈ e j d Z n  e e j ƒ d k r÷ e e j d ƒ d Z n  e d k s	t ‚ e e e ƒ n  d S(   iÿÿÿÿ(   t   divisions?   /net/anaconda/scratch1/rwgk/pdbtools/minidb/random_picks.pickleNc         C   sî   t  |  ƒ }  i  } |  d k rê xP |  d d k rp y | d c d 7<Wn t k
 rb d | d <n X|  d }  q! Wd } xp |  d k ræ xP |  | d k rØ y | | c d 7<Wn t k
 rÊ d | | <n X|  | }  q‰ W| d 7} qz Wn  | S(   Ni    i   i   i   (   t   abst	   Exception(   t   nt   primest   d(    (    sJ   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/fftpack/timing/time3d.pyt
   get_primes   s&        c         C   s+   x$ |  j  ƒ  D] } | d k r d Sq Wd S(   Ni   i   i   i    i   (   i   i   i   (   t   keys(   R   t   p(    (    sJ   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/fftpack/timing/time3d.pyt   are_good_primes   s     c         C   s0   x) t  |  ƒ } t | ƒ r |  S|  d 7}  q d  S(   Ni   (   R   R	   (   R   R   (    (    sJ   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/fftpack/timing/time3d.pyt	   next_best   s
     c         C   s5   g  |  d  D]& } t  t t | d | ƒ ƒ ƒ ^ q S(   Ni   (   R
   t   intt   round(   t   ucparamst
   resolutiont   u(    (    sJ   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/fftpack/timing/time3d.pyt   get_grid#   s    i   c         C   s.   |  d d d } |  d |  d d | | S(   Ni   i   i    (    (   t   gridt   sizeof_FloatTypet
   Nz_complex(    (    sJ   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/fftpack/timing/time3d.pyt   memory&   s    c         C   sü   t  t d ƒ } t j | ƒ } | j ƒ  xÍ | j ƒ  D]¿ \ } } | \ } }	 }
 t |	 |
 ƒ } t | ƒ } |  d k sƒ | |  k r5 t j ƒ  } t	 j
 d | | f t | ƒ | f ƒ t j ƒ  | } | G|	 G|
 G| G| G| G| GHt j j ƒ  q5 q5 Wd  S(   Nt   ri    s   tst3d %s %s %d %d %d %d(   t   opent   path_random_picks_picklet   cPicklet   loadt   closet   itemsR   R   t   timet   ost   systemt   tuplet   syst   stdoutt   flush(   t   memlimitt   packaget   itert   type_and_dirt   ft   Recordst   idCodet   datat   depDateR   R   R   t   memuset   t0t   t(    (    sJ   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/fftpack/timing/time3d.pyt   run_one*   s    
	i    c         C   so   xh d D]` } xW d D]O } t  j  ƒ  } t | | | |  ƒ d | | f Gt  j  ƒ  | GHt j j ƒ  q Wq Wd  S(   Nt   fftwt   fftpacki    i   s   Time %s %d:(   R0   R1   (   i    i   (   R   R/   R    R!   R"   (   R&   R#   R$   R%   R-   (    (    sJ   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/fftpack/timing/time3d.pyt   run:   s    t   __main__t   rbi   i   i   t   cft   cbt   rfi   (   R5   R6   R7   s   rb(   t
   __future__R    R   R    R   R   R   R   R	   R
   R   R   R/   R2   t   __name__R&   R#   t   lent   argvR   t   AssertionError(    (    (    sJ   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/fftpack/timing/time3d.pyt   <module>   s$   0					