
    J/Ph
                        d dl mZ d dlmZmZ d dlmZ d dlmZm	Z	  e            Z
e
j        Zd Zd Ze	j                                        D ]8\  Z\  ZZ ed eD                       r eeee           + eeee           9dS )	    )ir)cgutilstypes)Registry)	libdevicelibdevicefuncsc                       fd}t          t           dd                    }d t          D             } t          |g|R  |           d S )Nc                      |j         }                               } fd
D             }t          j        ||          }t	          j        ||	          }|                    ||          S )Nc                 D    g | ]}                     |j                  S  )get_value_typety).0argcontexts     X/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/numba/cuda/libdeviceimpl.py
<listcomp>z5libdevice_implement.<locals>.core.<locals>.<listcomp>   s)    DDDc7))#&11DDD    )moduler   r   FunctionTyper   get_or_insert_functioncall)r   buildersigargslmodfrettyfargtysfntyfnfuncnbargsrettys   `        r   corez!libdevice_implement.<locals>.core   sp    ~''..DDDDVDDDvw//+D$==||B%%%r      c                 *    g | ]}|j         	|j        S r   )is_ptrr   r   r   s     r   r   z'libdevice_implement.<locals>.<listcomp>   s!    777CJ7cf777r   )getattrr   r   lower)r!   r#   r"   r$   keyargtyss   ```   r   libdevice_implementr-   
   sz    & & & & & & & )T!""X
&
&C77777FE#r   c                      t          j                  }|j         fd}t          t           dd                    } t          |g|j        R  |           d S )Nc                    |j         }g }D ]L}|                     |j                  }|j        r|                                }|                    |           M|                               }t          j        ||          }	t          j	        ||	          }
g }g }d}D ]}|j        rXt          j
        ||                     |j                            }|                    |           |                    |           a|                    ||                    |dz  }|                    |
|          }g }t          j        k    r|                    |           |D ]*}|                    |                    |                     +t          t          j                  rt          j        ||          S t          j        ||          S )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$   z2libdevice_implement_multiple_returns.<locals>.core   s   ~! 	 	C''//Bz %]]__NN2''..vw//+D$== ! 		 		Cz !-g.5.D.DSV.L.LN N""7+++##G,,,,""4=1111ll2{++ 
EJc""" 	1 	1Cgll3//0000h// 	<%gz:::&w
;;;r   r%   )r   create_signaturereturn_typer)   r   r*   r   )r!   r#   rA   r   r$   r+   r@   s   ```   @r   $libdevice_implement_multiple_returnsrD      s    

)%
@
@CH,< ,< ,< ,< ,< ,< ,< ,<\ )T!""X
&
&CE#$r   c                     g | ]	}|j         
S r   )r'   r(   s     r   r   r   P   s    '''3CJ'''r   N)llvmliter   
numba.corer   r   numba.core.imputilsr   
numba.cudar   r   registryr*   r-   rD   	functionsitemsr!   r#   r   anyr   r   r   <module>rN      s         % % % % % % % % ( ( ( ( ( ( 0 0 0 0 0 0 0 08::  3  3  3 l *399;; / /D-5$
s''$'''(( /,,T5$????D%....	/ /r   