
    ^j                       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dFdZdGd	Zd
 ZdHdIdZdJdZd ZdKd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/d0d1d2d3d4Z eej9                               D ]  Zeee<   	 d5 Zd6 Zi d7D  ci c]  } d8|  | 
 c} d7D  ci c]  } d9|  | 
 c} d:D  ci c]  } d;|  | 
 c} d<D ci c]  }d=| d>
 c}d?d d@Z dAe!dB<   ejE                         D ]  \  Z#Ze e   e e#<    dLdCZ$dD Z%dE Z&yc c} w c c} w c c} w c c}w )M    )annotationsreduce)AnyCallableTYPE_CHECKINGUnionListDict   core.i   c                    t        d ||       S )Nc                    | |   S N )aidxs     X/var/www/ramen.bs-engineer-server.com/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    t9>>4yA~8+<XtCRy+QDdDJJ'''MM$r(C r   c                f    ddl m} t        | t        t        |j                  |j
                  f      S )Nr   r   )r   r   r   listr    
tuple_type)xr   s     r   is_iterabler)      s#    a$tzz4??CDDr   Nc                    |d}t        |       r't        |       D ]  \  }}t        ||g ||        y  |||        y )Nr   )_path)r)   	enumerateapply_with_path)valuefnr+   r   items        r   r-   r-      sL    }5"5) 	;ICD"MeMSM:	; 	5%r   c                `    i dfd d|        t        j                               S )Nc                ~    t        |      r"t        |      D ]  \  }} g | ||        y  | |      rd | <   y y r   )r)   r,   )r   currentr   r0   _implpredrets       r   r4   zfind_paths_if.<locals>._impl.   sM    w&w/ *	TllclD)*$ CI !r   r   )r   tuple[int, ...]r3   r   )r&   keys)r   r5   r4   r6   s    `@@r   find_paths_ifr9   *   s*    !C 
"h
r   c                    | | dz
  z  dk(  S )Nr   r   r   )r(   s    r   is_power_of_twor;   :   s    QKA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typer;   
ValueErrorTRITON_MAX_TENSOR_NUMEL)shapenumelids       r   validate_block_shaperH   >   s    E%  1!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int16r?   int32int64uint8uint16uint32uint64rl   c                N    t        |       j                  d      d   }t        |   S )N.r   )strsplittype_canonicalisation_dict)dtype	dtype_strs     r   canonicalize_dtyper   u   s&    E
  %b)I%i00r   c                (    |rdnd t        |        S )Nz*k*)r   )r}   is_consts     r   canonicalize_ptr_dtyper   z   s    dC();E)B(CDDr   )r             @   urF   )r   r   r   fp)e4nve4b15e4b8e5e5b16fp8r   r   )r`   rl   zDict[str, int]BITWIDTH_DICTc                    t         |    S r   )r   )r}   s    r   get_primitive_bitwidthr      s    r   c                b    t        | t              xr t        | t              xr t	        | d      S N_fields)r   rA   
issubclassr    hasattr)r"   s    r   is_namedtupler      s'    c4 WZU%;WY@WWr   c                X    t        | d      r t        |       | S  t        |       |      S r   )r   rA   )argcontentss     r   _tuple_creater      s.     $+3	#:949hS	S	(@SSr   )r   IterableTyper   ObjPathreturnr   )r   r   r   r7   r"   r   r   )r.   r   r/   zCallable[[ObjPath, Any], None]r   None)r   zUnion[IterableType, Any]r5   zCallable[[ObjPath, Any], bool]r   zlist[ObjPath])rD   z	List[int])r}   rz   r   r?   )'
__future__r   	functoolsr   typingr   r   r   r	   r
   r   r   r   r&   r    r'   r   r?   r   rC   r   r$   r)   r-   r9   r;   rH   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	2 &A$%q!&1
E!"$ 
1#wz $! #$ 
1#wz $!  
A3x{ ! >? 
VH~q ?! !~  ',,. (DAq$Q'M!( XT1$$?s   E!3E&E+E0