
    J/Ph                     t    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
dS )	z? This module provides the unsafe things for targets/numbers.py
    )typeserrors)	intrinsic)irc                 ^   |j         }t          |j        t          j                  rt          j        |          nVt          |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'.     r   unreachablec                 @    |d         }|                     |          S )Nr   )bitcast)cgctxbuildertypargsflt	bitcasttys        \/var/www/html/test/jupyter/venv/lib/python3.11/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&,..  Jt$$			FL%+	.	.  &*bjjBLNNNbmoo		-/ / / / / LE
%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                     |\  }|                     |t          j        t          j        d          d                    S N   r   )cttzr   Constantr   contextr   	signaturer   srcs        r   r   ztrailing_zeros.<locals>.codegen$   1    ||CRZ]]A!>!>???r   r   r   r   r   NumbaTypeError
typeingctxr.   msgr   s       r   trailing_zerosr5      i     c5=)) )  #C(((@ @ @ 3s88W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                     |\  }|                     |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@      s     $ $ $ $ $ $ $ $ * * * * * *         $ 
 
 
 
 
 
 
 
r   