§
    1@Äj  ã                   ó  — d dl mZ d dlmZmZ d dlmZ d dlmZ d dl	m
Z
 d dlmZmZ  G d„ d¦  «        Zd	efd
„Ze
d„ ¦   «         Z eed¬¦  «        d„ ¦   «         Ze
d„ ¦   «         Z eedd¬¦  «        d„ ¦   «         ZdS )é    )Útypes)ÚoverloadÚoverload_method)Ú	signature)Ú	nvvmutils)Ú	intrinsic)Ú
grid_groupÚ	GridGroupc                   ó   — e Zd ZdZdd„ZdS )r
   z0A cooperative group representing the entire gridÚreturnNc                  ó   — dS )zSynchronize this grid groupN© r   ó    ú>C:\Projects\Historical\venv\Lib\site-packages\numba/cuda/cg.pyÚsynczGridGroup.sync   s   € € € r   )r   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r
   r
   	   s.   € € € € € Ø:Ð:ð*ð *ð *ð *ð *ð *r   r
   r   c                  ó   — t          ¦   «         S )zGet the current grid group.)r
   r   r   r   Ú	this_gridr      s   € å‰;Œ;Ðr   c                 ó8   — t          t          ¦  «        }d„ }||fS )Nc                 ó¢   — |                       t          j        d¦  «        }|j        }|                     t          j        |¦  «        |f¦  «        S )Né   )Úget_constantr   Úint32ÚmoduleÚcallr   Ú declare_cudaCGGetIntrinsicHandle)ÚcontextÚbuilderÚsigÚargsÚoneÚmods         r   Úcodegenz_this_grid.<locals>.codegen   sI   € Ø×"Ò"¥5¤;°Ñ2Ô2ˆØŒnˆØ�|Š|ÝÔ6°sÑ;Ô;ØˆFñô ð 	r   )r   r	   )Ú	typingctxr"   r&   s      r   Ú
_this_gridr(      s*   € å
•JÑ
Ô
€Cðð ð ð �ˆ<Ðr   Úcuda)Útargetc                  ó   — d„ } | S )Nc                  ó   — t          ¦   «         S ©N)r(   r   r   r   Úimplz_ol_this_grid.<locals>.impl%   s   € Ý‰|Œ|Ðr   r   )r.   s    r   Ú_ol_this_gridr/   #   s   € ðð ð ð €Kr   c                 óD   — t          t          j        |¦  «        }d„ }||fS )Nc                 óª   — |                       t          j        d¦  «        }|j        }|                     t          j        |¦  «        g |¢|‘R ¦  «        S )Nr   )r   r   r   r   r   r   Údeclare_cudaCGSynchronize)r    r!   r"   r#   Úflagsr%   s         r   r&   z!_grid_group_sync.<locals>.codegen/   sQ   € Ø×$Ò$¥U¤[°!Ñ4Ô4ˆØŒnˆØ�|Š|ÝÔ/°Ñ4Ô4ØˆdˆN�EˆNˆNñô ð 	r   )r   r   r   )r'   Úgroupr"   r&   s       r   Ú_grid_group_syncr5   +   s.   € å
•E”K Ñ
'Ô
'€Cðð ð ð �ˆ<Ðr   r   c                 ó   — d„ }|S )Nc                 ó    — t          | ¦  «        S r-   )r5   )r4   s    r   r.   z!_ol_grid_group_sync.<locals>.impl;   s   € Ý Ñ&Ô&Ð&r   r   )r4   r.   s     r   Ú_ol_grid_group_syncr8   9   s   € ð'ð 'ð 'ð €Kr   N)Ú
numba.corer   Únumba.core.extendingr   r   Únumba.core.typingr   Ú
numba.cudar   Únumba.cuda.extendingr   Únumba.cuda.typesr	   r
   ÚGridGroupClassr   r(   r/   r5   r8   r   r   r   ú<module>r@      sX  ðØ Ð Ð Ð Ð Ð Ø :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø  Ð  Ð  Ð  Ð  Ð  Ø *Ð *Ð *Ð *Ð *Ð *Ø DÐ DÐ DÐ DÐ DÐ DÐ DÐ Dð*ð *ð *ð *ð *ñ *ô *ð *ð�9ð ð ð ð ð
 ð
ð 
ñ „ð
ð 
€ˆ)˜FÐ#Ñ#Ô#ðð ñ $Ô#ðð ð
ð 
ñ „ð
ð €� °Ð7Ñ7Ô7ðð ñ 8Ô7ðð ð r   