ó
F™xTc           @   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 d  d	 l m Z d  d
 l m Z d  d l m Z m Z d  d l Z d  d l Z d  d l Z d e j f d „  ƒ  YZ d e j f d „  ƒ  YZ d e f d „  ƒ  YZ d a e a e a e d ƒ Z  e d ƒ Z! e d ƒ Z" e d ƒ Z# e d ƒ Z$ e d ƒ Z% d a& d „  Z' d „  Z( d „  Z) d „  Z* d „  Z+ d „  Z, d  „  Z- e d d! „ Z. d" e/ f d# „  ƒ  YZ0 d$ e/ f d% „  ƒ  YZ1 d& „  Z2 d d d' „ Z3 d( „  Z4 d) „  Z5 d* „  Z6 e d+ „ Z7 d, „  Z8 e9 d- k rZe8 ƒ  n  d S(.   iÿÿÿÿ(   t   division(   t   reduction_base(   t   krivy_gruber_1976(   t   gruber_1973(   t   gruber_1973_table_1(   t   uctbx(   t   sgtbx(   t   matrix(   t   get_caller_name(   t   time_log(   t   Exception_expectedt   approx_equalNt   check_is_niggli_cellc           B   s   e  Z d  „  Z RS(   c   
      C   sŽ  |  j  } |  j } |  j |  j |  j |  j |  j |  j f \ } } } } } } |  j ƒ  s^ t	 S|  j
 ƒ  }	 |	 d k s| t ‚ |	 d k rP| | | ƒ r­ | | | ƒ r­ t	 Sn  | | | ƒ rÒ | | | ƒ rÒ t	 Sn  | | | ƒ rû | | | | ƒ rû t	 Sn  | | | ƒ r$| | | | ƒ r$t	 Sn  | | | ƒ rŠ| | | | ƒ rMt	 SqŠn:| | | ƒ r�| t | ƒ t | ƒ ƒ r�t	 Sn  | | | ƒ r²| t | ƒ t | ƒ ƒ r²t	 Sn  | t | ƒ | ƒ rÝ| | d ƒ sÝt	 Sn  | t | ƒ | ƒ r| | d ƒ st	 Sn  | t | ƒ | ƒ r3| | d ƒ s3t	 Sn  | t | ƒ t | ƒ t | ƒ | | ƒ rŠ| | t | ƒ t | ƒ d ƒ rŠt	 Sn  t S(   Ni   i   i    (   i   i   (   t   eps_eqt   eps_gtt   at   bt   ct   dt   et   ft   meets_main_conditionst   Falset   typet   AssertionErrort   abst   True(
   t   selft   eqt   gtR   R   R   R   R   R   R   (    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_krivy_gruber.pyt   itva_is_niggli_cell   sT    		<      
     -# (   t   __name__t
   __module__R   (    (    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_krivy_gruber.pyR      s   t   reduction_with_trackingc           B   s    e  Z d  d d „ Z d „  Z RS(   i    id   c         C   s†   g  |  _  g  |  _ g  |  _ g  |  _ g  |  _ g  |  _ y/ t j j |  d | d | d | ƒt	 |  _
 Wn t k
 r� t |  _
 n Xd  S(   Nt	   unit_cellt   relative_epsilont   iteration_limit(   t
   action_logt   cell_logt   type_logt   meets_primary_conditions_logt   meets_main_conditions_logt   is_niggli_cell_logR   t	   reductiont   __init__R   t   iteration_limit_exceededt   StopIterationR   (   R   R"   R#   R$   (    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_krivy_gruber.pyR,   5   s    						c         C   s  t  ƒ  } | d k r d } n% | d k r3 d } n t | d ƒ } |  j j | ƒ |  j j |  j ƒ  ƒ |  j j |  j ƒ  ƒ |  j j |  j	 ƒ  ƒ |  j
 j |  j ƒ  ƒ |  j j |  j ƒ  ƒ |  j |  j k rÜ t ‚ n  |  j t j | ƒ 9_ |  j d 7_ d  S(   Nt   n3_true_actioni   t   n3_false_actioni   i   (   R   t   intR%   t   appendR&   t   as_unit_cellR'   R   R(   t   meets_primary_conditionsR)   R   R*   t   is_niggli_cellt   _n_iterationst   _iteration_limitR.   t   _r_invR   t   sqr(   R   t   m_elemst   callert   id(    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_krivy_gruber.pyt	   cb_updateE   s     				(   R   R    R,   R=   (    (    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_krivy_gruber.pyR!   3   s   t+   reduction_with_tracking_and_eq_always_falsec           B   s   e  Z d  „  Z d „  Z RS(   c         C   s   t  j |  | ƒ d  S(   N(   R!   R,   (   R   R"   (    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_krivy_gruber.pyR,   Z   s    c         C   s   t  S(   N(   R   (   R   t   xt   y(    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_krivy_gruber.pyR   ]   s    (   R   R    R,   R   (    (    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_krivy_gruber.pyR>   X   s   	s   krivy_gruber_1976.reductions   gruber_1973.reductions#   krivy_gruber_1976.minimum_reductions   gruber_1973.minimum_reductions"   gruber_1973.fast_minimum_reductions   uctbx.fast_minimum_reductioni    c   
      C   sJ  |  j  ƒ  s t ‚ t j ƒ  t j |  d t ƒ} t j ƒ  | j ƒ  sN t ‚ | j	 ƒ  } |  j
 | j ƒ  j ƒ j | ƒ s� t ‚ t d  k r¨ t | ƒ j ƒ  s¨ t ‚ n  t j ƒ  t j |  d t ƒ} t j ƒ  | j ƒ  sã t ‚ | j	 ƒ  } |  j
 | j ƒ  j ƒ j | ƒ st ‚ t j ƒ  t j |  ƒ } t j ƒ  | j ƒ  d k sQt ‚ | j	 ƒ  } t | j ƒ  d  | j ƒ  d  ƒ s†t ‚ |  j
 | j ƒ  j ƒ j | ƒ s­t ‚ t j ƒ  t j |  ƒ } t j ƒ  | j ƒ  d k sèt ‚ | j	 ƒ  } t | j ƒ  d  | j ƒ  d  ƒ st ‚ |  j
 | j ƒ  j ƒ j | ƒ sDt ‚ t j ƒ  t j |  ƒ } t j ƒ  | j ƒ  d k st ‚ | j	 ƒ  } t | j ƒ  d  | j ƒ  d  ƒ s´t ‚ |  j
 | j ƒ  j ƒ j | ƒ sÛt ‚ t j ƒ  t j |  ƒ } t j ƒ  | j ƒ  d k st ‚ | j	 ƒ  } t | j ƒ  d  | j ƒ  d  ƒ sKt ‚ |  j
 | j ƒ  ƒ j | ƒ sot ‚ t t | j  ƒ  ƒ a t! rFt" rŸt# |  ƒ } n t$ |  ƒ } | j% rFd } |  GHd G| j& | GHd G| j' | GHd G| j( | GHd	 G| j) | GHd
 G| j* | GHx | j+ | D] }	 |	 GHq#WHt, j- j. ƒ  qFn  | S(   NR#   i   i   i   i   s   red0.action_log:s   red0.type_log:s"   red0.meets_primary_conditions_log:s   red0.meets_main_conditions_log:s   red0.is_niggli_cell_log:(   i   i   (   i   i   (   i   i   (   i   i   (/   t   is_degenerateR   t   time_krivy_gruber_1976t   startR   R+   R#   t   stopR5   R3   t   change_basist   r_invt   elemst   is_similar_tot   NoneR   R   t   time_gruber_1973R   t   is_buerger_cellt   time_krivy_gruber_1976_minimumt   minimum_reductionR   R   t
   parameterst   time_gruber_1973_minimumt   time_gruber_1973_fast_minimumt   fast_minimum_reductiont   time_uctbx_fast_minimumR   t   maxt'   fast_minimum_reduction_max_n_iterationst   n_iterationst   track_infinitet   eq_always_falseR>   R!   R-   R%   R'   R(   R)   R*   R&   t   syst   stdoutt   flush(
   t   inpt   redt   red_cellt   gruber_reductiont   buerger_cellt   min_reductiont   min_cellt   red0t   nt   cell(    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_krivy_gruber.pyt	   do_reducek   s†    

'



)'

)'

)'

)$		c         C   s8   y t  |  ƒ SWn# t k
 r3 d G|  j ƒ  GH‚  n Xd  S(   Ns   Problem parameters:(   Re   t	   ExceptionRN   (   R[   (    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_krivy_gruber.pyt   reduce³   s
    c      	   C   sF   |  \ } } } } } } t  j d | | | | d | d | d f ƒ S(   Nt   metrical_matrixg       @(   R   R"   (   t   .0R   R   R   R   R   R   (    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_krivy_gruber.pyt   ucgmxº   s    c       
   C   s™  t  d# ƒ }  |  j t j d d d	 d
 d$ d d% d d& f ƒ ƒ sH t ‚ t  d' ƒ } | j t j d( ƒ ƒ sr t ‚ t  d) ƒ } | j t j d* ƒ ƒ sœ t ‚ t j |  ƒ } | j ƒ  s¾ t ‚ t | j	 ƒ  d+ ƒ sÙ t ‚ t | j
 ƒ  d d d d, d- d. f ƒ st ‚ t | j ƒ  d d d d/ d0 d1 f ƒ s3t ‚ | j ƒ  j |  ƒ sNt ‚ t j | ƒ } | j ƒ  sot ‚ | j ƒ  s‚t ‚ t j | ƒ } | j ƒ  s£t ‚ t |  ƒ } | j ƒ  j | ƒ sÊt ‚ | j ƒ  j d2 k såt ‚ | j ƒ  d! k sýt ‚ t | ƒ } | j ƒ  j | ƒ s$t ‚ | j ƒ  j d3 k s?t ‚ | j ƒ  d k sWt ‚ t | ƒ } | j ƒ  j | ƒ s~t ‚ | j ƒ  j d4 k s™t ‚ | j ƒ  d  k s±t ‚ y t j | d" d  ƒ} Wn t j k
 ràn Xt ‚ |  j ƒ  sút ‚ |  j ƒ  st ‚ | j ƒ  st ‚ | j ƒ  s2t ‚ | j ƒ  sDt ‚ | j ƒ  sVt ‚ |  j ƒ  } | j ƒ  d! k szt ‚ |  j ƒ  j | ƒ s•t ‚ d  S(5   Ni   iˆ   iL   ieÿÿÿiáÿÿÿi,   i   gR¸…ëQ'@gV-²�o!@i‹   i(   g      N@i˜   i-   i   i   i   iðÿÿÿiÿÿÿÿiýÿÿÿix   goð…ÉTeW@gÏ÷Sã¥3Y@i   i<   gã6À[ÌS@g=
×£páR@g       @i   i	   i    i   i   R$   (   i   iˆ   iL   ieÿÿÿiáÿÿÿi,   gUUUUUUå?g      è?gš™™™™™Ù?(   i   i   i   iðÿÿÿiÿÿÿÿiýÿÿÿ(   i   i   i   ix   goð…ÉTeW@gÏ÷Sã¥3Y@(   i   i   i   i   i   i   (   i   i   i   i<   gã6À[ÌS@g=
×£páR@(   i   iˆ   iL   ieÿÿÿiáÿÿÿi,   g     `SÀg      /Àg      6@g      6@g      /Àg     `SÀ(	   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   (   Rj   RH   R   R"   R   R   t   gruber_parameterizationRK   R   t   as_gruber_matrixt   as_niggli_matrixt   as_sym_mat3R3   R5   Rg   RF   RG   RU   R   R+   R-   R
   t   niggli_reductiont   niggli_cell(   RC   t   buergert   niggliR\   (    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_krivy_gruber.pyt   exercise_gruber_1973_example½   s\    0--c       
   C   s\  t  d ƒ }  |  j t j d d d	 d
 d d d d d f ƒ ƒ sH t ‚ xN d d  f D]@ } t j t  | ƒ ƒ } | j ƒ  s‚ t ‚ | j ƒ  sU t ‚ qU Wt  d! ƒ } | j t j d	 d d d d d" d d# f ƒ ƒ sÝ t ‚ t j | ƒ } | j ƒ  sþ t ‚ t	 |  ƒ } | j
 ƒ  j | ƒ s%t ‚ | j ƒ  j d$ k s@t ‚ | j ƒ  d k sXt ‚ d  S(%   Ni	   i   i   iûÿÿÿiüÿÿÿiêÿÿÿi   gbX9´È@i   ig   i7   g      N@im   i   i†   i5   iøÿÿÿiÿÿÿÿi   i<   iK   i   iF   i    i    i   (   i	   i   i   iûÿÿÿiüÿÿÿiêÿÿÿgUUUUUUí?gÞÝÝÝÝÝÝ?gDDDDDDì?(   i   i	   i	   iøÿÿÿiÿÿÿÿiüÿÿÿ(   i   i	   i	   i	   i   i   (   i   i	   i	   i	   i   i   g‰ˆˆˆˆˆà?gá?(	   i    i   i   i    i    i   i   i   i   (   Rj   RH   R   R"   R   R   Rk   RK   R5   Rg   R3   RF   RG   RU   (   RC   t   gmxR\   Rr   (    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_krivy_gruber.pyt"   exercise_krivy_gruber_1976_exampleî   s"    0,c          C   s‹   x„ d D]| }  xs d D]k } t  j d	 | |  f ƒ } | j ƒ  j ƒ  j ƒ  j ƒ  } t | j d
 d ƒ j | j	 ƒ  | j
 ƒ  ƒ ƒ q Wq Wd  S(   Nt   1t   2s   2 2t   4s   3*t   6s   2 2 3t   PABCIRFs   Hall: %s %st   volumeid   (   Rv   Rw   s   2 2Rx   s   3*Ry   s   2 2 3(   R   t   space_group_infot   groupt   z2p_opt   c_invt   rRg   t   any_compatible_unit_cellRE   t   numt   den(   t   pgt   zt   sgiRF   (    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_krivy_gruber.pyt   exercise_bravais_plus  s    c         C   s   t  j |  t  j d ƒ S(   Ni´   (   t   matht   cost   pi(   R?   (    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_krivy_gruber.pyt   cos_deg	  s    c         C   sÓ  |  r d } d } n d } d } d
 } x�| D]…} x|| D]t} xk| D]c} xZ| D]R} xI| D]A}	 x8| D]0}
 | | t  |
 ƒ } | | t  |	 ƒ } | | t  | ƒ } t j | | | | | | | | | | | | f	 ƒ } | j ƒ  } y% t j | | | | |	 |
 f ƒ } Wn& t k
 r@| d k so t ‚ qo n Xt | | j	 ƒ  d ƒ d k  sgt ‚ | j	 ƒ  | | | d k  r‹qo n  | d 7} t
 | ƒ qo Wqb WqU WqH Wq; Wq. Wd
 sÃ| rÏd G| GHn  d  S(   Ni
   i<   i   i   i-   iZ   ix   i–   iª   i    gñhãˆµøä>i   g     @�@i   s   exercise_grid n_trials:(   i
   (   i<   (   i
   i   i   (   i
   i   i-   i<   iZ   ix   i–   iª   (   R‹   R   R9   t   determinantR   R"   Rf   R   R   R{   Rg   (   t   quickt   verboset   sample_lengthst   sample_anglest   n_trialsR   R   R   t   alphat   betat   gammat   a_bt   a_ct   b_ct   gt   det_gR"   (    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_krivy_gruber.pyt   exercise_grid  s>    	 %& 
"t*   random_unimodular_integer_matrix_generatorc           B   s&   e  Z d  d „ Z d „  Z d „  Z RS(   i
   c      
   C   sD   | |  _  t j d ƒ |  _ t j d ƒ |  _ |  j |  j |  _ d  S(   Ni    i   iÿÿÿÿ(	   i    i    i   i   i    i    i    i   i    (	   i   iÿÿÿÿi    i   i    i    i    i    i   (   t   reset_thresholdR   R9   t   _m1t   _m2t   _mi(   R   Rœ   (    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_krivy_gruber.pyR,   .  s    	c         C   s:   |  j  j } t t t | ƒ ƒ t t | ƒ ƒ ƒ |  j k S(   N(   RŸ   RG   RS   R   t   minRœ   (   R   R   (    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_krivy_gruber.pyt   has_elements_which_are_to_large4  s    c         C   sv   xl t  j d d ƒ r+ |  j |  j |  _ n |  j |  j |  _ |  j ƒ  sN Pn  t  j |  j |  j f ƒ |  _ q |  j S(   Ni    i   (   t   randomt	   randrangeRž   RŸ   R�   R¡   t   choice(   R   (    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_krivy_gruber.pyt   next8  s    !(   R   R    R,   R¡   R¥   (    (    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_krivy_gruber.pyR›   ,  s   	t   random_abcpqc           B   s   e  Z d  „  Z d „  Z RS(   c         C   s2  t  j } | d d ƒ |  _ |  j |  _ | d d ƒ |  _ |  j |  _ | d d k r– | d d k r‰ | d d	 ƒ r‰ | d
 d ƒ |  _ n  | d	 } n  | d k rÛ |  j |  _ | d d	 ƒ r.|  j | d d ƒ 7_ q.nS| d k r|  j | d d ƒ 7_ |  j |  _ n | d k r`| d d	 ƒ rD|  j | d d ƒ 7_ n  |  j | d d ƒ |  _ nÎ | d k r |  j | d d ƒ 7_ |  j | d d ƒ |  _ nŽ | d k rÈ|  j | d d ƒ |  _ nf | d k r%|  j | d d ƒ 7_ |  j |  _ | d d	 ƒ r.|  j | d d ƒ 7_ q.n	 t d ‚ d  S(   Nid   iÉ   i
   i)   i    t   qi   t   =i   i2   i[   s   a=b<=cie   s   a<b=cs   a<=b<cs   a<b<cs   a=b<cs   a<b<=cs   Unknown ck_type.(   R¢   R£   R   R   t   pR§   R   t   RuntimeError(   R   t   ck_typet   rr(    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_krivy_gruber.pyR,   E  s>    	   c         C   s•   t  g  |  j |  j |  j |  j |  j f D] } t | ƒ ^ q( ƒ \ } } } } } | | } | | | }	 t | ƒ \ }
 } } | | | |
 | | f S(   N(   t   tupleR   R   R   R©   R§   t   floatt   eval(   R   t   defksR?   R   R   R   R©   R§   t   mRc   R   R   R   (    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_krivy_gruber.pyt
   eval_defksd  s
    R
(   R   R    R,   R²   (    (    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_krivy_gruber.pyR¦   C  s   	c         C   s"   t  t j |  j ƒ ƒ j |  j ƒ S(   N(   R¦   R¢   R¤   t   ck_typesR²   R°   (   t   type_conditions(    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_krivy_gruber.pyt   random_gruber_matrixk  s    	c         C   sI  t  j ƒ  } t  j ƒ  } t ƒ  } t } xt d d ƒ D]ý} | | } | | }	 d s] | rs d G|	 j G|	 j GHn  d }
 x{t |  ƒ D]m} t |	 ƒ } t	 | ƒ } d s° | rÅ d G| GHd G| GHn  t
 j | ƒ } | j ƒ  sæ t ‚ d } xà| D]Ø} | j | j ƒ  j ƒ  j d ƒ } d s&| rHd G| j G| j ƒ  GHd G| GHn  t
 j | ƒ } | j ƒ  s~d GHd G| GH|
 d 7}
 qó | d 7} | j ƒ  rÁ| j | ƒ sËd GHd G| GH|
 d 7}
 qËqó t | ƒ j ƒ  } | j | ƒ sèt ‚ t | ƒ j ƒ  } | j | ƒ st ‚ | j ƒ  j } | j | d ƒ } d s<| rLd G| G| GHn  t | ƒ } | j ƒ  } | r‰d	 G| GHd
 G| GHd G| GHHn  | j | ƒ só d GHd G| GHd G| GHd G| j ƒ  GH|
 d 7}
 qó qó W| d k r† d GH|
 d 7}
 t ‚ q† q† Wd s| r|
 d k rd | G|
 GHn  |
 d k r7 t } q7 q7 W| sEt ‚ d  S(   Ni   i   i    t    s0     Error: Transformed cell is not a Buerger cell.s     gruber_matrix:s+     Error: Transformed cell is a Niggli cell.s	     Random:s
   type_cell:s   random_cell:s   krivy_cell:s     Error: Random cell recovery.s     r_inv:s     red.as_gruber_matrix():s7     Error: Transformation does not yield different cells.s   Errors for type %d:(   R   t   get_mk2_setst   get_type_conditionsR›   R   t   xrangeR³   R°   Rµ   Rj   R   Rk   R5   R   RE   t   inverset	   transposeRG   RŒ   RK   RH   Rg   R3   R¥   Rl   Rª   R   (   t   n_trials_per_typet   dumpRŽ   t   mk2_setsR´   t   random_unimodulart   have_errorst   kt   sett   tct   n_errorst   i_trialt   gruber_matrixt	   type_cellR\   t   n_different_cellsR±   t
   other_cellt
   krivy_cellRF   t   random_cell(    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_krivy_gruber.pyt   exercise_gruber_typeso  s‚    	

	!	
						
c          C   sb   t  j d ƒ }  |  j ƒ  } | j ƒ  j t  j d ƒ ƒ s? t ‚ t  j d ƒ }  |  j d d ƒ d  S(   NgÈ{¨äÆCQ@g¬5†HRVH@gXÂè;—½s?g‰w°V@gŸÌTcýV@gs úšßX@g�W½O—½s?g6<½RVH@g²�ï§ÆCQ@g>èÙ¬ú T@g�¥½ÁV@gùé·¯V@gývÙe<4T@güg¥Î\AT@g´ñ”Éµ•a@gúB,óºî=@g!$nÿèzV@gÌz¼—ö]@R$   i'  (   gÈ{¨äÆCQ@g¬5†HRVH@gXÂè;—½s?g‰w°V@gŸÌTcýV@gs úšßX@(   g�W½O—½s?g6<½RVH@g²�ï§ÆCQ@g>èÙ¬ú T@g�¥½ÁV@gùé·¯V@(   gývÙe<4T@güg¥Î\AT@g´ñ”Éµ•a@gúB,óºî=@g!$nÿèzV@gÌz¼—ö]@(   R   R"   Ro   R3   RH   R   (   t   ucR\   (    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_krivy_gruber.pyt   exercise_extreme´  s     	  	c       
   C   sŽ   t  j d ƒ }  |  j ƒ  } | j t  j d ƒ ƒ s9 t ‚ t  j d ƒ }  |  j ƒ  } | j ƒ  j | ƒ so t ‚ | j ƒ  j d k sŠ t ‚ d  S(   Ngšwœ¢#y)@g{®Gá:=@g¸@‚âÇ@g5^ºIªW@g¬Zd;7Y@g\ AñcðX@gäƒžÍª�)@g¢E¶óýt=@g{®GáÚY@g®GázäY@gö(\�Âµ6@iÿÿÿÿi    i   (   gšwœ¢#y)@g{®Gá:=@g¸@‚âÇ@g5^ºIªW@g¬Zd;7Y@g\ AñcðX@(   g¸@‚âÇ@gšwœ¢#y)@g{®Gá:=@g\ AñcðX@g5^ºIªW@g¬Zd;7Y@(   gäƒžÍª�)@gšwœ¢#y)@g¢E¶óýt=@g{®GáÚY@g®GázäY@gö(\�Âµ6@(	   iÿÿÿÿi    i   i   iÿÿÿÿi    i    i    i   (	   R   R"   Rp   RH   R   Ro   R3   RF   RG   (   RÍ   t   ncR\   (    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_krivy_gruber.pyt   exercise_real_world_examplesÁ  s     	 	c          C   sU   d< d= d> d? d@ dA dB dC dD dE dF dG dH f }  x! |  D] } t  t j | ƒ ƒ q4 Wd  S(I   Ng¹e(kîÈ+@g²Û]ã–‡-@gû–áÎ÷N@gi²h¾ý V@g      $@g      4@g     €V@g     €F@g      ^@g      >@g      N@gwIs ¢%@g|-gû£+@g-J²Sš½P@gSqåƒ;L$@gf;å×Â*@gïºHjÕZ@g?	ÒúlüZ@g~æËÝ�n[@gST¯™ŠÌ3@gTOŽþæl@g�U•´,@gÑ:
è«`@gD,(/W@g½X°dÜÑ`@g€9B.ÜÈ$@g—Éþl¾a*@gÜøYm)\@g±uT“Z@g Ù#Ç½Z@gOÙ\ƒû0@g8H›—î®*@g�‡?­´h@g…|z4)c@g}*¶ zƒ\@gŠví¸Ä"W@g³ìÄ»æù$@g4ÀHæ{[@gQex¡r Z@gñQ.n”[@gð)#L‰$@gt2Žíwƒ]@gÂ„ÀóÛYX@gõ/ÚÄìºZ@g´¸=iAè*@g˜ŠBÝ‹A[@g¢½BªoxZ@gHËË+\[@gHÆØ¿3·&@gˆëZÀ¿F+@g‰ëZÀ¿F+@gß‚^Æ:ô\@gDNÊóZ@gDNÊóZ@g-Â“Ñª'@gìd‰Ön‘+@gìŽØ½6«[@gç)ö¼ =Z@gÄT¯;�[@(   g¹e(kîÈ+@g¹e(kîÈ+@g²Û]ã–‡-@gû–áÎ÷N@gû–áÎ÷N@gi²h¾ý V@(   g      $@g      $@g      4@g     €V@g     €F@g      ^@(   g      $@g      4@g      >@g      ^@g      N@g      ^@(   gwIs ¢%@g|-gû£+@g|-gû£+@g      N@g-J²Sš½P@g-J²Sš½P@(   gSqåƒ;L$@gf;å×Â*@gf;å×Â*@gïºHjÕZ@g?	ÒúlüZ@g~æËÝ�n[@(   gST¯™ŠÌ3@gTOŽþæl@g�U•´,@gÑ:
è«`@gD,(/W@g½X°dÜÑ`@(   g€9B.ÜÈ$@g—Éþl¾a*@g—Éþl¾a*@gÜøYm)\@g±uT“Z@g Ù#Ç½Z@(   gOÙ\ƒû0@g8H›—î®*@g�‡?­´h@g…|z4)c@g}*¶ zƒ\@gŠví¸Ä"W@(   g³ìÄ»æù$@g|-gû£+@g|-gû£+@g4ÀHæ{[@gQex¡r Z@gñQ.n”[@(   gð)#L‰$@g—Éþl¾a*@g—Éþl¾a*@gt2Žíwƒ]@gÂ„ÀóÛYX@gõ/ÚÄìºZ@(   gð)#L‰$@g´¸=iAè*@g´¸=iAè*@g˜ŠBÝ‹A[@g¢½BªoxZ@gHËË+\[@(   gHÆØ¿3·&@gˆëZÀ¿F+@g‰ëZÀ¿F+@gß‚^Æ:ô\@gDNÊóZ@gDNÊóZ@(   g-Â“Ñª'@gìd‰Ön‘+@gìd‰Ön‘+@gìŽØ½6«[@gç)ö¼ =Z@gÄT¯;�[@(   Rg   R   R"   (   t   problem_parametersRN   (    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_krivy_gruber.pyt   exercise_problem_parametersÑ  s8                 	c         C   sª  d t  j d k } d t  j d k } d t  j d k rB d a n  d t  j d k r^ t a n  d t  j d k r€ t a t a n  t ƒ  t ƒ  t ƒ  t	 ƒ  t
 ƒ  t d | d	 | ƒ | rÅ d
 } n d } d t  j d k rt j d ƒ t | d t d	 | ƒd  St | d	 | ƒt ƒ  d s.| s.|  r¡t j ƒ  GHt j ƒ  GHt j ƒ  GHt j ƒ  GHt j ƒ  GHt j ƒ  GHt j d k r•d t j t j GHn  d Gt GHn  d GHd  S(   Ns   --Quicki   s	   --Verboses   --zero_epsiloni    s   --track_infinites   --eq_always_falseR�   RŽ   i
   id   s   --dumpR½   s   fast_minimum Python/C++: %.3gs(   fast_minimum_reduction_max_n_iterations:t   OK(   RX   t   argvR#   R   RV   RW   RÒ   RÎ   Rs   Ru   R‡   Rš   R¢   t   seedRÌ   RÐ   RB   t   reportRJ   RL   RO   RP   RR   t   accumulationRT   (   t
   show_timesR�   RŽ   R¼   (    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_krivy_gruber.pyt   exercise_one_passð  sL    			 	c          C   sA   d t  j d k }  x' t d |  ƒ t  j j ƒ  |  s Pq q d  S(   Ns	   --Foreveri   RØ   (   RX   RÔ   RÙ   RY   RZ   (   t   forever(    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_krivy_gruber.pyt   exercise  s    t   __main__(:   t
   __future__R    t   cctbx.uctbxR   R   R   R   t   cctbxR   R   t   scitbxR   t   scitbx.python_utils.miscR   t   libtbx.utilsR	   t   libtbx.test_utilsR
   R   Rˆ   R¢   RX   Rk   R   R+   R!   R>   RI   R#   R   RV   RW   RB   RJ   RL   RO   RP   RR   RT   Re   Rg   Rj   Rs   Ru   R‡   R‹   Rš   t   objectR›   R¦   Rµ   RÌ   RÎ   RÐ   RÒ   RÙ   RÛ   R   (    (    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_krivy_gruber.pyt   <module>   sZ   #%	H			1			 (	E			*	