
    3j                    "   % 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SFS jrSGS	 jrS
 rSHSIS jjrSJS jrS rSKS 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/S0S1S2S3S4.Er\" \R9                  5       5       H  r\\\'   M
     S5 rS6 r0 S7 V s0 s H	  n S8U  3U _M     sn ES7 V s0 s H	  n S9U  3U _M     sn ES: V s0 s H	  n S;U  3U _M     sn ES< Vs0 s H	  nS=U 3S>_M     snES?S S@.Er SA\!SB'   \RE                  5        H  u  r#r\ \   \ \#'   M     SLSC jr$SD r%SE r&gs  sn f s  sn f s  sn f s  snf )M    )annotationsreduce)AnyCallableTYPE_CHECKINGUnionListDict   core.i   c                    [        S X5      $ )Nc                
    X   $ N )aidxs     G/home/wildlama/miniconda3/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    t9>>4yA~8+<XCRy+QDdJJ''''MM$r(C r   c                f    SSK Jn  [        U [        [        UR                  UR
                  45      $ )Nr   r   )r   r   r    listr!   
tuple_type)xr   s     r   is_iterabler*      s#    a$tzz4??CDDr   Nc                    Uc  Sn[        U 5      (       a$  [        U 5       H  u  p4[        XA/ UQUP7S9  M     g U" X 5        g )Nr   )_path)r*   	enumerateapply_with_path)valuefnr,   r   items        r   r.   r.      sD    }5"5)ICDMeMSM: * 	5r   c                d   ^^^ 0 mSUUU4S jjmT" SU 5        [        TR                  5       5      $ )Nc                   > [        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   )r*   r-   )r   currentr   r1   _implpredrets       r   r5   find_paths_if.<locals>._impl.   sJ    w&w/	llclD) 0$  CI !r   r   )r   tuple[int, ...]r4   r   )r'   keys)r   r6   r5   r7   s    `@@r   find_paths_ifr;   *   s/    !C  
"h
r   c                    X S-
  -  S:H  $ )Nr   r   r   )r)   s    r   is_power_of_twor=   :   s    QKA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typer=   
ValueErrorTRITON_MAX_TENSOR_NUMEL)shapenumelids       r   validate_block_shaperJ   >   s    E% !S!!nQC/`aefgah`iijkllq!!~aS0EFGG
 ! &&75')PQhPiij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int16rA   int32int64uint8uint16uint32uint64rn   c                N    [        U 5      R                  S5      S   n[        U   $ )N.r   )strsplittype_canonicalisation_dict)dtype	dtype_strs     r   canonicalize_dtyper   u   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   z   s    dC();E)B(CDDr   )r             @   urH   )r   r   r   fp)e4nve4b15e4b8e5e5b16fp8r   r   )rb   rn   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    rC   
issubclassr!   hasattr)r#   s    r   is_namedtupler      s'    c4 WZU%;WY@WWr   c                b    [        U S5      (       a  [        U 5      " U6 $ [        U 5      " U5      $ r   )r   rC   )argcontentss     r   _tuple_creater      s-     $+3	#:#:49hSS	(@SSr   )r   IterableTyper   ObjPathreturnr   )r   r   r   r9   r#   r   r   )r/   r   r0   zCallable[[ObjPath, Any], None]r   None)r   zUnion[IterableType, Any]r6   zCallable[[ObjPath, Any], bool]r   zlist[ObjPath])rF   z	List[int])r   r|   r   rA   )'
__future__r   	functoolsr   typingr   r   r   r	   r
   r   r   r   r'   r!   r(   r   rA   r   rE   r   r%   r*   r.   r;   r=   rJ   r~   valuesvr   r   r   __annotations__itemskr   r   r   )nsuffixs   00r   <module>r      s   "  B BcE#s(OTZZPQLCHoG! 9!E
 #
D# D# T	#
 	$# )# # :# Y# )# y# 7# :# z#  F!#" v##$ %#& V'#( E# J 
(//1	2A$%q! 
31
E!"$"1 
1#wz"$! #$"1 
1#wz"$! 1 
A3x{! >?=6 
VH~q=?! !~  ',,.DAq$Q'M! / XT1$$?s   ,E=FF1F