Ë
    âQ(hÃ  ã                   óB   — d Z ddgZddlmZ ddlmZ ddlmZ d
d„Zd„ Z	y	)z+ Functions that operate on sparse matrices
Úcount_blocksÚestimate_blocksizeé   )Úissparse)Ú	csr_array)Úcsr_count_blocksc                 óP  — t        | «      r| j                  dv st        | «      } | j                  dk(  ryd|cxk  rdk  st	        d«      ‚ t	        d«      ‚d|z   dz  }t        | j                  «      }| j                  \  }}|dz  dk(  r|dz  dk(  r|dt        | d	«      z  z  }nd
}|dz  dk(  r|dz  dk(  r|dt        | d«      z  z  }nd
}||kD  r||kD  r|dt        | d«      z  z  }||kD  ryy|dz  dk(  r|dz  dk(  r|dt        | d«      z  z  }	nd
}	|	|kD  ry||kD  ry||kD  ry	y)z—Attempt to determine the blocksize of a sparse matrix

    Returns a blocksize=(r,c) such that
        - A.nnz / A.tobsr( (r,c) ).nnz > efficiency
    )ÚcscÚcsré    )r   r   g      ð?z.efficiency must satisfy 0.0 < efficiency < 1.0g       @é   é   )r   r   g        é   é	   )r   r   é$   )é   r   é   )r   r   )r   Úformatr   ÚnnzÚ
ValueErrorÚfloatÚshaper   )
ÚAÚ
efficiencyÚhigh_efficiencyr   ÚMÚNÚe22Úe33Úe66Úe44s
             úS/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/scipy/sparse/_spfuncs.pyr   r      sg  € ô �QŒK˜AŸH™H¨Ñ6Ü�a‹Lˆà‡u�u�‚zØàˆzÔ˜CÒÜÐIÓJÐJð  ÜÐIÓJÐJà˜ZÑ'¨3Ñ.€OÜ
�—‘‹,€CØ
�'‰'�C€A€aàˆ1�u�‚z�a˜!‘e˜q’jØ�Qœ a¨Ó.Ñ.Ñ/‰àˆàˆ1�u�‚z�a˜!‘e˜q’jØ�Qœ a¨Ó.Ñ.Ñ/‰àˆà
ˆ_Ò  Ò!6Ø�Rœ, q¨Ó/Ñ/Ñ0ˆØ�ÒØààˆq‰5�AŠ:˜!˜a™% 1š*Ø˜œl¨1¨UÓ3Ñ3Ñ4‰CàˆCà�ÒØØ�:ÒØØ�:ÒØàó    c                 óH  — |\  }}|dk  s|dk  rt        d«      ‚t        | «      ri| j                  dk(  r3| j                  \  }}t	        ||||| j
                  | j                  «      S | j                  dk(  rt        | j                  ||f«      S t        t        | «      |«      S )z]For a given blocksize=(r,c) count the number of occupied
    blocks in a sparse matrix A
    r   zr and c must be positiver
   r	   )
r   r   r   r   r   ÚindptrÚindicesr   ÚTr   )r   Ú	blocksizeÚrÚcr   r   s         r!   r   r   >   s•   € ð �C€A€aØˆ1‚u��A’ÜÐ3Ó4Ð4ä�„{Ø�8‰8�uÒØ—'‘'‰CˆAˆaÜ# A a¨¨!¨A¯H©H°Q·Y±YÓ?Ð?Ø�X‰X˜ÒÜ §¡ Q q EÓ*Ð*Üœ	 !› YÓ/Ð/r"   N)gffffffæ?)
Ú__doc__Ú__all__Ú_baser   Ú_csrr   Ú_sparsetoolsr   r   r   © r"   r!   ú<module>r0      s+   ðñð Ð.Ð
/€å Ý Ý *ó0óf0r"   