ó
\K]c           @@ s  d  Z  d d l m Z m Z d d l m Z d e j f d „  ƒ  YZ 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- d. 6d/ d0 6d1 d2 6Z	 d3 j
 ƒ  Z e e	 j ƒ  ƒ e e ƒ BZ d4 S(5   s9   
LLVM pass that converts intrinsic into other math calls
i    (   t   print_functiont   absolute_import(   t   irt   _DivmodFixerc           B@ s   e  Z d  „  Z RS(   c      	   C@ sæ   | j  t j d ƒ k râ | j d k râ d j d | j ƒ } |  j j j | ƒ } | d  k rœ | j  } t j	 | | | g ƒ } t j
 |  j | d | ƒ} n  t j d	 | j d
 | d | j d | j ƒ } | j j | | ƒ qâ n  d  S(   Ni@   t   sremt   uremt   sdivt   udivs
   numba_{op}t   opt   namet   parentt   funct   args(   R   R   R   R   (   t   typeR   t   IntTypet   opnamet   formatt   modulet   globalst   gett   Nonet   FunctionTypet   Functiont	   CallInstrR
   t   operandsR	   t   replace(   t   selft   instrR	   t   fnt   optyt   sdivfntyt   repl(    (    s7   lib/python2.7/site-packages/numba/targets/intrinsics.pyt   visit_Instruction
   s    	(   t   __name__t
   __module__R    (    (    (    s7   lib/python2.7/site-packages/numba/targets/intrinsics.pyR   	   s   c         C@ s   t  ƒ  j |  ƒ d S(   sA   Replace division and reminder instructions to builtins calls
    N(   R   t   visit(   t   mod(    (    s7   lib/python2.7/site-packages/numba/targets/intrinsics.pyt
   fix_divmod   s    t   powfs   llvm.pow.f32t   pows   llvm.pow.f64t   sinfs   llvm.sin.f32t   sins   llvm.sin.f64t   cosfs   llvm.cos.f32t   coss   llvm.cos.f64t   sqrtfs   llvm.sqrt.f32t   sqrts   llvm.sqrt.f64t   expfs   llvm.exp.f32t   exps   llvm.exp.f64t   logfs   llvm.log.f32t   logs   llvm.log.f64t   log10fs   llvm.log10.f32t   log10s   llvm.log10.f64t   fabsfs   llvm.fabs.f32t   fabss   llvm.fabs.f64t   floorfs   llvm.floor.f32t   floors   llvm.floor.f64t   ceilfs   llvm.ceil.f32t   ceils   llvm.ceil.f64t   truncfs   llvm.trunc.f32t   truncs   llvm.trunc.f64sË   
tan
tanf
sinh
sinhf
cosh
coshf
tanh
tanhf
asin
asinf
acos
acosf
atan
atanf
atan2
atan2f
atan2_fixed
asinh
asinhf
acosh
acoshf
atanh
atanhf
expm1
expm1f
log1p
log1pf
log10
log10f
fmod
fmodf
round
roundf
N(   t   __doc__t
   __future__R    R   t   llvmliteR   t   VisitorR   R%   t   INTR_TO_CMATHt   splitt   OTHER_CMATHSt	   frozensett   valuest	   INTR_MATH(    (    (    s7   lib/python2.7/site-packages/numba/targets/intrinsics.pyt   <module>   s:   	
%