ó
\K]c           @` s\   d  Z  d d l m Z m Z m Z d d l Z d a d „  Z	 d „  Z
 d „  Z d „  Z d S(   sQ  This file contains information on how to translate different ufuncs
into numba. It is a database of different ufuncs and how each of its
loops maps to a function that implements the inner kernel of that ufunc
(the inner kernel being the per-element function).

Use the function get_ufunc_info to get the information related to the
ufunc
i    (   t   print_functiont   divisiont   absolute_importNc           C` s#   t  d  k r i  a  t t  ƒ n  d  S(   N(   t	   _ufunc_dbt   Nonet   _fill_ufunc_db(    (    (    s5   lib/python2.7/site-packages/numba/targets/ufunc_db.pyt   _lazy_init_db   s    c           C` s   t  ƒ  t j ƒ  S(   s+   obtain a list of supported ufuncs in the db(   R   R   t   keys(    (    (    s5   lib/python2.7/site-packages/numba/targets/ufunc_db.pyt
   get_ufuncs   s    c         C` s   t  ƒ  t |  S(   sƒ  get the lowering information for the ufunc with key ufunc_key.

    The lowering information is a dictionary that maps from a numpy
    loop string (as given by the ufunc types attribute) to a function
    that handles code generation for a scalar version of the ufunc
    (that is, generates the "per element" operation").

    raises a KeyError if the ufunc is not in the ufunc_db
    (   R   R   (   t	   ufunc_key(    (    s5   lib/python2.7/site-packages/numba/targets/ufunc_db.pyt   get_ufunc_info!   s    
c         C` s¡!  d d l  m } m } m } m } d d l m } | j } i | j d 6| j	 d 6| j	 d 6| j	 d 6| j	 d	 6| j	 d
 6| j	 d 6| j	 d 6| j	 d 6| j	 d 6| j	 d 6| j
 d 6| j
 d 6| j d 6| j d 6|  t j <i | j d 6| j d 6| j d 6| j d 6| j d	 6| j d
 6| j d 6| j d 6| j d 6| j d 6| j d 6| j d 6| j d 6| j d 6| j d 6|  t j <i | j d 6| j d 6| j d 6| j d	 6| j d
 6| j d 6| j d 6| j d 6| j d 6| j d 6| j d 6| j d 6| j d 6| j d 6|  t j <i | j d 6| j d 6| j d 6| j d 6| j d 6| j d 6| j d 6| j d 6| j d 6| j d 6| j d  6| j d! 6| j d" 6| j d# 6| j d$ 6|  t j <i | j d 6| j d 6| j d 6| j d 6| j d 6| j d 6| j d 6| j d 6| j d 6| j d 6| j d  6| j d! 6| j d" 6| j d# 6| j d$ 6|  t j  <i | j! d 6| j" d 6| j" d 6| j" d 6| j" d 6| j" d 6| j" d 6| j" d 6| j" d 6| j" d 6| j" d  6| j# d! 6| j# d" 6| j$ d# 6| j$ d$ 6|  t j% <t j& t j' k r±i | j( d 6| j) d 6| j( d 6| j) d 6| j( d 6| j) d 6| j( d 6| j) d 6| j( d 6| j) d  6| j* d! 6| j* d" 6| j+ d# 6| j+ d$ 6|  t j& <n  i | j, d% 6| j, d& 6| j, d' 6| j, d( 6| j, d) 6| j, d* 6| j, d+ 6| j, d, 6| j, d- 6| j, d. 6| j* d! 6| j* d" 6| j+ d# 6| j+ d$ 6|  t j' <i | j( d 6| j) d 6| j( d 6| j) d 6| j( d 6| j) d 6| j( d 6| j) d 6| j( d 6| j) d  6| j- d! 6| j- d" 6| j. d# 6| j. d$ 6|  t j/ <i | j0 d 6| j1 d 6| j0 d 6| j1 d 6| j0 d 6| j1 d 6| j0 d 6| j1 d 6| j0 d 6| j1 d  6| j2 d! 6| j2 d" 6|  t j3 <i | j4 d 6| j4 d 6| j4 d 6| j4 d 6| j4 d 6| j4 d 6| j4 d 6| j4 d 6| j4 d 6| j4 d  6| j5 d! 6| j5 d" 6|  t j6 <i | j7 d! 6| j7 d" 6|  t j8 <i | j9 d! 6| j9 d" 6|  t j: <i | j; d 6| j; d 6| j; d 6| j; d 6| j; d 6| j; d 6| j; d 6| j; d 6| j; d 6| j; d  6| j< d! 6| j< d" 6| j= d# 6| j= d$ 6|  t j> <i | j? d 6| j? d 6| j@ d 6| j@ d 6|  t jA <i | jB d 6| jB d 6| jB d 6| jB d	 6| jB d
 6| jB d 6| jB d 6| jB d 6| jB d 6| jB d 6| jB d 6| jB d 6| jC d 6| jC d 6|  t jD <i | jE d 6| jE d 6| jF d 6| jF d 6|  t jG <i | jH d 6| jH d 6| jI d 6| jI d 6|  t jJ <i | jK d 6| jK d 6| jL d 6| jL d 6|  t jM <i | jN d 6| jN d 6| jO d 6| jO d 6|  t jP <i | jQ d 6| jQ d 6| jR d 6| jR d 6|  t jS <i | jT d 6| jT d 6| jU d 6| jU d 6|  t jV <i | jW d 6| jW d 6| jX d 6| jX d 6|  t jY <i | jZ d 6| jZ d 6| j[ d 6| j[ d 6|  t j\ <i | j] d 6| j] d 6| j] d 6| j] d	 6| j] d
 6| j] d 6| j] d 6| j] d 6| j] d 6| j] d 6| j^ d 6| j^ d 6| j_ d 6| j_ d 6|  t j` <i | ja d 6| ja d 6| ja d 6| ja d	 6| ja d
 6| ja d 6| ja d 6| ja d 6| ja d 6| ja d 6| jb d 6| jb d 6| jc d 6| jc d 6|  t jd <i | je d 6| je d 6| jf d 6| jf d 6|  t jg <i | jh d 6| jh d 6| ji d 6| ji d 6|  t jj <| db k rï| jk n | jl } i | jm d 6| jm d 6| d 6| d 6|  t jn <| dc k r<| jo n | jp } i | jq d 6| jq d 6| d 6| d 6|  t jr <i | js d 6| js d 6| jt d 6| jt d 6|  t ju <| dd k r¾| jv n | jw }	 i | jx d 6| jx d 6|	 d 6|	 d 6|  t jy <i | jz d! 6| jz d" 6|  t j{ <i | j| d! 6| j| d" 6|  t j} <i | j~ d 6| j~ d 6| j d 6| j d 6|  t j€ <i | j d 6| j d 6| j‚ d 6| j‚ d 6|  t jƒ <i | j„ d 6| j„ d 6| j… d 6| j… d 6|  t j† <| de k rì| j‡ n | jˆ }
 i | j‰ d 6| j‰ d 6|
 d 6|
 d 6|  t jŠ <i | j‹ d 6| j‹ d 6| jŒ d 6| jŒ d 6|  t j <| df k rn| jŽ n | j } i | j d 6| j d 6| d 6| d 6|  t j‘ <i | j’ d 6| j’ d 6|  t j“ <|  t j“ |  t j” <i | j• d 6| j• d 6|  t j– <|  t j– |  t j— <i | j˜ d 6| j˜ d 6|  t j™ <i | jš d 6| jš d 6|  t j› <i | jœ d 6| jœ d 6|  t j <i | jž d 6| jž d 6|  t jŸ <i | j  d 6| j¡ d0 6| j  d1 6| j¡ d2 6| j  d3 6| j¡ d4 6| j  d5 6| j¡ d6 6| j  d7 6| j¡ d8 6| j  d9 6| j¢ d: 6| j¢ d; 6| j£ d< 6| j£ d= 6|  t j¤ <i | j¥ d 6| j¦ d0 6| j¥ d1 6| j¦ d2 6| j¥ d3 6| j¦ d4 6| j¥ d5 6| j¦ d6 6| j¥ d7 6| j¦ d8 6| j¥ d9 6| j§ d: 6| j§ d; 6| j¨ d< 6| j¨ d= 6|  t j© <i | jª d 6| j« d0 6| jª d1 6| j« d2 6| jª d3 6| j« d4 6| jª d5 6| j« d6 6| jª d7 6| j« d8 6| jª d9 6| j¬ d: 6| j¬ d; 6| j­ d< 6| j­ d= 6|  t j® <i | j¯ d 6| j° d0 6| j¯ d1 6| j° d2 6| j¯ d3 6| j° d4 6| j¯ d5 6| j° d6 6| j¯ d7 6| j° d8 6| j¯ d9 6| j± d: 6| j± d; 6| j² d< 6| j² d= 6|  t j³ <i | j´ d 6| j´ d0 6| j´ d1 6| j´ d2 6| j´ d3 6| j´ d4 6| j´ d5 6| j´ d6 6| j´ d7 6| j´ d8 6| j´ d9 6| jµ d: 6| jµ d; 6| j¶ d< 6| j¶ d= 6|  t j· <i | j¸ d 6| j¸ d0 6| j¸ d1 6| j¸ d2 6| j¸ d3 6| j¸ d4 6| j¸ d5 6| j¸ d6 6| j¸ d7 6| j¸ d8 6| j¸ d9 6| j¹ d: 6| j¹ d; 6| jº d< 6| jº d= 6|  t j» <i | j¼ d 6| j¼ d0 6| j¼ d1 6| j¼ d2 6| j¼ d3 6| j¼ d4 6| j¼ d5 6| j¼ d6 6| j¼ d7 6| j¼ d8 6| j¼ d9 6| j¼ d: 6| j¼ d; 6| j½ d< 6| j½ d= 6|  t j¾ <i | j¿ d 6| j¿ d0 6| j¿ d1 6| j¿ d2 6| j¿ d3 6| j¿ d4 6| j¿ d5 6| j¿ d6 6| j¿ d7 6| j¿ d8 6| j¿ d9 6| j¿ d: 6| j¿ d; 6| jÀ d< 6| jÀ d= 6|  t jÁ <i | jÂ d 6| jÂ d0 6| jÂ d1 6| jÂ d2 6| jÂ d3 6| jÂ d4 6| jÂ d5 6| jÂ d6 6| jÂ d7 6| jÂ d8 6| jÂ d9 6| jÂ d: 6| jÂ d; 6| jÃ d< 6| jÃ d= 6|  t jÄ <i | jÅ d 6| jÅ d> 6| jÅ d? 6| jÅ d@ 6| jÅ dA 6| jÅ dB 6| jÅ dC 6| jÅ dD 6| jÅ dE 6| jÅ dF 6| jÅ dG 6| jÅ dH 6| jÅ dI 6| jÆ dJ 6| jÆ dK 6|  t jÇ <i | j¿ d 6| jÈ d 6| jÉ d 6| jÈ d 6| jÉ d 6| jÈ d 6| jÉ d 6| jÈ d 6| jÉ d 6| jÈ d 6| jÉ d  6| jÊ d! 6| jÊ d" 6| jË d# 6| jË d$ 6|  t jÌ <i | j¼ d 6| jÍ d 6| jÎ d 6| jÍ d 6| jÎ d 6| jÍ d 6| jÎ d 6| jÍ d 6| jÎ d 6| jÍ d 6| jÎ d  6| jÏ d! 6| jÏ d" 6| jÐ d# 6| jÐ d$ 6|  t jÑ <i | j¿ d 6| jÈ d 6| jÉ d 6| jÈ d 6| jÉ d 6| jÈ d 6| jÉ d 6| jÈ d 6| jÉ d 6| jÈ d 6| jÉ d  6| jÒ d! 6| jÒ d" 6| jÓ d# 6| jÓ d$ 6|  t jÔ <i | j¼ d 6| jÍ d 6| jÎ d 6| jÍ d 6| jÎ d 6| jÍ d 6| jÎ d 6| jÍ d 6| jÎ d 6| jÍ d 6| jÎ d  6| jÕ d! 6| jÕ d" 6| jÖ d# 6| jÖ d$ 6|  t j× <i | jØ dH 6| jØ dI 6| jÙ dJ 6| jÙ dK 6| jÚ d> 6| jÚ d? 6| jÚ d@ 6| jÚ dA 6| jÚ dB 6| jÚ dC 6| jÚ dD 6| jÚ dE 6| jÚ dF 6| jÚ dG 6| jÚ d 6|  t jÛ <i | jÜ dH 6| jÜ dI 6| jÝ dJ 6| jÝ dK 6| jÞ d> 6| jÞ d? 6| jÞ d@ 6| jÞ dA 6| jÞ dB 6| jÞ dC 6| jÞ dD 6| jÞ dE 6| jÞ dF 6| jÞ dG 6| jÞ d 6|  t jß <i | jà dH 6| jà dI 6| já dJ 6| já dK 6| jâ d> 6| jâ d? 6| jâ d@ 6| jâ dA 6| jâ dB 6| jâ dC 6| jâ dD 6| jâ dE 6| jâ dF 6| jâ dG 6| jâ d 6| jã dL 6| jã dM 6|  t jä <i | jå dH 6| jå dI 6|  t jæ <i | jç d! 6| jç d" 6|  t jè <i | jé d! 6| jé d" 6|  t jê <i | jë d 6| jë d 6|  t jì <i | jí dN 6| jí dO 6| jí dP 6| jí dQ 6|  t jî <i | j! d 6| j! d 6| j! d 6| j! d 6| j! d 6| j! d 6| j! d 6| j! d 6| j! d 6| j! d 6| j! d  6|  t jï <i | j d 6| j d 6| j d 6| j d 6| j d 6| j d 6| j d 6| j d 6| j d 6| j d 6| j d  6|  t jð <i | j d 6| j d 6| j d 6| j d 6| j d 6| j d 6| j d 6| j d 6| j d 6| j d 6| j d  6|  t jñ <i | j d 6| j d 6| j d 6| j d 6| j d	 6| j d
 6| j d 6| j d 6| j d 6| j d 6| j d 6|  t jò <i
 | jó d 6| jó d 6| jó d 6| jó d 6| jó d 6| jó d 6| jó d 6| jó d 6| jó d 6| jó d  6|  t jô <i
 | jõ d 6| jõ d 6| jõ d 6| jõ d 6| jõ d 6| jõ d 6| jõ d 6| jõ d 6| jõ d 6| jõ d  6|  t jö <d dR l  m÷ } |  t j jø i | jù dS 6ƒ |  t j jø i | jú dS 6ƒ |  t j jø i | jû dS 6ƒ |  t j jø i | jü dT 6| jý dU 6| jþ dV 6ƒ |  t j  jø i | jÿ dT 6| j dU 6| jdW 6ƒ |  t j% jø i | jdX 6| jdY 6| jdZ 6| jd[ 6ƒ t j& t j' k rS|  t j& jø i | jdX 6| jdY 6| jd\ 6ƒ n  |  t j' jø i | jdX 6| jdY 6| jd\ 6ƒ |  t j/ jø i | jdX 6| jdY 6ƒ | j dg k rÝ|  t j/ jø i | jd^ 6ƒ n  |  t j» jø i | jd_ 6| jd` 6ƒ |  t j· jø i | j	d_ 6| j
d` 6ƒ |  t j® jø i | jd_ 6| jd` 6ƒ |  t j³ jø i | jd_ 6| jd` 6ƒ |  t j¤ jø i | jd_ 6| jd` 6ƒ |  t j© jø i | jd_ 6| jd` 6ƒ |  t jÌ jø i | jda 6| jdT 6ƒ |  t jÑ jø i | jda 6| jdT 6ƒ |  t jÔ jø i | jda 6| jdT 6ƒ |  t j× jø i | jda 6| jdT 6ƒ | j dh k r!|  t j3 jø i | jdT 6ƒ n  d  S(i   Ni   (   t   numberst   npyfuncst   mathimplt	   cmathimpli    (   t   numpy_supports   ?->?s   b->bs   B->Bs   h->hs   H->Hs   i->is   I->Is   l->ls   L->Ls   q->qs   Q->Qs   f->fs   d->ds   F->Fs   D->Ds   F->fs   D->ds   ??->?s   bb->bs   BB->Bs   hh->hs   HH->Hs   ii->is   II->Is   ll->ls   LL->Ls   qq->qs   QQ->Qs   ff->fs   dd->ds   FF->Fs   DD->Ds   bb->ds   BB->ds   hh->ds   HH->ds   ii->ds   II->ds   ll->ds   LL->ds   qq->ds   QQ->di
   s   bb->?s   BB->?s   hh->?s   HH->?s   ii->?s   II->?s   ll->?s   LL->?s   qq->?s   QQ->?s   ff->?s   dd->?s   FF->?s   DD->?s   b->?s   B->?s   h->?s   H->?s   i->?s   I->?s   l->?s   L->?s   q->?s   Q->?s   f->?s   d->?s   F->?s   D->?s   M->?s   m->?s   fi->fs   fl->fs   di->ds   dl->d(   t
   npdatetimes   m->ms   mm->ms   Mm->Ms   mM->Ms   MM->ms   mq->ms   md->ms   qm->ms   dm->ms   mm->di   s   mm->qs   MM->?s   mm->?s   MM->M(   i   i
   (   i   i
   (   i   i
   (   i   i
   (   i   i
   (   i   i   (   i   i   (  t    R   R   R   R   t   numbaR   t   versiont   int_invert_implt   int_negate_implt   real_negate_implt   complex_negate_implt   npt   negativet   int_abs_implt   uint_abs_implt   real_abs_implt   complex_abs_implt   absolutet   int_sign_implt   real_sign_implt   np_complex_sign_implt   signt   int_or_implt   int_add_implt   real_add_implt   complex_add_implt   addt   int_xor_implt   int_sub_implt   real_sub_implt   complex_sub_implt   subtractt   int_and_implt   int_mul_implt   real_mul_implt   complex_mul_implt   multiplyt   dividet   true_dividet   np_int_sdiv_implt   np_int_udiv_implt   np_real_div_implt   np_complex_div_implt   np_int_truediv_implt   np_real_floor_div_implt   np_complex_floor_div_implt   floor_dividet   np_int_srem_implt   np_int_urem_implt   np_real_mod_implt	   remaindert   np_int_fmod_implt   np_real_fmod_implt   fmodt   np_real_logaddexp_implt	   logaddexpt   np_real_logaddexp2_implt
   logaddexp2t   int_power_implt   real_power_implt   np_complex_power_implt   powert   np_real_rint_implt   np_complex_rint_implt   rintt   real_conjugate_implt   complex_conjugate_implt	   conjugatet   np_real_exp_implt   np_complex_exp_implt   expt   np_real_exp2_implt   np_complex_exp2_implt   exp2t   np_real_log_implt   np_complex_log_implt   logt   np_real_log2_implt   np_complex_log2_implt   log2t   np_real_log10_implt   np_complex_log10_implt   log10t   np_real_expm1_implt   np_complex_expm1_implt   expm1t   np_real_log1p_implt   np_complex_log1p_implt   log1pt   np_real_sqrt_implt   np_complex_sqrt_implt   sqrtt   np_int_square_implt   np_real_square_implt   np_complex_square_implt   squaret   np_int_reciprocal_implt   np_real_reciprocal_implt   np_complex_reciprocal_implt
   reciprocalt   np_real_sin_implt   np_complex_sin_implt   sint   np_real_cos_implt   np_complex_cos_implt   cost   tan_implt   np_complex_tan_implt   np_real_tan_implt   tant	   asin_implt   np_complex_asin_implt   np_real_asin_implt   arcsint   np_real_acos_implt	   acos_implt   arccost	   atan_implt   np_complex_atan_implt   np_real_atan_implt   arctant   np_real_atan2_implt   arctan2t   np_real_hypot_implt   hypott   np_real_sinh_implt   np_complex_sinh_implt   sinht   np_real_cosh_implt   np_complex_cosh_implt   cosht   np_real_tanh_implt   np_complex_tanh_implt   tanht
   asinh_implt   np_complex_asinh_implt   np_real_asinh_implt   arcsinht   np_real_acosh_implt   np_complex_acosh_implt   arccosht
   atanh_implt   np_complex_atanh_implt   np_real_atanh_implt   arctanht   radians_float_implt   deg2radt   radianst   degrees_float_implt   rad2degt   degreest   np_real_floor_implt   floort   np_real_ceil_implt   ceilt   np_real_trunc_implt   trunct   np_real_fabs_implt   fabst   int_ugt_implt   int_sgt_implt   real_gt_implt   np_complex_gt_implt   greatert   int_uge_implt   int_sge_implt   real_ge_implt   np_complex_ge_implt   greater_equalt   int_ult_implt   int_slt_implt   real_lt_implt   np_complex_lt_implt   lesst   int_ule_implt   int_sle_implt   real_le_implt   np_complex_le_implt
   less_equalt   int_ne_implt   real_ne_implt   np_complex_ne_implt	   not_equalt   int_eq_implt   real_eq_implt   np_complex_eq_implt   equalt   np_logical_and_implt   np_complex_logical_and_implt   logical_andt   np_logical_or_implt   np_complex_logical_or_implt
   logical_ort   np_logical_xor_implt   np_complex_logical_xor_implt   logical_xort   np_logical_not_implt   np_complex_logical_not_implt   logical_nott   np_int_smax_implt   np_int_umax_implt   np_real_maximum_implt   np_complex_maximum_implt   maximumt   np_int_smin_implt   np_int_umin_implt   np_real_minimum_implt   np_complex_minimum_implt   minimumt   np_real_fmax_implt   np_complex_fmax_implt   fmaxt   np_real_fmin_implt   np_complex_fmin_implt   fmint   np_real_isnan_implt   np_complex_isnan_implt   np_int_isnan_implt   isnant   np_real_isinf_implt   np_complex_isinf_implt   np_int_isinf_implt   isinft   np_real_isfinite_implt   np_complex_isfinite_implt   np_int_isfinite_implt   np_datetime_isfinite_implt   isfinitet   np_real_signbit_implt   signbitt   np_real_copysign_implt   copysignt   np_real_nextafter_implt	   nextaftert   np_real_spacing_implt   spacingt   np_real_ldexp_implt   ldexpt   bitwise_andt
   bitwise_ort   bitwise_xort   invertt   int_shl_implt
   left_shiftt   int_shr_implt   right_shiftR   t   updatet   timedelta_neg_implt   timedelta_abs_implt   timedelta_sign_implt   timedelta_add_implt   datetime_plus_timedeltat   timedelta_plus_datetimet   timedelta_sub_implt   datetime_minus_timedeltat   datetime_minus_datetimet   timedelta_times_numbert   number_times_timedeltat   timedelta_over_numbert   timedelta_over_timedeltat   timedelta_floor_div_timedeltat   datetime_eq_datetime_implt   timedelta_eq_timedelta_implt   datetime_ne_datetime_implt   timedelta_ne_timedelta_implt   datetime_lt_datetime_implt   timedelta_lt_timedelta_implt   datetime_le_datetime_implt   timedelta_le_timedelta_implt   datetime_gt_datetime_implt   timedelta_gt_timedelta_implt   datetime_ge_datetime_implt   timedelta_ge_timedelta_implt   datetime_max_implt   timedelta_max_implt   datetime_min_implt   timedelta_min_implt   timedelta_mod_timedelta(   t   ufunc_dbR   R   R   R   R   t   vRw   t   arcsin_implt   arctan_implt   arcsinh_implt   arctanh_implR   (    (    s5   lib/python2.7/site-packages/numba/targets/ufunc_db.pyR   /   sL   "	














































































































































































































































































































































































































































































































































































































(   t   __doc__t
   __future__R    R   R   t   numpyR   R   R   R   R   R
   R   (    (    (    s5   lib/python2.7/site-packages/numba/targets/ufunc_db.pyt   <module>   s   			