ó
¢áSc           @` sß  d  Z  d d l m Z m Z m Z d d l Z d d l Z d d l Z d d l m	 Z	 m
 Z
 e j d k rz e	 d ƒ Z n e	 d ƒ Z d „  Z d	 „  Z d
 „  Z d „  Z e j e	 d ƒ ƒ Z e j e	 d ƒ ƒ Z e j e	 d ƒ ƒ Z i e e	 d ƒ 6Z d „  Z d „  Z d e _ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d „  Z d „  Z i d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d  d  6d! d! 6d" d" 6d# d# 6d$ d$ 6d% d% 6d& d& 6d' d( 6d) d* 6d+ d, 6d- d. 6d/ d0 6d1 d1 6d2 d3 6Z d4 j  e j! ƒ  ƒ Z" i d d 6d d 6d d 6d5 d 6d6 d 6d7 d 6d8 d 6d7 d 6d8 d  6d9 d! 6d: d" 6d; d# 6d$ d$ 6d% d% 6d' d( 6d) d* 6d- d. 6d/ d0 6d1 d1 6d2 d3 6Z# d4 j  e# j! ƒ  ƒ Z$ d< e% d= „ Z& d> „  Z' d? „  Z( d@ „  Z) d S(A   s_   
A place for code to be called from core C-code.

Some things are more easily handled Python.

i    (   t   divisiont   absolute_importt   print_functionN(   t   asbytest   bytest   littlet   <t   >c         C` sÊ  d d l  m } g  } t |  j ƒ  ƒ } x| D] } |  | } t | ƒ } t | t ƒ sg | d k rv t d ƒ ‚ n  | d k r˜ | d | k r˜ q/ n  t | d ƒ } | d k  rÃ t d ƒ ‚ n  | | d d | ƒ}	 |	 j	 d k r÷ t d	 ƒ ‚ n  | d k r| d }
 n d  }
 | j | |	 | |
 f ƒ q/ W| j d
 d „  ƒ g  | D] } | d ^ qM} g  | D] } | d ^ qj} g  | D] } | d ^ q‡} g  | D] } | d ^ q¤} | | | | f S(   Ni   (   t   dtypei   i   s   entry not a 2- or 3- tuplei    s   invalid offset.t   aligns   all itemsizes must be fixed.t   keyc         S` s   |  d S(   Ni   (    (   t   x(    (    sN   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/numpy/core/_internal.pyt   <lambda>+   s    (   i   i   (   t
   multiarrayR   t   listt   keyst   lent
   isinstancet   tuplet
   ValueErrort   intt   itemsizet   Nonet   appendt   sort(   t   adictR	   R   t	   allfieldst   fnamest   fnamet   objt   nt   numt   formatt   titleR   t   namest   formatst   offsetst   titles(    (    sN   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/numpy/core/_internal.pyt   _makenames_list   s4    
c   	      C` s  d d l  m } y |  d } Wn t k
 r7 d  } n X| d  k rb t |  | ƒ \ } } } } n‚ g  } g  } g  } xm | D]e } |  | } | j | d ƒ | j | d ƒ t | ƒ d k rÓ | j | d ƒ q{ | j d  ƒ q{ W| i | d 6| d 6| d 6| d	 6| ƒ S(
   Ni   (   R   iÿÿÿÿi    i   R"   R#   R$   R%   (   R   R   t   KeyErrorR   R&   R   R   (	   R   R	   R   R"   R#   R$   R%   t   namet   res(    (    sN   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/numpy/core/_internal.pyt
   _usefields6   s*    

c         C` s¹  |  j  } | d  k r‡ |  j } | d  k rl |  j d  k r@ |  j S|  j j ƒ  } | rb |  j | f S|  j Sq‡ t | d ƒ | d f Sn  |  j } g  | D] } | | | f ^ q— } g  } d } xò | D]ê }	 |	 d | k r|	 d | }
 | j d d |
 f ƒ | |
 7} n  t	 |	 ƒ d k r8|	 d |	 d f } n
 |	 d } |	 d j r}| t |	 d j d ƒ |	 d j d f } n | t |	 d ƒ f } | |	 d j
 7} | j | ƒ qÇ W| S(   Ni    i   t    s   |V%di   i   (   t   fieldsR   t   subdtypet   metadatat   strt   copyt   _array_descrR"   R   R   R   (   t
   descriptorR,   R-   t   newR"   R   t   ordered_fieldst   resultt   offsett   fieldR   R(   t   tup(    (    sN   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/numpy/core/_internal.pyR1   W   s<    		
	$
c         C` s#   d d l  m } | j |  | | ƒ S(   Ni   (   t   ndarray(   R   R9   t   __new__(   t   subtypet   shapeR   R9   (    (    sN   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/numpy/core/_internal.pyt   _reconstruct„   s    sw   (?P<order1>[<>|=]?)(?P<repeats> *[(]?[ ,0-9L]*[)]? *)(?P<order2>[<>|=]?)(?P<dtype>[A-Za-z0-9.]*(?:\[[a-zA-Z0-9,.]+\])?)s   \s*,\s*s   \s+$t   =c   
      C` s  d } g  } x	| t  |  ƒ k  rt j |  d | ƒ} y | j ƒ  \ } } } } Wn7 t t f k
 r‹ t d t  | ƒ d |  f ƒ ‚ n X| j ƒ  } | t  |  ƒ k  rt j |  d | ƒrÎ t  |  ƒ } qt	 j |  d | ƒ} | st d t  | ƒ d |  f ƒ ‚ n  | j ƒ  } n  | t
 d ƒ k r6| } nj | t
 d ƒ k rQ| } nO t j | | ƒ } t j | | ƒ } | | k ršt d | | f ƒ ‚ n  | } | t
 d ƒ t
 d ƒ t g k rÐt
 d ƒ } n  | | } | t
 d ƒ k rõ| }	 n | t | ƒ f }	 | j |	 ƒ q W| S(	   Ni    t   poss*   format number %d of "%s" is not recognizedi   R+   s/   inconsistent byte-order specification %s and %st   |R>   (   R   t	   format_ret   matcht   groupst	   TypeErrort   AttributeErrorR   t   endt   space_ret   sep_reR   t
   _convordert   gett   _nbot   evalR   (
   t   astrt
   startindexR5   t   mot   order1t   repeatst   order2R   t   ordert   newitem(    (    sN   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/numpy/core/_internal.pyt   _commastring—   sH    		!
	c          C` s¢   d d l  m }  t j } | d  k	 r) | S|  d ƒ j } d d  l } | d k r\ | j } n9 | d k rt | j } n! | d k rŒ | j	 } n	 | j } | t _ | S(   Ni   (   R   t   pi    t   it   lt   q(
   R   R   t   _getintp_ctypet   cacheR   t   chart   ctypest   c_intt   c_longt
   c_longlong(   R   t   valR\   R]   (    (    sN   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/numpy/core/_internal.pyRZ   Ä   s    			t   _missing_ctypesc           B` s   e  Z d  „  Z d „  Z RS(   c         C` s   | S(   N(    (   t   selfR   R   (    (    sN   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/numpy/core/_internal.pyt   castÚ   s    c         C` s   | S(   N(    (   Rc   R   (    (    sN   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/numpy/core/_internal.pyt   c_void_pÝ   s    (   t   __name__t
   __module__Rd   Re   (    (    (    sN   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/numpy/core/_internal.pyRb   Ù   s   	t   _ctypesc           B` s§   e  Z d d  „ Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 e e d d d	 ƒZ e e d d d
 ƒZ e e	 d d d ƒZ e e
 d d d ƒZ RS(   c         C` sv   y d d  l  } | |  _ Wn t k
 r8 t ƒ  |  _ n X| |  _ | |  _ |  j j d k ri t |  _ n	 t	 |  _ d  S(   Ni    (
   R]   Rh   t   ImportErrorRb   t   _arrt   _datat   ndimt   Truet   _zerodt   False(   Rc   t   arrayt   ptrR]   (    (    sN   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/numpy/core/_internal.pyt   __init__á   s    		c         C` s   |  j  j |  j | ƒ S(   N(   Rh   Rd   Rk   (   Rc   R   (    (    sN   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/numpy/core/_internal.pyt   data_asî   s    c         C` s'   |  j  r d  S| |  j j |  j j Œ  S(   N(   Rn   R   Rj   Rl   R<   (   Rc   R   (    (    sN   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/numpy/core/_internal.pyt   shape_asñ   s    	c         C` s'   |  j  r d  S| |  j j |  j j Œ  S(   N(   Rn   R   Rj   Rl   t   strides(   Rc   R   (    (    sN   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/numpy/core/_internal.pyt
   strides_asö   s    	c         C` s   |  j  S(   N(   Rk   (   Rc   (    (    sN   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/numpy/core/_internal.pyt   get_dataû   s    c         C` s*   |  j  r d  St ƒ  |  j j |  j j Œ  S(   N(   Rn   R   RZ   Rj   Rl   R<   (   Rc   (    (    sN   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/numpy/core/_internal.pyt	   get_shapeþ   s    	c         C` s*   |  j  r d  St ƒ  |  j j |  j j Œ  S(   N(   Rn   R   RZ   Rj   Rl   Ru   (   Rc   (    (    sN   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/numpy/core/_internal.pyt   get_strides  s    	c         C` s   |  j  j |  j ƒ S(   N(   Rh   Re   Rk   (   Rc   (    (    sN   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/numpy/core/_internal.pyt   get_as_parameter  s    t   docs   c-types datas   c-types shapes   c-types stridess   _as parameter_N(   Rf   Rg   R   Rr   Rs   Rt   Rv   Rw   Rx   Ry   Rz   t   propertyt   dataR<   Ru   t   _as_parameter_(    (    (    sN   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/numpy/core/_internal.pyRh   à   s   							c         C` s¹   |  j  } t | ƒ } t | t ƒ r0 | g } n  t | t t f ƒ r¢ xF | D]> } y | j | ƒ WqL t k
 r‰ t d | f ƒ ‚ qL XqL Wt t | ƒ | ƒ St d | f ƒ ‚ d  S(   Ns   unknown field name: %ss   unsupported order value: %s(   R"   R   R   R/   R   t   removeR   (   t   datatypeRS   t   oldnamest	   nameslistR(   (    (    sN   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/numpy/core/_internal.pyt	   _newnames  s    	c         C` s  d d l  m } m } m } |  j } g  | D] } | | j k r, | ^ q, } g  | D]& } | | j k rT | j | d ^ qT } g  | D]& } | | j k r‡ | j | d ^ q‡ }	 i | d 6| d 6|	 d 6| j d 6}
 |  j d |
 ƒ } i |
 d d 6|
 d d 6} | | d | d	 t ƒS(
   Ni   (   t   emptyR   Rp   i    R"   R#   R$   R   R   R0   (	   R   R„   R   Rp   R"   R,   R   t   viewRm   (   t   aryR,   R„   R   Rp   t   dtR(   R"   R#   R$   t
   view_dtypeR…   t
   copy_dtype(    (    sN   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/numpy/core/_internal.pyt   _index_fields$  s    	(33%t   ?t   bt   Bt   ht   HRW   t   IRX   t   LRY   t   Qt   et   ft   dt   gt   Ft   Zft   Dt   Zdt   Gt   Zgt   St   st   Ut   wt   Ot   VR   R+   t   i2t   u2t   i4t   u4t   i8t   u8t   f2t   @c         ` sK  d d l  m } i  ‰ d } t } t } d } t } d }	 d g ‰  ‡  f d †  ‰ ‡  ‡ ‡ f d †  }
 x(|  r‘d  } |  d d k r” |  d }  Pn  d  } |  d d k rï |  j d ƒ } t t t |  d | !j d	 ƒ ƒ ƒ } |  | d }  n  |  d d k r+|  d } | d k rd } n  |  d }  n  | d k rFt	 } t
 } n t } t } d } |  d j ƒ  r¿d } x1 t d t |  ƒ ƒ D] } |  | j ƒ  s„Pq„q„Wt |  |  ƒ } |  | }  n  t } |  d  d k r t |  d d | d t ƒ\ } }  } } nÎ |  d | k r¾| } |  d d k r/d } n d } |  |  } |  | }  | d k } | | } | d k r‚| d | 7} d } n  i d d
 6d d 6j | | ƒ } | | | ƒ } | j } n t d |  ƒ ‚ d } | d
 k rr| | } | j | } | | 7} | d k rX| d k s9| d  k	 rKt | ƒ d k rKt | | ƒ } qX| | 7} n  | | t | | ƒ } n  | d k r–| | | f f ƒ } n  | d  k	 r·| | | f ƒ } n  t } |  r|  j d ƒ r|  d j d ƒ d } |  d | !} |  | d }  t } t } n	 |
 ƒ  } | s)| rq| ˆ k rHt d | ƒ ‚ n  | | f ˆ | <| }	 | sqˆ ƒ  qqn  | } | | j 7} | | 7} qj Wt ˆ ƒ d k r×| r×ˆ d d d k r×| r×ˆ d d } n | ˆ ƒ } | | j } | d
 k r| | | 7} n  | r-| r-t | | ƒ } n  | rC| |  | | f S| Sd  S(   Ni    (   R   i   c           ` s   ˆ  d c d 7<d  S(   Ni    i   (    (    (   t   dummy_name_index(    sN   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/numpy/core/_internal.pyt   next_dummy_nameu  s    c          ` s6   x/ t  r1 d ˆ  d }  |  ˆ k r' |  Sˆ ƒ  q Wd  S(   Ns   f%di    (   Rm   (   R(   (   R«   R,   R¬   (    sN   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/numpy/core/_internal.pyt   get_dummy_namew  s
    	t   }t   (t   )t   ,Rª   R>   R   R   t   ^t   !i   s   T{t	   byteordert   is_subdtypet   ZR   t   USVs   %ds'   Unknown PEP 3118 data type specifier %rt   :s+   Duplicate field name '%s' in PEP3118 formatt   f0(   Rª   R>   R   R   R²   R³   (   Rª   R²   (   t   numpy.core.multiarrayR   Ro   R   t   indexR   t   mapR   t   splitt   _pep3118_native_mapt   _pep3118_native_typecharst   _pep3118_standard_mapt   _pep3118_standard_typecharst   isdigitt   rangeR   t   _dtype_from_pep3118Rm   RJ   t	   alignmentR   R   t   _prodt   _add_trailing_paddingt   _gcdt
   startswitht   RuntimeError(   t   specR´   Rµ   R   R6   t   explicit_namet   this_explicit_namet   common_alignmentt
   is_paddingt   last_offsetR­   t   valueR<   t   jt   type_mapt   type_map_charsR   R	   t   next_byteordert   typechart	   dtypechart   numpy_byteordert   extra_offsett   start_paddingt   intra_paddingRW   R(   t   rett   padding(    (   R«   R,   R¬   sN   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/numpy/core/_internal.pyRÄ   i  sÐ    		
%
		(	


	 
*		-c         C` sB  d d l  m } |  j d
 k r5 i |  d f d 6} n t |  j ƒ } |  j r­ |  j d d k r­ |  d j d k r­ d | d d j | | d d f | d <| | ƒ }  n‘ d } xE t rú d	 | } | | k rí d | |  j f | | <Pn  | d 7} q¶ W| | ƒ }  d | k r>t	 |  j ƒ } d | d <t
 | ƒ |  _ n  |  S(   sB   Inject the specified number of padding bytes at the end of a dtypei    (   R   R¹   iÿÿÿÿR+   R¢   s   V%di   s   pad%dN(   Rº   R   R,   R   t   dictR"   R\   R   Rm   R   R   (   RÑ   RÝ   R   t   vfieldsRÒ   R(   R"   (    (    sN   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/numpy/core/_internal.pyRÇ     s,    	

c         C` s%   d } x |  D] } | | 9} q W| S(   Ni   (    (   t   aRV   R   (    (    sN   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/numpy/core/_internal.pyRÆ   0  s    c         C` s"   x | r | |  | }  } q W|  S(   s0   Calculate the greatest common divisor of a and b(    (   Rà   RŒ   (    (    sN   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/numpy/core/_internal.pyRÈ   6  s    	(*   t   __doc__t
   __future__R    R   R   t   ret   syst   warningst   numpy.compatR   R   R´   RK   R&   R*   R1   R=   t   compileRA   RH   RG   RI   RU   RZ   R   R[   t   objectRb   Rh   Rƒ   RŠ   R¾   t   joinR   R¿   RÀ   RÁ   Ro   RÄ   RÇ   RÆ   RÈ   (    (    (    sN   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/numpy/core/_internal.pyt   <module>   s”   	"	!	-			-		4		

¦	!	