o
    Y۷iv                     @   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$ 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j0dd Z1eej2ej3ej3dd Z4eej5ej3ej3dd Z6eej5ej7ej7dd Z8eej5ej9ej9dd Z:eej;ej<ej<eej;ej=ej=dd Z>eej?ej<ej<eej?ej=ej=dd Z@dd ZAeej;eAd eej?eAd eejBdd  ZCeej3ejBeejDejBeej9ejBd!d" ZEeejBej3eejBej9eejBejDd#d$ ZFeejGejHejId%d& ZJeejKejHejIej3d'd( ZLd)d* ZMeeNejOd+d, ZPeeNeQej3d-d. ZReeSejOd/d0 ZTeeSeQej3d1d2 ZUd3d4 ZVeeWejXd5d6 ZYeeWejXejId7d8 ZZee[ej3ee\ej3d9d: Z]ee\ej^d;d< Z_ee`eQej3d=d> Zaeejbej3d?d@ ZceejddAdB ZeeejfdCdD ZgeejDdEdF Zheeiej3dGdH ZjeekejldIdJ ZmeenejodKdL ZpedMej3ej3dNdO ZqeerejsdPdQ ZteeuejvdRdS ZweexdTdU ZyeexejOdVdW ZzeeudXdY Z{eeudZd[d\d] Z|d^d_ Z}d`da Z~e#e~e#e}G dbdc dce"Zee~ejbee~ejddde Zee}ejbee}ejdfdg Zd dhlmZmZ d dilmZmZ eeejejeeejejeeejejdjdk ZeeSdldm ZeeSdndo ZeeNdpdq ZeeNdrds Zedtdu Zedvdu Zedwdx ZeeSdydz ZeeNd{d| ZeejeQej3d}d~ ZeedddZeedd 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)AbstractTemplateinfer_global	signature)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#   P/home/ubuntu/vllm_env/lib/python3.10/site-packages/numba/cpython/new_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   r6   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)	r4   mutabler   r-   r.   eqNotImplementedErrorr   	false_bit)r1   r2   r3   r4   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==)r4   ptrtointr   intp_ticmp_unsignedr:   )r1   r2   r3   r4   r;   r<   lhs_ptrrhs_ptrr#   r#   r&   	opaque_isH   s   
rF   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.
    )	r4   castr   booleanr-   r.   r8   r   r   )r1   r2   r3   r4   arg1arg2	arg1_type	arg2_type_arg1_arg2r>   r#   r#   r&   bool_is_implX   s   
rO   c                 C   s@   |j \}}d}|j|jkrd}ttd|}t| ||j|S Nr   r@   r4   literal_valuer   ConstantIntTyper   return_typer1   r2   r3   r4   rI   rJ   r%   resr#   r#   r&   const_eq_implk      
rX   c                 C   s@   |j \}}d}|j|jkrd}ttd|}t| ||j|S rP   rQ   rV   r#   r#   r&   const_ne_implw   rY   rZ   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#   r[   r$   r#   r&   r'      s   r*   r   NoneType)r\   r]   a_noneb_noner'   r$   r#   r&   none_equality   s   z!gen_non_eq.<locals>.none_equalityr#   )r%   rb   r#   r$   r&   
gen_non_eq   s   rc   TFc                 C   s4   |  }| ||||}| ||}|| ||||S )z>
    Deferred.__getattr__ => redirect to the actual type.
    )getrG   get_getattr)r1   r2   typvalueattr
inner_typer%   impr#   r#   r&   deferred_getattr   s   rk   c                 C   s0   |  |||| }| j| }||| |S r"   )rG   rd   data_model_managersetmake_uninitialized)r1   r2   fromtytotyr%   actualmodelr#   r#   r&   any_to_deferred   s   
rs   c                 C   s*   | j | }|||}| ||| |S r"   )rl   rd   rG   )r1   r2   ro   rp   r%   rr   r#   r#   r&   deferred_to_any   s   
rt   c                 C   s0   |\}}| ||g}||}t| ||j|S r"   )geploadr   rU   )r1   r2   r3   r4   base_ptridxelem_ptrrW   r#   r#   r&   getitem_cpointer   s   
rz   c                 C   s(   |\}}}| ||g}||| d S r"   )ru   store)r1   r2   r3   r4   rw   rx   r%   ry   r#   r#   r&   setitem_cpointer   s   
r|   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_typesrG   r   r   r   py_boolr-   select)accumulatorrg   acctyaccvtyvtycmpsiggepredrW   r2   cmpopr1   r#   r&   binary_minmax   s   z do_minmax.<locals>.binary_minmax)lenzipr   )	r1   r2   argtysr4   r   r   typvalsrestyresvalr#   r   r&   	do_minmax   s   
r   c                 C   0   t |jd }t||d }t| |||tjS Nr   )listr4   r   unpack_tupler   r.   gtr1   r2   r3   r4   r   r#   r#   r&   max_iterable      r   c                 C      t | ||j|tjS r"   )r   r4   r.   r   r1   r2   r3   r4   r#   r#   r&   
max_vararg      r   c                 C   r   r   )r   r4   r   r   r   r.   ltr   r#   r#   r&   min_iterable   r   r   c                 C   r   r"   )r   r4   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   )r4   get_value_typemoduler   FunctionTyper   get_or_insert_functionr   callfptosirU   r   )
r1   r2   r3   r4   flttylltyr   fntyfnrW   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)	r4   r   ExternalFunctionr   r   r   compile_internalr   rU   )r1   r2   r3   r4   r   r   rW   r#   r   r&   round_impl_binary   s   
r   c                 C   s0   |j \}|\}| ||||j}t| ||j|S r"   )r4   rG   rU   r   )r1   r2   r3   r4   r   r%   rW   r#   r#   r&   int_impl&  s   r   c                 C   s,   |j \}| |jt|j}t| ||j|S r"   )r4   get_constantrU   floatrR   r   )r1   r2   r3   r4   r   rW   r#   r#   r&   float_literal_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      )rU   underlying_floatr   r4   r*   r   ComplexrG   r   r   make_complexrealimag	_getvalue)r1   r2   r3   r4   complex_type
float_typeargtyargrW   r   r   realtyimagtycmplxr#   r#   r&   complex_impl6  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&   fooZ  s   znumber_constructor.<locals>.foo)	r*   rU   r   Arrayr   r   r   r4   rG   )r1   r2   r3   r4   r   rW   r%   valtyr#   r   r&   number_constructorR  s   r   c                 C      |   S r"   get_dummy_valuer1   r2   r   pyvalr#   r#   r&   constant_dummyh  s   r   c                 C   s0   |  |}| j|||t|d}|||S )N)info)get_function_pointer_typeadd_dynamic_addrget_pointerstrbitcast)r1   r2   r   r   ptrtyptrvalr#   r#   r&   constant_function_pointerm  s
   
r   c                 C   s&   |d u r|  ||jS | ||j|S r"   )make_optional_nonetypemake_optional_valuer   r#   r#   r&   constant_optionalu  s   r   c                 C   r   )z&
    One-argument type() builtin.
    r   r   r#   r#   r&   	type_impl  s   r   c                 C   s    |j \}|\}t| |||}|S r"   )r4   r   )r1   r2   r3   r4   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#   )	r4   r   if_thenr0   is_valid	call_convreturn_user_excStopIterationyielded_value)r1   r2   r3   r4   itertyr   rW   r#   r#   r&   	next_impl  s   
r   znot inc                 C   s"   dd }|  ||||}||S )Nc                 S   s   t || S r"   )r.   containsr[   r#   r#   r&   in_impl     znot_in.<locals>.in_impl)r   r0   )r1   r2   r3   r4   r   rW   r#   r#   r&   not_in  s   
r   c                 C   s0   |j \}|j}| |t|j}t| ||j|S r"   )r4   rU   r   r   r   r   )r1   r2   r3   r4   r   rettyrW   r#   r#   r&   constsized_len  s   r  c                 C   s   |j \}t|rtjS tjS r"   )r4   r   r   true_bitr:   )r1   r2   r3   r4   r   r#   r#   r&   
sized_bool  s   r  c                 C   s    |j }| |}t| ||j |S r"   )rU   get_constant_undefr   )r1   r2   r3   r4   r   rW   r#   r#   r&   lower_empty_tuple  s   
r  c                 C   s   |\}t | ||j|S r"   )r   rU   )r1   r2   r3   r4   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maxvalr   rf   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  minvalr   r  r#   r#   r&   get_type_min_value  s
   r  c                   @   s   e Zd Zdd ZdS )MinValInferc                 C   sH   |rJ t |dksJ t|d tjtjfr"t|d jg|R  S d S )Nr@   r   )r   r*   r   DTypeNumberClassr   r   )selfr4   kwsr#   r#   r&   generic  s
   zMinValInfer.genericN)__name__
__module____qualname__r%  r#   r#   r#   r&   r     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@   )r4   r   r*   r   r  r   r   rT   r  rS   r  	FloatType
DoubleTyper9   getattrr   formatr  
NPDatetimeNPTimedeltaint64r   
r1   r2   r3   r4   rf   bwltyr%   rW   nptyr#   r#   r&   lower_get_type_min_value  s*   



r8  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,  )r4   r   r*   r   r  r   r   rT   r  rS   r  r-  r.  r9   r/  r   r0  r  r1  r2  r3  r   r4  r#   r#   r&   lower_get_type_max_value  s*   



r9  )
IndexValueIndexValueType)r   register_jitablec                 C   s2   |j }|\}}t|| |}||_||_| S r"   )rU   r   create_struct_proxyindexrg   r   )r1   r2   r3   r4   rf   r>  rg   index_valuer#   r#   r&   impl_index_value-  s   r@  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   rg   r>  indval1indval2r#   r#   r&   min_impl=     zindval_min.<locals>.min_implr*   r;  )rD  rE  rF  r#   r#   r&   
indval_min9     
rI  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_implZ     z"boolval_min.<locals>.bool_min_implr)   )rM  rN  rO  r#   r#   r&   boolval_minV     
rQ  c                 C   rA  )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"   rB  rC  r#   r#   r&   max_implc  rG  zindval_max.<locals>.max_implrH  )rD  rE  rS  r#   r#   r&   
indval_max_  rJ  rT  c                 C   rK  )Nc                 S   s   | p|S r"   r#   rL  r#   r#   r&   bool_max_impl  rP  z"boolval_max.<locals>.bool_max_implr)   )rM  rN  rU  r#   r#   r&   boolval_max|  rR  rV  c                 C   s   | |kS r"   r#   r[   r#   r#   r&   r        r  c                 C   s   | |k S r"   r#   r[   r#   r#   r&   r    rW  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'     s   
zmin_max_impl.<locals>.impl)r*   r   IterableType)rZ  r^  r'   r#   r]  r&   min_max_impl  s   r`  c                 C   
   t | tS r"   )r`  	less_thanrZ  r#   r#   r&   iterable_min     
rd  c                 C   ra  r"   )r`  greater_thanrc  r#   r#   r&   iterable_max  re  rg  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   )clsr4   r#   r#   r&   	call_ctor  s   z%redirect_type_ctor.<locals>.call_ctorr   r#   )rU   r   Tuple
from_typesr4   r   r   TypeRefr   r   
make_tupler   )r1   r2   r3   r4   rh  ri  	ctor_argsr#   r#   r&   redirect_type_ctor  s   ro  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#   )rZ  startr   r   iteratorr#   r&   r'     s   
zol_sum.<locals>.implr   )r*   r   r  Bytes	ByteArrayr0  r   
containers_HomogeneousTupleListr  r   	RangeTyperX  _HeterogeneousTupler    )rZ  rt  errorr=   r'   r#   ru  r&   ol_sum  s&   
r  c                 G      dd }|S )Nc                 w   s&    t |g|R  D ]}| | V  q	d S r"   )r   )funcrZ  r4   r   r#   r#   r&   r'     s   zol_map.<locals>.implr#   )r  rZ  r4   r'   r#   r#   r&   ol_map  s   r  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#   r  rZ  r   r#   r#   r&   r'     s   zol_filter.<locals>.implc                 s   s    |D ]	}| |r|V  qd S r"   r#   r  r#   r#   r&   r'     s   r^   )r  rZ  r'   r#   r#   r&   	ol_filter  s
   	r  c                 C   sv  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tjtjtjtjtjtjf}t||sYd| d}t||}t|tjrf|jd	 }t|tjso|f}|D ]}t|tjr|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 qqt|tj#r|	tjtjfvrd
}t|t$||	u r|  S |  S t |	}||kr|  S t|tjtjfrt|t$|r|  S qqt|tjrt|tjr|j|j%jkr|  S t|tj&r8|jd	 tj'kr8t||j(s4t|tj!r8t|tj!r8|  S qq|S )Nc                 S   r  )NTr#   vartypsr#   r#   r&   	true_impl  r(   z ol_isinstance.<locals>.true_implc                 S   r  r  r#   r  r#   r#   r&   
false_impl  r(   z!ol_isinstance.<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   Numberrx  r}  r  LiteralStrKeyDictr|  r  rj  UniTupler  Function	ClassTyper  ClassInstanceTyper_   r   r+   r  r
  r   r1  r2  keyrr  rangedictr   tuple	BaseTuplerm   rl  r   instance_type	Container	undefined	__class__)r  r  r  r  var_tyr=   supported_var_tyt_typsrf   r  types_not_registered	numba_typr#   r#   r&   ol_isinstance  s   




r  c                 C   s   d S r"   r#   objnamer#   r#   r&   _getattr_raise_attr_excf  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'   s  rP  z(ol__getattr_raise_attr_exc.<locals>.impl)r*   r   StringLiteralr   rR   )r  r  lnamer'   r#   r  r&   ol__getattr_raise_attr_excl  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)cgctxr2   r3   llargstmp)defaultr#   r&   r'     s   zresolve_getattr.<locals>.implc                    s   |   }|||d d S r  )r-   )r  r2   r3   r  native_impl)r   	raise_sigr#   r&   r'     s   c                    s<    j }| ||d |}| |||}| j| | |S r   )thisrG   get_bound_functionr  r  )r  r2   r3   ll_args	cast_typecastedrW   )r   r  r#   r&   r'     s
   c                    sD   |  }|| ||d }| || }| j|| |S r   )re   rG   r  r  )r  r2   r3   r  	attr_implrW   r  )attrtyr   r  r  r#   r&   r'     s
   )r*   r   r  r   rR   resolve_getattrr  r   
NamedTupleinstance_class_getattr_default_typeresolve_value_typer  get_call_typenoneBoundFunction)tyctxr  r  r  r=   r3   r'   r#   )r  r  r   r   r  r  r  r&   r  x  s>   
!
r  r  rq  )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   r  )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   r:   r  )r  r2   r3   r  r   r#   r&   r'     s   zresolve_hasattr.<locals>.impl)r*   r   r  r   rR   r  literal)r  r  r  r  r   r3   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  rh   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 )Nrq  c                 S   s&   d}t | |dkrt| | S t| S )N__str__T)r  r/  repr)objectrh   r#   r#   r&   r'     s   zol_str_generic.<locals>.implrq  r#   )r  r'   r#   r#   r&   ol_str_generic  s   
r  rw  r  )collectionsr   r   	functoolsr   numpyr   r.   warnings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.typing.templatesr   r   r   numba.core.errorsr   r   r   r   r   r   numba.misc.specialr    numba.core.typing.asnumbatyper!   truthr,   is_notAnyr6   r/   r?   OpaquerF   r+   rO   r8   LiteralIntegerLiteralrX   nerZ   rc   DeferredTyperk   r  rs   rt   getitemCPointerr  rz   setitemr|   r   maxr  r   VarArgr   minr   r   r   roundr  r   r   intr   r   r  r   complexr   r"  r   Dummyr   ExternalFunctionPointerr   r   r   r   rX  r_  r   rY  IteratorTyper   r   r   
ConstSizedr  boolSizedr  r  r  r  r  r  r  r  r   r!  r8  r9  numba.core.typing.builtinsr:  r;  numba.extendingr<  py_intTypenp_intpnp_uintpr@  rI  rQ  rT  rV  rf  rb  r`  rd  rg  rl  ro  sumr  mapr  filterr  r*   r  r  r  r  r  r  r/  r  r  r  r  r  r  r  r   r  r#   r#   r#   r&   <module>   s>   4 





	
	











%








	








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

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