
    sh
                     @   S SK Jr  S SKJrJr  S SKJr  S SKJrJ	r	  \" 5       r
\
R                  rS rS r\	R                  R                  5        HF  u  ru  rr\" \ V s/ s H  o R(                  PM     sn 5      (       a  \" \\\5        M<  \" \\\5        MH     gs  sn f )    )ir)cgutilstypes)Registry)	libdevicelibdevicefuncsc                    ^ ^^ U UU4S jn[        [        T SS  5      n[         Vs/ s H!  oUR                  (       a  M  UR                  PM#     nn[        U/UQ76 " U5        g s  snf )Nc                   > UR                   nU R                  T5      nT Vs/ s H  o`R                  UR                  5      PM     nn[        R                  " XW5      n[
        R                  " XHT
5      n	UR                  X5      $ s  snf )N)moduleget_value_typetyr   FunctionTyper   get_or_insert_functioncall)contextbuildersigargslmodfrettyargfargtysfntyfnfuncnbargsrettys             l/Users/tiagomarins/Projetos/claudeai/copy_bank/venv/lib/python3.13/site-packages/numba/cuda/libdeviceimpl.pycore!libdevice_implement.<locals>.core   sr    ~~''.=CDVc))#&&1VDv/++D=||B%% Es   $B   )getattrr   r   is_ptrr   lower)r   r   r   r   keyr   argtyss   ```    r   libdevice_implementr'   
   sQ    & )T!"X
&C $7JJfcffF7	# 8s
   A$A$c                    ^ ^^^ [         R                  " TT5      nUR                  mU UUU4S jn[        [        T SS  5      n[        U/UR                  Q76 " U5        g )Nc                   > UR                   n/ nT HP  nU R                  UR                  5      nUR                  (       a  UR	                  5       nUR                  U5        MR     U R                  T5      n[        R                  " X5      n	[        R                  " XIT5      n
/ n/ nSnT H  nUR                  (       aT  [        R                  " UU R                  UR                  5      5      nUR                  U5        UR                  U5        Mh  UR                  X=   5        US-  nM     UR                  X5      n/ nT[        R                  :w  a  UR                  U5        U H#  nUR                  UR                  U5      5        M%     [        T[        R                   5      (       a  [        R"                  " UU5      $ [        R$                  " UU5      $ )Nr      )r   r   r   r#   
as_pointerappendr   r   r   r   alloca_oncer   r   voidload
isinstanceUniTuple
pack_arraypack_struct)r   r   r   r   r   r   r   r   r   r   r   actual_argsvirtual_argsarg_idxtmp_argret
tuple_argsr   nb_rettyprototype_argsr   s                    r   r   2libdevice_implement_multiple_returns.<locals>.core   s   ~~!C''/Bzz]]_NN2	 " ''.v/++D= !Czz!--g.5.D.DSVV.LN""7+##G,""4=11 " ll2+ 
EJJc"Cgll3/0   h//%%gz::&&w
;;    r!   )r   create_signaturereturn_typer"   r   r$   r   )r   r   r;   r   r   r%   r:   s   ```   @r   $libdevice_implement_multiple_returnsr@      sS    

)
)%
@CH,< ,<\ )T!"X
&C	#$r=   N)llvmliter   
numba.corer   r   numba.core.imputilsr   
numba.cudar   r   registryr$   r'   r@   	functionsitemsr   r   r   anyr#   )r   s   0r   <module>rI      s     % ( 0:3 l *3399;D-5$
$'$3JJ$'((,T5$?D%.	 <'s   B
