ó
r™xTc           @   s–   d  d l  m Z d  d l Z d  d l Z d  d l m Z d d d d „ Z d d d d d „ Z d d	 „ Z d d
 „ Z	 d d „ Z
 d d d „ Z d S(   iÿÿÿÿ(   t   divisionN(   t   flexg        g      ð?id   c         C   s^   t  j d | ƒ } t  j d | ƒ } t  j d t  j | ƒ ƒ t  j d t j | ƒ | |  S(   s'   Normal variate via Box-Muller transformt   sizeg       Àg       @(   R   t   random_doublet   sqrtt   logt   cost   matht   pi(   t   mut   sigmat   Nt   U1t   U2(    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/python_utils/random_transform.pyt   normal_variate   s    c         C   si   t  j d | ƒ } t  j d | ƒ } t  j |  t  j | d |  ƒ d ƒ t  j d t j | ƒ | | S(   s   T-variate via Baley's one-linerR   g       Àg      ð?g       @(   R   R   R   t   powR   R   R   (   t   aR	   R
   R   R   R   (    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/python_utils/random_transform.pyt	   t_variate*   s    c         C   sa   t  d d d t j d ƒ d |  ƒ } t  d d d t j d ƒ d |  ƒ } t j | | | | ƒ S(   s3   Wilson amplitude variate; The Rayleigh distributionR	   i    R
   g      à?R   (   R   R   R   R   (   R   t   At   B(    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/python_utils/random_transform.pyt   wilson_amplitude_variate=   s    $$c         C   s   t  j t d |  ƒ ƒ S(   s5   Wilson intensity variate; The exponetial distributionR   (   R   t   pow2R   (   R   (    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/python_utils/random_transform.pyt   wilson_intensity_variateE   s    c         C   s-   t  j d |  ƒ } d t  j d | ƒ } | S(   NR   g      à¿g      ð?(   R   R   R   (   R   t   x(    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/python_utils/random_transform.pyt   pseudo_normalized_abs_delta_iK   s    i   c   
      C   sº   d d  l  } t j ƒ  } | d k s* t ‚ t j | ƒ } xy t |  ƒ D]k } d } d } t } x? | s  | d } | j  ƒ  }	 | |	 } | | k rb t } qb qb W| j	 | d ƒ qG W| S(   Niÿÿÿÿi    g      ð?i   (
   t   randomR   t   intt   AssertionErrorR   t   expt   ranget   Falset   Truet   append(
   R   t   llambdaR   t   resultt   lt   iiR   t   pt   donet   u(    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/python_utils/random_transform.pyt   poisson_variateR   s     	

(   t
   __future__R    R   R   t   scitbx.array_familyR   R   R   R   R   R   R(   (    (    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/python_utils/random_transform.pyt   <module>   s   