
    sgQ                     ,    d dl Z dgZd Z G d d      Zy)    NLinearBlockSparsePatternc                 6    | dk(  xr |dk(  xs | dk(  xr |dk(  S )N          )row_block_sizecol_block_sizes     U/var/www/html/venv/lib/python3.12/site-packages/torch/ao/nn/sparse/quantized/utils.py%_is_valid_linear_block_sparse_patternr      s0    a7Na$7 !3! 3    c                   b    e Zd Z ej                         ZdZdZdZdZ	ddZ
d Zd Zed        Zy)	r   r   r   c                     t        ||      sJ t        j                  j                          t        j                  t        _        t        j                  t        _        |t        _        |t        _        y N)r   r   rlockacquirer	   prev_row_block_sizer
   prev_col_block_size)selfr	   r
   s      r   __init__z!LinearBlockSparsePattern.__init__   s]    4^^TTT &&..0$33 	!4 %33 	!4 3A /2@ /r   c                      y r   r   )r   s    r   	__enter__z"LinearBlockSparsePattern.__enter__'   s    r   c                     t         j                  t         _        t         j                  t         _        t         j
                  j                          y r   )r   r   r	   r   r
   r   release)r   exc_type	exc_value	backtraces       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_size3   s      %33$33
 	
r   N)r   r   )__name__
__module____qualname__	threadingRLockr   r	   r
   r   r   r   r   r   staticmethodr    r   r   r   r   r      sJ    IOOENN
A1 
 
r   )r$   __all__r   r   r   r   r   <module>r(      s!     &
&$
 $
r   