ó
\K]c           @   sÇ   d  d l  m Z m Z m Z m Z m Z m Z m Z m Z m	 Z	 m
 Z
 m Z d  d l m Z m Z d d l m Z e d  d    Z e d e j  d    Z e d e j e j  d	    Z d
 S(   i˙˙˙˙(   t   typeof_implt   type_callablet   lower_builtint
   lower_castt   modelst   register_modelt   boxt   unboxt   reflectt   NativeValuet   make_attribute_wrapper(   t   typest   cgutilsi   (   t   impl_ret_borrowedt   __array_wrap__c         C   s   d   } | S(   Nc         S   s;   t  |  t j  r7 |  j d | j d | j d | j  Sd  S(   Nt   dtypet   ndimt   layout(   t
   isinstanceR   t   SmartArrayTypet   copyR   R   R   (   t
   input_typet   result(    (    s7   lib/python2.7/site-packages/numba/targets/smartarray.pyt   typer   s    	(    (   t   contextR   (    (    s7   lib/python2.7/site-packages/numba/targets/smartarray.pyt   type_array_wrap
   s    	t	   __array__c         C   s;   | j  | \ } \ } |  j | | d | } | j d  S(   Nt   reft   data(   t   argst   make_helpert   _get_ptr_by_name(   R   t   buildert   sigR   t   argtypet   argt   val(    (    s7   lib/python2.7/site-packages/numba/targets/smartarray.pyt   array_as_array   s    c         C   s>   |  j  | | j  } | d | _ t |  | | j | j    S(   Ni   (   R   t   return_typeR   R   t	   _getvalue(   R   R    R!   R   t   dest(    (    s7   lib/python2.7/site-packages/numba/targets/smartarray.pyt   array_wrap_array   s    N(   t   numba.extendingR    R   R   R   R   R   R   R   R   R	   R
   t   numbaR   R   t   imputilsR   R   R   R%   t   ArrayR)   (    (    (    s7   lib/python2.7/site-packages/numba/targets/smartarray.pyt   <module>   s
   L
