ó
    ýZhº  ã                   óœ   • S r SSKrSSKJrJr   " S S\R
                  S9r " S S\5      r " S	 S
\5      r " S S\5      r	\	4S jr
/ SQrg)zw
Hints to wrap Kernel arguments to indicate how to manage host-device
memory transfers before & after the kernel call.
é    N)ÚtypeofÚPurposec                   óR   • \ rS rSrS r\R                  SS j5       r\S 5       r	Sr
g)ÚArgHinté
   c                 ó   • Xl         g ©N©Úvalue)Úselfr   s     Ú^/home/gothic/public_html/Fooocus/fooocus_env/lib64/python3.13/site-packages/numba/cuda/args.pyÚ__init__ÚArgHint.__init__   s   € Ø�
ó    c                 ó   • g)zë
:param stream: a stream to use when copying data
:param retr:
    a list of clean-up work to do after the kernel's been run.
    Append 0-arg lambdas to it!
:return: a value (usually an `DeviceNDArray`) to be passed to
    the kernel
N© )r   ÚretrÚstreams      r   Ú	to_deviceÚArgHint.to_device   s   € ð 	r   c                 óJ   • [        U R                  [        R                  5      $ r	   )r   r   r   Úargument)r   s    r   Ú_numba_type_ÚArgHint._numba_type_   s   € ä�d—j‘j¤'×"2Ñ"2Ó3Ð3r   r
   N©r   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   ÚabcÚabstractmethodr   Úpropertyr   Ú__static_attributes__r   r   r   r   r   
   s5   † òð 	×Ñó	ó ð	ð ñ4ó ó4r   r   )Ú	metaclassc                   ó   • \ rS rSrSS jrSrg)ÚIné   c                 óf   ^• SSK Jn  U" U R                  US9u  mnUR                  U4S j5        T$ )Né   ©Úauto_device©r   c                  ó   >• T $ r	   r   )Údevarys   €r   Ú<lambda>ÚIn.to_device.<locals>.<lambda>'   s   ø€ ™Fr   ©Úcudadrv.devicearrayr+   r   Úappend)r   r   r   r+   Ú_r.   s        @r   r   ÚIn.to_device    s1   ø€ Ý4ÙØ�J‰JØñ‰	ˆ�ð
 	�‰”NÔ#Øˆr   r   Nr   ©r   r   r   r   r   r#   r   r   r   r&   r&      ó   † ÷r   r&   c                   ó   • \ rS rSrSS jrSrg)ÚOuté+   c                 ó~   ^ ^^• SSK Jn  U" T R                  STS9u  mnU(       a  UR                  UU U4S j5        T$ )Nr)   r*   F)Úcopyr   c                  ó8   >• T R                  TR                  TS9$ ©Nr,   ©Úcopy_to_hostr   ©r.   r   r   s   €€€r   r/   ÚOut.to_device.<locals>.<lambda>3   ó   ø€  × 3Ñ 3°D·J±JÀvÐ 3Ñ Nr   r1   ©r   r   r   r+   Úconvr.   s   ` `  @r   r   ÚOut.to_device,   s8   ú€ Ý4Ù"Ø�J‰JØØñ‰ˆ�ö Ø�K‰KÖNÔOØˆr   r   Nr   r6   r   r   r   r9   r9   +   r7   r   r9   c                   ó   • \ rS rSrSS jrSrg)ÚInOuté7   c                 ó|   ^ ^^• SSK Jn  U" T R                  TS9u  mnU(       a  UR                  UU U4S j5        T$ )Nr)   r*   r,   c                  ó8   >• T R                  TR                  TS9$ r>   r?   rA   s   €€€r   r/   Ú!InOut.to_device.<locals>.<lambda>>   rC   r   r1   rD   s   ` `  @r   r   ÚInOut.to_device8   s5   ú€ Ý4Ù"Ø�J‰JØñ‰ˆ�ö Ø�K‰KÖNÔOØˆr   r   Nr   r6   r   r   r   rH   rH   7   s   † ÷r   rH   c                 ó@   • [        U [        5      (       a  U $ U" U 5      $ r	   )Ú
isinstancer   )r   Údefaults     r   Úwrap_argrQ   B   s   € Ü˜u¤g×.Ñ.ˆ5ÐB±G¸E³NÐBr   )r&   r9   rH   r   rQ   )Ú__doc__r    Únumba.core.typing.typeofr   r   ÚABCMetar   r&   r9   rH   rQ   Ú__all__r   r   r   Ú<module>rV      sX   ðñó ç 4ô4˜Ÿ™ò 4ô*	ˆô 	ô	ˆ'ô 	ôˆGô ð "ô Cò�r   