ó
    …~iñ  ã                  ó  • % S SK Jr  S SKJr  S SKJrJrJrJrJ	r	J
r
  \(       a2  SSKJr  \\\   \\S4   \R                  \R                  4   r\\S4   rSrSCS jrSDS	 jrSES
 jrS rSFS jr0 SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_S S!_S"S!_S#S$_S%S&_S&S'S'S(S)S*S*S+S,S-S.S/S0S1.Er\" \R5                  5       5       H  r\\\'   M
     S2 rS3 r0 S4 V s0 s H	  n S5U  3U _M     sn ES4 V s0 s H	  n S6U  3U _M     sn ES7 V s0 s H	  n S8U  3U _M     sn ES9 Vs0 s H	  nS:U 3S;_M     snES<S S=.ErS>\S?'   \RA                  5        H  u  r!r\\   \\!'   M     SGS@ jr"SA r#gBs  sn f s  sn f s  sn f s  snf )Hé    )Úannotations©Úreduce)ÚAnyÚCallableÚTYPE_CHECKINGÚUnionÚListÚDicté   ©Úcore.i   c                ó   • [        S X5      $ )Nc                ó
   • X   $ ©N© )ÚaÚidxs     ÚJ/home/mande/repo/quber/.venv/lib/python3.13/site-packages/triton/_utils.pyÚ<lambda>Ú#get_iterable_path.<locals>.<lambda>   s   €  ¢ó    r   )ÚiterableÚpaths     r   Úget_iterable_pathr      s   € ÜÑ'¨Ó8Ð8r   c                óÒ   • SSK Jn  [        U5      S:w  d   e[        U5      S:X  a  U O[        XS S 5      n[	        XCR
                  5      (       d   eUR                  US   U5        g )Nr   r   r   éÿÿÿÿ)Úlanguager   Úlenr   Ú
isinstanceÚtupleÚ_setitem)r   r   Úvalr   Úprevs        r   Úset_iterable_pathr%      sY   € ÝÜˆt‹9˜‹>Ðˆ>Ü˜4“y A“~‰8Ô+<¸XÈCÈRÀyÓ+Q€DÜ�dŸJ™J×'Ñ'Ð'Ð'Ø‡M�M�$�r‘(˜CÕ r   c                ó‚   ^^^^^• SSK Jm  U4S jm0 mSUUUU4S jjmT" SU 5        [        TR                  5       5      $ )Nr   r   c                ó\   >• [        U [        [        TR                  TR                  45      $ r   )r    Úlistr!   Ú
tuple_type)Úxr   s    €r   r   Úfind_paths_if.<locals>.<lambda>   s    ø€ ´:¸aÄ$ÌÈtÏzÉzÐ[_×[jÑ[jÐAkÔ3lr   c                óŒ   >• T" U5      (       a#  [        U5       H  u  p#T" / U QUP7U5        M     g T" X5      (       a  S TU '   g g r   )Ú	enumerate)r   Úcurrentr   ÚitemÚ_implÚis_iterableÚpredÚrets       €€€€r   r0   Úfind_paths_if.<locals>._impl    sJ   ø€ Ù�w×ÑÜ& wÖ/‘	�Ù�l˜�l˜c‘l DÖ)ò 0á�$× Ñ ØˆC�ŠIð !r   r   )r   útuple[int, ...]r.   r   )r   r   r(   Úkeys)r   r2   r0   r   r1   r3   s    `@@@@r   Úfind_paths_ifr7      s7   ü€ ÝÜ)l€Kà!€C÷ò ñ 
ˆ"ˆhÔä�—‘“
ÓÐr   c                ó   • X S-
  -  S:H  $ )Nr   r   r   )r*   s    r   Úis_power_of_twor9   ,   s   € Ø�Q‘‰K˜AÑÐr   c           	     ó  • Sn[        U 5       HX  u  p#[        U[        5      (       d  [        SU S[	        U5       S35      e[        U5      (       d  [        SU S35      eX-  nMZ     U[        :”  a  [        SU S[         S35      eU$ )	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Útyper9   Ú
ValueErrorÚTRITON_MAX_TENSOR_NUMEL)ÚshapeÚnumelÚiÚds       r   Úvalidate_block_shaperF   0   sž   € Ø€EÜ˜%Ö ‰ˆÜ˜!œ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Úuint64rj   c                óN   • [        U 5      R                  S5      S   n[        U   $ )NÚ.r   )ÚstrÚsplitÚtype_canonicalisation_dict)ÚdtypeÚ	dtype_strs     r   Úcanonicalize_dtyper}   g   s&   € Ü�E“
× Ñ  Ó% bÑ)€IÜ% iÑ0Ð0r   c                ó2   • U(       a  SOS [        U 5       3$ )Nz*kÚ*)r}   )r{   Úis_consts     r   Úcanonicalize_ptr_dtyper�   l   s   € Þ‰d CÐ(Ô);¸EÓ)BÐ(CÐDÐDr   )r   é   é   é    é@   ÚurD   )rƒ   r„   r…   Úfp)Úe4nvÚe4b15Úe4b8Úe5Úe5b16Úfp8r‚   rƒ   )r^   rj   zDict[str, int]ÚBITWIDTH_DICTc                ó   • [         U    $ r   )rŽ   )r{   s    r   Úget_primitive_bitwidthr�   �   s   € Ü˜ÑÐr   c                óv   • [        U [        5      =(       a#    [        U [        5      =(       a    [	        U S5      $ )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   r5   r#   r   )r   zUnion[IterableType, Any]r2   zCallable[[ObjPath, Any], bool]r˜   zlist[ObjPath])rB   z	List[int])r{   rx   r˜   r=   )$Ú
__future__r   Ú	functoolsr   Útypingr   r   r   r	   r
   r   r   r   r(   r!   r)   r–   r=   r—   rA   r   r%   r7   r9   rF   rz   ÚvaluesÚvr}   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Ó!ñ 
3ò1ò
Eð!á"ó$Ú"ˆ1ð 
ˆ1ˆ#€w�‚zÙ"ñ$ð!ñ #ó$Ú"ˆ1ð 
ˆ1ˆ#€w�‚zÙ"ñ$ð!ñ óÚˆ1ð 
ˆAˆ3€x�‚{Ùñð!ñ >ó?Ú=ˆ6ð 
ˆVˆH€~�qÒÙ=ñ?ð!ð Øò!€ˆ~ó ð '×,Ñ,Ö.�D€A€qØ$ QÑ'€M�!Óñ /ô óXùò)$ùò$ùòùò?s   Ã"E0Ã9E5ÄE:Ä'E?