
\K]c           @` s  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
 m Z d  d l m Z d  d l m Z m Z m Z d  d l m Z m Z m Z m Z m Z m Z m Z m Z m Z e e  d e f d     Y Z e d	 e f d
     Y Z e e  d e f d     Y Z  e e!  d e f d     Y Z" d e f d     YZ# x$ e D] Z$ e e$ d e% e#  qgWe e
 d e
 e#  e e d e e#  e d e f d     Y Z& e d e f d     Y Z' e d e f d     Y Z( e d e f d     Y Z) d   Z* d   Z+ e, e- e	 j. e	 j/ f   e, e- e	 j0 e	 j1 f   Z2 e3 d   e j4 e2 e2  D  Z5 d e f d     YZ6 e e j7  d e6 f d      Y Z8 e e j9  d e6 f d!     Y Z8 e e j:  d" e6 f d#     Y Z; e e j<  d" e6 f d$     Y Z; e e j=  d% e6 f d&     Y Z> e e j?  d% e6 f d'     Y Z> e se e j@  d( e6 f d)     Y ZA e e jB  d( e6 f d*     Y ZA n  e e jC  d+ e f d,     Y ZD e e jE  d+ e f d-     Y ZD e e jF  d. e f d/     Y ZG e e jH  d. e f d0     Y ZG e e jI  d1 e f d2     Y ZJ e e jK  d1 e f d3     Y ZJ e eL  d4 e f d5     Y ZM e e jN  d6 e f d7     Y ZO e e jP  d6 e f d8     Y ZO e eN  d9 eO f d:     Y ZQ d; e f d<     YZR e e jS  d= eR f d>     Y ZT e e jU  d= eR f d?     Y ZT e e jV  d@ eR f dA     Y ZW e e jX  d@ eR f dB     Y ZW dC e6 f dD     YZY e e jZ  dE eY f dF     Y Z[ e e j\  dE eY f dG     Y Z[ e e j]  dH eY f dI     Y Z^ e e j_  dH eY f dJ     Y Z^ e e j`  dK eY f dL     Y Za e e jb  dK eY f dM     Y Za e e jc  dN e f dO     Y Zd dP e f dQ     YZe e e jf  dR ee f dS     Y Zg e e jh  dT ee f dU     Y Zi e e jj  dV e f dW     Y Zk dX e f dY     YZl dZ e f d[     YZm e e jn  d\ el f d]     Y Zo e e jp  d^ el f d_     Y Zq e e jr  d` el f da     Y Zs e e jt  db el f dc     Y Zu e e jv  dd em f de     Y Zw e e jv  df e f dg     Y Zx e e jy  dh ex f di     Y Zz e e jy  dj em f dk     Y Z{ dl e f dm     YZ| e e jv  dn e| f do     Y Z} e e jy  dp e| f dq     Y Z~ e e jt  dr e| f ds     Y Z e e jr  dt e| f du     Y Z e e jp  dv e| f dw     Y Z e e jn  dx e| f dy     Y Z e e j7  dz e f d{     Y Z d| e f d}     YZ e e j  d~ e f d     Y Z e e j  d e f d     Y Z d   Z e e j  d e f d     Y Z e e j  d e f d     Y Z e e  d e f d     Y Z e e3  d e f d     Y Z e e j  d e f d     Y Z e e j  d e f d     Y Z e d e f d     Y Z e d e f d     Y Z e d e f d     Y Z e d e f d     Y Z e d e f d     Y Z e d e f d     Y Z e d e f d     Y Z e d e f d     Y Z d e f d     YZ e e  d e f d     Y Z e e  d e f d     Y Z e e  d e f d     Y Z e e  d e f d     Y Z e e  d e f d     Y Z e e  d e f d     Y Z e e  d e f d     Y Z e e  d e f d     Y Z e e  d e f d     Y Z e e  d e f d     Y Z e e  d e f d     Y Z e e  d e f d     Y Z e d e f d     Y Z e d e f d     Y Z d  d l m Z m Z e e  e e  d e f d     Y  Z d  d l m Z m Z m Z m Z m Z d e f d     YZ d e	 j f d     YZ e j e  d    Z e e  d    Z e e  d e j f d     Y Z e e d d  e e d d  d S(   i    (   t   print_functiont   divisiont   absolute_importN(   t   typest   pranget   errors(   t   internal_prange(   t	   PYVERSIONt   RANGE_ITER_OBJECTSt   IS_PY3(	   t   AttributeTemplatet   ConcreteTemplatet   AbstractTemplatet   infer_globalt   infert   infer_getattrt	   signaturet   bound_functiont   make_callable_templatet   Printc           B` s   e  Z d    Z RS(   c         C` ss   x` | D]X } |  j  j d | f i   } | d  k rG t d |   n  | j t j k s t  q Wt t j |  S(   Nt
   print_items   Type %s is not printable.(	   t   contextt   resolve_function_typet   Nonet	   TypeErrort   return_typeR   t   nonet   AssertionErrorR   (   t   selft   argst   kwst   at   sig(    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyt   generic   s    (   t   __name__t
   __module__R!   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR      s   t	   PrintItemc           B` s   e  Z d  Z d   Z RS(   R   c         C` s   | \ } t  t j |  S(   N(   R   R   R   (   R   R   R   t   arg(    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR!       s    	(   R"   R#   t   keyR!   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR$      s   t   Absc           B` s   e  Z g  e e j  D] Z e e e  ^ q Z g  e e j  D] Z e e e  ^ qA Z	 g  e e j
  D] Z e e j e  ^ ql Z e e	 e Z RS(    (   R"   R#   t   sortedR   t   signed_domaint   tyR   t	   int_casest   real_domaint
   real_casest   complex_domaint   underlying_floatt   complex_casest   cases(    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR'   %   s
   +++t   Slicec           B` s   e  Z e e j  e e j e j e j  e e j e j e j  e e j e j e j  e e j e j e j  e e j e j e j e j  e e j e j e j e j  e e j e j e j e j  e e j e j e j e j  g	 Z RS(    (	   R"   R#   R   R   t   slice2_typeR   t   intpt   slice3_typeR1   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR2   .   s   t   Rangec           B` s   e  Z e e j e j  e e j e j e j  e e j e j e j e j  e e j e j  e e j e j e j  e e j e j e j e j  e e j e j	  e e j e j	 e j	  e e j e j	 e j	 e j	  g	 Z
 RS(    (   R"   R#   R   R   t   range_state32_typet   int32t   range_state64_typet   int64t   unsigned_range_state64_typet   uint64R1   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR6   =   s   		t
   typing_keyt   GetIterc           B` s   e  Z d  Z d   Z RS(   t   getiterc         C` s<   | s t   | \ } t | t j  r8 t | j |  Sd  S(   N(   R   t
   isinstanceR   t   IterableTypeR   t   iterator_type(   R   R   R   t   obj(    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR!   W   s    	(   R"   R#   R&   R!   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR>   S   s   t   IterNextc           B` s   e  Z d  Z d   Z RS(   t   iternextc         C` sK   | s t   | \ } t | t j  rG t t j | j t j  |  Sd  S(   N(   R   R@   R   t   IteratorTypeR   t   Pairt
   yield_typet   boolean(   R   R   R   t   it(    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR!   b   s    	(   R"   R#   R&   R!   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyRD   ^   s   t	   PairFirstc           B` s   e  Z d  Z d Z d   Z RS(   s?   
    Given a heterogeneous pair, return the first element.
    t
   pair_firstc         C` s<   | s t   | \ } t | t j  r8 t | j |  Sd  S(   N(   R   R@   R   RG   R   t
   first_type(   R   R   R   t   pair(    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR!   p   s    	(   R"   R#   t   __doc__R&   R!   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyRK   i   s   t
   PairSecondc           B` s   e  Z d  Z d Z d   Z RS(   s@   
    Given a heterogeneous pair, return the second element.
    t   pair_secondc         C` s<   | s t   | \ } t | t j  r8 t | j |  Sd  S(   N(   R   R@   R   RG   R   t   second_type(   R   R   R   RN   (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR!   ~   s    	(   R"   R#   RO   R&   R!   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyRP   w   s   c          G` s   t  t j j d   |  D  S(   Nc         s` s   |  ] } | j  Vq d  S(   N(   t   bitwidth(   t   .0t   tp(    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pys	   <genexpr>   s    (   t   maxR   R4   RS   (   t   inputs(    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyt   choose_result_bitwidth   s    c          G` s5   t  |    } t d   |  D  } t j j | |  S(   sv   
    Choose the integer result type for an operation on integer inputs,
    according to the integer typing NBEP.
    c         s` s   |  ] } | j  Vq d  S(   N(   t   signed(   RT   RU   (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pys	   <genexpr>   s    (   RX   t   anyR   t   Integert   from_bitwidth(   RW   RS   RY   (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyt   choose_result_int   s    c         c` s0   |  ]& \ } } t  t | |  | |  Vq d  S(   N(   R   R]   (   RT   t   op1t   op2(    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pys	   <genexpr>   s   t   BinOpc           B` sx   e  Z e e  Z e g  e e j  D] Z e	 e e e  ^ q% 7Z e g  e e j
  D] Z e	 e e e  ^ qW 7Z RS(    (   R"   R#   t   listt   integer_binop_casesR1   R(   R   R,   t   opR   R.   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR`      s   2t   BinOpAddc           B` s   e  Z RS(    (   R"   R#   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyRd      s   c           B` s   e  Z RS(    (   R"   R#   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyRd      s   t   BinOpSubc           B` s   e  Z RS(    (   R"   R#   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyRe      s   c           B` s   e  Z RS(    (   R"   R#   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyRe      s   t   BinOpMulc           B` s   e  Z RS(    (   R"   R#   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyRf      s   c           B` s   e  Z RS(    (   R"   R#   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyRf      s   t   BinOpDivc           B` s   e  Z RS(    (   R"   R#   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyRg      s   c           B` s   e  Z RS(    (   R"   R#   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyRg      s   t   BinOpModc           B` sF   e  Z e e  Z e g  e e j  D] Z e	 e e e  ^ q% 7Z RS(    (
   R"   R#   Ra   Rb   R1   R(   R   R,   Rc   R   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyRh      s   c           B` sF   e  Z e e  Z e g  e e j  D] Z e	 e e e  ^ q% 7Z RS(    (
   R"   R#   Ra   Rb   R1   R(   R   R,   Rc   R   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyRh      s   t   BinOpTrueDivc           B` s   e  Z g  e j e e  D]! \ Z Z e e j	 e e  ^ q Z
 e
 g  e e j  D] Z e e e e  ^ qS 7Z
 e
 g  e e j  D] Z e e e e  ^ q 7Z
 RS(    (   R"   R#   t	   itertoolst   productt   machine_intsR^   R_   R   R   t   float64R1   R(   R,   Rc   R.   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyRi      s   72c           B` s   e  Z g  e j e e  D]! \ Z Z e e j	 e e  ^ q Z
 e
 g  e e j  D] Z e e e e  ^ qS 7Z
 e
 g  e e j  D] Z e e e e  ^ q 7Z
 RS(    (   R"   R#   Rj   Rk   Rl   R^   R_   R   R   Rm   R1   R(   R,   Rc   R.   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyRi      s   72t   BinOpFloorDivc           B` sF   e  Z e e  Z e g  e e j  D] Z e	 e e e  ^ q% 7Z RS(    (
   R"   R#   Ra   Rb   R1   R(   R   R,   Rc   R   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyRn      s   c           B` sF   e  Z e e  Z e g  e e j  D] Z e	 e e e  ^ q% 7Z RS(    (
   R"   R#   Ra   Rb   R1   R(   R   R,   Rc   R   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyRn      s   t   DivModc           B` sL   e  Z e e e j  Z g  e D]$ Z e e j	 e d   e e  ^ q  Z
 RS(   i   (   R"   R#   Rl   R(   R   R,   t   _tysR*   R   t   UniTupleR1   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyRo      s   t
   BinOpPowerc           B` s   e  Z e e  Z e g  e j e j e j f D] Z	 e
 e j e j e	  ^ q. 7Z e g  e j e j e j f D] Z	 e
 e j e j e	  ^ qo 7Z e g  e e j  D] Z	 e
 e	 e	 e	  ^ q 7Z e g  e e j  D] Z	 e
 e	 e	 e	  ^ q 7Z RS(    (   R"   R#   Ra   Rb   R1   R   R8   R:   R<   Rc   R   t   float32Rm   R(   R,   R.   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyRr      s   ;;,c           B` s   e  Z e e  Z e g  e j e j e j f D] Z	 e
 e j e j e	  ^ q. 7Z e g  e j e j e j f D] Z	 e
 e j e j e	  ^ qo 7Z e g  e e j  D] Z	 e
 e	 e	 e	  ^ q 7Z e g  e e j  D] Z	 e
 e	 e	 e	  ^ q 7Z RS(    (   R"   R#   Ra   Rb   R1   R   R8   R:   R<   Rc   R   Rs   Rm   R(   R,   R.   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyRr     s   ;;,t   PowerBuiltinc           B` s   e  Z RS(    (   R"   R#   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyRt     s   t   BitwiseShiftOperationc           B` s   e  Z g  e e j  D]= Z e j e j g D]$ Z e	 e
 e e j  e e  ^ q, q Z e g  e e j  D]= Z e j e j g D]$ Z e	 e
 e e j  e e  ^ q ql 7Z e Z RS(    (   R"   R#   R(   R   R)   Rc   R<   R:   R_   R   RV   R4   R1   t   unsigned_domaint   uintpt   Falset   unsafe_casting(    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyRu     s   
=>t   BitwiseLeftShiftc           B` s   e  Z RS(    (   R"   R#   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyRz   2  s   c           B` s   e  Z RS(    (   R"   R#   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyRz   6  s   t   BitwiseRightShiftc           B` s   e  Z RS(    (   R"   R#   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR{   ;  s   c           B` s   e  Z RS(    (   R"   R#   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR{   @  s   t   BitwiseLogicOperationc           B` s<   e  Z e e j e j e j  g Z e e e  7Z e Z	 RS(    (
   R"   R#   R   R   RI   R1   Ra   Rb   Rx   Ry   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR|   E  s   t
   BitwiseAndc           B` s   e  Z RS(    (   R"   R#   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR}   K  s   c           B` s   e  Z RS(    (   R"   R#   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR}   P  s   t	   BitwiseOrc           B` s   e  Z RS(    (   R"   R#   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR~   U  s   c           B` s   e  Z RS(    (   R"   R#   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR~   Z  s   t
   BitwiseXorc           B` s   e  Z RS(    (   R"   R#   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR   _  s   c           B` s   e  Z RS(    (   R"   R#   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR   d  s   t   BitwiseInvertc           B` s   e  Z e e j e j  g Z e g  e e j  D] Z e e	 e  e  ^ q1 7Z e g  e e j
  D] Z e e	 e  e  ^ qf 7Z e Z RS(    (   R"   R#   R   R   RI   R1   R(   Rv   Rc   R]   R)   Rx   Ry   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR   m  s   55t   UnaryOpc           B` s   e  Z g  e e j  D] Z e e e  e  ^ q Z e g  e e j	  D] Z e e e  e  ^ qJ 7Z e g  e e j
  D] Z e e e  ^ q 7Z e g  e e j  D] Z e e e  ^ q 7Z e e e j e j  g 7Z RS(    (   R"   R#   R(   R   Rv   Rc   R   R]   R1   R)   R,   R.   R4   RI   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR   y  s
   15//t   UnaryNegatec           B` s   e  Z RS(    (   R"   R#   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR     s   t   UnaryPositivec           B` s   e  Z RS(    (   R"   R#   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR     s   t   UnaryNotc           B` s   e  Z e e j e j  g Z e g  e e j  D] Z e e j e  ^ q1 7Z e g  e e j	  D] Z e e j e  ^ qc 7Z e g  e e j
  D] Z e e j e  ^ q 7Z e g  e e j  D] Z e e j e  ^ q 7Z RS(    (   R"   R#   R   R   RI   R1   R(   R)   Rc   Rv   R,   R.   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR     s
   222t   OrderedCmpOpc           B` s   e  Z e e j e j e j  g Z e g  e e j  D] Z e e j e e  ^ q7 7Z e g  e e j	  D] Z e e j e e  ^ ql 7Z e g  e e j
  D] Z e e j e e  ^ q 7Z RS(    (   R"   R#   R   R   RI   R1   R(   R)   Rc   Rv   R,   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR     s   55t   UnorderedCmpOpc           B` s@   e  Z e j g  e e j  D] Z e e j	 e e  ^ q Z RS(    (
   R"   R#   R   R1   R(   R   R.   Rc   R   RI   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR     s   t   CmpOpLtc           B` s   e  Z RS(    (   R"   R#   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR     s   t   CmpOpLec           B` s   e  Z RS(    (   R"   R#   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR     s   t   CmpOpGtc           B` s   e  Z RS(    (   R"   R#   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR     s   t   CmpOpGec           B` s   e  Z RS(    (   R"   R#   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR     s   t   CmpOpEqc           B` s   e  Z RS(    (   R"   R#   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR     s   t	   ConstOpEqc           B` s   e  Z d    Z RS(   c         C` sT   | s t   | \ } } t | t j  rP t | t j  rP t t j | |  Sd  S(   N(   R   R@   R   t   LiteralR   RI   (   R   R   R   t   arg1t   arg2(    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR!     s    $(   R"   R#   R!   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR     s   t   ConstOpNotEqc           B` s   e  Z RS(    (   R"   R#   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR     s   t   CmpOpNec           B` s   e  Z RS(    (   R"   R#   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR     s   t   TupleComparec           B` s   e  Z d    Z RS(   c         C` s   | \ } } t  | t j  r t  | t j  r xd t | |  D]= \ } } |  j j |  j | | f i   } | d  k r@ Pq@ q@ Wt t j	 | |  Sn  d  S(   N(
   R@   R   t	   BaseTuplet   zipR   R   R&   R   R   RI   (   R   R   R   t   lhst   rhst   ut   vt   res(    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR!     s    $!(   R"   R#   R!   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR     s   t   TupleEqc           B` s   e  Z RS(    (   R"   R#   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR     s   t   TupleNec           B` s   e  Z RS(    (   R"   R#   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR     s   t   TupleGec           B` s   e  Z RS(    (   R"   R#   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR     s   t   TupleGtc           B` s   e  Z RS(    (   R"   R#   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR     s   t   TupleLec           B` s   e  Z RS(    (   R"   R#   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR     s   t   TupleLtc           B` s   e  Z RS(    (   R"   R#   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR     s   t   TupleAddc           B` s   e  Z d    Z RS(   c         C` s   t  |  d k r | \ } } t | t j  r t | t j  r t | t j  r t | t j  r t j j t |  t |   } t | | |  Sn  d  S(   Ni   (   t   lenR@   R   R   t   BaseNamedTuplet
   from_typest   tupleR   (   R   R   R   R   t   bR   (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR!     s    $"(   R"   R#   R!   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR     s   t   CmpOpIdentityc           B` s   e  Z d    Z RS(   c         C` s   | \ } } t  t j | |  S(   N(   R   R   RI   (   R   R   R   R   R   (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR!     s    (   R"   R#   R!   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR     s   t   CmpOpIsc           B` s   e  Z RS(    (   R"   R#   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR   	  s   t
   CmpOpIsNotc           B` s   e  Z RS(    (   R"   R#   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR     s   c         C` sC   t  |  t j  r |  St  |  t j  r? |  j r8 t j St j Sd S(   sZ   
    Normalize the *index* type (an integer or slice) for indexing a 1D
    sequence.
    N(   R@   R   t	   SliceTypeR[   RY   R4   Rw   (   t   index(    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyt   normalize_1d_index  s    t   GetItemCPointerc           B` s   e  Z d    Z RS(   c         C` sZ   | s t   | \ } } t | t j  rV t | t j  rV t | j | t |   Sd  S(   N(   R   R@   R   t   CPointerR[   R   t   dtypeR   (   R   R   R   t   ptrt   idx(    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR!   !  s    $(   R"   R#   R!   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR     s   t   SetItemCPointerc           B` s   e  Z d    Z RS(   c         C` sc   | s t   | \ } } } t | t j  r_ t | t j  r_ t t j | t |  | j  Sd  S(   N(	   R   R@   R   R   R[   R   R   R   R   (   R   R   R   R   R   t   val(    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR!   *  s    $(   R"   R#   R!   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR   (  s   t   Lenc           B` s   e  Z d    Z RS(   c         C` sg   | s t   | \ } t | t j t j f  rA t t j |  St | t j  rc t | j |  Sd  S(   N(	   R   R@   R   t   BufferR   R   R4   t	   RangeTypeR   (   R   R   R   R   (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR!   3  s    	(   R"   R#   R!   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR   1  s   t   TupleConstructorc           B` s   e  Z d    Z RS(   c         C` s^   | s t   t |  d k r2 t t j d   S| \ } t | t j  rZ t | |  Sd  S(   Ni    (    (   R   R   R   R   t   TupleR@   R   (   R   R   R   R   (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR!   =  s    	(   R"   R#   R!   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR   ;  s   t   Containsc           B` s   e  Z d    Z RS(   c         C` sB   | s t   | \ } } t | t j  r> t t j | |  Sd  S(   N(   R   R@   R   t   SequenceR   RI   (   R   R   R   t   seqR   (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR!   J  s    (   R"   R#   R!   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR   H  s   t	   TupleBoolc           B` s   e  Z d    Z RS(   c         C` s<   | s t   | \ } t | t j  r8 t t j |  Sd  S(   N(   R   R@   R   R   R   RI   (   R   R   R   R   (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR!   S  s    	(   R"   R#   R!   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR   Q  s   t   StaticGetItemTuplec           B` s   e  Z d  Z d   Z RS(   t   static_getitemc         C` sy   | \ } } t  | t j  s" d  St  | t  rA | j | } n+ t  | t  rl t j j | j |  } n  t | |  S(   N(   R@   R   R   t   intt   sliceR   R   (   R   R   R   t   tupR   t   ret(    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR!   ^  s    (   R"   R#   R&   R!   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR   Z  s   t   GenericNotInc           B` s   e  Z d  Z d   Z RS(   s   not inc         C` sN   | d  d  d  } |  j  j t j | |  } t | j | j d  d  d   S(   Ni(   R   R   t   operatort   containsR   R   R   (   R   R   R   R    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR!   o  s    (   R"   R#   R&   R!   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR   k  s   t   MemoryViewAttributec           B` sq   e  Z e j Z e d
 k r9 d   Z d   Z d   Z n  d   Z	 d   Z
 d   Z d   Z d   Z d	   Z RS(   i   c         C` s   t  j S(   N(   R   RI   (   R   t   buf(    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyt   resolve_contiguous|  s    c         C` s   t  j S(   N(   R   RI   (   R   R   (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyt   resolve_c_contiguous  s    c         C` s   t  j S(   N(   R   RI   (   R   R   (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyt   resolve_f_contiguous  s    c         C` s   t  j S(   N(   R   R4   (   R   R   (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyt   resolve_itemsize  s    c         C` s   t  j S(   N(   R   R4   (   R   R   (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyt   resolve_nbytes  s    c         C` s   t  j S(   N(   R   RI   (   R   R   (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyt   resolve_readonly  s    c         C` s   t  j t  j | j  S(   N(   R   Rq   R4   t   ndim(   R   R   (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyt   resolve_shape  s    c         C` s   t  j t  j | j  S(   N(   R   Rq   R4   R   (   R   R   (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyt   resolve_strides  s    c         C` s   t  j S(   N(   R   R4   (   R   R   (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyt   resolve_ndim  s    (   i   (   R"   R#   R   t
   MemoryViewR&   R   R   R   R   R   R   R   R   R   R   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR   w  s   								t   BooleanAttributec           B` s/   e  Z e j Z d    Z e d  d    Z RS(   c         C` s   t  j |  S(   N(   R   t   NumberClass(   R   R*   (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyt   resolve___class__  s    s   number.itemc         C` s!   | s t   | s t |  Sd  S(   N(   R   R   (   R   R*   R   R   (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyt   resolve_item  s    (   R"   R#   R   t   BooleanR&   R   R   R   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR     s   		t   NumberAttributec           B` sV   e  Z e j Z d    Z d   Z d   Z e d  d    Z	 e d  d    Z
 RS(   c         C` s   t  j |  S(   N(   R   R   (   R   R*   (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR     s    c         C` s   t  | d |  S(   NR/   (   t   getattr(   R   R*   (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyt   resolve_real  s    c         C` s   t  | d |  S(   NR/   (   R   (   R   R*   (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyt   resolve_imag  s    s   complex.conjugatec         C` s$   | s t   | s t   t |  S(   N(   R   R   (   R   R*   R   R   (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyt   resolve_conjugate  s    s   number.itemc         C` s!   | s t   | s t |  Sd  S(   N(   R   R   (   R   R*   R   R   (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR     s    (   R"   R#   R   t   NumberR&   R   R   R   R   R   R   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR     s   				t   SliceAttributec           B` s,   e  Z e j Z d    Z d   Z d   Z RS(   c         C` s   t  j S(   N(   R   R4   (   R   R*   (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyt   resolve_start  s    c         C` s   t  j S(   N(   R   R4   (   R   R*   (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyt   resolve_stop  s    c         C` s   t  j S(   N(   R   R4   (   R   R*   (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyt   resolve_step  s    (   R"   R#   R   R   R&   R   R   R   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR     s   			t   NumberClassAttributec           B` s   e  Z e j Z d    Z RS(   c         ` s7   | j      f d   } t j t d  d |   S(   sN   
        Resolve a number class's constructor (e.g. calling int(...))
        c         ` sX   t  |  t j t j f  rP   j j t j |  f i t j   d 6 } | j	 S Sd  S(   NR   (
   R@   R   R   R   R   R   t   npt   arrayt   DTypeR   (   R   R    (   R   R*   (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyt   typer  s
    	%R&   R   (   t   instance_typeR   t   FunctionR   (   R   t   classtyR   (    (   R   R*   s4   lib/python2.7/site-packages/numba/typing/builtins.pyt   resolve___call__  s    	
(   R"   R#   R   R   R&   R   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR     s   	t   TypeRefAttributec           B` s   e  Z e j Z d    Z RS(   c         ` s\   | j   t  t  rX t  t j  rX    f d   } t j t d  d |   Sd S(   s?  
        Resolve a number class's constructor (e.g. calling int(...))

        Note:

        This is needed because of the limitation of the current type-system
        implementation.  Specifically, the lack of a higher-order type
        (i.e. passing the ``DictType`` vs ``DictType(key_type, value_type)``)
        c          ` s     j  j  |  |  S(   N(   R   R   (   R   t   kwargs(   R   R*   (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyt   redirect  s    R&   R   N(   R   R@   t   typet
   issubclassR   t   TypeR   R   (   R   R   R   (    (   R   R*   s4   lib/python2.7/site-packages/numba/typing/builtins.pyR     s    
	!(   R"   R#   R   t   TypeRefR&   R   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR     s   	t
   MinMaxBasec           B` s   e  Z d    Z d   Z RS(   c         C` s7   x$ | D] } t  | t j  s d  Sq W|  j j |   S(   N(   R@   R   R   R   t   unify_types(   R   t   tysR*   (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyt   _unify_minmax  s    c         C` s   | s t   | s d St |  d k r{ t | d t j  rt t | d  } | sx t d |  j j f   qx q d Sn | } |  j	 |  } | d k	 r t | |  Sd S(   s0   
        Resolve a min() or max() call.
        Ni   i    s   %s() argument is an empty tuple(   R   R   R@   R   R   Ra   R   R&   R"   R   R   R   (   R   R   R   R   t   retty(    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR!     s    (   R"   R#   R   R!   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR     s   	t   Maxc           B` s   e  Z RS(    (   R"   R#   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR   ,  s   t   Minc           B` s   e  Z RS(    (   R"   R#   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR   1  s   t   Roundc           B` s   e  Z e d k  r? e e j e j  e e j e j  g Z n* e e j e j  e e j	 e j  g Z e e e j e j e j  e e j e j e j  g 7Z RS(   i   i    (   i   i    (
   R"   R#   R   R   R   Rs   Rm   R1   R4   R:   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR   6  s   t   Boolc           B` s   e  Z d    Z RS(   c         C` sZ   | s t   | \ } t | t j t j f  rA t t j |  S|  j j t	 j
 | |  S(   N(   R   R@   R   R   R   R   RI   R   R   R   t   truth(   R   R   R   R%   (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR!   N  s
    	(   R"   R#   R!   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR   K  s   t   Intc           B` s   e  Z d    Z RS(   c         C` sd   | s t   | \ } t | t j  r5 t | |  St | t j t j f  r` t t j |  Sd  S(   N(   R   R@   R   R[   R   t   FloatR   R4   (   R   R   R   R%   (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR!   \  s    	(   R"   R#   R!   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR   Y  s   R   c           B` s   e  Z d    Z RS(   c         C` s   | s t   | \ } | t j k r4 t d   n  | t j k rR t d   n  | t j k rq t t j |  S| t j k r t | |  Sd  S(   Ns    float() only support for numberss    float() does not support complex(	   R   R   t   number_domainR   R.   t   integer_domainR   Rm   R,   (   R   R   R   R%   (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR!   j  s    	(   R"   R#   R!   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR   g  s   t   Complexc           B` s   e  Z d    Z RS(   c         C` s  | s t   t |  d k rx | \ } | t j k rF t d   n  | t j k re t t j |  St t j |  Sn t |  d k r| \ } } | t j k s | t j k r t d   n  | | k o t j k n r t t j | |  St t j | |  Sn  d  S(   Ni   s"   complex() only support for numbersi   (	   R   R   R   R   R   Rs   R   t	   complex64t
   complex128(   R   R   R   R%   t   realt   imag(    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR!     s     	(   R"   R#   R!   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR   |  s   t	   Enumeratec           B` s   e  Z d    Z RS(   c         C` s   | s t   | d } t |  d k rO t | d t j  rO t d   n t |  d k rn t |   n  t | t j  r t j |  } t	 | |  Sd  S(   Ni    i   s3   Only integers supported as start value in enumeratei   (
   R   R   R@   R   R[   R   t	   enumerateRA   t   EnumerateTypeR   (   R   R   R   RJ   t   enumerate_type(    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR!     s    
)(   R"   R#   R!   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR    s   t   Zipc           B` s   e  Z d    Z RS(   c         C` sC   | s t   t d   | D  r? t j |  } t | |  Sd  S(   Nc         s` s!   |  ] } t  | t j  Vq d  S(   N(   R@   R   RA   (   RT   RJ   (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pys	   <genexpr>  s    (   R   t   allR   t   ZipTypeR   (   R   R   R   t   zip_type(    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR!     s    (   R"   R#   R!   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR    s   t   Iterc           B` s   e  Z d    Z RS(   c         C` sR   | s t   t |  d k rN | d } t | t j  rN t | j |  Sn  d  S(   Ni   i    (   R   R   R@   R   RA   R   RB   (   R   R   R   RJ   (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR!     s
    
(   R"   R#   R!   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR    s   t   Nextc           B` s   e  Z d    Z RS(   c         C` sR   | s t   t |  d k rN | d } t | t j  rN t | j |  Sn  d  S(   Ni   i    (   R   R   R@   R   RF   R   RH   (   R   R   R   RJ   (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR!     s
    
(   R"   R#   R!   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR    s   t   TypeBuiltinc           B` s   e  Z d    Z RS(   c         C` sX   | s t   t |  d k rT |  j j | d d  } | d  k	 rT t | |  Sn  d  S(   Ni   i    t	   __class__(   R   R   R   t   resolve_getattrR   R   (   R   R   R   R   (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR!     s
    (   R"   R#   R!   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR    s   t   OptionalAttributec           B` s   e  Z e j Z d    Z RS(   c         C` s   |  j  j | j |  S(   N(   R   R  R   (   R   t   optionalt   attr(    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyt   generic_resolve  s    (   R"   R#   R   t   OptionalR&   R  (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR    s   	t   DeferredAttributec           B` s   e  Z e j Z d    Z RS(   c         C` s   |  j  j | j   |  S(   N(   R   R  t   get(   R   t   deferredR  (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR    s    (   R"   R#   R   t   DeferredTypeR&   R  (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR    s   	(   t   get_type_min_valuet   get_type_max_valuet   MinValInferc           B` s   e  Z d    Z RS(   c         C` s^   | s t   t |  d k s% t   t | d t j t j f  sJ t   t | d j |  S(   Ni   i    (   R   R   R@   R   R   R   R   R   (   R   R   R   (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR!     s    %(   R"   R#   R!   (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR    s   (   t   typeof_implt   type_callablet   modelst   register_modelt   make_attribute_wrappert
   IndexValuec           B` s    e  Z d  Z d   Z d   Z RS(   s   
    Index and value
    c         C` s   | |  _  | |  _ d  S(   N(   R   t   value(   R   t   indR   (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyt   __init__  s    	c         C` s   d |  j  |  j f S(   Ns   IndexValue(%f, %f)(   R   R#  (   R   (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyt   __repr__  s    (   R"   R#   RO   R%  R&  (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR"    s   	t   IndexValueTypec           B` s   e  Z d    Z RS(   c         C` s/   | |  _  t t |   j d d j |   d  S(   Nt   names   IndexValueType({})(   t   val_typt   superR'  R%  t   format(   R   R)  (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR%    s    	(   R"   R#   R%  (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR'    s   c         C` s   t  |  j |  } t |  S(   N(   R  R#  R'  (   R   t   cR)  (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyt   typeof_index  s    c         C` s   d   } | S(   Nc         S` s,   |  t  j k s |  t  j k r( t |  Sd  S(   N(   R   R4   Rw   R'  (   R$  t   mval(    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR     s    (    (   R   R   (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyt   type_index_value  s    	t   IndexValueModelc           B` s   e  Z d    Z RS(   c         C` s;   d t  j f d | j f g } t j j |  | | |  d  S(   NR   R#  (   R   R4   R)  R  t   StructModelR%  (   R   t   dmmt   fe_typet   members(    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR%  "  s    (   R"   R#   R%  (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyR0     s   R   R#  (   t
   __future__R    R   R   Rj   t   numpyR   R   t   numbaR   R   R   t   numba.parforR   t   numba.utilsR   R   R	   t   numba.typing.templatesR
   R   R   R   R   R   R   R   R   t   printR   R$   t   absR'   R   R2   R6   t   funct   rangeR>   RD   RK   RP   RX   R]   R(   t   setR4   R:   Rw   R<   Rl   R   Rk   Rb   R`   t   addRd   t   iaddt   subRe   t   isubt   mulRf   t   imult   divRg   t   idivt   modRh   t   imodt   truedivRi   t   itruedivt   floordivRn   t	   ifloordivt   divmodRo   t   powRr   t   ipowRt   Ru   t   lshiftRz   t   ilshiftt   rshiftR{   t   irshiftR|   t   and_R}   t   iandt   or_R~   t   iort   xorR   t   ixort   invertR   R   t   negR   t   posR   t   not_R   R   R   t   ltR   t   leR   t   gtR   t   geR   t   eqR   R   t   neR   R   R   R   R   R   R   R   R   R   R   t   is_R   t   is_notR   R   t   getitemR   t   setitemR   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   RV   R   t   minR   t   roundR   t   boolR   R   R   t   floatR   t   complexR   R  R  R   R  t   iterR  t   nextR  R   R  R  R  t   numba.targets.builtinsR  R  R  t   numba.extendingR  R  R  R   R!  t   objectR"  R   R'  t   registerR-  R/  R1  R0  (    (    (    s4   lib/python2.7/site-packages/numba/typing/builtins.pyt   <module>   s  @	

				#!	
	
(	