Ë
    ¡9jº  ã                   ó:   — d dl Z dgZdededefd„Z G d„ d«      Zy)é    NÚ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     úb/media/conek/DATA/Code/OCR/venv/lib/python3.12/site-packages/torch/ao/nn/sparse/quantized/utils.pyÚ%_is_valid_linear_block_sparse_patternr      s2   € ð ˜aÑÒ7 N°aÑ$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   d	z  ded	z  ded	z  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t        d|› d|› «      ‚t        j                  j	                  «        t        j
                  t        _        t        j                  t        _        |t        _        |t        _        y )Nz4Invalid linear block sparse pattern: row_block_size=z, col_block_size=)	r   ÚAssertionErrorr   ÚrlockÚacquirer   r   r   r   )Úselfr   r   s      r   Ú__init__z!LinearBlockSparsePattern.__init__   s   € Ü4°^À^ÔTÜ ð"Ø"0Ð!1Ð1BÀ>ÐBRðTóð ô 	!×&Ñ&×.Ñ.Ô0ä$×3Ñ3ô 	!Ô4ô %×3Ñ3ô 	!Ô4ð 3AÔ Ô/Ø2@Ô Õ/r   r   Nc                  ó   — y ©Nr   )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   ÚtypeÚBaseExceptionÚobjectr    ÚstaticmethodÚtupler"   r   r   r   r   r      s¶   … ØˆIO‰OÓ€EØ€NCÓØ€NCÓØ Ð˜Ó Ø Ð˜Ó ñA sð AÀó Aó ð1à}Ñ%¨Ñ,ð1ð ! 4Ñ'ð1ð ˜D‘=ð	1ð
 
ó1ð ð
˜˜c 3˜h™ò 
ó ñ
r   )r&   Ú__all__r(   Úboolr   r   r   r   r   ú<module>r1      s9   ðÛ ð &Ð
&€ðØðØ),ðà	ó÷-
ò -
r   