a
    
d                     @   sT   d Z ddlmZmZ ddlmZ ddlmZ edd Zedd Z	ed	d
 Z
dS )z? This module provides the unsafe things for targets/numbers.py
    )typeserrors)	intrinsic)irc                    sx   |j }t|jtjr t| n4t|jtjrH|dkr>t nt	  ndsTJ d fdd}|j}|||}||fS )z4 Bitcast a scalar 'val' to the given type 'viewty'.     r   Zunreachablec                    s   |d }| | S )Nr   )Zbitcast)ZcgctxbuildertypargsZfltZ	bitcastty e/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/numba/cpython/unsafe/numbers.pycodegen   s    zviewer.<locals>.codegen)
Zbitwidth
isinstanceZdtyper   Integerr   IntTypeZFloatZ	FloatTypeZ
DoubleType)ZtyctxvalZviewtybitsr   Zrettysigr   r
   r   viewer	   s    
r   c                 C   s6   t |tjs"d| d}t|dd }|||fS )zACounts trailing zeros in the binary representation of an integer.zCtrailing_zeros is only defined for integers, but value passed was ''.c                 S   s    |\}| |ttddS N   r   )Zcttzr   Constantr   contextr   	signaturer	   srcr   r   r   r   $   s    ztrailing_zeros.<locals>.codegenr   r   r   r   ZNumbaTypeErrorZ
typeingctxr   msgr   r   r   r   trailing_zeros   s    
r    c                 C   s6   t |tjs"d| d}t|dd }|||fS )z@Counts leading zeros in the binary representation of an integer.zBleading_zeros is only defined for integers, but value passed was 'r   c                 S   s    |\}| |ttddS r   )Zctlzr   r   r   r   r   r   r   r   2   s    zleading_zeros.<locals>.codegenr   r   r   r   r   leading_zeros*   s    
r!   N)__doc__Z
numba.corer   r   Znumba.core.extendingr   Zllvmliter   r   r    r!   r   r   r   r   <module>   s   

