
    )`i                     T    d Z ddlT d Zd Z G d d          Z G d de          Zd	S )
z
Methods for layout swizzling
   )*c                 :    |dk    r| |z	  nt          | |           S N    )shiftlass     /home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/flashinfer/data/cutlass/python/pycute/swizzle.pyshiftrr   (   "    q55afQmm+    c                 :    |dk    r| |z  nt          | |           S r   )r   r   s     r   r   r   ,   r   r   c                   2    e Zd Zd Zd Zd Zd Zd Zd ZdS )Swizzlec                     |dk    sJ |dk    sJ t          |          |k    sJ || _        || _        || _        d|z  dz
  }||t	          d|          z   z  | _        ||t          d|          z
  z  | _        d S )Nr   r   )absbitsbaseshiftmaxyyy_mskminzzz_msk)selfr   r   r   bit_msks        r   __init__zSwizzle.__init__=   s    1999919999u::DIDIDJDyAoGtc!Ell23DLtc!Ell23DLLLr   c                 B    |t          || j        z  | j                  z  S N)r   r   r   )r   offsets     r   __call__zSwizzle.__call__I   s     F6DL0$*====r   c                 P    d| j         | j        z   t          | j                  z   z  S )Nr   )r   r   r   r   r   s    r   sizezSwizzle.sizeM   s#    TY&TZ899r   c                 *    |                                  S r   )r$   r#   s    r   cosizezSwizzle.cosizeQ   s    99;;r   c                 6    d| j          d| j         d| j         S )NSW__r   r   r   r#   s    r   __str__zSwizzle.__str__U   s&    555TY55555r   c                 8    d| j          d| j         d| j         dS )NzSwizzle(,)r*   r#   s    r   __repr__zSwizzle.__repr__Y   s)    ;di;;$);;dj;;;;r   N)	__name__
__module____qualname__r   r!   r$   r&   r+   r/    r   r   r   r   <   sn        	4 	4 	4> > >: : :  6 6 6< < < < <r   r   c                   D    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
S )ComposedLayoutc                 0    || _         || _        || _        d S r   layoutBr    layoutA)r   r8   r    r9   s       r   r   zComposedLayout.__init__^   s    DLDKDLLLr   c                 b    | j         |j         k    o| j        |j        k    o| j        |j        k    S r   r7   )r   others     r   __eq__zComposedLayout.__eq__d   s/    <5=(jT[EL-HjT\]b]jMjjr   c                 *    t          | j                  S r   )lenr9   r#   s    r   __len__zComposedLayout.__len__h   s    t|r   c                 L    |                      | j         | j        | z             S r   r7   )r   argss     r   r!   zComposedLayout.__call__l   s$    <<ldlD&99:::r   c                 N    t          | j        | j        | j        |                   S r   )r5   r8   r    r9   )r   is     r   __getitem__zComposedLayout.__getitem__p   s    $,T\!_EEEr   c                 *    t          | j                  S r   )r$   r9   r#   s    r   r$   zComposedLayout.sizet   s    r   c                 *    t          | j                  S r   )r&   r8   r#   s    r   r&   zComposedLayout.cosizex   s    $,r   c                 4    | j          d| j         d| j         S )Nz o r7   r#   s    r   r+   zComposedLayout.__str__|   s$    l==t{==t|===r   c                     dt          | j                   dt          | j                   dt          | j                   dS )NzComposedLayout(r-   r.   )reprr8   r    r9   r#   s    r   r/   zComposedLayout.__repr__   sA    [T$,//[[$t{2C2C[[d4<FXFX[[[[r   N)r0   r1   r2   r   r<   r?   r!   rD   r$   r&   r+   r/   r3   r   r   r5   r5   ]   s          k k k  ; ; ;F F F       > > >\ \ \ \ \r   r5   N)__doc__layoutr   r   r   
LayoutBaser5   r3   r   r   <module>rM      s   B     , , ,, , , < < < < < < < <B$\ $\ $\ $\ $\Z $\ $\ $\ $\ $\r   