
    Vh                      F    d dl Z d dlmZ dgZdededefdZ G d d      Zy)	    N)OptionalLinearBlockSparsePatternrow_block_sizecol_block_sizereturnc                 6    | dk(  xr |dk(  xs | dk(  xr |dk(  S )N          )r   r   s     R/home/dcms/DCMS/lib/python3.12/site-packages/torch/ao/nn/sparse/quantized/utils.py%_is_valid_linear_block_sparse_patternr      s2     a7Na$7 !3! 3    c                       e Zd ZU  ej                         ZdZeed<   dZ	eed<   dZ
eed<   dZeed<   ddedefdZdd
Zdeee      dee   dee   dd	fdZedeeef   fd       Zy	)r   r	   r   r
   r   prev_row_block_sizeprev_col_block_sizec                     t        ||      sJ t        j                  j                          t        j                  t        _        t        j                  t        _        |t        _        |t        _        y N)r   r   rlockacquirer   r   r   r   )selfr   r   s      r   __init__z!LinearBlockSparsePattern.__init__   s]    4^^TTT &&..0$33 	!4 %33 	!4 3A /2@ /r   r   Nc                      y r   r   )r   s    r   	__enter__z"LinearBlockSparsePattern.__enter__)   s    r   exc_type	exc_value	backtracec                     t         j                  t         _        t         j                  t         _        t         j
                  j                          y r   )r   r   r   r   r   r   release)r   r   r   r   s       r   __exit__z!LinearBlockSparsePattern.__exit__,   s<     %88 	!/ %88 	!/ 	!&&..0r   c                  B    t         j                  t         j                  fS r   )r   r   r   r   r   r   
block_sizez#LinearBlockSparsePattern.block_size:   s      %33$33
 	
r   )r	   r
   )r   N)__name__
__module____qualname__	threadingRLockr   r   int__annotations__r   r   r   r   r   r   typeBaseExceptionobjectr    staticmethodtupler"   r   r   r   r   r      s    IOOENCNC    
As 
A 
A14./1 M*1 F#	1
 
1 
c3h 
 
r   )r&   typingr   __all__r(   boolr   r   r   r   r   <module>r2      s<      &
&),	)
 )
r   