ó
\K]c           @   sI   d  Z  d d l m Z d d l m Z d d l m Z e d    Z d S(   s?    This module provides the unsafe things for targets/numbers.py
i   (   t   types(   t	   intrinsici˙˙˙˙(   t   irc            sŻ   | j  } t | j t j  r0 t j |    nN t | j t j  rl | d k r] t j   n	 t j	     n d s~ t
 d     f d   } | j } | | |  } | | f S(   s4    Bitcast a scalar 'val' to the given type 'viewty'. i    i    t   unreachablec            s   | d } | j  |    S(   Ni    (   t   bitcast(   t   cgctxt   buildert   typt   argst   flt(   t	   bitcastty(    s3   lib/python2.7/site-packages/numba/unsafe/numbers.pyt   codegen   s    
(   t   bitwidtht
   isinstancet   dtypeR    t   IntegerR   t   IntTypet   Floatt	   FloatTypet
   DoubleTypet   AssertionError(   t   tyctxt   valt   viewtyt   bitsR   t   rettyt   sig(    (   R
   s3   lib/python2.7/site-packages/numba/unsafe/numbers.pyt   viewer	   s    	'	N(   t   __doc__t    R    t	   extendingR   t   llvmliteR   R   (    (    (    s3   lib/python2.7/site-packages/numba/unsafe/numbers.pyt   <module>   s   