ó
    pñ:iÃ  ã                   óD   • S r SS/rSSKJr  SSKJr  SSKJr  S
S jrS r	g	)z*Functions that operate on sparse matrices
Úcount_blocksÚestimate_blocksizeé   )Úissparse)Ú	csr_array)Úcsr_count_blocksc                 óZ  • [        U 5      (       a  U R                  S;   d  [        U 5      n U R                  S:X  a  gSUs=:  a  S:  d  O  [	        S5      eSU-   S-  n[        U R                  5      nU R                  u  pEUS-  S:X  a  US-  S:X  a  US[        U S	5      -  -  nOS
nUS-  S:X  a  US-  S:X  a  US[        U S5      -  -  nOS
nXb:”  a  Xr:”  a  US[        U S5      -  -  nX�:”  a  ggUS-  S:X  a  US-  S:X  a  US[        U S5      -  -  n	OS
n	X‘:”  a  gXq:”  a  gXa:”  a  g	g)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
             ÚX/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/scipy/sparse/_spfuncs.pyr   r      sJ  € ô �Q�K‰K˜AŸH™H¨Ó6Ü�a‹Lˆà‡u�u�ƒzØàˆzÕ˜CÕÜÐIÓJÐJà˜ZÑ'¨3Ñ.€OÜ
�—‘‹,€CØ
�'‰'�C€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                 óP  • Uu  p#US:  d  US:  a  [        S5      e[        U 5      (       ag  U R                  S:X  a0  U R                  u  pE[	        XEX#U R
                  U R                  5      $ U R                  S:X  a  [        U R                  X245      $ [        [        U 5      U5      $ )zUFor 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Øˆ1ƒu��A“ÜÐ3Ó4Ð4ä�‡{�{Ø�8‰8�uÓØ—'‘'‰CˆAÜ# A¨¨A¯H©H°Q·Y±YÓ?Ð?Ø�X‰X˜ÓÜ §¡ Q EÓ*Ð*Üœ	 !› YÓ/Ð/r"   N)gffffffæ?)
Ú__doc__Ú__all__Ú_baser   Ú_csrr   Ú_sparsetoolsr   r   r   © r"   r!   Ú<module>r0      s+   ðñð Ð.Ð
/€å Ý Ý *ô0óf0r"   