o
    Td                     @   s  d dl mZ d dlZd dlmZ d dlZd dlZd dlZd dl	m
Z
 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mZmZ d dlmZmZ d dlm Z  d d	l!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z' d d
l(m)Z) d dl*m+Z+ eej,dd Z-eej.ej/ej/dd Z0eej1ej/ej/dd Z2eej1ej3ej3dd Z4eej1ej5ej5dd Z6eej7ej8ej8eej7ej9ej9dd Z:eej;ej8ej8eej;ej9ej9dd Z<dd Z=eej7e=d eej;e=d eej>dd Z?eej/ej>eej@ej>eej5ej>d d! ZAeej>ej/eej>ej5eej>ej@d"d# ZBeejCejDejEd$d% ZFeejGejDejEej/d&d' ZHd(d) ZIeeJejKd*d+ ZLeeJeMej/d,d- ZNeeOejKd.d/ ZPeeOeMej/d0d1 ZQd2d3 ZReeSejTd4d5 ZUeeSejTejEd6d7 ZVeeWej/eeXej/d8d9 ZYeeZeMej/d:d; Z[eej\ej/d<d= Z]eej^d>d? Z_eej`d@dA Zaeej@dBdC Zbeecej/dDdE ZdeeeejfdFdG ZgeehejidHdI ZjedJej/ej/dKdL ZkeelejmdMdN ZneeoejpdOdP ZqeerdQdR ZseerejKdSdT ZteeodUdV ZueeodWdXdYdZ Zvd[d\ Zwd]d^ Zxeexej\eexejyd_d` Zzeewej\eewejydadb Z{d dcl|m}Z}m~Z~ d ddlmZmZ ee}ejejee}ejejdedf ZeeOdgdh ZeeOdidj ZeeJdkdl ZeeJdmdn Zedodp Zedqdp Zedrds ZeeOdtdu ZeeJdvdw ZeejeMej/dxdy Zeeddzd{Zeed|d} Zeed~d Zdd Zeedd Zeedd Zdd Zeedd Zedd ZeddZe Zeedddd Zeedd Zedd Zeedd Zeedd ZeedddZdS )    )
namedtupleN)reduce)ir)lower_builtinlower_getattrlower_getattr_generic
lower_castlower_constantiternext_implcall_getitercall_iternextimpl_ret_borrowedimpl_ret_untrackednumba_typeref_ctor)typingtypesutilscgutils)overload	intrinsic)
Conversion)TypingErrorLoweringErrorNumbaExperimentalFeatureWarningNumbaTypeErrorRequireLiteralValueNumbaPerformanceWarning)literal_unroll)as_numba_typec                 C   s   t | tjrdd }|S d S )Nc                 S   s   | S N valr    r    i/home/ncw/WWW/www-new/content/articles/pi-bbp/venv/lib/python3.10/site-packages/numba/cpython/builtins.pyimpl      zol_truth.<locals>.impl
isinstancer   Boolean)r"   r$   r    r    r#   ol_truth   s   r)   c                 C   s   |  tj|}||||S )z3
    Implement `x is not y` as `not (x is y)`.
    )get_functionoperatoris_not_)contextbuildersigargsis_implr    r    r#   generic_is_not#   s   r3   c                 C   s`   |j \}}||kr-|jrd}t|z	| tj|}W n ty'   tj Y S w |||S tjS )z-
    Default implementation for `x is y`
    zno default `is` implementation)	r1   mutabler   r*   r+   eqNotImplementedErrorr   	false_bit)r.   r/   r0   r1   lhs_typerhs_typemsgeq_implr    r    r#   
generic_is,   s   


r<   c                 C   sJ   |j \}}||kr"||d tj}||d tj}|d||S tjS )z7
    Implementation for `x is y` for Opaque types.
    r      z==)r1   ptrtointr   intp_ticmp_unsignedr7   )r.   r/   r0   r1   r8   r9   lhs_ptrrhs_ptrr    r    r#   	opaque_isF   s   
rC   c                 C   sb   |\}}|j \}}| |||tj}| |||tj}	| tjttjtjtj}
|
|||	fS )z
    Implementation for `x is y` for types derived from types.Boolean
    (e.g. BooleanLiteral), and cross-checks between literal and non-literal
    booleans, to satisfy Python's behavior preserving identity for bools.
    )	r1   castr   booleanr*   r+   r5   r   	signature)r.   r/   r0   r1   arg1arg2	arg1_type	arg2_type_arg1_arg2r;   r    r    r#   bool_is_implV   s   
rM   c                 C   s@   |j \}}d}|j|jkrd}ttd|}t| ||j|S Nr   r=   r1   literal_valuer   ConstantIntTyper   return_typer.   r/   r0   r1   rG   rH   r"   resr    r    r#   const_eq_impli      
rV   c                 C   s@   |j \}}d}|j|jkrd}ttd|}t| ||j|S rN   rO   rT   r    r    r#   const_ne_implu   rW   rX   c                    s    fdd}|S )Nc                    sL   t | tj}t |tj}|r|r fdd}|S ||A r$ fdd}|S d S )Nc                    s    S r   r    abr!   r    r#   r$      r%   z/gen_non_eq.<locals>.none_equality.<locals>.implc                    s     S r   r    rY   r!   r    r#   r$      s   r'   r   NoneType)rZ   r[   a_noneb_noner$   r!   r    r#   none_equality   s   z!gen_non_eq.<locals>.none_equalityr    )r"   r`   r    r!   r#   
gen_non_eq   s   ra   TFc                 C   s4   |  }| ||||}| ||}|| ||||S )z>
    Deferred.__getattr__ => redirect to the actual type.
    )getrD   get_getattr)r.   r/   typvalueattr
inner_typer"   impr    r    r#   deferred_getattr   s   ri   c                 C   s0   |  |||| }| j| }||| |S r   )rD   rb   data_model_managersetmake_uninitialized)r.   r/   fromtytotyr"   actualmodelr    r    r#   any_to_deferred   s   
rq   c                 C   s*   | j | }|||}| ||| |S r   )rj   rb   rD   )r.   r/   rm   rn   r"   rp   r    r    r#   deferred_to_any   s   
rr   c                 C   s0   |\}}| ||g}||}t| ||j|S r   )geploadr   rS   )r.   r/   r0   r1   base_ptridxelem_ptrrU   r    r    r#   getitem_cpointer   s   
rx   c                 C   s(   |\}}}| ||g}||| d S r   )rs   store)r.   r/   r0   r1   ru   rv   r"   rw   r    r    r#   setitem_cpointer   s   
rz   c           	         sX   t |t |ksJ ||ft |dksJ  fdd}t||}t||\}}|S )Nr   c                    s   | \}}|\}}j ||}|d usJ  |||} |||}ttj||}|}| ||f}	 |	||}
||
fS r   )	typing_contextunify_typesrD   r   rF   r   rE   r*   select)accumulatorre   acctyaccvtyvtycmpsiggepredrU   r/   cmpopr.   r    r#   binary_minmax   s   z do_minmax.<locals>.binary_minmax)lenzipr   )	r.   r/   argtysr1   r   r   typvalsrestyresvalr    r   r#   	do_minmax   s   
r   c                 C   0   t |jd }t||d }t| |||tjS Nr   )listr1   r   unpack_tupler   r+   gtr.   r/   r0   r1   r   r    r    r#   max_iterable      r   c                 C      t | ||j|tjS r   )r   r1   r+   r   r.   r/   r0   r1   r    r    r#   
max_vararg      r   c                 C   r   r   )r   r1   r   r   r   r+   ltr   r    r    r#   min_iterable   r   r   c                 C   r   r   )r   r1   r+   r   r   r    r    r#   
min_vararg   r   r   c                 C   s   d| j f S )Nzllvm.rint.f%d)bitwidth)tpr    r    r#   _round_intrinsic   s   r   c           
      C   sj   |j d }| |}|j}t||g}t||t|}|||}	|	|	| |j
}	t| ||j
|	S r   )r1   get_value_typemoduler   FunctionTyper   get_or_insert_functionr   callfptosirS   r   )
r.   r/   r0   r1   flttylltyr   fntyfnrU   r    r    r#   round_impl_unary   s   

r   c                    sN   |j d }tt|t||  fdd}| ||||}t| ||j|S )Nr   c                    s   t | s
t | r| S |dkr8|dkrd|d  }d}nd| }d}| | | }t |r0| S  || | S d|  }| | } || S )Nr      g      $@gMDg      ?)mathisinfisnan)xndigitspow1pow2y_roundr    r#   round_ndigits  s   

z(round_impl_binary.<locals>.round_ndigits)	r1   r   ExternalFunctionr   r   rF   compile_internalr   rS   )r.   r/   r0   r1   r   r   rU   r    r   r#   round_impl_binary   s   
r   c                 C   s0   |j \}|\}| ||||j}t| ||j|S r   )r1   rD   rS   r   )r.   r/   r0   r1   r   r"   rU   r    r    r#   int_impl$  s   r   c                 C   s   |j }|j}t|jdkr9|j\}|\}t|tjr*| ||||}t| ||j |S | ||||}	| 	|d}
n t|jdkrY|j\}}|\}	}
| ||	||}	| ||
||}
| 
||}|	|_|
|_| }t| ||j |S )Nr=   r      )rS   underlying_floatr   r1   r'   r   ComplexrD   r   get_constantmake_complexrealimag	_getvalue)r.   r/   r0   r1   complex_type
float_typeargtyargrU   r   r   realtyimagtycmplxr    r    r#   complex_impl-  s(   
r   c                    sb   t |jtjr!|jj  fdd}| ||||}t| ||j|S |\}|j\}| ||||jS )z1
    Call a number class, e.g. np.int32(...)
    c                     s   t j|  dS )N)dtype)nparray)arg_hackdtr    r#   fooQ  s   znumber_constructor.<locals>.foo)	r'   rS   r   Arrayr   r   r   r1   rD   )r.   r/   r0   r1   r   rU   r"   valtyr    r   r#   number_constructorI  s   r   c                 C      |   S r   get_dummy_valuer.   r/   r   pyvalr    r    r#   constant_dummy_  s   r   c                 C   s0   |  |}| j|||t|d}|||S )N)info)get_function_pointer_typeadd_dynamic_addrget_pointerstrbitcast)r.   r/   r   r   ptrtyptrvalr    r    r#   constant_function_pointerd  s
   
r   c                 C   s&   |d u r|  ||jS | ||j|S r   )make_optional_nonetypemake_optional_valuer   r    r    r#   constant_optionall  s   r   c                 C   r   )z&
    One-argument type() builtin.
    r   r   r    r    r#   	type_implv  s   r   c                 C   s    |j \}|\}t| |||}|S r   )r1   r   )r.   r/   r0   r1   r   r"   itervalr    r    r#   	iter_impl~  s   r   c                 C   sr   |j \}|\}t| |||}|j|| dd | j|td W d    | S 1 s0w   Y  | S )NF)likelyr    )	r1   r   if_thenr-   is_valid	call_convreturn_user_excStopIterationyielded_value)r.   r/   r0   r1   itertyr   rU   r    r    r#   	next_impl  s   
r   znot inc                 C   s"   dd }|  ||||}||S )Nc                 S   s   t || S r   )r+   containsrY   r    r    r#   in_impl     znot_in.<locals>.in_impl)r   r-   )r.   r/   r0   r1   r   rU   r    r    r#   not_in  s   
r   c                 C   s0   |j \}|j}| |t|j}t| ||j|S r   )r1   rS   r   r   r   r   )r.   r/   r0   r1   r   rettyrU   r    r    r#   constsized_len  s   r   c                 C   s   |j \}t|rtjS tjS r   )r1   r   r   true_bitr7   )r.   r/   r0   r1   r   r    r    r#   
sized_bool  s   r   c                 C   s    |j }| |}t| ||j |S r   )rS   get_constant_undefr   )r.   r/   r0   r1   r   rU   r    r    r#   lower_empty_tuple  s   
r   c                 C   s   |\}t | ||j|S r   )r   rS   )r.   r/   r0   r1   r"   r    r    r#   lower_tuple  s   r  c                 C   s6   t jt jt jt jt jt jf}t| |rdd }|S d S )Nc                 S   s   t | dkS r   )r   r   r    r    r#   	bool_impl  r   z bool_sequence.<locals>.bool_impl)r   CharSeqUnicodeCharSeqDictTypeListTypeUnicodeTypeSetr'   )r   valid_typesr  r    r    r#   bool_sequence  s   
	r  always)inlinec                 C   s    t | tjs
| d u rdd S d S )Nc                 S      dS NFr    r  r    r    r#   <lambda>  s    zbool_none.<locals>.<lambda>r\   r  r    r    r#   	bool_none  s   r  c                 C   s,   t | tjr	tjS t | tjr| jS tdNzUnsupported type)r'   r   Floatr   infIntegermaxvalr6   rd   r    r    r#   get_type_max_value  s
   r  c                 C   s.   t | tjr
tj S t | tjr| jS tdr  )r'   r   r  r   r  r  minvalr6   r  r    r    r#   get_type_min_value  s
   r  c           
      C   s   |j d j}t|tjr|j}t|}|j}t	||}nLt|tj
rN|j}|dkr0t }n|dkr9t }ntdttd|}	t	|tj }nt|tjtjfrjd}t|}tjjd }t	||}t| |||S )Nr       @   +llvmlite only supports 32 and 64 bit floatsfloat{}r=   )r1   r   r'   r   r  r   r   rR   r  rQ   r  	FloatType
DoubleTyper6   getattrr   formatr  
NPDatetimeNPTimedeltaint64r   
r.   r/   r0   r1   rd   bwltyr"   rU   nptyr    r    r#   lower_get_type_min_value  s*   



r*  c           
      C   s   |j d j}t|tjr|j}t|}|j}t	||}nIt|tj
rM|j}|dkr0t }n|dkr9t }ntdttd|}	t	|tj}nt|tjtjfrgd}t|}tjj}t	||}t| |||S )Nr   r  r  r  r  )r1   r   r'   r   r  r   r   rR   r  rQ   r  r  r   r6   r!  r   r"  r  r#  r$  r%  r   r&  r    r    r#   lower_get_type_max_value  s*   



r+  )
IndexValueIndexValueType)r   register_jitablec                 C   s2   |j }|\}}t|| |}||_||_| S r   )rS   r   create_struct_proxyindexre   r   )r.   r/   r0   r1   rd   r0  re   index_valuer    r    r#   impl_index_value  s   r2  c                 C   (   t | trt |trdd }|S d S d S )Nc                 S   st   t | jrt |jr| j|jk r| S |S | S t |jr |S | j|jkr(|S | j|jkr8| j|jk r6| S |S | S r   r   r   re   r0  indval1indval2r    r    r#   min_impl*     zindval_min.<locals>.min_implr'   r-  )r6  r7  r8  r    r    r#   
indval_min&     
r;  c                 C   ,   t | tjrt |tjrdd }|S d S d S )Nc                 S   s   | o|S r   r    val1val2r    r    r#   bool_min_implG     z"boolval_min.<locals>.bool_min_implr&   )r?  r@  rA  r    r    r#   boolval_minC     
rC  c                 C   r3  )Nc                 S   st   t | jrt |jr| j|jk r| S |S | S t |jr |S |j| jkr(|S | j|jkr8| j|jk r6| S |S | S r   r4  r5  r    r    r#   max_implP  r9  zindval_max.<locals>.max_implr:  )r6  r7  rE  r    r    r#   
indval_maxL  r<  rF  c                 C   r=  )Nc                 S   s   | p|S r   r    r>  r    r    r#   bool_max_implm  rB  z"boolval_max.<locals>.bool_max_implr&   )r?  r@  rG  r    r    r#   boolval_maxi  rD  rH  c                 C   s   | |kS r   r    rY   r    r    r#   r  r      r  c                 C   s   | |k S r   r    rY   r    r    r#   r  s  rI  c                    s    t | tjr fdd}|S d S )Nc                    s,   t | }t|}|D ]	} ||r|}q
|S r   )iternext)iterableit
return_valr"   opr    r#   r$   y  s   
zmin_max_impl.<locals>.impl)r'   r   IterableType)rL  rP  r$   r    rO  r#   min_max_implv  s   rR  c                 C   
   t | tS r   )rR  	less_thanrL  r    r    r#   iterable_min     
rV  c                 C   rS  r   )rR  greater_thanrU  r    r    r#   iterable_max  rW  rY  c                 C   sz   |j }dd }tj|j}t|t||}t|dkr*| 	 | 
|||f}n| 	 | 
||df}| ||||S )ae  Redirect constructor implementation to `numba_typeref_ctor(cls, *args)`,
    which should be overloaded by the type's implementation.

    For example:

        d = Dict()

    `d` will be typed as `TypeRef[DictType]()`.  Thus, it will call into this
    implementation.  We need to redirect the lowering to a function
    named ``numba_typeref_ctor``.
    c                 W   s   t | g|R  S r   )r   )clsr1   r    r    r#   	call_ctor  s   z%redirect_type_ctor.<locals>.call_ctorr   r    )rS   r   Tuple
from_typesr1   r   rF   TypeRefr   r   
make_tupler   )r.   r/   r0   r1   rZ  r[  	ctor_argsr    r    r#   redirect_type_ctor  s   ra  c                    s   d }t |tjrd}nt |tjrd}nt |tjrd}|d ur)dj| }t|t | tjjtj	tj
tjtjfr<t nt | tjjrFt nd S d fdd	}|S )	N)strings )bytesr[   )	bytearrayr[   z/sum() can't sum {} [use {}''.join(seq) instead]r   c                    s   |} | D ]}|| }q|S r   r    )rL  startr   r   iteratorr    r#   r$     s   
zol_sum.<locals>.implr   )r'   r   r  Bytes	ByteArrayr"  r   
containers_HomogeneousTupleListr  r   	RangeTyperJ  _HeterogeneousTupler   )rL  rf  errorr:   r$   r    rg  r#   ol_sum  s&   
rr  c                 G      dd }|S )Nc                 w   s&    t |g|R  D ]}| | V  q	d S r   )r   )funcrL  r1   r   r    r    r#   r$     s   zol_map.<locals>.implr    )rt  rL  r1   r$   r    r    r#   ol_map  s   ru  c                 C   s,   | d u s
t | tjrdd }|S dd }|S )Nc                 s   s    |D ]}|r
|V  qd S r   r    rt  rL  r   r    r    r#   r$     s   zol_filter.<locals>.implc                 s   s    |D ]	}| |r|V  qd S r   r    rv  r    r    r#   r$     s   r\   )rt  rL  r$   r    r    r#   	ol_filter  s
   	rw  c                 C      d S r   r    vartypsr    r    r#   _isinstance_no_warn  r%   r|  c                 C   s   d}t j|td t| |S )Nz>Use of isinstance() detected. This is an experimental feature.)category)warningswarnr   ol_isinstance_no_warn)rz  r{  r:   r    r    r#   ol_isinstance  s   
r  c                 C   s.  dd }dd }t | }t|tjrd| d}t|tjtjtjtjtj	tj
tjtjtjtjtjtjtjtjtjtjf}t||sMd| d}t||}t|tjrZ|jd	 }t|tjsc|f}|D ]}t|tjrs|jd	 }	nt|tjr||}	n|j}	ttjttjttjtj	fttj
ttjttji}
|	|
v rt||
|	 r|  S qet|tjr|	tjtjfvrd
}t|t||	u r|  S |  S t |	}||kr|  S t|tjrt|tjr|j|jjkr|  S t|tj r|jd	 tj!krt||j"st|tjrt|tjr|  S qe|S )Nc                 S   r  )NTr    ry  r    r    r#   	true_impl  r%   z(ol_isinstance_no_warn.<locals>.true_implc                 S   r  r  r    ry  r    r    r#   
false_impl  r%   z)ol_isinstance_no_warn.<locals>.false_implz1isinstance cannot handle optional types. Found: ""z1isinstance() does not support variables of type "z".r   zLNumba type classes (except numba.typed.* container types) are not supported.)#r   r'   r   Optionalr   Numberrj  ro  r  LiteralStrKeyDictrn  r  r\  UniTupler	  Function	ClassTyper  ClassInstanceTyper]   r   keyrd  rangedictr   tuple	BaseTuplerk   r^  r   instance_type	Container	undefined	__class__)rz  r{  r  r  var_tyr:   supported_var_tyt_typsrd   r  types_not_registered	numba_typr    r    r#   r    s|   




r  c                 C   rx  r   r    objnamer    r    r#   _getattr_raise_attr_exc[  s   r  c                    s<   t |tjs
td|j}d|  d| d  fdd}|S )N(argument 'name' must be a literal string'z' has no attribute 'c                    s   t  r   )AttributeErrorr  messager    r#   r$   h  rB  z(ol__getattr_raise_attr_exc.<locals>.impl)r'   r   StringLiteralr   rP   )r  r  lnamer$   r    r  r#   ol__getattr_raise_attr_exca  s   r  c                    s$  t |tjs
td|j| t tjr)d d d d}t|d u rht tjr8j	t
ksH|}fdd}||fS | t| |fi t|}fdd}||fS |}t tjrfd	d}||fS |   fd
d}||fS )Nr  zQReturning function objects is not implemented. getattr() was requested to return z from attribute 'z' of .c                    s   |d }| j | | |S N)nrtincref)cgctxr/   r0   llargstmp)defaultr    r#   r$     s   zresolve_getattr.<locals>.implc                    s   |   }|||d d S r  )r*   )r  r/   r0   r  native_impl)r   	raise_sigr    r#   r$     s   c                    s<    j }| ||d |}| |||}| j| | |S r   )thisrD   get_bound_functionr  r  )r  r/   r0   ll_args	cast_typecastedrU   )r   r  r    r#   r$     s
   c                    sD   |  }|| ||d }| || }| j|| |S r   )rc   rD   r  r  )r  r/   r0   r  	attr_implrU   r  )attrtyr   r  r  r    r#   r$     s
   )r'   r   r  r   rP   resolve_getattrr  r   
NamedTupleinstance_class_getattr_default_typeresolve_value_typer  get_call_typenoneBoundFunction)tyctxr  r  r  r:   r0   r$   r    )r  r  r   r   r  r  r  r#   r  m  s@   !
r  r  rc  )prefer_literalc                 C      dd }|S )Nc                 S   s   t | |tS r   )r  _getattr_defaultr  r    r    r#   r$     r   zol_getattr_2.<locals>.implr    r  r  r$   r    r    r#   ol_getattr_2     r  c                 C   rs  )Nc                 S   s   t | ||S r   )r  )r  r  r  r    r    r#   r$     r   zol_getattr_3.<locals>.implr    )r  r  r  r$   r    r    r#   ol_getattr_3  r  r  c                    sb   t |tjs
td|j}| ||  d u rtd}ntd}|||} fdd}||fS )Nr  FTc                    s    d u rt jS t jS r   )r   r7   r   )r  r/   r0   r  r   r    r#   r$     s   zresolve_hasattr.<locals>.impl)r'   r   r  r   rP   r  literal)r  r  r  r  r   r0   r$   r    r  r#   resolve_hasattr  s   

r  c                 C   r  )Nc                 S   s
   t | |S r   )r  r  r    r    r#   r$     s   
zol_hasattr.<locals>.implr    r  r    r    r#   
ol_hasattr  r  r  c                    s   d|  d  fdd}|S )Nz<object type:>c                    s"   d}t | |dkrt| | S  S )N__repr__T)hasattrr!  )r  rf   missing_repr_formatr    r#   r$     s   zol_repr_generic.<locals>.implr    )r  r$   r    r  r#   ol_repr_generic  s   r  c                 C   s   ddd}|S )Nrc  c                 S   s&   d}t | |dkrt| | S t| S )N__str__T)r  r!  repr)objectrf   r    r    r#   r$     s   zol_str_generic.<locals>.implrc  r    )r  r$   r    r    r#   ol_str_generic  s   
r  ri  r  )collectionsr   r   	functoolsr   numpyr   r+   r~  llvmliter   numba.core.imputilsr   r   r   r   r	   r
   r   r   r   r   r   
numba.corer   r   r   r   numba.core.extendingr   r   numba.core.typeconvr   numba.core.errorsr   r   r   r   r   r   numba.misc.specialr   numba.core.typing.asnumbatyper   truthr)   is_notAnyr3   r,   r<   OpaquerC   r(   rM   r5   LiteralIntegerLiteralrV   nerX   ra   DeferredTyperi   r  rq   rr   getitemCPointerr  rx   setitemrz   r   maxr  r   VarArgr   minr   r   r   roundr  r   r   intfloatr   complexr   NumberClassr   Dummyr   ExternalFunctionPointerr   r   r   r   rJ  rQ  r   rK  IteratorTyper   r   r   
ConstSizedr   boolSizedr   r  r   r  r  r  r  r  DTyper*  r+  numba.core.typing.builtinsr,  r-  numba.extendingr.  intpTypeuintpr2  r;  rC  rF  rH  rX  rT  rR  rV  rY  r^  ra  sumrr  mapru  filterrw  r|  r'   r  r  r  r  r  r  r  r!  r  r  r  r  r  r  r  r   r  r    r    r    r#   <module>   s6   4 





	
	











%






	




















	







'



a


9






