ó
    pñ:ij]  ã                   óæ   • S r Sr/ SQrSSKrSSKJr  SSKJr  SS	K	J
r
JrJrJr  SS
KJr  SSKJrJrJrJrJrJrJrJr  SSKJrJrJr   " S S\5      rS rS r " S S\\5      r  " S S\\5      r!g)zSparse DIAgonal formatzrestructuredtext en)Ú	dia_arrayÚ
dia_matrixÚisspmatrix_diaé    Né   )Úcopy_if_neededé   )Úspmatrix)ÚissparseÚ_formatsÚ_spbaseÚsparray)Ú_data_matrix)ÚisdenseÚisscalarlikeÚisshapeÚupcast_charÚgetdtypeÚget_sum_dtypeÚvalidateaxisÚcheck_shape)Ú
dia_matmatÚ
dia_matvecÚdia_matvecsc                   óÎ  ^ • \ rS rSrSrSSS.S jjrS rS rSS jr\	R                  R                  \l
        SS	 jr\	R                  R                  \l
        SS
 jr\	R                  R                  \l
        SS jrU 4S jrS rU 4S jrS rS rU 4S jrSS jrSS jr\	R*                  R                  \l
        S S jr\	R,                  R                  \l
        SS jr\	R.                  R                  \l
        SS jr\	R0                  R                  \l
        SS jr\	R2                  R                  \l
        S!S jrS r\	R6                  R                  \l
        SrU =r$ )"Ú	_dia_baseé   ÚdiaN©Úmaxprintc                óü  • [         R                  " XUS9  [        U5      (       aå  UR                  S:X  aU  U(       a  UR	                  5       nUR
                  U l        UR                  U l        [        UR                  5      U l	        GOwUR                  U R                  :X  a  U(       a  UR	                  5       nOUR                  5       nUR
                  U l        UR                  U l        [        UR                  5      U l	        GO÷[        U[        5      (       Ga2  [        U5      (       av  [        U5      U l	        [        R                  " S[!        U["        S95      U l        U R%                  ['        U R                  5      S9n[        R                  " SUS9U l        GO[ Uu  p‰Uc  [)        S5      eU(       d  [*        n[        R,                  " [        R.                  " US   X4S	95      U l        [        R.                  " US
   U R%                  ['        U5      S9US	9n	[        R0                  " U	5      U l        [        U5      U l	        O¯ [        R4                  " U5      n[        U [6        5      (       a)  UR8                  S:w  a  [)        SUR8                   S35      eU R;                  XUS9R                  5       nUR
                  U l        UR                  U l        [        UR                  5      U l	        Ub+  [!        U5      nU R
                  R=                  U5      U l        U R                  R8                  S
:w  a  [)        S5      eU R
                  R8                  S:w  a  [)        S5      eU R
                  R                  S   [?        U R                  5      :w  a<  [)        SU R
                  R                  S    S[?        U R                  5       S35      e[?        [        R@                  " U R                  5      5      [?        U R                  5      :w  a  [)        S5      eg ! [2         a  n
Sn[)        U5      U
eS n
A
ff = f! [2         a  n
[)        SU R                   S35      U
eS n
A
ff = f)Nr   r   )r   r   )Údefault©Úmaxvalr   ©Údtypezexpected a shape argument)r%   Úcopyr   z+unrecognized form for dia_array constructorzunrecognized form for z_matrix constructorr   zDIA arrays don't support zD input. Use 2D)r%   Úshapezoffsets array must have rank 1zdata array must have rank 2znumber of diagonals (z() does not match the number of offsets (Ú)z&offset array contains duplicate values)!r   Ú__init__r
   Úformatr&   ÚdataÚoffsetsr   r'   Ú_shapeÚtodiaÚ
isinstanceÚtupler   ÚnpÚzerosr   ÚfloatÚ_get_index_dtypeÚmaxÚ
ValueErrorr   Ú
atleast_2dÚarrayÚ
atleast_1dÚ	ExceptionÚasarrayr   ÚndimÚ_coo_containerÚastypeÚlenÚunique)ÚselfÚarg1r'   r%   r&   r   ÚAÚ	idx_dtyper+   r,   ÚeÚmessageÚnewdtypes                ÚT/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/scipy/sparse/_dia.pyr)   Ú_dia_base.__init__   s~  € Ü×Ò˜d°8Ò<ä�D�>‰>Ø�{‰{˜eÓ#ÞØŸ9™9›;�DØ ŸI™I�”	Ø#Ÿ|™|�”Ü)¨$¯*©*Ó5�–à—;‘; $§+¡+Ó-¶$ØŸ	™	›‘AàŸ
™
›�AØŸF™F�”	Ø Ÿy™y�”Ü)¨!¯'©'Ó2�–Ü˜œe×$Ò$Ü�t�}‰}ô *¨$Ó/�”ÜŸHšH U¬H°UÄEÑ,JÓK�”	Ø ×1Ñ1¼¸T¿Z¹Z»Ð1ÐI�	Ü!Ÿxšx¨°9Ñ=�–ð5à$(‘M�Dð
 ‘}Ü(Ð)DÓEÐEÞÜ-˜Ü "§¢¬b¯hªh°t¸A±wÀeÑ.WÓ X�D”IÜ Ÿhšh t¨A¡wØ-1×-BÑ-BÌ#ÈeË*Ð-BÐ-UØ,0ñ2�Gô $&§=¢=°Ó#9�D”LÜ"-¨eÓ"4�D•KðMÜ—z’z $Ó'�ô ˜$¤×(Ñ(¨T¯Y©Y¸!«^Ü Ð#<¸T¿Y¹Y¸KÀÐ!WÓXÐXØ×#Ñ# D¸UÐ#ÐC×IÑIÓKˆAØŸ™ˆDŒIØŸ9™9ˆDŒLÜ% a§g¡gÓ.ˆDŒKàÑÜ “ˆHØŸ	™	×(Ñ(¨Ó2ˆDŒIð �<‰<×Ñ Ó!ÜÐ=Ó>Ð>à�9‰9�>‰>˜QÓÜÐ:Ó;Ð;à�9‰9�?‰?˜1Ñ¤ T§\¡\Ó!2Ó2ÜØ'¨¯	©	¯©¸Ñ(:Ð';ð <Ü" 4§<¡<Ó0Ð1°ð4óð ô Œr�yŠy˜Ÿ™Ó&Ó'¬3¨t¯|©|Ó+<Ó<ÜÐEÓFÐFð =øôY !ó 5ØK�GÜ$ WÓ-°1Ð4ûð5ûô$ ó MÜ Ð!9Ø$(§K¡K =Ð0Cð"Eó FØKLðMûðMús0   Æ(P2 ÉQ Ð2
QÐ<Q
Ñ
QÑ
Q;ÑQ6Ñ6Q;c                 óö   • [         U R                     u  p[        U [        5      (       a  SOSnU R                  R
                  S   nSU SU SU R                   SU R                   SU S	U R
                   S
3$ )Nr8   Úmatrixr   Ú<z sparse z of dtype 'z'
	with z stored elements (z diagonals) and shape Ú>)r   r*   r/   r   r+   r'   r%   Únnz)rA   Ú_ÚfmtÚ
sparse_clsÚds        rH   Ú__repr__Ú_dia_base.__repr__d   s}   € Ü˜$Ÿ+™+Ñ&‰ˆÜ *¨4´× 9Ñ 9‘W¸xˆ
Ø�I‰I�O‰O˜AÑˆà�ˆu�H˜Z˜L¨°D·J±J°<ð @Ø—h‘h�ZÐ1°!°Ð4JÈ4Ï:É:È,ÐVWðYð	
ó    c                 óÌ   • U R                   u  p[        R                  " U R                  R                   S   5      nX0R                  SS2S4   -
  nUS:¬  nXTU:  -  nXSU:  -  nU$ )zvReturns a mask of the same shape as self.data, where
mask[i,j] is True when data[i,j] corresponds to a stored element.r   Nr   )r'   r1   Úaranger+   r,   )rA   Únum_rowsÚnum_colsÚoffset_indsÚrowÚmasks         rH   Ú
_data_maskÚ_dia_base._data_maskm   sg   € ð "ŸZ™ZÑˆÜ—i’i §	¡	§¡°Ñ 2Ó3ˆØŸL™Lª¨4¨Ñ0Ñ0ˆØ�q‘ˆØ�x‘Ñ ˆØ˜xÑ'Ñ(ˆØˆrU   c                 ó„   • Ub  [        S5      eU R                  5       n[        R                  " U R                  U   5      $ )Nz<count_nonzero over an axis is not implemented for DIA format)ÚNotImplementedErrorr]   r1   Úcount_nonzeror+   )rA   Úaxisr\   s      rH   ra   Ú_dia_base.count_nonzerox   s?   € ØÑÜ%ØNóð ð �‰Ó ˆÜ×Ò §	¡	¨$¡Ó0Ð0rU   c                 óÎ   • Ub  [        S5      eU R                  u  p#SnU R                   H-  nUS:”  a  U[        X#U-
  5      -  nM  U[        X%-   U5      -  nM/     [	        U5      $ )Nz6_getnnz over an axis is not implemented for DIA formatr   )r`   r'   r,   ÚminÚint)rA   rb   ÚMÚNrN   Úks         rH   Ú_getnnzÚ_dia_base._getnnz‚   sn   € ØÑÜ%ð '7ó 8ð 8à�j‰j‰ˆØˆØ—”ˆAØ�1‹uØ”s˜1˜q™S“zÑ!’à”s˜1™3˜q“zÑ!’ñ	 ô
 �3‹xˆrU   c           
      ó  • [        U5      n[        U R                  5      nU R                  u  pVS nUS:X  a�  U R	                  5       nU R
                  U-  R                  SS9n	U	R                  S   U:X  a  U	n
O/[        R                  " XiR                  S9n
XšS U	R                  S   & U R                  X¤S9nOº[        R                  " US4US9n[        R                  " XdS9n[        XV[        U R                  5      U R
                  R                  S   U R                  U R
                  XË5        U R                  U5      nUc  UR                  X#S9$ U R                  UR                  US95      nUR                  SX#S9$ )	N©r   r   ©rb   r$   r   )r%   Úout© )rb   r%   ro   )r   r   r%   r'   r]   r+   Úsumr1   r2   Ú_ascontainerÚonesr   r?   r,   )rA   rb   r%   ro   Ú	res_dtyperX   rY   Úretr\   ÚxÚresÚrow_sumsÚones                rH   rq   Ú_dia_base.sum‘   sT  € Ü˜DÓ!ˆä! $§*¡*Ó-ˆ	Ø!ŸZ™ZÑˆØˆà�4‹<Ø—?‘?Ó$ˆDØ—‘˜TÑ!×&Ñ&¨AÐ&Ð.ˆAØ�w‰w�q‰z˜XÓ%Ø‘ä—h’h˜x¯w©wÑ7�Ø#$�K�Q—W‘W˜Q‘ZÐ Ø×#Ñ# CÐ#Ð9‰Cô —x’x ¨1 °YÑ?ˆHÜ—'’'˜(Ñ4ˆCÜ�x¬3¨t¯|©|Ó+<Ø—y‘y—‘ qÑ)¨4¯<©<¸¿¹ÀCôSð ×(Ñ(¨Ó2ˆHà‰|Ø—|‘|¨%�|Ð9Ð9à×#Ñ# H§L¡L°d LÐ$;Ó<ˆCà�w‰w˜B eˆwÐ5Ð5rU   c                 ót  • [        U[        5      (       d  UR                  U 5      $ [        R                  " U R
                  UR
                  5      (       aL  U R                  U(       a  U R                  UR                  -
  5      $ U R                  UR                  -   5      $ [        R                  " U R
                  UR
                  5      n[        R                  " X0R
                  5      n[        R                  " X1R
                  5      nU R                  R                  S   nUR                  R                  S   nXg:X  ay  [        U5      [        U R
                  5      :X  aW  U R                  [        U5         nU(       a  X…S S 24==   UR                  -  ss'   GO}X…S S 24==   UR                  -  ss'   GOaXg:X  av  [        U5      [        UR
                  5      :X  aT  U(       a  UR                  [        U5         * nOUR                  [        U5         nX„S S 24==   U R                  -  ss'   Oæ[        U R                  S   US   -   U R                  S   5      n	[        R                  " [        U5      U	4[        R                  " U R                  UR                  5      S9nX„S U24==   U R                  S S 2S U	24   -  ss'   U(       a$  X…S U24==   UR                  S S 2S U	24   -  ss'   O#X…S U24==   UR                  S S 2S U	24   -  ss'   U R!                  Xƒ4U R                  S9$ )Nr   r   éÿÿÿÿr$   ©r'   )r/   r   Ú_add_sparser1   Úarray_equalr,   Ú
_with_datar+   Úunion1dÚsearchsortedr'   r?   Ú_invert_indexre   r2   Úresult_typeÚ_dia_container)
rA   ÚotherÚsubÚnew_offsetsÚself_idxÚ	other_idxÚself_dÚother_dÚnew_datarR   s
             rH   r~   Ú_dia_base._add_sparse³   s‹  € ä˜%¤×+Ñ+Ø×$Ñ$ TÓ*Ð*ô �>Š>˜$Ÿ,™,¨¯©×6Ñ6Ø—?‘?¾S 4§9¡9¨u¯z©zÑ#9ó ;ð ;Ø#'§9¡9¨u¯z©zÑ#9ó;ð ;ô —j’j §¡¨u¯}©}Ó=ˆÜ—?’? ;·±Ó=ˆÜ—O’O K·±Ó?ˆ	à—‘—‘ Ñ#ˆØ—*‘*×"Ñ" 1Ñ%ˆð Ó¤ [Ó!1´S¸¿¹Ó5FÓ!FØ—y‘y¤¨xÓ!8Ñ9ˆHÞØ¢A˜Ó&¨%¯*©*Ñ4Õ&à¢A˜Ó&¨%¯*©*Ñ4Õ&ØÓ¤3 {Ó#3´s¸5¿=¹=Ó7IÓ#IÞØ!ŸJ™J¤}°YÓ'?Ñ@Ð@‘à Ÿ:™:¤m°IÓ&>Ñ?�Øšq�[Ó! T§Y¡YÑ.Ô!ô �D—J‘J˜q‘M K°¡OÑ3°T·Z±ZÀ±]ÓCˆAô —x’xÜ�[Ó! 1Ð%Ü—n’n T§Y¡Y°·
±
Ó;ñˆHð ˜w ˜wÐ&Ó'¨4¯9©9²Q¸¸¸°UÑ+;Ñ;Ó'ÞØ H W HÐ,Ó-°·±ºA¸rÀ¸r¸EÑ1BÑBÔ-à H W HÐ,Ó-°·±ºA¸rÀ¸r¸EÑ1BÑBÓ-Ø×"Ñ" HÐ#:À$Ç*Á*Ð"ÐMÐMrU   c                 ól   >• [        U[        5      (       d  [        TU ]  U5      $ U R	                  USS9$ )NT)r‡   )r/   r   ÚsuperÚ_sub_sparser~   )rA   r†   Ú	__class__s     €rH   r‘   Ú_dia_base._sub_sparseâ   s6   ø€ ä˜%¤×+Ñ+Ü‘7Ñ& uÓ-Ð-à×Ñ ¨4ÐÐ0Ð0rU   c                 ó>   • U R                  U R                  U-  5      $ ©N)r€   r+   )rA   r†   s     rH   Ú_mul_scalarÚ_dia_base._mul_scalaré   s   € Ø�‰˜tŸy™y¨5Ñ0Ó1Ð1rU   c                 ól  >• [        U5      (       a  U R                  U5      $ [        U5      (       Gaš  UR                  S:”  a  U R	                  5       U-  $ SU R
                  ;   d   SU R
                  ;   d  SUR
                  ;   a  [        TU ]  U5      $ [        R                  " U5      nUR
                  u  p#U R
                  u  pE[        U R                  R
                  S   U5      nU R                  S S 2S U24   R                  [        R                  " U R                  U5      5      nUS:X  a  XqSS U24   -  nO}X$:w  a  [        S5      e[        R                  " U5      nXd:”  a  X€R                   S S 2S 4   -
  U-  n	OX€R                   S S 2S 4   U-  -
  n	US:X  a  SnOX5:w  a  [        S5      eXqX˜4   -  nU R#                  U5      $ [%        U[&        5      (       a  UR
                  U R
                  :w  a  [        TU ]  U5      $ [        R(                  " U R                   UR                   SSS9u  p«n[        U R                  R
                  S   UR                  R
                  S   5      nU R                  US U24   UR                  US U24   -  nU R+                  Xz4U R
                  S9$ )Nr   r   r   zinconsistent shapesT)Úassume_uniqueÚreturn_indicesr}   )r   r–   r   r<   Útoarrayr'   r�   Úmultiplyr1   r7   re   r+   r>   r„   r6   rW   r,   r€   r/   r   Úintersect1dr…   )rA   r†   Ú
other_rowsÚ
other_colsÚrowsÚcolsÚLr+   ÚjÚir,   r‰   rŠ   r’   s                €rH   rœ   Ú_dia_base.multiplyì   s[  ø€ Ü˜×ÑØ×#Ñ# EÓ*Ð*ä�5�>Š>Ø�z‰z˜A‹~Ø—|‘|“~¨Ñ-Ð-ð �D—J‘J‹ ! t§z¡z£/°Q¸%¿+¹+Ó5EÜ‘wÑ'¨Ó.Ð.ä—M’M %Ó(ˆEØ%*§[¡[Ñ"ˆJØŸ™‰JˆDÜ�D—I‘I—O‘O AÑ&¨Ó-ˆAØ—9‘9šQ   ˜UÑ#×*Ñ*¬2¯>ª>¸$¿)¹)ÀUÓ+KÓLˆDØ˜Q‹Ø˜a  ! ˜e™Ñ$‘ØÓ#Ü Ð!6Ó7Ð7ä—I’I˜a“L�Ø“8ØŸ\™\ª!¨T¨'Ñ2Ñ2°dÑ:‘AàŸL™Lª¨D¨Ñ1°DÑ8Ñ8�AØ “?Ø‘AØÓ'Ü$Ð%:Ó;Ð;Ø˜a˜d™Ñ#�Ø—?‘? 4Ó(Ð(ô ˜%¤×+Ñ+¨u¯{©{¸d¿j¹jÓ/HÜ‘7Ñ# EÓ*Ð*ô
 �NŠN˜4Ÿ<™<¨¯©Ø)-¸dñDñ 	%ˆ˜9ô �—	‘	—‘ Ñ" E§J¡J×$4Ñ$4°QÑ$7Ó8ˆØ�y‰y˜ 2 A 2˜Ñ&¨¯©°I¸rÀ¸r°MÑ)BÑBˆØ×"Ñ" D ?¸$¿*¹*Ð"ÐEÐErU   c                 ó¦  • Un[         R                  " U R                  S   [        U R                  R
                  UR                  R
                  5      S9nU R                  R                  S   nU R                  u  pV[        XV[        U R                  5      X@R                  U R                  UR                  5       UR                  5       5        U$ )Nr   r$   r   )r1   r2   r'   r   r%   Úcharr+   r   r?   r,   Úravel)rA   r†   rv   Úyr¢   rg   rh   s          rH   Ú_matmul_vectorÚ_dia_base._matmul_vector  s•   € Øˆä�HŠH�T—Z‘Z ‘]¬+°d·j±j·o±oØ78·w±w·|±|ó+Eñ Fˆð �I‰I�O‰O˜AÑˆà�j‰j‰ˆä�1œ˜DŸL™LÓ)¨1¯l©l¸D¿I¹IØ—7‘7“9˜aŸg™g›iô	)ð ˆrU   c                 óR  • [         R                  " U R                  S   UR                  S   4[         R                  " U R                  U5      S9n[        / U R                  QU R                  R                  QU R                  PU R                  PUR                  S   PUPUP76   U$ )Nr   r   r$   )r1   r2   r'   r„   r+   r   r,   )rA   r†   rw   s      rH   Ú_matmul_multivectorÚ_dia_base._matmul_multivector,  s–   € Ü�hŠh˜Ÿ
™
 1™ u§{¡{°1¡~Ð6ÜŸ^š^¨D¯I©I°uÓ=ñ?ˆäð 	0�T—Z‘Zð 	0 $§)¡)§/¡/ð 	0°4·<±<ð 	0ÀÇÁð 	0Ø—K‘K ‘Nð	0Ø$)ð	0Ø+.ó	0àˆ
rU   c                 ó|  >• [        U[        5      (       d  [        TU ]  U5      $ SU R                  ;   d  SUR                  ;   a-  U R                  U R                  S   UR                  S   45      $ [        / U R                  QU R                  R                  QU R                  PU R                  PUR                  S   PUR                  R                  QUR                  PUR                  P76 u  p#U R                  UR                  [        U5      S5      U4U R                  S   UR                  S   45      $ )Nr   r   r|   )r/   r   r�   Ú_matmul_sparser'   r…   r   r+   r,   Úreshaper?   )rA   r†   r,   r+   r’   s       €rH   r°   Ú_dia_base._matmul_sparse3  s  ø€ ä˜%¤×+Ñ+Ü‘7Ñ)¨%Ó0Ð0ð �—
‘
‹?˜a 5§;¡;Ó.Ø×&Ñ&¨¯
©
°1©°u·{±{À1±~Ð'FÓGÐGä"ð > D§J¡Jð >°·±·±ð >Ø#'§<¡<ð>Ø15·±ð>à#(§;¡;¨q¡>ð>à49·J±J×4DÑ4Dð>ð $)§=¡=ð>ð 38·*±*ò>‰ˆð ×"Ñ" D§L¡L´°W³¸rÓ$BÀGÐ#LØ$(§J¡J¨q¡M°5·;±;¸q±>Ð#BóDð 	DrU   c                 óf  • U R                   u  p4UR                  S:X  a  [        R                  nO[	        U5      nUS:  a  [        X2-   XE5      nSnUnO[        X4U-
  U5      nUnX&-   nUR                  S:w  a  US U nU R                  R                   u  pšX R                  ;   ai  XŠ:”  aE  [        R                  " X˜4U R                  R                  S9nU R                  US S 2S U
24'   X°l        XR                  U R                  U:H  Xx24'   g [        R                  " U R                  U R                  R                  R                  U5      5      U l        [        XŠ5      n[        R                  " U	S-   U4U R                  R                  S9nU R                  US S2S U
24'   XSXx24'   X°l        g )Nr   r$   r   r|   )r'   r<   r1   Úinfr?   re   r+   r,   r2   r%   ÚappendÚtyper5   )rA   Úvaluesri   rg   rh   Úvalues_nÚnÚ	min_indexÚ	max_indexÚ	data_rowsÚ	data_colsr+   Úms                rH   Ú_setdiagÚ_dia_base._setdiagC  su  € Ø�z‰z‰ˆà�;‰;˜!Óä—v‘v‰Hä˜6“{ˆHàˆq‹5Ü�A‘E˜1Ó'ˆAØˆIØ‰Iä�A˜1‘u˜hÓ'ˆAØˆIØ™ˆIà�;‰;˜!Óà˜B˜Q�ZˆFà#Ÿy™yŸ™Ñˆ	Ø—‘ÓØÓ$Ü—x’x Ð 6¸d¿i¹i¿o¹oÑN�Ø&*§i¡i�’Q˜
˜˜
�]Ñ#Ø ”	Ø@F�I‰I�d—l‘l aÑ'¨Ð)<Ð<Ò=äŸ9š9 T§\¡\°4·<±<×3EÑ3E×3JÑ3JÈ1Ó3MÓNˆDŒLÜ�IÓ)ˆAÜ—8’8˜Y¨™]¨AÐ.°d·i±i·o±oÑFˆDØ$(§I¡IˆD��"��j�y�j�Ñ!Ø,2��YÐ(Ð(Ñ)Ø�IrU   c                 ó4   • U(       a  U R                  5       $ U $ r•   ©r&   )rA   r&   s     rH   r.   Ú_dia_base.todiah  s   € ÞØ—9‘9“;ÐàˆKrU   c                 óŽ  • Ub  US:w  a  [        S5      eU R                  u  p4[        U R                  5      nU R                  * n[        R
                  " [        U5      [        R                  S9S S 2S 4   n[        R
                  " U[        R                  S9Xe-  S S 2S 4   -
  n[        SXPR                  R                  S   -
  5      n	[        R                  " U R                  [        R                  " U R                  R                  S   U	4U R                  R                  S945      n
X§U4   n
U R                  X¦4XC4US9$ )N)r   r   zvSparse arrays/matrices do not support an 'axes' parameter because swapping dimensions is the only logical permutation.r$   r   r   )r'   r&   )r6   r'   r5   r,   r1   rW   r?   Úintcr+   Úhstackr2   r%   r…   )rA   Úaxesr&   rX   rY   Úmax_dimr,   ÚrÚcÚ
pad_amountr+   s              rH   Ú	transposeÚ_dia_base.transposep  s'  € ØÑ ¨£Üð Ló Mð Mð "ŸZ™ZÑˆÜ�d—j‘j“/ˆð —<‘<�-ˆô �IŠI”c˜'“l¬"¯'©'Ñ2²1°d°7Ñ;ˆÜ�IŠI�h¤b§g¡gÑ.°'Ñ2CÂQÈÀWÑ1MÑMˆÜ˜˜G§I¡I§O¡O°AÑ$6Ñ6Ó7ˆ
Ü�yŠy˜$Ÿ)™)¤R§X¢X¨t¯y©y¯©¸qÑ/AÀ:Ð.NØ48·I±I·O±Oñ&Eð Fó Gˆà�q�D‰zˆØ×"Ñ" D ?Øð; Ø&*ð #ð ,ð 	,rU   c                 ó  • U R                   u  p#X* ::  d  X:¼  a)  [        R                  " SU R                  R                  S9$ [        R
                  " U R                  U:H  5      u  n[        SU5      n[        X!-   U5      nXe-
  nUR                  S:X  a(  [        R                  " XpR                  R                  S9$ U R                  US   XV24   nU[        U5      -
  n	U	S:”  a  [        R                  " USU	4SS9nU$ )Nr   r$   Úconstant)Úmode)r'   r1   Úemptyr+   r%   Únonzeror,   r5   re   Úsizer2   r?   Úpad)
rA   ri   r    r¡   ÚidxÚ	first_colÚlast_colÚresult_sizeÚresultÚpaddings
             rH   ÚdiagonalÚ_dia_base.diagonalˆ  s×   € Ø—Z‘Z‰
ˆØ�‹:˜›Ü—8’8˜A T§Y¡Y§_¡_Ñ5Ð5Ü�zŠz˜$Ÿ,™,¨!Ñ+Ó,‰ˆÜ˜˜1“Iˆ	Ü�t‘x Ó&ˆØÑ*ˆØ�8‰8�q‹=Ü—8’8˜K¯y©y¯©Ñ?Ð?Ø—‘˜3˜q™6 9Ð#5Ð5Ñ6ˆØ¤ F£Ñ+ˆØ�Q‹;Ü—V’V˜F Q¨ L°zÑBˆFØˆrU   c                 ó  • U R                   S:X  a$  U R                  U R                  U R                  S9$ U R                  u  p#U R                  R                  u  pE[
        R                  " U5      nX`R                  S S 2S 4   -
  nUS:¬  nX‡U:  -  nX†U:  -  nX€R                  S:g  -  nU R                  [        U R                  5      S9n	[
        R                  " US-   U	S9n
[
        R                  " UR                  SS9S U 5      U
SUS-   & XS:  a	  X¥   X¥S-   S & UR                  UR                     R                  U	SS9nU R                  R                  UR                     nU R                  XËU
4U R                  U R                  S9$ )	Nr   r$   r"   r   rn   FrÂ   )r'   r%   )rN   Ú_csc_containerr'   r%   r+   r1   rW   r,   r4   r5   r2   Úcumsumrq   ÚTr>   )rA   r&   rX   rY   Únum_offsetsÚ
offset_lenrZ   r[   r\   rD   ÚindptrÚindicesr+   s                rH   ÚtocscÚ_dia_base.tocscš  sp  € Ø�8‰8�q‹=Ø×&Ñ& t§z¡z¸¿¹Ð&ÐDÐDà!ŸZ™ZÑˆØ"&§)¡)§/¡/ÑˆÜ—i’i 
Ó+ˆàŸL™Lª¨4¨Ñ0Ñ0ˆØ�q‘ˆØ�x‘Ñ ˆØ˜xÑ'Ñ(ˆØ—‘˜a‘Ñ ˆà×)Ñ)´°T·Z±Z³Ð)ÐAˆ	Ü—’˜( Q™,¨iÑ8ˆÜ!#§¢¨4¯8©8¸¨8Ð+;¸I¸XÐ+FÓ!Gˆˆq�˜A‘ÐØÓ Ø$*Ñ$6ˆF˜a‘<�=Ð!Ø—%‘%˜Ÿ™‘-×&Ñ& y°uÐ&Ð=ˆØ�y‰y�{‰{˜4Ÿ6™6Ñ"ˆØ×"Ñ" D°6Ð#:À$Ç*Á*Ø)-¯©ð #ð 5ð 	5rU   c                 óN  • U R                   u  p#U R                  R                   u  pE[        R                  " U5      nX`R                  S S 2S 4   -
  nUS:¬  nX‡U:  -  nX†U:  -  nX€R                  S:g  -  nXx   n[        R
                  " Xd5      UR                  5          n	U R                  U R                  4[        U R                   5      S9n
UR                  U
SS9nU	R                  U
SS9n	U R                  U   nU R                  X·U	44U R                   U R                  SS9$ )Nr   )Úarraysr#   FrÂ   )r'   r%   r&   )r'   r+   r1   rW   r,   Útiler¨   r4   r5   r>   r=   r%   )rA   r&   rX   rY   rá   râ   rZ   r[   r\   ÚcolrD   r+   s               rH   ÚtocooÚ_dia_base.tocoo´  s   € Ø!ŸZ™ZÑˆØ"&§)¡)§/¡/ÑˆÜ—i’i 
Ó+ˆàŸL™Lª¨4¨Ñ0Ñ0ˆØ�q‘ˆØ�x‘Ñ ˆØ˜xÑ'Ñ(ˆØ—‘˜a‘Ñ ˆØ‰iˆÜ�gŠg�kÓ/°·
±
³Ñ=ˆØ×)Ñ)Ø—L‘L�?¬3¨t¯z©z«?ð *ð 
ˆ	ð �j‰j˜¨ˆjÐ/ˆØ�j‰j˜¨ˆjÐ/ˆØ�y‰y˜‰ˆð ×"Ñ"Ø˜�:Ð d§j¡j¸¿
¹
Èð #ð 
ð 	
rU   c                 óÀ   • U(       a3  U R                  XR                  R                  5       4U R                  S9$ U R                  XR                  4U R                  S9$ )z�Returns a matrix with the same sparsity structure as self,
but with different data.  By default the structure arrays are copied.
r}   )r…   r,   r&   r'   )rA   r+   r&   s      rH   r€   Ú_dia_base._with_dataÏ  sb   € ö Ø×&Ñ&Ø—|‘|×(Ñ(Ó*Ð+°4·:±:ð 'ð ð ð ×&Ñ&Ø—|‘|Ð$¨D¯J©Jð 'ð ð rU   c                 óä  • [        U5      nUu  p#U R                  S S 2S U24   U l        X R                  S   :”  a¯  [        R                  " U R
                  U R                  S   -   U R                  R                  S   :  5      (       a`  U R
                  S S 2S 4   U R                  S   -   [        R                  " U R                  R                  S   5      :*  nSU R                  U'   Xl        g )Nr   r   )r   r+   r'   r1   Úanyr,   rW   r-   )rA   r'   rg   rh   r\   s        rH   ÚresizeÚ_dia_base.resizeÜ  sº   € Ü˜EÓ"ˆØ‰ˆà—I‘Iša  ! ˜eÑ$ˆŒ	à—
‘
˜1‘ÓÜ—’�t—|‘| d§j¡j°¡mÑ3°d·i±i·o±oÀaÑ6HÑH×IÑIà—L‘L¢ D Ñ)¨D¯J©J°q©MÑ9Ü—I’I˜dŸi™iŸo™o¨aÑ0Ó1ñ2ˆDàˆD�I‰I�d‰Oà�rU   )r-   r+   r,   )NNFr•   )NNN)Frm   )NF)T)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú_formatr)   rS   r]   ra   r   Ú__doc__rj   rq   r~   r‘   r–   rœ   rª   r­   r°   r¿   r.   rÌ   rÛ   rå   rë   r€   rñ   Ú__static_attributes__Ú__classcell__)r’   s   @rH   r   r      s:  ø† Ø€GðKGÈTö KGòZ
ò	ô1ð $×1Ñ1×9Ñ9€MÔôð —o‘o×-Ñ-€G„Oô6ð@ —+‘+×%Ñ%€C„Kô-Nõ^1ò2õ/FòbòõDô #ôJð —M‘M×)Ñ)€E„Mô,ð,  ×)Ñ)×1Ñ1€IÔôð  ×'Ñ'×/Ñ/€HÔô5ð0 —M‘M×)Ñ)€E„Mô
ð0 —M‘M×)Ñ)€E„Môòð —^‘^×+Ñ+€F‡N‚NrU   r   c                 ót   • [         R                  " U 5      n[         R                  " [        U 5      5      X'   U$ )z)Helper function to invert an index array.)r1   Ú
zeros_likerW   r?   )rÕ   Úinvs     rH   rƒ   rƒ   î  s)   € ä
�-Š-˜Ó
€CÜ�yŠyœ˜S›Ó"€C�HØ€JrU   c                 ó"   • [        U [        5      $ )aŠ  Is `x` of dia_matrix type?

Parameters
----------
x
    object to check for being a dia matrix

Returns
-------
bool
    True if `x` is a dia matrix, False otherwise

Examples
--------
>>> from scipy.sparse import dia_array, dia_matrix, coo_matrix, isspmatrix_dia
>>> isspmatrix_dia(dia_matrix([[5]]))
True
>>> isspmatrix_dia(dia_array([[5]]))
False
>>> isspmatrix_dia(coo_matrix([[5]]))
False
)r/   r   )rv   s    rH   r   r   õ  s   € ô. �aœÓ$Ð$rU   c                   ó   • \ rS rSrSrSrg)r   i  aH  
Sparse array with DIAgonal storage.

This can be instantiated in several ways:
    dia_array(D)
        where D is a 2-D ndarray

    dia_array(S)
        with another sparse array or matrix S (equivalent to S.todia())

    dia_array((M, N), [dtype])
        to construct an empty array with shape (M, N),
        dtype is optional, defaulting to dtype='d'.

    dia_array((data, offsets), shape=(M, N))
        where the ``data[k,:]`` stores the diagonal entries for
        diagonal ``offsets[k]`` (See example below)

Attributes
----------
dtype : dtype
    Data type of the array
shape : 2-tuple
    Shape of the array
ndim : int
    Number of dimensions (this is always 2)
nnz
size
data
    DIA format data array of the array
offsets
    DIA format offset array of the array
T

Notes
-----

Sparse arrays can be used in arithmetic operations: they support
addition, subtraction, multiplication, division, and matrix power.
Sparse arrays with DIAgonal storage do not support slicing.

Examples
--------

>>> import numpy as np
>>> from scipy.sparse import dia_array
>>> dia_array((3, 4), dtype=np.int8).toarray()
array([[0, 0, 0, 0],
       [0, 0, 0, 0],
       [0, 0, 0, 0]], dtype=int8)

>>> data = np.array([[1, 2, 3, 4]]).repeat(3, axis=0)
>>> offsets = np.array([0, -1, 2])
>>> dia_array((data, offsets), shape=(4, 4)).toarray()
array([[1, 0, 3, 0],
       [1, 2, 0, 4],
       [0, 2, 3, 0],
       [0, 0, 3, 4]])

>>> from scipy.sparse import dia_array
>>> n = 10
>>> ex = np.ones(n)
>>> data = np.array([ex, 2 * ex, ex])
>>> offsets = np.array([-1, 0, 1])
>>> dia_array((data, offsets), shape=(n, n)).toarray()
array([[2., 1., 0., ..., 0., 0., 0.],
       [1., 2., 1., ..., 0., 0., 0.],
       [0., 1., 2., ..., 0., 0., 0.],
       ...,
       [0., 0., 0., ..., 2., 1., 0.],
       [0., 0., 0., ..., 1., 2., 1.],
       [0., 0., 0., ..., 0., 1., 2.]])
rp   N©ró   rô   rõ   rö   rø   rù   rp   rU   rH   r   r     ó   † ôHrU   r   c                   ó   • \ rS rSrSrSrg)r   i\  a[  
Sparse matrix with DIAgonal storage.

This can be instantiated in several ways:
    dia_matrix(D)
        where D is a 2-D ndarray

    dia_matrix(S)
        with another sparse array or matrix S (equivalent to S.todia())

    dia_matrix((M, N), [dtype])
        to construct an empty matrix with shape (M, N),
        dtype is optional, defaulting to dtype='d'.

    dia_matrix((data, offsets), shape=(M, N))
        where the ``data[k,:]`` stores the diagonal entries for
        diagonal ``offsets[k]`` (See example below)

Attributes
----------
dtype : dtype
    Data type of the matrix
shape : 2-tuple
    Shape of the matrix
ndim : int
    Number of dimensions (this is always 2)
nnz
size
data
    DIA format data array of the matrix
offsets
    DIA format offset array of the matrix
T

Notes
-----

Sparse matrices can be used in arithmetic operations: they support
addition, subtraction, multiplication, division, and matrix power.
Sparse matrices with DIAgonal storage do not support slicing.

Examples
--------

>>> import numpy as np
>>> from scipy.sparse import dia_matrix
>>> dia_matrix((3, 4), dtype=np.int8).toarray()
array([[0, 0, 0, 0],
       [0, 0, 0, 0],
       [0, 0, 0, 0]], dtype=int8)

>>> data = np.array([[1, 2, 3, 4]]).repeat(3, axis=0)
>>> offsets = np.array([0, -1, 2])
>>> dia_matrix((data, offsets), shape=(4, 4)).toarray()
array([[1, 0, 3, 0],
       [1, 2, 0, 4],
       [0, 2, 3, 0],
       [0, 0, 3, 4]])

>>> from scipy.sparse import dia_matrix
>>> n = 10
>>> ex = np.ones(n)
>>> data = np.array([ex, 2 * ex, ex])
>>> offsets = np.array([-1, 0, 1])
>>> dia_matrix((data, offsets), shape=(n, n)).toarray()
array([[2., 1., 0., ..., 0., 0., 0.],
       [1., 2., 1., ..., 0., 0., 0.],
       [0., 1., 2., ..., 0., 0., 0.],
       ...,
       [0., 0., 0., ..., 2., 1., 0.],
       [0., 0., 0., ..., 1., 2., 1.],
       [0., 0., 0., ..., 0., 1., 2.]])
rp   Nr   rp   rU   rH   r   r   \  r  rU   r   )"rø   Ú__docformat__Ú__all__Únumpyr1   Ú
_lib._utilr   Ú_matrixr	   Ú_baser
   r   r   r   Ú_datar   Ú_sputilsr   r   r   r   r   r   r   r   Ú_sparsetoolsr   r   r   r   rƒ   r   r   r   rp   rU   rH   Ú<module>r     su   ðÙ à%€â
7€ã å 'Ý ß 7Ó 7Ý ÷÷ ó ÷ >Ñ =ôW,�ô W,òtò%ô6I�	˜7ô IôXI�˜9õ IrU   