ó
ò™xTc           @   s<   d  d l  m Z d  d l j j Z d e f d „  ƒ  YZ d S(   iÿÿÿÿ(   t   divisionNt   shared_sitec           B   s/   e  Z d  Z d „  Z e d „  ƒ Z d „  Z RS(   s+    a site shared by two or more scatterers
  c         C   s.   t  | ƒ d k  r! t d ƒ ‚ n  | |  _ d  S(   Ni   s   at least two atoms are expected(   t   lent   InvalidConstraintt   indices(   t   selft   ind_sequence(    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/smtbx/refinement/constraints/site.pyt   __init__   s    c         C   s   t  d „  |  j d Dƒ ƒ S(   Nc         s   s   |  ] } | d  f Vq d S(   t   siteN(    (   t   .0t   idx(    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/smtbx/refinement/constraints/site.pys	   <genexpr>   s    i   (   t   tupleR   (   R   (    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/smtbx/refinement/constraints/site.pyt   constrained_parameters   s    c      	   C   s©   | j  j ƒ  } | j |  j d ƒ } x} t d t |  j ƒ ƒ D]c } | j t j d | d | j  j ƒ  |  j | ƒ} | | j	 |  j | _
 | | j |  j | <q> Wd  S(   Ni    i   t	   referencet	   scatterer(   t	   structuret
   scattererst   add_new_site_parameterR   t   xrangeR   t   addt   _R   t   asu_scatterer_parametersR   t   shared_sites(   R   t   reparametrisationR   R   t   it   param(    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/smtbx/refinement/constraints/site.pyt   add_to   s    	(   t   __name__t
   __module__t   __doc__R   t   propertyR   R   (    (    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/smtbx/refinement/constraints/site.pyR      s   	(   t
   __future__R    t   smtbx.refinement.constraintst
   refinementt   constraintsR   t   objectR   (    (    (    sO   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/smtbx/refinement/constraints/site.pyt   <module>   s   