
\K]c           @` s  d  d l  m Z m Z m Z d  d l m Z d  d l Z d  d l m	 Z	 m
 Z
 m Z m Z d  d l m Z m Z d  d l m Z d d l m Z m Z e d	 d
 d d g  Z d   Z d   Z d   Z d   Z d   Z d   Z d e f d     YZ e d  Z d e f d     YZ d e f d     YZ  d   Z! d   Z" d e f d     YZ# d e f d     YZ$ d  e f d!     YZ% d" e% f d#     YZ& d S($   i    (   t   print_functiont   divisiont   absolute_import(   t
   namedtupleN(   t   Typet   Buildert   ICMP_EQt   Constant(   t   typest   cgutils(   t   global_compiler_locki   (   t   make_library_cachet	   NullCachet   _wrapper_infot   libraryt   envt   namec         C` s$  |    } | j  j | | |	 j |	 j |  \ } } | j | j d t ` \ } } |  | |  Wd  QX| 4 |
 j   } | j  j | |
 |  |
 j	 |  Wd  QXWd  QXxE t
 | |  D]4 \ } } | j | j | j |  | j  |  q W| j | j | j |  | j  |  | j S(   Nt   likely(   t	   call_convt   call_functiont   return_typet   argst   if_elset   is_okt   Truet
   gil_ensuret   raise_errort   gil_releaset   zipt   storet   addt   loadt   stept   code(   R   R   t   contextt   funct   buildert   arrayst   outt   offsetst   store_offsett	   signaturet   pyapiR   t   elemst   statust   retvalt   if_okt   if_errort   gilt   offt   ary(    (    s6   lib/python2.7/site-packages/numba/npyufunc/wrappers.pyt   _build_ufunc_loop_body   s     	!,!c      
   C` s  |    } t  j g t |	 j  } | j d t  J | j j | | t  j | |  \ } } x | D] } | j |  qc WWd  QX| |  xE t	 | |  D]4 \ } } | j
 | j | j |  | j  |  q W| j
 | j | j |  | j  |  | j S(   Nt   keep_new(   R   t   pyobjectt   lenR   t   err_pushR   R   R   t   decrefR   R   R   R   R    R!   (   R   R   R"   R#   R$   R%   R&   R'   R(   R)   R   R*   R+   t   _objargsR,   R-   t   elemR1   R2   (    (    s6   lib/python2.7/site-packages/numba/npyufunc/wrappers.pyt   _build_ufunc_loop_body_objmode-   s    	
,!c
         ` sX       f d   }
    f d   } t  |
 | |  |       | | d |	 S(   Nc          ` s>   g  t      D]$ \ }  } | j  j |    ^ q } | S(   N(   R   t   load_directR   (   R1   R2   R+   (   R%   R$   R'   (    s6   lib/python2.7/site-packages/numba/npyufunc/wrappers.pyR   O   s    7c         ` s    j  |    j    d  S(   N(   t   store_directR   (   R-   (   R$   R&   R(   (    s6   lib/python2.7/site-packages/numba/npyufunc/wrappers.pyR   T   s    R   (   R3   (   R"   R#   R$   R%   R&   R'   R(   R)   R*   R   R   R   (    (   R%   R$   R'   R&   R(   s6   lib/python2.7/site-packages/numba/npyufunc/wrappers.pyt   build_slow_loop_bodyM   s
    c         ` s   |  j   |	  }  j |
 | |	          f d   }      f d   } t | | |  |        |	   S(   Nc          ` sx   g  t      D]$ \ }  } | j  j |    ^ q } g  t  |  j  D]! \ } }  j | |   ^ qM } | S(   N(   R   R<   R   R   t   from_native_value(   R1   R2   R+   t   vt   t(   R%   R$   t   env_managerR'   R*   R)   (    s6   lib/python2.7/site-packages/numba/npyufunc/wrappers.pyR   a   s
    77c         ` s   t  j   |   }   j | d t X  j  j |   } | j d  k sR t   j	 | j
   j     j |   Wd  QXd  S(   NR   (   R	   t   is_not_nullt   if_thenR   t   to_native_valueR   t   cleanupt   Nonet   AssertionErrorR=   t   valueR   R8   (   R-   R   t   native(   R$   R&   R*   R)   R(   (    s6   lib/python2.7/site-packages/numba/npyufunc/wrappers.pyR   j   s    (   t   get_env_bodyt   get_env_managerR;   (   R"   R#   R$   R%   R&   R'   R(   R)   R*   t   envptrR   t   env_bodyR   R   (    (   R%   R$   RB   R'   R&   R*   R)   R(   s6   lib/python2.7/site-packages/numba/npyufunc/wrappers.pyt   build_obj_loop_body\   s    	c         ` sR      f d   }   f d   } t  | | |  | |    | | | |	 d |
 S(   Nc          ` s&   g    D] }  |  j    ^ q } | S(   N(   t   load_aligned(   R2   R+   (   R%   t   ind(    s6   lib/python2.7/site-packages/numba/npyufunc/wrappers.pyR   ~   s    c         ` s    j  |     d  S(   N(   t   store_aligned(   R-   (   RQ   R&   (    s6   lib/python2.7/site-packages/numba/npyufunc/wrappers.pyR      s    R   (   R3   (   R"   R#   R$   R%   R&   R'   R(   R)   RQ   R*   R   R   R   (    (   R%   RQ   R&   s6   lib/python2.7/site-packages/numba/npyufunc/wrappers.pyt   build_fast_loop_body|   s
    c   *      C` s  t  | t  s t  t j d  } t j |  } t j |  } | j t j  }	 t j |	  }
 t j	 t j
   | |
 |
 | g  } | j   j d  } | j d  } | r | j j t j t j g t | j   } n | j j | j | j  } | j | d | } | j j d  | j | d | j  } | j \ } } } } d | _ d | _ d	 | _ d
 | _ t | j d   } | j | j  } | j } | j | j | j |   } | j | d d } g  } x? t  | j  D]. \ } } | j! t" | | | | | |   qWt" | | | | t |  | j  } g  } | j# t j d  } x= | D]5 }  t$ j% | |	  }! | j! |!  | j& | |!  qbWt$ j% | |	  }" | j& | |"  t$ j' }# x# | D] }$ | j( |# |$ j)  }# qW| j* |  }% | rn|% j+   }& t$ j, | | d |	 - t- | | | | | | |" | |% | |  Wd QX|% j. |&  | j/   n | j0 |#   \ }' }( |' T t$ j, | | d |	 5 }) t1 | | | | | | |" | |) j2 |% d | 
Wd QXWd QX|( L t$ j, | | d |	 - t3 | | | | | | |" | |% d | 	Wd QXWd QXWd QX| j/   ~ | j4 |  | j5 |   t6 d | d | d | j  S(   s   
    Wrap the scalar function with a loop that iterates over the arguments

    Returns
    -------
    (library, env, name)
    i   t   ufunc_wrappert    R   t   alwaysinlines
   __ufunc__.R   t   dimst   stepst   datat   entryt	   loopcounti    t   intpNR   R   (7   t
   isinstancet   strRH   R   t   intt   pointert   get_value_typeR   R\   t   functiont   voidt   codegent   create_libraryt   create_ir_moduleR   t   get_function_typeR5   R6   R   R   t   add_functiont
   attributesR   R   R   t   append_basic_blockt   get_env_namet   fndesct   environmentR   t   declare_env_globalt   modulet	   enumeratet   appendt	   UArrayArgt   get_constantR	   t   alloca_onceR   t   true_bitt   and_t   is_unit_stridedt   get_python_apiR   t	   for_rangeRO   R   t   ret_voidR   RS   t   indexR>   t   add_ir_modulet   add_linking_libraryR   (*   R   R"   t   fnameR)   t   objmodet   crest   byte_tt
   byte_ptr_tt   byte_ptr_ptr_tt   intp_tt
   intp_ptr_tt   fntyt
   wrapperlibt   wrapper_modulet	   func_typeR#   t   wrappert   arg_argst   arg_dimst	   arg_stepst   arg_dataR$   t   envnameR   RM   R[   R%   t   it   typR&   R'   t   zerot   _t   pR(   t   unit_stridedR2   R*   R0   Rw   t
   is_stridedt   loop(    (    s6   lib/python2.7/site-packages/numba/npyufunc/wrappers.pyt   build_ufunc_wrapper   s    	%						&	
Rr   c           B` s5   e  Z d    Z d   Z d   Z d   Z d   Z RS(   c         C` s  | |  _  | |  _ | |  _ |  j  j t j |  } |  j j | j | | g   } | j |  }	 |  j j	 | |	 j
    |  _ |  j  j |	  }
 |  j  j t j |
  |  _ |  j j | | g  } |  j j |  |  _ | j t |  j |  j  |  _ | |  _ d  S(   N(   R"   R$   t   fe_typeRs   R   R\   R   t   gept   get_data_typet   bitcastt
   as_pointert   dataptrt   get_abi_sizeoft   abisizeR    t   icmpR   Rw   (   t   selfR"   R$   R   RX   R   R   t   offsett   offseted_argst	   data_typet   sizeoft   offseted_step(    (    s6   lib/python2.7/site-packages/numba/npyufunc/wrappers.pyt   __init__   s    			!c         C` s7   t  j |  j |  j |  } |  j j |  j |  j |  S(   sm   
        Generic load from the given *byteoffset*.  load_aligned() is
        preferred if possible.
        (   R	   t   pointer_addR$   R   R"   t   unpack_valueR   (   R   t
   byteoffsett   ptr(    (    s6   lib/python2.7/site-packages/numba/npyufunc/wrappers.pyR<     s    c         C` s7   |  j  j |  j | g  } |  j j |  j  |  j |  S(   N(   R$   R   R   R"   R   R   (   R   RQ   R   (    (    s6   lib/python2.7/site-packages/numba/npyufunc/wrappers.pyRP     s    c         C` s>   t  j |  j |  j |  } |  j j |  j |  j | |  d  S(   N(   R	   R   R$   R   R"   t
   pack_valueR   (   R   RI   R   R   (    (    s6   lib/python2.7/site-packages/numba/npyufunc/wrappers.pyR=     s    c         C` s>   |  j  j |  j | g  } |  j j |  j  |  j | |  d  S(   N(   R$   R   R   R"   R   R   (   R   RI   RQ   R   (    (    s6   lib/python2.7/site-packages/numba/npyufunc/wrappers.pyRR     s    (   t   __name__t
   __module__R   R<   RP   R=   RR   (    (    (    s6   lib/python2.7/site-packages/numba/npyufunc/wrappers.pyRr      s
   				t   guft   _GufuncWrapperc           B` s   e  Z d    Z e d    Z e d    Z e d    Z e d    Z e d    Z e d    Z	 d   Z
 d   Z d	   Z e d
    Z d   Z d   Z d   Z RS(   c         C` ss   | |  _  | |  _ | |  _ | |  _ |  j j t j k |  _ | rT t	 d |  j   n t
   |  _ t |  |  _ d S(   s,  
        The *is_parfors* argument is a boolean that indicates if the GUfunc
        being built is to be used as a ParFors kernel. If True, it disables
        the caching on the wrapper as a separate unit because it will be linked
        into the caller function and cached along with it.
        t   py_funcN(   R   R   t   sint   soutR)   R   R   R5   t   is_objectmodet   GufWrapperCacheR   t   cachet   boolt
   is_parfors(   R   R   R   R   R   R   R   (    (    s6   lib/python2.7/site-packages/numba/npyufunc/wrappers.pyR   &  s    				$c         C` s
   |  j  j S(   N(   R   R   (   R   (    (    s6   lib/python2.7/site-packages/numba/npyufunc/wrappers.pyR   6  s    c         C` s
   |  j  j S(   N(   R   t   target_context(   R   (    (    s6   lib/python2.7/site-packages/numba/npyufunc/wrappers.pyR"   :  s    c         C` s
   |  j  j S(   N(   R"   R   (   R   (    (    s6   lib/python2.7/site-packages/numba/npyufunc/wrappers.pyR   >  s    c         C` s
   |  j  j S(   N(   R   R)   (   R   (    (    s6   lib/python2.7/site-packages/numba/npyufunc/wrappers.pyR)   B  s    c         C` s
   |  j  j S(   N(   R   Rl   (   R   (    (    s6   lib/python2.7/site-packages/numba/npyufunc/wrappers.pyRl   F  s    c         C` s
   |  j  j S(   N(   R   Rm   (   R   (    (    s6   lib/python2.7/site-packages/numba/npyufunc/wrappers.pyR   J  s    c         C` sy   t  j d  } t  j |  } t  j |  } |  j j t j  } t  j |  } t  j t  j   | | | | g  } | S(   Ni   (	   R   R_   R`   R"   Ra   R   R\   Rb   Rc   (   R   R   R   R   R   R   R   (    (    s6   lib/python2.7/site-packages/numba/npyufunc/wrappers.pyt   _wrapper_function_typeN  s    c   #      C` s  |  j  j t j  } |  j   } | j d  } |  j j |  j j	 |  j j
  } |  j j } | j | d | } | j j d  | j | |  }	 d |	 _ |	 j \ }
 } } } d |
 _ d | _ d | _ d | _ t |	 j d	   } | j | d d
 } |  j  j |  } t   } x; |  j |  j f D]' } x | D] } | t |  O} q;Wq.Wi  } xA |  j D]6 } x- | D]% } | | k rvt |  | | <qvqvWqiWi  } xR | j   D]D \ } } | j | j | |  j  j t j | d  g   | | <qWg  } t |  j  t |  j  } x} t t |  j j |  j |  j   D]V \ } \ } } t  |  j  | |
 | | | | | | 	 } | t |  7} | j! |  qFW| j d  } |  j" | |  t# j$ | | d | ] } g  | D] } | j% | j&  ^ q}  |  j' | | | |   \ }! }" t# j( | |" |  Wd QX| j) |  | j* |  |  j+ | |  | j,   | j- |  | j. |  j/  d S(   s   
        The LLVM IRBuilder code to create the gufunc wrapper.
        The *library* arg is the CodeLibrary to which the wrapper should
        be added.  The *name* arg is the name of the wrapper function being
        created.
        t   _gufunc_wrapperR   RV   t   weak_odrR   RW   RX   RY   RZ   R[   i   s   .returnR\   N(0   R"   Ra   R   R\   R   Rf   R   Rg   Rl   t   restypet   argtypest   llvm_func_nameRh   Ri   R   t   linkageR   R   R   Rj   R   Rx   t   setR   R   R6   t   itemsR   Rs   Rp   R   R)   t
   GUArrayArgRq   t   gen_prologueR	   Ry   t   get_array_at_offsetR{   t   gen_loop_bodyt   cbranch_or_continuet   brancht   position_at_endt   gen_epilogueRz   R|   R}   R   (#   R   R   R   R   R   R   R   R~   R#   R   R   R   R   R   R$   R[   R*   t   unique_symst   grpt   symst   sym_mapt   st   sym_dimR   R%   t   step_offsetR   t   symR2   t   bbreturnR   t   aR   t	   innercallt   error(    (    s6   lib/python2.7/site-packages/numba/npyufunc/wrappers.pyt   _build_wrapperY  sj    							&%
c         C` s   |  j  r: |  j j   j t |    } |  j | |  n |  j j |  j j	 |  j j
  } | d  k r |  j j   j t |    } | j   |  j | |  |  j j |  j j	 |  n  | S(   N(   R   R"   Rd   Re   R^   R   R   t   load_overloadR   R)   R   RG   t   enable_object_cachingt   save_overload(   R   t   wrapper_nameR   (    (    s6   lib/python2.7/site-packages/numba/npyufunc/wrappers.pyt   _compile_wrapper  s    		
c         C` s;   d |  j  j } |  j |  } t d | d |  j d |  S(   Ns   __gufunc__.R   R   R   (   Rl   t   mangled_nameR   R   R   (   R   R   R   (    (    s6   lib/python2.7/site-packages/numba/npyufunc/wrappers.pyt   build  s    c         C` s   |  j  j | | |  j j |  j j |  \ } } | j | j d t 7 | j   } |  j	 j  j
 | | |  | j |  Wd  QX| j | j f S(   NR   (   R   R   R)   R   R   RD   t   is_errort   FalseR   R"   R   R   R!   (   R   R$   R*   R#   R   R,   R-   R0   (    (    s6   lib/python2.7/site-packages/numba/npyufunc/wrappers.pyR     s    	c         C` s   d  S(   N(    (   R   R$   R*   (    (    s6   lib/python2.7/site-packages/numba/npyufunc/wrappers.pyR     s    c         C` s   d  S(   N(    (   R   R$   R*   (    (    s6   lib/python2.7/site-packages/numba/npyufunc/wrappers.pyR     s    (   R   R   R   t   propertyR   R"   R   R)   Rl   R   R   R   R   R
   R   R   R   R   (    (    (    s6   lib/python2.7/site-packages/numba/npyufunc/wrappers.pyR   %  s   			T			t   _GufuncObjectWrapperc           B` s#   e  Z d    Z d   Z d   Z RS(   c         C` s1   t  |  j | | | |  j |  \ } } | | f S(   N(   t   _prepare_call_to_object_modeR"   R)   (   R   R$   R*   R#   R   R   R   (    (    s6   lib/python2.7/site-packages/numba/npyufunc/wrappers.pyR     s
    		c         C` s   | j    |  _ d  S(   N(   R   R0   (   R   R$   R*   (    (    s6   lib/python2.7/site-packages/numba/npyufunc/wrappers.pyR     s    c         C` s   | j  |  j  d  S(   N(   R   R0   (   R   R$   R*   (    (    s6   lib/python2.7/site-packages/numba/npyufunc/wrappers.pyR     s    (   R   R   R   R   R   (    (    (    s6   lib/python2.7/site-packages/numba/npyufunc/wrappers.pyR     s   		c         C` sI   | j  } | j t j k r! t n t } | |  | | | | d | j   S(   NR   (   R)   R   R   R5   R   R   R   (   R   R   R   R   R   R   R)   t   wrapcls(    (    s6   lib/python2.7/site-packages/numba/npyufunc/wrappers.pyt   build_gufunc_wrapper  s
    	c   &   	   C` sw  | j  } | j d  } |  j t j  } |  j t j  }	 t j |	  }
 |  j t j  } |  j t j	  } t j
 | | |
 |
 | | | g  } | j | d d } t j | t j d  d d } | j t j |  g  } g  } xt t | | j   D]\ } \ } } t j | | d t } | j |  t | t j  rU|  j |  } | |  | d | } t j | d  } t j | | j  } | j | j d	  | | g  } | j | j d
  | | g  } | j | j |  } t j  t! | j    } t j | | j"  } t j | | j#  } | j$ | | | | | | | g  }  n | j% | |  }  | j |  |  | j |   t j& | |   }! | j |! |  t j' | |! |  qWt j	 g t( |  }" |  j) j* | | t j	 |" |  \ }# }$ | j |# j+ |  | j, |$  | j- |  | j. |  x$ | D] } | j, | j/ |   q;W|# j0 }% |% | j/ |  f S(   Ns   ufunc.core.returnR   t   numba_ndarray_newi   R   t   zfillRI   i    t   shapet   strides(1   Ro   Rj   Ra   R   t   int32R\   R   R`   t   voidptrR5   Rb   t   get_or_insert_functionR	   Rt   R_   R   Ru   Rp   R   R   R   Rq   R]   t   Arrayt
   make_arrayR   t   ndimR   t   _get_ptr_by_nameR   RY   t   npt   dtypeR^   t   numt   itemsizet   callR?   t   is_nullR   R6   R   R   R   R8   R   R   R   R!   (&   R"   R$   R*   R#   R)   R   t   modt   bb_core_returnt   ll_intt   ll_intpt   ll_intp_ptrt
   ll_voidptrt   ll_pyobjR   t   fn_array_newt   error_pointert   object_argst   object_pointersR   t   argt   argtyt   objptrt   aryclst   arrayR   t   ndRW   R   RY   R   t   type_numR   t   objt   obj_is_nullt
   object_sigR,   R-   R   (    (    s6   lib/python2.7/site-packages/numba/npyufunc/wrappers.pyR     sb    	
!+!!		R   c           B` s   e  Z d    Z d   Z RS(   c
         C` s  | |  _  | |  _ | j t j |  }
 | j | j | |
 g d d d d } | |  _ | j | |
 g d d } | j |  } t | t j	  r| } t
 |  | j k r t
 |  d k r | j d k r q t d j | d    n  | j } g  | D] } |	 | ^ q} g  } x^ t |  D]P } | j | | j t j | |  g d d } | j |  } | j |  q+W| rt n t } | d	 | j d
 | d | d | d | d |  |  _ n= | rt d j | | d    n  t d	 | d |  |  _ d  S(   NR   s   data.ptrRY   s   core.step.ptri    i   s.   type and shape signature mismatch for arg #{0}s   step.ptrR   R   t	   core_stept	   as_scalarR   R   s2   scalar type {0} given for non scalar argument #{1}t   stride(   R"   R$   Rs   R   R\   R   R   RY   R]   R   R6   R   t	   TypeErrort   formatt   rangeRq   t   _ArrayAsScalarArgLoadert   _ArrayArgLoaderR   t   _loadert   _ScalarArgLoader(   R   R"   R$   R   RX   R   R   R   R   R   R   RY   t   core_step_ptrR  R  R   R   R   R   t   jt   stepptrR    t   ldcls(    (    s6   lib/python2.7/site-packages/numba/npyufunc/wrappers.pyR   Z  sJ    		!		!					c      	   C` s.   |  j  j d |  j d |  j d |  j d |  S(   NR"   R$   RY   RQ   (   R  R   R"   R$   RY   (   R   RQ   (    (    s6   lib/python2.7/site-packages/numba/npyufunc/wrappers.pyR     s    (   R   R   R   R   (    (    (    s6   lib/python2.7/site-packages/numba/npyufunc/wrappers.pyR   Y  s   	;R  c           B` s    e  Z d  Z d   Z d   Z RS(   s   
    Handle GFunc argument loading where a scalar type is used in the core
    function.
    Note: It still has a stride because the input to the gufunc can be an array
          for this argument.
    c         C` s   | |  _  | |  _ d  S(   N(   R   R  (   R   R   R  (    (    s6   lib/python2.7/site-packages/numba/npyufunc/wrappers.pyR     s    	c         C` sU   | j  | | j | |  j  g  } | j | | j |  j  j    } | j |  S(   N(   R   t   mulR  R   R   R   R   R   (   R   R"   R$   RY   RQ   t   dptr(    (    s6   lib/python2.7/site-packages/numba/npyufunc/wrappers.pyR     s    $	(   R   R   t   __doc__R   R   (    (    (    s6   lib/python2.7/site-packages/numba/npyufunc/wrappers.pyR    s   	R  c           B` s)   e  Z d  Z d   Z d   Z d   Z RS(   sD   
    Handle GUFunc argument loading where an array is expected.
    c         C` s:   | |  _  | |  _ | |  _ | |  _ | |  _ | |  _ d  S(   N(   R   R   R  R  R   R   (   R   R   R   R  R  R   R   (    (    s6   lib/python2.7/site-packages/numba/npyufunc/wrappers.pyR     s    					c         C` s   t  j d |  j d |  j d d  } | j |  } | | |  } t j | | | j |  j |   } |  j	 | |  \ }	 }
 | j
 | j |  j   } | j | d | j | | j j  d |	 d |
 d | j t  j |  d	 d  | j   S(
   NR   R   t   layoutt   ARY   R   R   R   t   meminfo(   R   R   R   R   R   R	   R   R  R  t   _shape_and_stridesR   R   t   populate_arrayR   RY   t   typeRs   R\   RG   t	   _getvalue(   R   R"   R$   RY   RQ   t   arytypR  R  t   offseted_dataR   R   R   (    (    s6   lib/python2.7/site-packages/numba/npyufunc/wrappers.pyR     s$    $			c         C` s4   t  j | |  j  } t  j | |  j  } | | f S(   N(   R	   t
   pack_arrayR   R   (   R   R"   R$   R   R   (    (    s6   lib/python2.7/site-packages/numba/npyufunc/wrappers.pyR!    s    (   R   R   R  R   R   R!  (    (    (    s6   lib/python2.7/site-packages/numba/npyufunc/wrappers.pyR    s   		R  c           B` s   e  Z d  Z d   Z RS(   s   
    Handle GUFunc argument loading where the shape signature specifies
    a scalar "()" but a 1D array is used for the type of the core function.
    c         C` s^   | j  t j d  } | j  t j d  } t j | | g  } t j | | g  } | | f S(   Ni   i    (   Rs   R   R\   R	   R'  (   R   R"   R$   t   oneR   R   R   (    (    s6   lib/python2.7/site-packages/numba/npyufunc/wrappers.pyR!    s
    (   R   R   R  R!  (    (    (    s6   lib/python2.7/site-packages/numba/npyufunc/wrappers.pyR    s   ('   t
   __future__R    R   R   t   collectionsR   t   numpyR   t   llvmlite.llvmpy.coreR   R   R   R   t   numbaR   R	   t   numba.compiler_lockR
   t   cachingR   R   R   R3   R;   R>   RO   RS   R   t   objectRr   R   R   R   R   R   R   R  R  R  (    (    (    s6   lib/python2.7/site-packages/numba/npyufunc/wrappers.pyt   <module>   s.   "		 		 		o(	
	^A+