ó
o™xTc           @   sÔ  d  d l  m Z d  d l Z d  d l Z d  d l Z e j j d ƒ d  d l Td  d l Z	 d  d l
 Z d  d l Z d  d l m Z m Z d  d l m Z d  d l m Z d  d l Z d „  Z e e _ d	 e j j e f d
 „  ƒ  YZ e 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 „  Z' d „  Z( d	 e j j e	 j) f d „  ƒ  YZ d „  Z* d „  Z+ d „  Z, d „  Z- e& e. _/ e' e. _0 e( e. _1 e* e. _2 e, e. _3 e- e. _4 d d d „ Z6 d „  Z7 d	 e j j e8 f d  „  ƒ  YZ e	 j8 e j9 j: ƒ Z; d! „  Z e; j< Z< e; j= Z= e; j> Z> e; j? Z? e; j@ Z@ e; jA ZA e; jB ZB e; jC ZC e; jD ZD e; jE ZE e	 jF d" e ƒ  ƒ ZG d# eH f d$ „  ƒ  YZI d	 e j j e	 jJ f d% „  ƒ  YZ d	 e j j e	 j. f d& „  ƒ  YZ d	 e j j e	 jK f d' „  ƒ  YZ d( eH f d) „  ƒ  YZL d	 e j j e	 jM f d* „  ƒ  YZ d+ d, d d- d. „ ZN d/ „  ZO d0 eH f d1 „  ƒ  YZP d2 „  ZQ d3 „  ZR d4 „  ZS d e d5 „ ZT d6 d7 „ ZU d d8 „ ZV d S(9   iÿÿÿÿ(   t   divisionNt   scitbx_array_family_flex_ext(   t   *(   t   get_random_seedt   set_random_seed(   t   format_value(   t   hashlib_md5c         C   s$   t  ƒ  } | j |  j ƒ  d ƒ | S(   Ni   (   R   t   updatet   __getstate__(   t   selft   result(    (    sF   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/array_family/flex.pyt   bool_md5   s    	t   _c           B   s   e  Z d d  „ Z RS(   c         C   st   | d  k r t j } n  | d I|  j ƒ  IJ| d I|  j ƒ  IJ| d I|  j ƒ  IJ| d I|  j ƒ  IJ|  S(   Ns   origin:s   last:s   focus:s   all:(   t   Nonet   syst   stdoutt   origint   lastt   focust   all(   R	   t   f(    (    sF   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/array_family/flex.pyt   show_summary   s     N(   t   __name__t
   __module__R   R   (    (    (    sF   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/array_family/flex.pyR      s   c         C   s   |  j  t d |  d | ƒ ƒ S(   Nt   datat   reverse(   t   selectt   sort_permutation(   R   R   (    (    sF   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/array_family/flex.pyt   sorted!   s    c         C   sh   |  j  ƒ  d k s t ‚ |  j ƒ  s* t ‚ |  j ƒ  s= t ‚ d d  l } | j j t |  ƒ |  j ƒ  ƒ S(   Ni   iÿÿÿÿ(	   t   ndt   AssertionErrort
   is_0_basedt	   is_paddedt   scitbx.matrixt   matrixt   rect   tupleR   (   t   at   scitbx(    (    sF   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/array_family/flex.pyt   as_scitbx_matrix$   s
    c         C   s   t  |  ƒ j d t ƒ GHd  S(   Nt   one_row_per_line(   R'   t   mathematica_formt   True(   R%   (    (    sF   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/array_family/flex.pyt   show+   s    c         c   s‚   |  j  ƒ  d k s t ‚ |  j ƒ  s* t ‚ |  j ƒ  s= t ‚ |  j ƒ  \ } } x, t | ƒ D] } |  | | | d | !Vq\ Wd  S(   Ni   i   (   R   R   R   R    R   t   xrange(   R%   t   nrt   nct   ir(    (    sF   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/array_family/flex.pyt   rows.   s    c         C   s”   t  |  ƒ } t | | ƒ } | j t | | ƒ ƒ x* t |  ƒ D] \ } } | | | | f <q? Wx. t | ƒ D]  \ } } | | | | d f <ql W| S(   Ni   (   t   lent   doublet   reshapet   gridt	   enumerate(   t   dR   t   nR%   t   it   x(    (    sF   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/array_family/flex.pyt   upper_bidiagonal6   s    c         C   s”   t  |  ƒ } t | | ƒ } | j t | | ƒ ƒ x* t |  ƒ D] \ } } | | | | f <q? Wx. t | ƒ D]  \ } } | | | d | f <ql W| S(   Ni   (   R1   R2   R3   R4   R5   (   R6   R   R7   R%   R8   R9   (    (    sF   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/array_family/flex.pyt   lower_bidiagonal@   s      c         C   s¢   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 d d d d d g } t  j |  } t ƒ  } x" | D] } t | | | | ƒ q€ Wd  S(    NR   R+   R0   t   to_listt   min_defaultt   max_defaultt   mean_defaultR   t   condense_as_rangesR   t   random_generatorR   t   random_size_tt   random_doublet   random_boolt   random_permutationt   random_selectiont   random_double_point_on_spheret   random_double_unit_quaterniont    random_double_r3_rotation_matrixt*   random_double_r3_rotation_matrix_arvo_1992t    random_int_gaussian_distributiont   mediant	   py_objectt   linear_regressiont   linear_correlationt	   histogramt   show_count_statst   permutation_generatort   smart_selectiont   compare_derivatives(   R   t   modulest   globalst   setattr(   t   target_module_namet   export_listt   target_modulet   gt   attr(    (    sF   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/array_family/flex.pyt	   export_toH   sF    		c         C   s8   g  } x+ t  |  j ƒ  ƒ D] } | j |  | ƒ q W| S(   sU   Workaround for C++ exception handling bugs
     (list(array) involves C++ exceptions)(   R,   t   sizet   append(   t   arrayR
   R8   (    (    sF   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/array_family/flex.pyR<   n   s    c         C   s    |  j  ƒ  d k r | St |  ƒ S(   Ni    (   R^   t   min(   t   valuest   default(    (    sF   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/array_family/flex.pyR=   v   s     c         C   s    |  j  ƒ  d k r | St |  ƒ S(   Ni    (   R^   t   max(   Rb   Rc   (    (    sF   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/array_family/flex.pyR>   z   s     c         C   s    |  j  ƒ  d k r | St |  ƒ S(   Ni    (   R^   t   mean(   Rb   Rc   (    (    sF   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/array_family/flex.pyR?   ~   s     c      	   C   s"   t  d | d t d |  d d  ƒ ƒ S(   Nt   formatt   valueRb   Rc   (   R   R=   R   (   Rb   Rf   (    (    sF   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/array_family/flex.pyt   _format_min‚   s    c      	   C   s"   t  d | d t d |  d d  ƒ ƒ S(   NRf   Rg   Rb   Rc   (   R   R>   R   (   Rb   Rf   (    (    sF   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/array_family/flex.pyt   _format_max†   s    c      	   C   s"   t  d | d t d |  d d  ƒ ƒ S(   NRf   Rg   Rb   Rc   (   R   R?   R   (   Rb   Rf   (    (    sF   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/array_family/flex.pyt   _format_meanŠ   s    c           B   s&   e  Z d d  d e d „ Z d „  Z RS(   t    s   %.6gc            s¢   | d  k r t j } n  | r8 | | d I|  j IJn  ‡  f d †  } | | d I| |  j ƒ IJ| | d I| |  j ƒ IJ| | d I| |  j ƒ IJd  S(   Ns   n:c            s   t  d ˆ  d |  ƒ S(   NRf   Rg   (   R   (   t   v(   Rf   (    sF   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/array_family/flex.pyR   ”   s    s   min: s   max: s   mean:(   R   R   R   R7   Ra   Rd   Re   (   R	   t   outt   prefixRf   t   show_nR   (    (   Rf   sF   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/array_family/flex.pyR+   �   s     c         C   s   |  j  |  j |  j f S(   N(   Ra   Rd   Re   (   R	   (    (    sF   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/array_family/flex.pyt   as_tupleš   s    N(   R   R   R   R*   R+   Rp   (    (    (    sF   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/array_family/flex.pyR   Ž   s   
c         C   s   t  d |  ƒ S(   NRb   (   t   min_max_mean_double(   R	   (    (    sF   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/array_family/flex.pyt   _min_max_mean_double_init�   s    c         C   sB   |  j  ƒ  | } | d k r  d  St t |  t |  ƒ ƒ ƒ | d S(   Ni    g      à?(   R^   R   t   sumt   pow2Re   (   R   t   mt   den(    (    sF   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/array_family/flex.pyt   _standard_deviation_helper    s     c         C   s   t  |  d ƒ S(   Ni    (   Rw   (   R	   (    (    sF   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/array_family/flex.pyt!   _standard_deviation_of_the_sample¥   s    c         C   s   t  |  d ƒ S(   Ni   (   Rw   (   R	   (    (    sF   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/array_family/flex.pyt   _sample_standard_deviation¨   s    c         C   s•   g  } | d  k	 rI | d  k s$ t ‚ xj | D] } | j |  | ƒ q+ WnH | d  k	 s[ t ‚ x3 t |  | ƒ D]" \ } } | rk | j | ƒ qk qk W| S(   N(   R   R   R_   t   zip(   t   sequencet   permutationt   flagsR
   R8   t   sR   (    (    sF   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/array_family/flex.pyR   ²   s     c            s‘   t  |  ƒ d k r g  Sg  ‰ |  d ‰  d ‰ ‡  ‡ ‡ f d †  } xB |  d D]6 } | ˆ  ˆ k ro ˆ d 7‰ qL | ƒ  | ‰  d ‰ qL W| ƒ  ˆ S(   Ni    i   c              s>   ˆ d k r ˆ j  ˆ  f ƒ n ˆ j  ˆ  ˆ  ˆ d f ƒ d  S(   Ni   (   R_   (    (   t   i_startR7   R
   (    sF   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/array_family/flex.pyt   store_rangeÃ   s    (   R1   (   t   integer_arrayR€   R8   (    (   R   R7   R
   sF   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/array_family/flex.pyR@   ¾   s     

c           B   s   e  Z d  „  Z RS(   c         C   s_   | d k s t  ‚ | d k s$ t  ‚ | | k s6 t  ‚ |  j d | ƒ } | j | ƒ t | ƒ S(   Ni    R^   (   R   RE   t   resizeR   (   R	   t   population_sizet   sample_sizet   perm(    (    sF   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/array_family/flex.pyRF   Ô   s    (   R   R   RF   (    (    (    sF   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/array_family/flex.pyR   Ò   s   c         C   s   t  j d |  ƒ d  S(   NRg   (   RA   t   seed(   Rg   (    (    sF   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/array_family/flex.pyR   Þ   s    R†   RM   c           B   s>   e  Z d d d d  „ Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   sÊ   | | | g j  d  ƒ d k s$ t ‚ | |  _ | d  k	 rg g  t | j ƒ  ƒ D] } | ƒ  ^ qL |  _ n_ | d  k	 rž t | ƒ | j ƒ  k s‘ t ‚ | |  _ n( g  t | j ƒ  ƒ D] } | ^ q± |  _ d  S(   Ni   (   t   countR   R   t	   _accessorR,   t   size_1dt   _dataR1   (   R	   t   accessorRg   Rb   t   value_factoryR8   (    (    sF   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/array_family/flex.pyt   __init__ô   s    $	.c         C   s   |  j  S(   N(   Rˆ   (   R	   (    (    sF   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/array_family/flex.pyR‹   ÿ   s    c         C   s   |  j  S(   N(   RŠ   (   R	   (    (    sF   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/array_family/flex.pyR     s    c         C   s   |  j  |  j | ƒ S(   N(   RŠ   Rˆ   (   R	   t   index(    (    sF   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/array_family/flex.pyt   __getitem__  s    c         C   s   | |  j  |  j | ƒ <d  S(   N(   RŠ   Rˆ   (   R	   RŽ   Rg   (    (    sF   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/array_family/flex.pyt   __setitem__  s    N(   R   R   R   R�   R‹   R   R�   R�   (    (    (    sF   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/array_family/flex.pyRM   ò   s
   			c           B   s   e  Z d d  d „ Z RS(   Rk   c         C   sj   | d  k r t j } n  | | d I|  j ƒ  IJ| | d I|  j ƒ  IJ| | d I|  j ƒ  IJd  S(   Ns   is_well_defined:s   y_intercept:s   slope:(   R   R   R   t   is_well_definedt   y_interceptt   slope(   R	   R   Rn   (    (    sF   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/array_family/flex.pyR     s
     N(   R   R   R   R   (    (    (    sF   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/array_family/flex.pyR     s   c           B   s   e  Z d  „  Z d „  Z RS(   c         C   s   |  j  ƒ  } | j ƒ  | S(   N(   t	   deep_copyt   matrix_inversion_in_place(   R	   R
   (    (    sF   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/array_family/flex.pyt   matrix_inversion  s    
c         C   s
   t  |  ƒ S(   N(   R'   (   R	   (    (    sF   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/array_family/flex.pyR'     s    (   R   R   R–   R'   (    (    (    sF   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/array_family/flex.pyR     s   	c           B   s   e  Z d d  d „ Z RS(   Rk   c         C   s„   | d  k r t j } n  | | d I|  j ƒ  IJ| | d I|  j ƒ  IJ| | d I|  j ƒ  IJ| | d I|  j ƒ  IJd  S(   Ns   is_well_defined:s   mean_x:s   mean_y:s   coefficient:(   R   R   R   R‘   t   mean_xt   mean_yt   coefficient(   R	   R   Rn   (    (    sF   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/array_family/flex.pyR     s     N(   R   R   R   R   (    (    (    sF   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/array_family/flex.pyR     s   t   histogram_slot_infoc           B   s   e  Z d  „  Z d „  Z RS(   c         C   s   | |  _  | |  _ | |  _ d  S(   N(   t
   low_cutofft   high_cutoffR7   (   R	   R›   Rœ   R7   (    (    sF   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/array_family/flex.pyR�   (  s    		c         C   s   |  j  |  j d S(   Ni   (   Rœ   R›   (   R	   (    (    sF   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/array_family/flex.pyt   center-  s    (   R   R   R�   R�   (    (    (    sF   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/array_family/flex.pyRš   &  s   	c           B   s,   e  Z d  „  Z d „  Z d d d d „ Z RS(   c         C   s1   |  j  ƒ  |  j ƒ  |  j ƒ  |  j ƒ  |  j ƒ  f S(   N(   t   data_mint   data_maxt
   slot_widtht   slotst   n_out_of_slot_range(   R	   (    (    sF   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/array_family/flex.pyt   __getinitargs__2  s
    				c         c   sh   |  j  ƒ  } xU t |  j ƒ  ƒ D]A \ } } |  j  ƒ  |  j ƒ  | d } t | | | ƒ V| } q Wd  S(   Ni   (   Rž   R5   R¡   R    Rš   (   R	   R›   R8   R7   Rœ   (    (    sF   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/array_family/flex.pyt
   slot_infos:  s
    Rk   s   %.8gc         C   sl   | d  k r t j } n  d | d | d } x7 |  j ƒ  D]) } | | | | j | j | j f IJq; Wd  S(   Ns   %ss    - s   : %d(   R   R   R   R¤   R›   Rœ   R7   (   R	   R   Rn   t   format_cutoffst   fmtt   info(    (    sF   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/array_family/flex.pyR+   A  s
     N(   R   R   R£   R¤   R   R+   (    (    (    sF   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/array_family/flex.pyR   0  s   		i
   R   Rk   c         C   s±  |  j  ƒ  d k s t ‚ | d  k r0 t j } n  d d l m } m } t |  d t	 ƒ} | d | | d | ƒ | ƒ } | j  ƒ  }	 | t
 | ƒ t
 t | ƒ ƒ ƒ }
 t
 t |	 ƒ ƒ } | d |
 | f } | d d |
 | | f } xÂ t | ƒ D]� \ } } | | k rqõ n  | d k s%t ‚ | d k rO| | | | | |	 f IJn  | d k r| | |	 | d | |	 f IJPn  | d | | ƒ } qõ W| | | |	 d f IJd  S(	   Ni    iÿÿÿÿ(   t   intRd   R   i   s   >= %%%dd:  %%%dd  %%7.5fs      %s:  %%%dd  %%7.5fs   %%%ds(   R^   R   R   R   R   t   __builtin__R¨   Rd   R   R*   R1   t   strR5   (   t   countst
   group_sizet   label_0Rm   Rn   R¨   Rd   t   counts_sortedt	   thresholdR7   t   wtt   wct   fmt_valt   fmt_zeroR8   R‡   (    (    sF   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/array_family/flex.pyRQ   G  s,     !!  c         c   s3   t  t |  ƒ ƒ } | Vx | j ƒ  r. | Vq Wd  S(   N(   t   size_tR,   t   next_permutation(   R^   R
   (    (    sF   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/array_family/flex.pyRR   c  s     RS   c           B   s¼   e  Z e j ƒ  Z e j ƒ  Z d d d d  „ Z d „  Z	 e
 e	 ƒ Z d „  Z e
 e ƒ Z d „  Z e
 e ƒ Z d „  Z e
 e ƒ Z d „  Z d „  Z d „  Z d „  Z d d	 d
 d „ Z RS(   c         C   s(   | |  _  | |  _ | |  _ d |  _ d S(   s<   Self-consistency of flags, indices, all_size is not checked!N(   t   _flagst   _indicest	   _all_sizeR   t   _selected_size(   R	   R}   t   indicest   all_size(    (    sF   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/array_family/flex.pyR�   m  s    			c         C   s:   |  j  d  k r3 |  j d  k	 r3 |  j j ƒ  |  _  n  |  j  S(   N(   R¸   R   R¶   R^   (   R	   (    (    sF   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/array_family/flex.pyt   _get_all_sizet  s    c         C   sd   |  j  d  k r] |  j d  k	 r3 |  j j ƒ  |  _  q] |  j d  k	 r] |  j j t ƒ |  _  q] n  |  j  S(   N(   R¹   R   R·   R^   R¶   R‡   R*   (   R	   (    (    sF   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/array_family/flex.pyt   _get_selected_size{  s    c         C   sO   |  j  d  k rH |  j d  k	 rH |  j d  k	 rH t |  j |  j ƒ |  _  n  |  j  S(   N(   R¶   R   R¸   R·   t   bool(   R	   (    (    sF   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/array_family/flex.pyt
   _get_flags„  s
    c         C   s:   |  j  d  k r3 |  j d  k	 r3 |  j j ƒ  |  _  n  |  j  S(   N(   R·   R   R¶   t
   iselection(   R	   (    (    sF   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/array_family/flex.pyt   _get_indicesŒ  s    c         C   s^   |  j  | j  k r t S|  j d  k	 r8 |  j j | j ƒ S|  j d  k	 rZ |  j j | j ƒ St S(   N(	   R»   t   FalseR¶   R   t   all_eqR}   R·   Rº   R*   (   R	   t   other(    (    sF   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/array_family/flex.pyt   __eq__“  s     c         C   s™   |  j  } | d  k r( d  d  d  |  j f S| d k rJ d  |  j d |  j f S|  j } | |  j | |  j k  rƒ |  j d  | |  j f Sd  |  j | |  j f S(   Ni    (   R»   R   R¹   Rº   t   selected_sizet   bool_element_sizet   size_t_element_sizeR}   (   R	   t   aszt   ssz(    (    sF   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/array_family/flex.pyR   ›  s    		
c         C   s"   | \ |  _  |  _ |  _ |  _ d  S(   N(   R¶   R·   R¸   R¹   (   R	   t   state(    (    sF   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/array_family/flex.pyt   __setstate__§  s    c         C   sw   |  j  } | d  k r< |  j } | d  k r. d Sd | j ƒ  S|  j } | | k ri | d k ra d Sd | Sd | | f S(   NR   s   %di    s   None (empty array)s   all (%d)s   %d of %d(   R»   R   Rº   R^   RÆ   (   R	   RÉ   t   idcRÊ   (    (    sF   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/array_family/flex.pyt   format_summaryª  s    		 	 Rk   s   selected elements: c         C   s4   | d  k r t j } n  | | | |  j ƒ  IJd  S(   N(   R   R   R   RÎ   (   R	   Rm   Rn   t   label(    (    sF   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/array_family/flex.pyR   ¶  s     N(   R   R   R¾   t   element_sizeRÇ   R´   RÈ   R   R�   R¼   t   propertyR»   R½   RÆ   R¿   R}   RÁ   Rº   RÅ   R   RÌ   RÎ   R   (    (    (    sF   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/array_family/flex.pyRS   h  s    								c         C   sx   |  ƒ  } d d l  m } | g  | D] \ } } t | ƒ ^ q# ƒ } d | } x# | D] \ } } | | | f GHqU Wd  S(   Niÿÿÿÿ(   Rd   s   %%%is : %%i(   R©   Rd   R1   (   R   t   typename_n_sizeRd   t   typenameR^   t   lR¦   (    (    sF   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/array_family/flex.pyt   __show_sizes»  s    	+
c           C   s
   t  t ƒ S(   N(   RÕ   t   empty_container_sizes_int(    (    (    sF   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/array_family/flex.pyt   <lambda>Ã  s    c           C   s
   t  t ƒ S(   N(   RÕ   t   empty_container_sizes_double(    (    (    sF   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/array_family/flex.pyR×   Ä  s    c   	      C   s–  d d l  m } d d  l } |  ƒ  } | j ƒ  d k s= t ‚ |  d ƒ } | j ƒ  d k sa t ‚ x  | D] } | d
 k sh t ‚ qh W|  d d d f ƒ } | j ƒ  d k s± t ‚ t | ƒ d d d f k sÒ t ‚ | j | ƒ } | j | ƒ } t | ƒ t | ƒ k st ‚ | d  k	 r8| | | ƒ d k s8t ‚ n  | r’| t | j	 ƒ  ƒ d ƒ s_t ‚ |  | j	 ƒ  ƒ } t | ƒ t | ƒ k s’t ‚ n  d  S(   Niÿÿÿÿ(   t   approx_equali    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   libtbx.test_utilsRÙ   t   pickleR^   R   R$   t   dumpst   loadsR   t	   as_double(	   t   flex_triplet
   flex_orderRÞ   RÙ   RÛ   R%   R9   t   pt   b(    (    sF   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/array_family/flex.pyt   exercise_tripleÆ  s(    	!!g�íµ ÷Æ°>c         C   s‹   d d l  m } | d t j t j |  ƒ ƒ ƒ } |  | j d | | d | ƒ s‡ d d l m } | |  | | | d | ƒs‡ t ‚ n  d  S(   Niÿÿÿÿ(   Rd   i   RÄ   t	   tolerance(   RÙ   t   eps(   R©   Rd   t   extt   abst   all_approx_equalRÚ   RÙ   R   (   t   more_reliablet   less_reliableRå   Rd   t   scaleRÙ   (    (    sF   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/array_family/flex.pyRT   Ü  s    !c         C   s%  | d k r t j |  ƒ S|  j ƒ  d k rJ | d k s= t ‚ t j |  ƒ St |  j ƒ  ƒ } | t | ƒ k  st t ‚ t |  j ƒ  ƒ } | j | ƒ |  j	 t
 | ƒ d ƒ } g  t t | ƒ ƒ D] } t d | | ƒ ^ q¾ } x= t | | ƒ D]+ } t | | d ƒ | | <| |  | 7} qî W| Sd S(   sz    Support for numpy-style summation along an axis.
      If axis=None then summation is performed over the entire array.
  i   i    N(   R   Ræ   Rs   R   R   t   listR   R1   t   popt	   __class__R4   t   ranget   slice(   t
   flex_arrayt   axist   old_dimt   new_dimt   flex_array_sumR8   t   slices(    (    sF   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/array_family/flex.pyRs   å  s    2(W   t
   __future__R    t   boost.optionalt   boostt   boost.std_pairt   boost.pythont   pythont
   import_extR   Ræ   t   scitbx.stl.mapR&   t   scitbx.randomR   R   t   libtbx.str_utilsR   t   libtbx.utilsR   R   R   R¾   t   md5t   injectorR4   R   RÂ   R   R'   R+   R0   R:   R;   R]   R<   R=   R>   R?   Rh   Ri   Rj   Rq   Rr   Rw   Rx   Ry   R2   t
   format_mint
   format_maxt   format_meant   min_max_meant    standard_deviation_of_the_samplet   sample_standard_deviationR   R   R@   t   mersenne_twistert   randomt   mt19937RA   RB   RC   RD   RE   RF   RG   RH   RI   RJ   RK   t   median_functorRL   t   objectRM   t   linear_regression_coreRO   Rš   RP   RQ   RR   RS   RÕ   t   show_sizes_intt   show_sizes_doubleRã   RT   Rs   (    (    (    sF   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/array_family/flex.pyt   <module>   s”   
		
				
		&							"											
											""
"	
"	S				