Ë
    Öéñiñ  ã                  óÔ  — U d dl mZ d dlmZ d dlmZmZmZmZm	Z	m
Z
 er2ddlmZ eee   eedf   ej                  ej                  f   Zeedf   ZdZdCd„ZdDd	„ZdEd
„Zd„ ZdFd„Zi dd“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd“d d!“d"d!“d#d$“d%d&“d&d'd'd(d)d*d*d+d,d-d.d/d0d1œ¥Z eej5                  «       «      D ]  Zeee<   Œ	 d2„ Zd3„ Zi d4D � ci c]  } d5| › �| “Œ
 c} ¥d4D � ci c]  } d6| › �| “Œ
 c} ¥d7D � ci c]  } d8| › �| “Œ
 c} ¥d9D �ci c]  }d:|› �d;“Œ
 c}¥d<d d=œ¥Zd>ed?<   ejA                  «       D ]  \  Z!Zee   ee!<   Œ dGd@„Z"dA„ Z#yBc c} w c c} w c c} w c c}w )Hé    )Úannotations©Úreduce)ÚAnyÚCallableÚTYPE_CHECKINGÚUnionÚListÚDicté   ©Úcore.i   c                ó   — t        d„ || «      S )Nc                ó   — | |   S ©N© )ÚaÚidxs     úO/var/www/pod-logistic/pod-ai/venv/lib/python3.12/site-packages/triton/_utils.pyú<lambda>z#get_iterable_path.<locals>.<lambda>   s
   €   3¡€ ó    r   )ÚiterableÚpaths     r   Úget_iterable_pathr      s   € ÜÑ'¨¨xÓ8Ð8r   c                óÈ   — ddl m} t        |«      dk7  sJ ‚t        |«      dk(  r| nt        | |d d «      }t	        ||j
                  «      sJ ‚|j                  |d   |«       y )Nr   r   r   éÿÿÿÿ)Úlanguager   Úlenr   Ú
isinstanceÚtupleÚ_setitem)r   r   Úvalr   Úprevs        r   Úset_iterable_pathr$      sZ   € ÝÜˆt‹9˜Š>Ðˆ>Ü˜4“y A’~‰8Ô+<¸XÀtÈCÈRÀyÓ+Q€DÜ�d˜DŸJ™JÔ'Ð'Ð'Ø‡M�M�$�r‘(˜CÕ r   c                ó|   ‡‡‡‡‡— ddl mŠ ˆfd„Ši Šdˆˆˆˆfd„Š ‰d| «       t        ‰j                  «       «      S )Nr   r   c                ó\   •— t        | t        t        ‰j                  ‰j                  f«      S r   )r   Úlistr    Ú
tuple_type)Úxr   s    €r   r   zfind_paths_if.<locals>.<lambda>   s"   ø€ ´:¸aÄ$ÌÈtÏzÉzÐ[_×[jÑ[jÐAkÓ3l€ r   c                óx   •—  ‰|«      r"t        |«      D ]  \  }} ‰g | ¢|‘­|«       Œ y  ‰| |«      rd ‰| <   y y r   )Ú	enumerate)r   Úcurrentr   ÚitemÚ_implÚis_iterableÚpredÚrets       €€€€r   r.   zfind_paths_if.<locals>._impl    sM   ø€ Ù�wÔÜ& wÓ/ò *‘	��TÙ�l˜�l˜c‘l DÕ)ñ*á�$˜Ô ØˆC�ŠIð !r   r   )r   útuple[int, ...]r,   r   )r   r   r'   Úkeys)r   r0   r.   r   r/   r1   s    `@@@@r   Úfind_paths_ifr4      s7   ü€ ÝÛ)l€Kà!€C÷ð ñ 
ˆ"ˆhÔä�—‘“
ÓÐr   c                ó   — | | dz
  z  dk(  S )Nr   r   r   )r)   s    r   Úis_power_of_twor6   ,   s   € Ø��Q‘‰K˜AÑÐr   c           	     ó  — d}t        | «      D ]O  \  }}t        |t        «      st        d|› dt	        |«      › d�«      ‚t        |«      st        d|› d�«      ‚||z  }ŒQ |t        kD  rt        d|› dt        › d�«      ‚|S )	Nr   zShape element z1 must have type `constexpr[int]`, got `constexpr[ú]z must be a power of 2znumel (z') exceeds triton maximum tensor numel (ú))r+   r   ÚintÚ	TypeErrorÚtyper6   Ú
ValueErrorÚTRITON_MAX_TENSOR_NUMEL)ÚshapeÚnumelÚiÚds       r   Úvalidate_block_shaperC   0   s¡   € Ø€EÜ˜%Ó ò ‰ˆˆ1Ü˜!œSÔ!Ü˜n¨Q¨CÐ/`ÔaeÐfgÓahÐ`iÐijÐkÓlÐlÜ˜qÔ!Ü˜~¨a¨SÐ0EÐFÓGÐGØ�‰
‰ðð Ô&Ò&Ü˜7 5 'Ð)PÔQhÐPiÐijÐkÓlÐlØ€Lr   ÚboolÚu1Úint1Úuint1Úi1Ú
float8e4nvÚfp8e4nvÚfloat8e5Úfp8e5Úfloat8e4b15Úfp8e4b15Úfloat8_e4m3fnÚ
float8e4b8Úfp8e4b8Úfloat8_e4m3fnuzÚfloat8_e5m2Úfloat8e5b16Úfp8e5b16Úfloat8_e5m2fnuzÚhalfÚfp16Úfloat16Úbfloat16Úbf16ÚfloatÚfp32Úfp64Úi8Úi16Úi32Úi64Úu8Úu16Úu32Úu64Úvoid)Úfloat32ÚdoubleÚfloat64Úint8Úint16r:   Úint32Úint64Úuint8Úuint16Úuint32Úuint64rg   c                óN   — t        | «      j                  d«      d   }t        |   S )Nú.r   )ÚstrÚsplitÚtype_canonicalisation_dict)ÚdtypeÚ	dtype_strs     r   Úcanonicalize_dtyperz   g   s&   € Ü�E“
× Ñ  Ó% bÑ)€IÜ% iÑ0Ð0r   c                ó(   — |rdnd› t        | «      › �S )Nz*kÚ*)rz   )rx   Úis_consts     r   Úcanonicalize_ptr_dtyper~   l   s   € Ù‰d CÐ(Ô);¸EÓ)BÐ(CÐDÐDr   )r   é   é   é    é@   ÚurA   )r€   r�   r‚   Úfp)Úe4nvÚe4b15Úe4b8Úe5Úe5b16Úfp8r   r€   )r[   rg   zDict[str, int]ÚBITWIDTH_DICTc                ó   — t         |    S r   )r‹   )rx   s    r   Úget_primitive_bitwidthr�   �   s   € Ü˜ÑÐr   c                ób   — t        | t        «      xr t        | t        «      xr t	        | d«      S )NÚ_fields)r   r<   Ú
issubclassr    Úhasattr)r"   s    r   Úis_namedtupler’   …   s'   € Ü�cœ4Ó ÒW¤Z°´UÓ%;ÒWÄÈÈYÓ@WÐWr   N)r   ÚIterableTyper   ÚObjPathÚreturnr   )r   r“   r   r2   r"   r   )r   zUnion[IterableType, Any]r0   zCallable[[ObjPath, Any], bool]r•   zlist[ObjPath])r?   z	List[int])rx   ru   r•   r:   )$Ú
__future__r   Ú	functoolsr   Útypingr   r   r   r	   r
   r   r   r   r'   r    r(   r“   r:   r”   r>   r   r$   r4   r6   rC   rw   ÚvaluesÚvrz   r~   r‹   Ú__annotations__ÚitemsÚkr�   r’   )ÚnÚsuffixs   00r   ú<module>r       s¤  ðÞ "å ß B× BáÝØ˜˜c™ E¨#¨s¨(¡O°T·Z±ZÀÇÁÐPÑQ€LØ�C˜�H‰o€Gà!Ð ó9ó!óò$óð#à
ˆDð#ð ˆDð#ð ˆTð	#ð
 	ˆ$ð#ð �)ð#ð �ð#ð �:ð#ð �Yð#ð �)ð#ð �yð#ð �7ð#ð �:ð#ð �zð#ð  ˆFð!#ð" ˆvð##ð$ �ð%#ð& ˆVð'#ð( ØØàØØØØàØØØØòE#Ð ñJ 
Ð(×/Ñ/Ó1Ó	2ò &€AØ$%Ð˜qÒ!ð&ò1ò
Eð!à"ö$Øð 
ˆ1ˆ#€w��zò $ð!ð #ö$Øð 
ˆ1ˆ#€w��zò $ð!ð öØð 
ˆAˆ3€x��{ò ð!ð >ö?Øð 
ˆVˆH€~�qÑò ?ð!ð Øò!€ˆ~ó ð '×,Ñ,Ó.ò (�D€A€qØ$ QÑ'€M�!Òð(ó óXùò)$ùò$ùòùò?s   ÃEÃ+EÃ?E ÄE%