
    sh                        S SK r S SKr/ SQr\ R                  S 5       rS rSS\R                  4S jjrSS\R                  4S jjrSS\R                  4S jjr	SS\R                  4S	 jjr
S\R                  4S
 jrSS\R                  4S jjrSS\R                  4S jjrSS\R                  4S jjrSS\R                  4S jjrg)    N)
fallback_dispatchersemi_sparse_valuessemi_sparse_indicessemi_sparse_tsemi_sparse_viewsemi_sparse_detachsemi_sparse_mmsemi_sparse_addmmsemi_sparse_linearsemi_sparse_scaled_mmc               #   `   #    [         R                  R                  5       n  S v   A g ! A f = f7fN)torch_C_DisableTorchDispatch)guards    u/Users/tiagomarins/Projetos/claudeai/copy_bank/venv/lib/python3.13/site-packages/torch/sparse/_semi_structured_ops.pyno_dispatchr      s%     HH**,EEs   .( .+.c                 V    [        5          U " U6 sS S S 5        $ ! , (       d  f       g = fr   )r   )functypesargskwargss       r   r   r      s    	T{ 
s   
(returnc                 X   [        U5      S:X  d   eUS   n[        U[        R                  R                  5      (       d   eUR
                  c   eUR                  c4  UR                  u  pVXV-  S-  nUR
                  S U R                  US5      $ UR
                  R                  5       $ N   r      )
len
isinstancer   sparseSparseSemiStructuredTensorpackedmetashapeviewdetach)r   r   r   r   Amknum_kept_elementss           r   r   r   #   s    t9>>QAa@@AAAA88vv~wwEQJxx+*,11!R88xx      c                    [        U5      S:X  d   eUS   n[        U[        R                  R                  5      (       d   eUR
                  c   eUR                  c  UR                  u  pVXV-  S-  nUR
                  US  R                  US5      nUR                  UR                  [        R                  :X  a  [        R                  5      $ [        R                  5      $ UR                  $ r   )r    r!   r   r"   r#   r$   r%   r&   r'   dtypeint32int16)	r   r   r   r   r)   r*   r+   r,   metadatas	            r   r   r   0   s    t9>>QAa@@AAAA88vv~wwEQJ88-./44Q;}}AGGu{{,BU[[TTTTvvr-   c                    [        U5      S:X  d   eUS   n[        U[        R                  R                  5      (       d   e[        UR
                  5      S:X  d   eUR                  [        R                  " UR
                  S   UR
                  S   /5      UR                  UR                  UR                  UR                  UR                  b  UR                  R                  SS5      OS US   R                  US   R                  S9$ )Nr   r   r   r   )r$   r%   packed_tmeta_tcompressed_swizzled_bitmaskfuse_transpose_cusparseltalg_id_cusparselt)r    r!   r   r"   r#   r&   	__class__Sizer4   r5   r$   r%   r6   	transposer7   r8   r   r   r   r   selfs        r   r   r   >   s    t9>>7DdELLCCDDDDtzz?a >>

DJJrNDJJqM23}}[[yy //; ,,66q!<"&q'"C"Cq'33   r-   c                     [        U5      S:X  d   eUu  pE[        U5      UR                  :w  a  [        SU S35      eU$ )Nr   z[`view` is not implemented for SparseSemiStructuredTensor, except for the dummy case (shape=))r    tupler&   NotImplementedError)r   r   r   r   r=   r&   s         r   r   r   V   sL    t9>>KDU|tzz!!ijoippqr
 	
 Kr-   c                     [        U5      S:X  d   eUS   nUR                  UR                  UR                  UR                  UR
                  UR                  UR                  UR                  UR                  SS9	$ )Nr   r   F)	r&   r$   r%   r4   r5   r6   r7   r8   requires_grad)
r    r9   r&   r$   r%   r4   r5   r6   r7   r8   r<   s        r   r   r   `   sr    t9>>7D>>jj{{YY{{$($D$D"&"@"@00  
 
r-   c                 n   [        U5      S:X  d   eUu  pEUR                  S:w  d  UR                  S:w  a  [        S5      e[        U[        R
                  R                  5      (       a;  UR                  u  pgUR                  U5      nUR                  U5      n	U	S S 2S U24   $ UR                  5       n
[        U
[        R
                  R                  5      (       d   eUR                  u  pgUR                  U5      nU
R                  UR                  5       5      R                  5       n	U	S U2S S 24   $ )Nr   D`SparseSemiStructuredTensor` matmul: Broadcasting is not implemented)r    ndimrA   r!   r   r"   r#   r&   _pad_dense_input_mmt)r   r   r   r   r)   BrowcolB_paddedresB_tA_paddeds               r   r	   r	   p   s   t9>>DAvv{affk!R
 	
 !U\\<<==77%%a(eeHo1dsd7|cce#u||FFGGGG77%%a(gghjjl#%%'4C47|r-   c                 ^   [        U5      S:X  d   eUu  pEnUR                  S:w  d  UR                  S:w  a  [        S5      eUR                  S:w  a  [        SUR                   35      e[	        U[
        R                  R                  5      (       a  [        S5      eUR                  5       n[	        U[
        R                  R                  5      (       d   eUR                  u  pUR                  U5      n
UR                  U
R                  5       US9R                  5       nUS U2S S 24   $ )N   r   rE   r   zF`SparseSemiStructuredTensor` matmul: only bias dim=1 supported. Shape=zL`SparseSemiStructuredTensor` matmul: only operand B of `addmm` can be sparse)bias)r    rF   rA   r&   r!   r   r"   r#   rI   rG   rH   )r   r   r   r   rS   r)   rJ   rO   rK   _colrP   results               r   r
   r
      s   t9>>JDQvv{affk!R
 	
 yyA~!TUYU_U_T`a
 	
 !U\\<<==!Z
 	
 ##%Cc5<<BBCCCCIC##A&HWWXZZ\W-//1F$3$'?r-   c                 0   [        U5      S;   d   eUS S u  pE[        U5      S:X  a  US   OS nUR                  nUR                  SUS   5      nUc  XR                  5       -  n	O[	        S S XhUR                  5       /S9n	U	R                  " / US S QSP76 $ )N)r   rR   r   rR   r   )r   r   r   )r    r&   r'   rI   r
   )
r   r   r   r   r)   rJ   rS   r&   A_2drN   s
             r   r   r      s    t98DA$i1n47$DGGE66"eBi D|SSUlacce$
 88$U3BZ$$$r-   c                 $   US S u  pEpgpn
UR                   [        R                  :X  d   eUR                   [        R                  :X  d   e[        U[        R                  R
                  5      (       d   eUR                  c   eUR                  5       S:X  a  UR                  5       S:X  d   eUR                   [        R                  :X  a  UR                   [        R                  :X  d   e[        R                  " UR                  UXg-  U
S9nU$ )N   r   )alpha	out_dtype)
r/   r   float8_e4m3fnr!   r"   $SparseSemiStructuredTensorCUSPARSELTr$   numelfloat32_cslt_sparse_mm)r   r   r   r   r)   rJ   A_scaleB_scalerS   scale_resultr[   sparse_results               r   r   r      s    <@!H9A'D	77e)))))77e)))))aJJKKKK88==?aGMMOq$888==EMM)gmmu}}.LLL ))			M r-   ) N)
contextlibr   __all__contextmanagerr   r   Tensorr   r   r   r   r   r	   r
   r   r   re   r-   r   <module>rj      s       

!U\\ 
!ell  05<< U\\   *ELL .%U\\ %( r-   