Ë
    èÿæiº  ã                   ó    — d Z ddlZddlmZmZ  G d„ dej
                  ¬«      Z G d„ de«      Z G d	„ d
e«      Z G d„ de«      Z	e	fd„Z
g d¢Zy)zw
Hints to wrap Kernel arguments to indicate how to manage host-device
memory transfers before & after the kernel call.
é    N)ÚtypeofÚPurposec                   óH   — e Zd Zd„ Zej
                  dd„«       Zed„ «       Zy)ÚArgHintc                 ó   — || _         y ©N)Úvalue)Úselfr	   s     úd/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/site-packages/numba/cuda/args.pyÚ__init__zArgHint.__init__   s	   € Øˆ�
ó    c                  ó   — y)a#  
        :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_devicezArgHint.to_device   s   € ð 	r   c                 óJ   — t        | j                  t        j                  «      S r   )r   r	   r   Úargument)r
   s    r   Ú_numba_type_zArgHint._numba_type_   s   € ä�d—j‘j¤'×"2Ñ"2Ó3Ð3r   N©r   )	Ú__name__Ú
__module__Ú__qualname__r   ÚabcÚabstractmethodr   Úpropertyr   r   r   r   r   r   
   s5   „ òð 	×Ñò	ó ð	ð ñ4ó ñ4r   r   )Ú	metaclassc                   ó   — e Zd Zdd„Zy)ÚInc                 ój   ‡— ddl m}  || j                  |¬«      \  Š}|j                  ˆfd„«       ‰S )Né   ©Úauto_device©r   c                  ó   •— ‰ S r   r   )Údevarys   €r   Ú<lambda>zIn.to_device.<locals>.<lambda>'   s   ø€ ™Fr   ©Úcudadrv.devicearrayr#   r	   Úappend)r
   r   r   r#   Ú_r&   s        @r   r   zIn.to_device    s1   ø€ Ý4ÙØ�J‰JØô‰	ˆ�ð
 	�‰“NÔ#Øˆr   Nr   ©r   r   r   r   r   r   r   r   r      ó   „ ôr   r   c                   ó   — e Zd Zdd„Zy)ÚOutc                 óx   ‡ ‡‡— ddl m}  |‰ j                  d‰¬«      \  Š}|r|j                  ˆˆ ˆfd„«       ‰S )Nr!   r"   F)Úcopyr   c                  ó>   •— ‰ j                  ‰j                  ‰¬«      S ©Nr$   ©Úcopy_to_hostr	   ©r&   r
   r   s   €€€r   r'   zOut.to_device.<locals>.<lambda>3   ó   ø€  × 3Ñ 3°D·J±JÀvÐ 3Ô Nr   r(   ©r
   r   r   r#   Úconvr&   s   ` `  @r   r   zOut.to_device,   s8   ú€ Ý4Ù"Ø�J‰JØØô‰ˆ�ñ Ø�K‰KÕNÔOØˆr   Nr   r,   r   r   r   r/   r/   +   r-   r   r/   c                   ó   — e Zd Zdd„Zy)ÚInOutc                 óv   ‡ ‡‡— ddl m}  |‰ j                  ‰¬«      \  Š}|r|j                  ˆˆ ˆfd„«       ‰S )Nr!   r"   r$   c                  ó>   •— ‰ j                  ‰j                  ‰¬«      S r3   r4   r6   s   €€€r   r'   z!InOut.to_device.<locals>.<lambda>>   r7   r   r(   r8   s   ` `  @r   r   zInOut.to_device8   s5   ú€ Ý4Ù"Ø�J‰JØô‰ˆ�ñ Ø�K‰KÕNÔOØˆr   Nr   r,   r   r   r   r;   r;   7   s   „ ôr   r;   c                 ó6   — t        | t        «      r| S  || «      S r   )Ú
isinstancer   )r	   Údefaults     r   Úwrap_argrA   B   s   € Ü˜u¤gÔ.ˆ5ÐB±G¸E³NÐBr   )r   r/   r;   r   rA   )Ú__doc__r   Únumba.core.typing.typeofr   r   ÚABCMetar   r   r/   r;   rA   Ú__all__r   r   r   Ú<module>rF      sX   ðñó ç 4ô4˜Ÿ™õ 4ô*	ˆô 	ô	ˆ'ô 	ôˆGô ð "ó Cò�r   