
    xKg                     `    d Z ddlmZmZ ddlmZ ddlmZ ed        Zed        Z	ed        Z
y)	z? This module provides the unsafe things for targets/numbers.py
    )typeserrors)	intrinsic)irc                 ~   |j                   }t        |j                  t        j                        rt        j                  |      nYt        |j                  t        j                        r.|dk(  rt        j                         nt        j                         nJ d       fd}|j                  } |||      }||fS )z4 Bitcast a scalar 'val' to the given type 'viewty'.     unreachablec                 2    |d   }|j                  |      S )Nr   )bitcast)cgctxbuildertypargsflt	bitcasttys        `/home/alanp/www/video.onchill/myenv/lib/python3.12/site-packages/numba/cpython/unsafe/numbers.pycodegenzviewer.<locals>.codegen   s    1gsI..    )
bitwidth
isinstancedtyper   Integerr   IntTypeFloat	FloatType
DoubleType)tyctxvalviewtybitsr   rettysigr   s          @r   viewerr#   	   s     <<D&,,.JJt$		FLL%++	.&*bjBLLNbmmo	-q/ LLE
V
C<r   c                     t        |t        j                        sd| d}t        j                  |      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                 |    |\  }|j                  |t        j                  t        j                  d      d            S N   r   )cttzr   Constantr   contextr   	signaturer   srcs        r   r   ztrailing_zeros.<locals>.codegen$   -    ||CRZZ]A!>??r   r   r   r   r   NumbaTypeError
typeingctxr.   msgr   s       r   trailing_zerosr5      M     c5==)e2##C((@ s8Wr   c                     t        |t        j                        sd| d}t        j                  |      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                 |    |\  }|j                  |t        j                  t        j                  d      d            S r'   )ctlzr   r*   r   r+   s        r   r   zleading_zeros.<locals>.codegen2   r/   r   r0   r2   s       r   leading_zerosr:   *   r6   r   N)__doc__
numba.corer   r   numba.core.extendingr   llvmliter   r#   r5   r:    r   r   <module>r@      sO    $ *   $ 
 
 
 
r   