Ë
    âQ(hãY  ã                   óÔ   — d Z dZg d¢ZddlZddlmZ ddlZddlm	Z	 ddl
mZmZmZ dd	lmZ dd
lmZmZmZmZmZmZmZmZ  G d„ deee«      Zd„ Z G d„ dee«      Z G d„ de	e«      Zy)zDictionary Of Keys based matrixzrestructuredtext en)Ú	dok_arrayÚ
dok_matrixÚisspmatrix_doké    N)Úwarné   )Úspmatrix)Ú_spbaseÚsparrayÚissparse)Ú
IndexMixin)ÚisdenseÚgetdtypeÚisshapeÚ	isintlikeÚisscalarlikeÚupcastÚupcast_scalarÚcheck_shapec                   óH  ‡ — e Zd ZdZdZd=ddœd„Zd„ Zd>d„Zd>d„Ze	j                  j                  e_
        e	j                  j                  e_
        d	„ Zd
„ Zd>d„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd?d„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z d„ Z!d „ Z"d!„ Z#d"„ Z$d#„ Z%d$„ Z&d%„ Z'd&„ Z(d'„ Z)d(„ Z*d)„ Z+d*„ Z,d+„ Z-d,„ Z.d-„ Z/d.„ Z0d/„ Z1d0„ Z2d1„ Z3d2„ Z4d@ˆ fd3„	Z5dAd4„Z6e	jl                  j                  e6_
        d5„ Z7d6„ Z8e	jp                  j                  e8_
        e9dBd7„«       Z:dCd8„Z;e	jv                  j                  e;_
        dCd9„Z<e	jx                  j                  e<_
        dCd:„Z=e	jz                  j                  e=_
        d;„ Z>e	j|                  j                  e>_
        dDd<„Z?ˆ xZ@S )EÚ	_dok_baseÚdok)r   é   N©Úmaxprintc                óÌ  — t        j                  | ||¬«       t        |t        «      rQt	        || j
                  ¬«      r:t        || j
                  ¬«      | _        i | _        t        |t        ¬«      | _        y t        |«      r¥|j                  | j                  k(  r|r|j                  «       n|}n|j                  «       }|�|j!                  |d¬«      }|j                  | _        t        |j"                  | j
                  ¬«      | _        t        |j                  «      | _        y 	 t%        j&                  |«      }|j,                  dkD  rt/        d|j,                  › d	�«      ‚|j,                  d
k(  rX|�|j!                  |«      }t1        |«      D ��ci c]  \  }}|dk7  sŒ||“Œ c}}| _        t        |j                  «      | _        nM| j3                  |||¬«      j                  «       }	|	j                  | _        t        |	j                  «      | _        t        |j"                  | j
                  ¬«      | _        y # t(        $ r}t+        d«      |‚d }~ww xY wc c}}w )Nr   ©Úallow_nd)ÚdefaultF©ÚcopyzInvalid input format.r   zDOK arrays don't yet support zD input.r   r   ©ÚshapeÚdtype)r	   Ú__init__Ú
isinstanceÚtupler   Ú	_allow_ndr   Ú_shapeÚ_dictr   Úfloatr#   r   Úformatr    ÚtodokÚastyper"   ÚnpÚasarrayÚ	ExceptionÚ	TypeErrorÚndimÚ
ValueErrorÚ	enumerateÚ_coo_container)
ÚselfÚarg1r"   r#   r    r   ÚeÚiÚvÚds
             úO/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/scipy/sparse/_dok.pyr$   z_dok_base.__init__   sÑ  € Ü×Ñ˜˜t¨hÕ7ä�dœEÔ"¤w¨t¸d¿n¹nÕ'MÜ% d°T·^±^ÔDˆDŒKØˆDŒJÜ! %´Ô7ˆD�JÜ�dŒ^Ø�{‰{˜dŸk™kÒ)Ù&*�t—y‘y”{°‘à—z‘z“|�àÐ Ø—{‘{ 5¨u�{Ó5�àŸ™ˆDŒJÜ% d§j¡j¸4¿>¹>ÔJˆDŒKÜ! $§*¡*Ó-ˆD�Jð@Ü—z‘z $Ó'�ð �y‰y˜1Š}Ü Ð#@ÀÇÁÀÈ8Ð!TÓUÐUà�y‰y˜AŠ~ØÐ$ØŸ;™; uÓ-�DÜ/8¸«×I¡t q¨!À!ÀqÃ&˜a ™dÓI�”
Ü% d§j¡jÓ1�•
à×'Ñ'¨°EÀÐ'ÓG×MÑMÓO�ØŸW™W�”
Ü% a§g¡gÓ.�”
Ü% d§j¡j¸4¿>¹>ÔJˆD�Køô ò @ÜÐ 7Ó8¸aÐ?ûð@üó Js$   Ä+I ÆI Æ&I É	IÉIÉIc                 ó   — t        d«      ‚)Nz2Direct update to DOK sparse format is not allowed.)ÚNotImplementedError)r6   Úvals     r<   Úupdatez_dok_base.update=   s   € ä!Ð"VÓWÐWó    c                 óF   — |�t        d«      ‚t        | j                  «      S )Nz7_getnnz over an axis is not implemented for DOK format.)r>   Úlenr)   ©r6   Úaxiss     r<   Ú_getnnzz_dok_base._getnnzA   s(   € ØÐÜ%ØIóð ô �4—:‘:‹ÐrA   c                 ó\   — |�t        d«      ‚t        d„ | j                  «       D «       «      S )Nz=count_nonzero over an axis is not implemented for DOK format.c              3   ó&   K  — | ]	  }|d k7  –— Œ y­w©r   N© )Ú.0Úxs     r<   ú	<genexpr>z*_dok_base.count_nonzero.<locals>.<genexpr>M   s   è ø€ Ò1˜a�1˜•6Ñ1ùs   ‚)r>   ÚsumÚvaluesrD   s     r<   Úcount_nonzeroz_dok_base.count_nonzeroH   s1   € ØÐÜ%ØOóð ô Ñ1 4§;¡;£=Ô1Ó1Ð1rA   c                 ó,   — t        | j                  «      S ©N)rC   r)   ©r6   s    r<   Ú__len__z_dok_base.__len__R   s   € Ü�4—:‘:‹ÐrA   c                 ó   — || j                   v S rR   ©r)   ©r6   Úkeys     r<   Ú__contains__z_dok_base.__contains__U   s   € Ø�d—j‘jÐ Ð rA   c                ó:   — | j                   j                  ||«      S rR   )r)   Ú
setdefault)r6   rX   r   s      r<   r[   z_dok_base.setdefaultX   s   € Ø�z‰z×$Ñ$ S¨'Ó2Ð2rA   c                ó   — | j                   |= y rR   rV   rW   s     r<   Ú__delitem__z_dok_base.__delitem__[   s   € Ø�J‰J�s‰OrA   c                 ó6   — | j                   j                  «       S rR   )r)   ÚclearrS   s    r<   r_   z_dok_base.clear^   ó   € Ø�z‰z×ÑÓ!Ð!rA   c                ó4   —  | j                   j                  |Ž S rR   )r)   Úpop)r6   Úargss     r<   rb   z_dok_base.popa   s   € Øˆt�z‰z�~‰~˜tÐ$Ð$rA   c                 ó   — t        d«      ‚)Nz*reversed is not defined for dok_array type)r1   rS   s    r<   Ú__reversed__z_dok_base.__reversed__d   s   € ÜÐDÓEÐErA   c                 óx   — t        | «      j                  › dt        |«      j                  › �}t        d|› �«      ‚©Nz and z unsupported operand type for |: ©ÚtypeÚ__name__r1   ©r6   ÚotherÚ
type_namess      r<   Ú__or__z_dok_base.__or__g   ó;   € Ü˜T›
×+Ñ+Ð,¨E´$°u³+×2FÑ2FÐ1GÐHˆ
ÜÐ:¸:¸,ÐGÓHÐHrA   c                 óx   — t        | «      j                  › dt        |«      j                  › �}t        d|› �«      ‚rg   rh   rk   s      r<   Ú__ror__z_dok_base.__ror__k   ro   rA   c                 óx   — t        | «      j                  › dt        |«      j                  › �}t        d|› �«      ‚rg   rh   rk   s      r<   Ú__ior__z_dok_base.__ior__o   ro   rA   c                 ó6   — | j                   j                  «       S rR   )r)   ÚpopitemrS   s    r<   ru   z_dok_base.popitems   s   € Ø�z‰z×!Ñ!Ó#Ð#rA   c                 ó6   — | j                   j                  «       S rR   )r)   ÚitemsrS   s    r<   rw   z_dok_base.itemsv   r`   rA   c                 ó6   — | j                   j                  «       S rR   )r)   ÚkeysrS   s    r<   ry   z_dok_base.keysy   s   € Ø�z‰z�‰Ó Ð rA   c                 ó6   — | j                   j                  «       S rR   )r)   rO   rS   s    r<   rO   z_dok_base.values|   s   € Ø�z‰z× Ñ Ó"Ð"rA   c                 óN  — || j                   v r| j                   |   S t        |«      r| j                  dk(  r|f}| j                  t        |«      k7  rt	        d|› d�«      ‚	 |D ]  }t        |«      rŒJ ‚ 	 t        d„ t        || j                  «      D «       «      }t        d„ t        || j                  «      D «       «      rt	        d«      ‚| j                  dk(  r|d	   }| j                   j                  ||«      S # t
        t        t        f$ r}t	        d«      |‚d}~ww xY w)
z>This provides dict.get method functionality with type checkingr   zIndex z! length needs to match self.shapez%Index must be or consist of integers.Nc              3   ó:   K  — | ]  \  }}|d k  r||z   n|–— Œ y­wrI   rJ   ©rK   r9   ÚMs      r<   rM   z _dok_base.get.<locals>.<genexpr>Œ   s#   è ø€ ÒK©d¨a°˜Q šU�A˜’E¨Ó)ÑKùó   ‚c              3   ó:   K  — | ]  \  }}|d k  xs ||k\  –— Œ y­wrI   rJ   r}   s      r<   rM   z _dok_base.get.<locals>.<genexpr>�   s"   è ø€ Ò@¡4 1 aˆq�1‰uŠ˜˜Q™‹Ñ@ùr   zIndex out of bounds.r   )r)   r   r2   rC   Ú
IndexErrorÚAssertionErrorr1   r3   r&   Úzipr"   ÚanyÚget)r6   rX   r   r9   r8   s        r<   r…   z_dok_base.get   s  € à�$—*‘*ÑØ—:‘:˜c‘?Ð"Ü�SŒ>˜dŸi™i¨1šnØ�&ˆCØ�9‰9œ˜C›Ò Ü˜v c UÐ*KÐLÓMÐMð	MØò $�Ü  •|Ð#�|ñ$ô ÑK´c¸#¸t¿z¹zÓ6JÔKÓKˆÜÑ@¬3¨s°D·J±JÓ+?Ô@Ô@ÜÐ3Ó4Ð4Ø�9‰9˜Š>Ø�a‘&ˆCØ�z‰z�~‰~˜c 7Ó+Ð+øô ¤	¬:Ð6ò 	MÜÐDÓEÈ1ÐLûð	Mús   Á#C? Á4C? Ã?D$ÄDÄD$c                 ól   — | j                   j                  || j                  j                  d«      «      S ©Nr   ©r)   r…   r#   ri   )r6   Úidxs     r<   Ú_get_intz_dok_base._get_int”   s$   € Ø�z‰z�~‰~˜c 4§:¡:§?¡?°1Ó#5Ó6Ð6rA   c                 ó~   — t        |j                  | j                  d   «      Ž }| j                  t	        |«      «      S r‡   )ÚrangeÚindicesr"   Ú
_get_arrayÚlist)r6   r‰   Úi_ranges      r<   Ú
_get_slicez_dok_base._get_slice—   s0   € Ü˜Ÿ™ T§Z¡Z°¡]Ó3Ð4ˆØ�‰œt G›}Ó-Ð-rA   c                 óR  — t        j                  |«      }|j                  dk(  r_| j                  j	                  t        |«      | j                  j                  d«      «      }t        j                  || j                  ¬«      S | j                  |j                  | j                  ¬«      }|j                  «       D �cg c]  }| j                  j	                  |d«      ‘Œ  }}|r¾t        |j                  «      dk(  r't        |«      D ]  \  }}|sŒ	||j                  |<   Œ |S t        j                  t        j                  t        |«      «      |j                  «      }t        |«      dk(  r|d   nt!        |Ž }t!        ||d¬«      D ]  \  }}|sŒ	||j                  |<   Œ |S c c}w )Nr   )Ústype©r#   r   T)Ústrict)r.   r/   r2   r)   r…   Úintr#   ri   ÚarrayÚ_dok_containerr"   ÚravelrC   r4   Úunravel_indexÚarangerƒ   )r6   r‰   r?   Únew_dokr9   Údok_valsr:   Únew_idxs           r<   rŽ   z_dok_base._get_array›   sT  € Ü�j‰j˜‹oˆØ�8‰8�qŠ=Ø—*‘*—.‘.¤ S£¨4¯:©:¯?©?¸1Ó+=Ó>ˆCÜ—8‘8˜C t§z¡zÔ2Ð2Ø×%Ñ% c§i¡i°t·z±zÐ%ÓBˆØ25·)±)³+Ö>¨Q�D—J‘J—N‘N 1 aÕ(Ð>ˆÐ>ÙÜ�3—9‘9‹~ Ò"Ü% hÓ/ò -‘D�A�qÚØ+,˜Ÿ™ aÒ(ð-ð ˆô ×*Ñ*¬2¯9©9´S¸³]Ó+CÀSÇYÁYÓO�Ü(+¨G«¸Ò(9˜' !š*¼sÀG¸}�Ü ¨¸$Ô?ò -‘D�A�qÚØ+,˜Ÿ™ aÒ(ð-ð ˆùò ?s   Â=#F$c                 óp   — | j                   j                  ||f| j                  j                  d«      «      S r‡   rˆ   ©r6   ÚrowÚcols      r<   Ú_get_intXintz_dok_base._get_intXint°   s(   € Ø�z‰z�~‰~˜s C˜j¨$¯*©*¯/©/¸!Ó*<Ó=Ð=rA   c                 ó@   — | j                  t        ||dz   «      |«      S ©Nr   ©Ú_get_sliceXsliceÚslicer    s      r<   Ú_get_intXslicez_dok_base._get_intXslice³   s    € Ø×$Ñ$¤U¨3°°a±Ó%8¸#Ó>Ð>rA   c                 ó@   — | j                  |t        ||dz   «      «      S r¥   r¦   r    s      r<   Ú_get_sliceXintz_dok_base._get_sliceXint¶   s    € Ø×$Ñ$ S¬%°°S¸1±WÓ*=Ó>Ð>rA   c                 óª  — |j                  | j                  d   «      \  }}}|j                  | j                  d   «      \  }}}t        |||«      }	t        |||«      }
t        |	«      t        |
«      f}t        | «      d|d   z  |d   z  k\  r| j	                  |	|
«      S | j                  || j                  ¬«      }| j                  «       D ]‚  }t        t        |d   «      |z
  |«      \  }}|dk7  s|dk  s||d   k\  rŒ4t        t        |d   «      |z
  |«      \  }}|dk7  s|dk  s||d   k\  rŒe| j                  |   |j                  ||f<   Œ„ |S )Nr   r   r   r”   )r�   r"   rŒ   rC   Ú_get_columnXarrayr˜   r#   ry   Údivmodr–   r)   )r6   r¡   r¢   Ú	row_startÚrow_stopÚrow_stepÚ	col_startÚcol_stopÚcol_stepÚ	row_rangeÚ	col_ranger"   ÚnewdokrX   r9   ÚriÚjÚrjs                     r<   r§   z_dok_base._get_sliceXslice¹   sY  € Ø(+¯©°D·J±J¸q±MÓ(BÑ%ˆ	�8˜XØ(+¯©°D·J±J¸q±MÓ(BÑ%ˆ	�8˜XÜ˜) X¨xÓ8ˆ	Ü˜) X¨xÓ8ˆ	Ü�Y“¤ Y£Ð0ˆô ˆt‹9˜˜E !™H™ u¨Q¡xÑ/Ò/à×)Ñ)¨)°YÓ?Ð?à×$Ñ$ U°$·*±*Ð$Ó=ˆØ—9‘9“;ò 	1ˆCÜœ3˜s 1™v›;¨Ñ2°HÓ=‰EˆAˆrØ�QŠw˜!˜aš% 1¨¨a©¢=ØÜœ3˜s 1™v›;¨Ñ2°HÓ=‰EˆAˆrØ�QŠw˜!˜aš% 1¨¨a©¢=ØØ!%§¡¨C¡ˆF�L‰L˜˜A˜Òð	1ð ˆrA   c                 óD   — | j                  |g|j                  «       «      S rR   )r­   r™   r    s      r<   Ú_get_intXarrayz_dok_base._get_intXarrayÐ   s   € Ø×%Ñ% s e¨S¯Y©Y«[Ó9Ð9rA   c                 óœ   — | j                  |j                  «       |g«      }|j                  dkD  r|j                  |j                  «      S |S r¥   )r­   r™   r2   Úreshaper"   )r6   r¡   r¢   Úress       r<   Ú_get_arrayXintz_dok_base._get_arrayXintÓ   s?   € Ø×$Ñ$ S§Y¡Y£[°3°%Ó8ˆØ�8‰8�aŠ<Ø—;‘;˜sŸy™yÓ)Ð)Øˆ
rA   c                 ó€   — t        t        |j                  | j                  d   «      Ž «      }| j	                  ||«      S r‡   ©r�   rŒ   r�   r"   r­   r    s      r<   Ú_get_sliceXarrayz_dok_base._get_sliceXarrayÙ   ó5   € Ü”5˜#Ÿ+™+ d§j¡j°¡mÓ4Ð5Ó6ˆØ×%Ñ% c¨3Ó/Ð/rA   c                 ó€   — t        t        |j                  | j                  d   «      Ž «      }| j	                  ||«      S r¥   rÂ   r    s      r<   Ú_get_arrayXslicez_dok_base._get_arrayXsliceÝ   rÄ   rA   c                 ó  — | j                  t        |«      t        |«      f| j                  ¬«      }t        |«      D ]J  \  }}t        |«      D ]7  \  }}| j                  j                  ||fd«      }|sŒ'||j                  ||f<   Œ9 ŒL |S )Nr”   r   )r˜   rC   r#   r4   r)   r…   )	r6   r¡   r¢   r·   r9   Úrr¹   Úcr:   s	            r<   r­   z_dok_base._get_columnXarrayá   sŠ   € à×$Ñ$¤c¨#£h´°C³Ð%9ÀÇÁÐ$ÓLˆä˜c“Nò 	+‰DˆAˆqÜ! #›ò +‘��1Ø—J‘J—N‘N A q 6¨1Ó-�ÚØ)*�F—L‘L  A Ò&ñ+ð	+ð
 ˆrA   c                 ó°  — t        t        j                  t        j                  ||«      «      \  }}| j	                  |j
                  | j                  ¬«      }t        j                  t        |j
                  d   «      t        |j
                  d   «      «      D ]8  }| j                  j                  ||   ||   fd«      }|sŒ*||j                  |<   Œ: |S )Nr”   r   r   )Úmapr.   Ú
atleast_2dÚbroadcast_arraysr˜   r"   r#   Ú	itertoolsÚproductrŒ   r)   r…   )r6   r¡   r¢   r9   r¹   r·   rX   r:   s           r<   Ú_get_arrayXarrayz_dok_base._get_arrayXarrayì   s¯   € ä”2—=‘=¤"×"5Ñ"5°c¸3Ó"?Ó@‰ˆˆ1Ø×$Ñ$ Q§W¡W°D·J±JÐ$Ó?ˆä×$Ñ$¤U¨1¯7©7°1©:Ó%6¼¸a¿g¹gÀa¹jÓ8IÓJò 	&ˆCØ—
‘
—‘  #¡¨¨#©Ð/°Ó3ˆAÚØ$%�—‘˜SÒ!ð	&ð ˆrA   c                 ó`   — |r|| j                   |<   y || j                   v r| j                   |= y y rR   rV   )r6   r‰   rL   s      r<   Ú_set_intz_dok_base._set_intø   s.   € ÙØˆD�J‰J�sŠOØ�D—J‘JÑØ—
‘
˜3‘ð rA   c                 ó†  — |j                  «       }|j                  «       }t        |«      t        |«      k7  rHt        |«      dk(  r/t        j                  t        |«      |d   | j                  ¬«      }nt        d«      ‚t        ||«      D ]3  \  }}|r|| j                  |<   Œ|| j                  v sŒ'| j                  |= Œ5 y )Nr   r   r”   z*Need len(index)==len(data) or len(data)==1)r™   rC   r.   Úfullr#   r3   rƒ   r)   )r6   r‰   rL   Úidx_setÚx_setr9   r:   s          r<   Ú
_set_arrayz_dok_base._set_arrayþ   s�   € Ø—)‘)“+ˆØ—‘“	ˆÜˆw‹<œ3˜u›:Ò%Ü�5‹z˜QŠÜŸ™¤ G£¨e°A©h¸d¿j¹jÔI‘äÐKÓLÐLÜ˜ Ó'ò 	"‰DˆAˆqÙØ !�—
‘
˜1’Ø�d—j‘j’Ø—J‘J˜q‘Mñ		"rA   c                 óh   — ||f}|r|| j                   |<   y || j                   v r| j                   |= y y rR   rV   )r6   r¡   r¢   rL   rX   s        r<   Ú_set_intXintz_dok_base._set_intXint  s7   € Ø�CˆjˆÙØˆD�J‰J�sŠOØ�D—J‘JÑØ—
‘
˜3‘ð rA   c                 ó²  — t        t        t        |j                  «       «      «      }t        t        t        |j                  «       «      «      }|j                  «       }| j                  j                  t        t        ||«      |«      «       t        j                  |dk(  «      d   D ],  }||   ||   f}| j                  |   dk(  sŒ | j                  |= Œ. y r‡   )	r�   rË   r–   r™   r)   r@   rƒ   r.   Únonzero)r6   r¡   r¢   rL   r9   rX   s         r<   Ú_set_arrayXarrayz_dok_base._set_arrayXarray  s¨   € Ü”3”s˜CŸI™I›KÓ(Ó)ˆÜ”3”s˜CŸI™I›KÓ(Ó)ˆØ�G‰G‹IˆØ�
‰
×Ñœ#œc # s›m¨QÓ/Ô0ä—‘˜A ™FÓ# AÑ&ò 	$ˆAØ�q‘6˜3˜q™6Ð"ˆCØ�z‰z˜#‰ !Ó#à—J‘J˜s‘Oñ		$rA   c                 óf  ‡— t        |«      r”t        | j                  |«      }| j                  | j                  |¬«      Št        j                  | j                  D �cg c]  }t        |«      ‘Œ c}Ž D ])  }| j                  j                  |d«      |z   }|sŒ%|‰|<   Œ+ ‰S t        |«      �rN|j                  | j                  k7  rt        d«      ‚t        | j                  |j                  «      }| j                  | j                  |¬«      Š| j                  j                  «       ‰_        |j                  dk(  r|j                  «       }ni|j!                  «       }| j"                  dk(  r$t%        |j&                  d   |j(                  «      }n&t%        t%        |j&                  Ž |j(                  «      }t+        j,                  d¬«      5  ‰j                  j/                  ˆfd„|D «       «       d d d «       ‰S t1        |«      r| j3                  «       |z   Š‰S t4        S c c}w # 1 sw Y   ‰S xY w)	Nr”   r   z Matrix dimensions are not equal.r   r   Úignore)Úoverc              3   ó8   •K  — | ]  \  }}|‰|   |z   f–— Œ y ­wrR   rJ   )rK   Úkr:   Únews      €r<   rM   z$_dok_base.__add__.<locals>.<genexpr>8  s!   øè ø€ Ò E±T°Q¸ ! S¨¡V¨a¡Z¤Ñ Eùs   ƒ)r   r   r#   r˜   r"   rÎ   rÏ   rŒ   r)   r…   r   r3   r   r    r+   rw   Útocoor2   rƒ   ÚcoordsÚdatar.   Úerrstater@   r   ÚtodenseÚNotImplemented)r6   rl   Ú	res_dtyper;   rX   ÚaijÚo_itemsrâ   s          @r<   Ú__add__z_dok_base.__add__   sÂ  ø€ Ü˜ÔÜ% d§j¡j°%Ó8ˆIØ×%Ñ% d§j¡j¸	Ð%ÓBˆCä ×(Ñ(¸T¿Z¹ZÖ*H¸¬5°­8Ò*HÐIò #�Ø—j‘j—n‘n S¨!Ó,¨uÑ4�ÚØ"�C˜’Hð#ð0 ˆ
ô) �e�_Ø�{‰{˜dŸj™jÒ(Ü Ð!CÓDÐDÜ˜tŸz™z¨5¯;©;Ó7ˆIØ×%Ñ% d§j¡j¸	Ð%ÓBˆCØŸ
™
Ÿ™Ó)ˆCŒIØ�|‰|˜uÒ$ØŸ+™+›-‘àŸ™›�Ø—9‘9 ’>Ü! %§,¡,¨q¡/°5·:±:Ó>‘Gä!¤# u§|¡|Ð"4°e·j±jÓA�GÜ—‘ (Ô+ñ FØ—	‘	× Ñ Ó E¸WÔ EÔE÷Fð ˆ
ô	 �UŒ^Ø—,‘,“. 5Ñ(ˆCð ˆ
ô "Ð!ùò/ +I÷$Fð ˆ
ús   ÁH!Ç%H&È&H0c                 ó   — | |z   S rR   rJ   ©r6   rl   s     r<   Ú__radd__z_dok_base.__radd__?  s   € Ø�e‰|ÐrA   c                 óü   — | j                   j                  dk(  rt        d«      ‚| j                  | j                  | j                   ¬«      }|j
                  j                  d„ | j                  «       D «       «       |S )NÚbz2Negating a sparse boolean matrix is not supported.r”   c              3   ó,   K  — | ]  \  }}|| f–— Œ y ­wrR   rJ   )rK   rá   r:   s      r<   rM   z$_dok_base.__neg__.<locals>.<genexpr>H  s   è ø€ Ò:¡T Q¨˜!˜a˜RœÑ:ùs   ‚)r#   Úkindr>   r˜   r"   r)   r@   rw   ©r6   râ   s     r<   Ú__neg__z_dok_base.__neg__B  sd   € Ø�:‰:�?‰?˜cÒ!Ü%ØDóð ð ×!Ñ! $§*¡*°D·J±JÐ!Ó?ˆØ�	‰	×ÑÑ:¨T¯Z©Z«\Ô:Ô:Øˆ
rA   c                 óÒ   ‡— t        | j                  ‰«      }| j                  | j                  |¬«      }|j                  j                  ˆfd„| j                  «       D «       «       |S )Nr”   c              3   ó2   •K  — | ]  \  }}||‰z  f–— Œ y ­wrR   rJ   ©rK   rá   r:   rl   s      €r<   rM   z(_dok_base._mul_scalar.<locals>.<genexpr>O  s   øè ø€ ÒB©T¨Q°˜1˜a %™iœ.ÑBùó   ƒ)r   r#   r˜   r"   r)   r@   rw   ©r6   rl   ré   râ   s    `  r<   Ú_mul_scalarz_dok_base._mul_scalarK  sO   ø€ Ü! $§*¡*¨eÓ4ˆ	à×!Ñ! $§*¡*°IÐ!Ó>ˆØ�	‰	×ÑÓB°T·Z±Z³\ÔBÔCØˆ
rA   c                 óˆ  ‡ ‡— t        ‰ j                  ‰j                  «      }‰ j                  dk(  r¾t        ‰«      rz‰j                  dk(  r"‰ j                  «       ‰j                  «       z  }n.‰ j                  «       ‰j                  «       j                  d   z  } |t        ˆˆ fd„|D «       «      «      S t        ‰«      r( |t        ˆfd„‰ j                  «       D «       «      «      S t        S t        j                  ‰ j                  d   |¬«      }‰ j                  «       D ]  \  \  }}}||xx   |‰|   z  z  cc<   Œ |S )Nr   r   r   c              3   ó\   •K  — | ]#  }‰j                   |   ‰j                   |   z  –— Œ% y ­wrR   rV   )rK   rá   rl   r6   s     €€r<   rM   z+_dok_base._matmul_vector.<locals>.<genexpr>\  s&   øè ø€ Ò$RÈ T§Z¡Z°¡]°U·[±[À±^Õ%CÑ$Rùs   ƒ),c              3   ó4   •K  — | ]  \  }}‰|   |z  –— Œ y ­wrR   rJ   rø   s      €r<   rM   z+_dok_base._matmul_vector.<locals>.<genexpr>^  s   øè ø€ Ò$K±d°a¸ U¨1¡X°¥\Ñ$Kùó   ƒr”   )r   r#   r2   r   r+   ry   rã   rä   rN   r   rw   rè   r.   Úzerosr"   )r6   rl   ré   ry   Úresultr9   r¹   r:   s   ``      r<   Ú_matmul_vectorz_dok_base._matmul_vectorR  sÿ   ù€ Ü˜4Ÿ:™: u§{¡{Ó3ˆ	ð �9‰9˜Š>Ü˜ŒØ—<‘< 5Ò(ØŸ9™9›;¨¯©«Ñ5‘DàŸ9™9›;¨¯©«×)=Ñ)=¸aÑ)@Ñ@�DÙ ¤Ô$RÈTÔ$RÓ!RÓSÐSÜ˜”Ù ¤Ó$K¸d¿j¹j»lÔ$KÓ!KÓLÐLä%Ð%ô —‘˜$Ÿ*™* Q™-¨yÔ9ˆØŸ™›ò 	&‰I‰FˆQ��AØ�1‹I˜˜U 1™X™Ñ%ŒIð	&àˆrA   c                 ó¬  ‡— t        | j                  ‰j                  «      }| j                  dk(  r,t        ˆfd„| j                  j                  «       D «       «      S | j                  d   }‰j                  dk(  r|fn|‰j                  d   f}t        j                  ||¬«      }| j                  «       D ]  \  \  }}}||xx   |‰|   z  z  cc<   Œ |S )Nr   c              3   ó4   •K  — | ]  \  }}|‰|   z  –— Œ y ­wrR   rJ   )rK   r¹   r:   rl   s      €r<   rM   z0_dok_base._matmul_multivector.<locals>.<genexpr>m  s   øè ø€ ÒC©¨¨1�q˜5 ™8•|ÑCùrÿ   r   r”   )	r   r#   r2   rN   r)   rw   r"   r.   r   )	r6   rl   Úresult_dtyper~   Ú	new_shaper  r9   r¹   r:   s	    `       r<   Ú_matmul_multivectorz_dok_base._matmul_multivectorh  s·   ø€ Ü˜dŸj™j¨%¯+©+Ó6ˆà�9‰9˜Š>äÓC°·
±
×0@Ñ0@Ó0BÔCÓCÐCð �J‰J�q‰MˆØ!ŸJ™J¨!šO�Q‘D°!°U·[±[À±^Ð1Dˆ	Ü—‘˜)¨<Ô8ˆØŸ™›ò 	&‰I‰FˆQ��AØ�1‹I˜˜U 1™X™Ñ%ŒIð	&àˆrA   c                 óŽ   ‡— t        ‰«      r4| j                  j                  ˆfd„| j                  «       D «       «       | S t        S )Nc              3   ó2   •K  — | ]  \  }}||‰z  f–— Œ y ­wrR   rJ   rø   s      €r<   rM   z%_dok_base.__imul__.<locals>.<genexpr>y  ó   øè ø€ ÒF±°°A˜q ! e¡)œnÑFùrù   ©r   r)   r@   rw   rè   rî   s    `r<   Ú__imul__z_dok_base.__imul__w  ó4   ø€ Ü˜ÔØ�J‰J×ÑÓF¸¿¹»ÔFÔFØˆKÜÐrA   c                 ó  ‡— t        ‰«      rgt        | j                  ‰«      }| j                  | j                  |¬«      }|j
                  j                  ˆfd„| j                  «       D «       «       |S | j                  «       ‰z  S )Nr”   c              3   ó2   •K  — | ]  \  }}||‰z  f–— Œ y ­wrR   rJ   rø   s      €r<   rM   z(_dok_base.__truediv__.<locals>.<genexpr>�  r
  rù   )	r   r   r#   r˜   r"   r)   r@   rw   Útocsrrú   s    `  r<   Ú__truediv__z_dok_base.__truediv__}  sh   ø€ Ü˜ÔÜ% d§j¡j°%Ó8ˆIØ×%Ñ% d§j¡j¸	Ð%ÓBˆCØ�I‰I×ÑÓF¸¿¹»ÔFÔGØˆJØ�z‰z‹|˜eÑ#Ð#rA   c                 óŽ   ‡— t        ‰«      r4| j                  j                  ˆfd„| j                  «       D «       «       | S t        S )Nc              3   ó2   •K  — | ]  \  }}||‰z  f–— Œ y ­wrR   rJ   rø   s      €r<   rM   z)_dok_base.__itruediv__.<locals>.<genexpr>‡  r
  rù   r  rî   s    `r<   Ú__itruediv__z_dok_base.__itruediv__…  r  rA   c                 ó,   — t         j                  | «      S rR   )ÚdictÚ
__reduce__rS   s    r<   r  z_dok_base.__reduce__‹  s   € ô �‰˜tÓ$Ð$rA   c                 óV   •— | j                   dk(  rt        ‰| �	  |«      S t        d«      ‚)Nr   z diagonal requires two dimensions)r2   ÚsuperÚdiagonalr3   )r6   rá   Ú	__class__s     €r<   r  z_dok_base.diagonal‘  s*   ø€ Ø�9‰9˜Š>Ü‘7Ñ# AÓ&Ð&ÜÐ;Ó<Ð<rA   c                 ó&  — | j                   dk(  r| j                  «       S |�|dk7  rt        d«      ‚| j                  \  }}| j	                  ||f| j
                  |¬«      }|j                  j                  d„ | j                  «       D «       «       |S )Nr   )r   r   zvSparse arrays/matrices do not support an 'axes' parameter because swapping dimensions is the only logical permutation.)r#   r    c              3   ó4   K  — | ]  \  \  }}}||f|f–— Œ y ­wrR   rJ   )rK   ÚleftÚrightr?   s       r<   rM   z&_dok_base.transpose.<locals>.<genexpr>£  s"   è ø€ ÒVÑ3E±=°D¸%À#˜E 4˜=¨#Ô.ÑVùs   ‚)	r2   r    r3   r"   r˜   r#   r)   r@   rw   )r6   Úaxesr    r~   ÚNrâ   s         r<   Ú	transposez_dok_base.transpose–  sˆ   € Ø�9‰9˜Š>Ø—9‘9“;ÐàÐ ¨¢Üð>óð ð �z‰z‰ˆˆ1Ø×!Ñ! 1 a &°·
±
ÀÐ!ÓFˆØ�	‰	×ÑÑVÈÏÉËÔVÔWØˆ
rA   c           	      óž  — d}t        |t        d¬«       | j                  dk(  r1| j                  «       }|j                  j                  «       |_        |S | j                  \  }}| j                  ||f| j                  ¬«      }| j                  «       D ���ci c]   \  \  }}}||ft        j                  |«      “Œ" c}}}|_        |S c c}}}w )zÃDEPRECATED: Return the conjugate transpose.

        .. deprecated:: 1.14.0

            `conjtransp` is deprecated and will be removed in v1.16.0.
            Use ``.T.conj()`` instead.
        zS`conjtransp` is deprecated and will be removed in v1.16.0. Use `.T.conj()` instead.r   )Ú
stacklevelr   r”   )r   ÚDeprecationWarningr2   rã   rå   Ú	conjugater"   r˜   r#   rw   r.   Úconjr)   )r6   Úmsgrâ   r~   r!  r  r  r?   s           r<   Ú
conjtranspz_dok_base.conjtransp¨  s¯   € ð.ˆäˆSÔ$°Õ3à�9‰9˜Š>Ø—*‘*“,ˆCØ—x‘x×)Ñ)Ó+ˆCŒHØˆJà�z‰z‰ˆˆ1Ø×!Ñ! 1 a &°·
±
Ð!Ó;ˆØKOÏ:É:Ë<×XÐXÑ5G±]°d¸EÀC�e˜T�]¤B§G¡G¨C£LÑ0ÔXˆŒ	Øˆ
ùô Ys   Â%Cc                 óž   — | j                  | j                  | j                  ¬«      }|j                  j	                  | j                  «       |S ©Nr”   )r˜   r"   r#   r)   r@   rô   s     r<   r    z_dok_base.copy¾  s:   € Ø×!Ñ! $§*¡*°D·J±JÐ!Ó?ˆØ�	‰	×Ñ˜Ÿ™Ô$Øˆ
rA   c                óú   — t         j                  ||«      }t        t        t	        |«      «      t
        «      rt        d„ t        |Ž D «       «      }nt        |«      dz   f} | |t        |«      ¬«      }||_	        |S )Nc              3   ó8   K  — | ]  }t        |«      d z   –— Œ y­w)r   N)Úmax)rK   r‰   s     r<   rM   z%_dok_base.fromkeys.<locals>.<genexpr>É  s   è ø€ Ò<¨3œ#˜c›( Q�,Ñ<ùs   ‚r   r”   )
r  Úfromkeysr%   ÚnextÚiterr&   rƒ   r.  ri   r)   )ÚclsÚiterableÚvalueÚtmpr"   r  s         r<   r/  z_dok_base.fromkeysÅ  sc   € ä�m‰m˜H eÓ,ˆÜ”dœ4 ›9“o¤uÔ-ÜÑ<´#°s°)Ô<Ó<‰Eä˜“X ‘\�OˆEÙ�U¤$ u£+Ô.ˆØˆŒØˆrA   c                 ó  ‡‡— | j                   Š‰dk(  r'| j                  | j                  | j                  ¬«      S | j	                  t        | j                  «      ¬«      Št        j                  | j                  «       | j                  ‰¬«      }| j                  dkD  rt        | j                  «       Ž n| j                  «       f}t        ˆˆfd„|D «       «      }| j                  ||f| j                  | j                  ¬«      }d|_        |S )	Nr   r”   )Úmaxval©r#   Úcountr   c              3   óN   •K  — | ]  }t        j                  |‰‰¬ «      –— Œ y­w)r8  N)r.   Úfromiter)rK   ÚixÚ	idx_dtypeÚnnzs     €€r<   rM   z"_dok_base.tocoo.<locals>.<genexpr>Ù  s!   øè ø€ ÒRÀr”r—{‘{ 2¨Y¸c×BÐBÑRùs   ƒ"%r!   T)r>  r5   r"   r#   Ú_get_index_dtyper.  r.   r;  rO   r2   rƒ   ry   r&   Úhas_canonical_format)r6   r    rå   Úindsrä   ÚAr=  r>  s         @@r<   rã   z_dok_base.tocooÐ  sÌ   ù€ Ø�h‰hˆØ�!Š8Ø×&Ñ& t§z¡z¸¿¹Ð&ÓDÐDà×)Ñ)´°T·Z±Z³Ð)ÓAˆ	Ü�{‰{˜4Ÿ;™;›=°·
±
À#ÔFˆà$(§I¡I°¢MŒs�D—I‘I“KÑ ¸¿	¹	»°~ˆÜÔRÈTÔRÓRˆØ×Ñ  v °d·j±jÈÏ
É
ÐÓSˆØ!%ˆÔØˆrA   c                 ó*   — |r| j                  «       S | S rR   r   ©r6   r    s     r<   r,   z_dok_base.todokà  s   € ÙØ—9‘9“;ÐØˆrA   c                 óz   — | j                   dk(  rt        d«      ‚| j                  d¬«      j                  |¬«      S )Nr   z%tocsr() not valid for 1d sparse arrayFr   )r2   r>   rã   ÚtocscrD  s     r<   rF  z_dok_base.tocscç  s8   € Ø�9‰9˜Š>Ü%Ð&MÓNÐNØ�z‰z˜uˆzÓ%×+Ñ+°Ð+Ó6Ð6rA   c                 óÒ  — t        || j                  ¬«      }t        |«      t        | j                  «      k7  rt        ‚| j
                  dk(  r:|d   }t        | j                  «      D ]  }||k\  sŒ	| j                  |= Œ || _        y |\  }}| j                  \  }}||k  s||k  r;t        | j                  «       «      D ]  \  }}||k\  s||k\  sŒ| j                  ||f= Œ! || _        y )Nr   r   éÿÿÿÿ)
r   r'   rC   r"   r>   r2   r�   r)   r(   ry   )r6   r"   ÚnewNr9   ÚnewMr~   r!  r¹   s           r<   Úresizez_dok_base.resizeî  sÝ   € Ü˜E¨D¯N©NÔ;ˆÜˆu‹:œ˜TŸZ™Z›Ò(ä%Ð%à�9‰9˜Š>Ø˜‘9ˆDÜ˜$Ÿ*™*Ó%ò &�Ø˜“9ØŸ
™
 1™ð&ð  ˆDŒKØà‰
ˆˆdØ�z‰z‰ˆˆ1Ø�!Š8�t˜a’xä˜TŸY™Y›[Ó)ò )‘��1Ø˜’9  T£	ØŸ
™
 1 a 4Ñ(ð)ð ˆ�rA   c                 óh  — t        j                  |«      }| j                  |k7  r{| j                  | j                  |¬«      }t        j                  t        | j                  j                  «       «      |¬«      }t        t        | j                  |«      «      |_        |S |r| j                  «       S | S r+  )r.   r#   r˜   r"   r—   r�   r)   rO   r  rƒ   r    )r6   r#   Úcastingr    r  rå   s         r<   r-   z_dok_base.astype  s†   € Ü—‘˜“ˆØ�:‰:˜ÒØ×(Ñ(¨¯©¸5Ð(ÓAˆFÜ—8‘8œD §¡×!2Ñ!2Ó!4Ó5¸UÔCˆDÜ¤ D§J¡J°Ó 5Ó6ˆFŒLØˆMÙØ—9‘9“;ÐØˆrA   )NNFrR   )g        )r   )NF)r   )F)ÚunsafeT)Arj   Ú
__module__Ú__qualname__Ú_formatr'   r$   r@   rF   rP   r	   Ú__doc__rT   rY   r[   r]   r_   rb   re   rn   rq   rs   ru   rw   ry   rO   r…   rŠ   r‘   rŽ   r£   r©   r«   r§   r¼   rÀ   rÃ   rÆ   r­   rÐ   rÒ   r×   rÙ   rÜ   rì   rï   rõ   rû   r  r  r  r  r  r  r  r"  r)  r    Úclassmethodr/  rã   r,   rF  rK  r-   Ú__classcell__)r  s   @r<   r   r      sÝ  ø„ Ø€GØ€Ið%KÈTô %KòNXóó2ð —o‘o×-Ñ-€G„OØ#×1Ñ1×9Ñ9€MÔòò!ó3òò"ò%òFòIòIòIò$ò"ò!ò#ó,ò*7ò.òò*>ò?ò?òò.:òò0ò0ò	ò	ò ò"ò ò
$òò>òòòò,òò$òò%õ=ó
ð   ×)Ñ)×1Ñ1€IÔòò,ð
 —<‘<×'Ñ'€D„Làòó ðóð —M‘M×)Ñ)€E„Móð
 —M‘M×)Ñ)€E„Mó7ð
 —M‘M×)Ñ)€E„Mòð. —^‘^×+Ñ+€F„N÷	rA   r   c                 ó"   — t        | t        «      S )aÑ  Is `x` of dok_array type?

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

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

    Examples
    --------
    >>> from scipy.sparse import dok_array, dok_matrix, coo_matrix, isspmatrix_dok
    >>> isspmatrix_dok(dok_matrix([[5]]))
    True
    >>> isspmatrix_dok(dok_array([[5]]))
    False
    >>> isspmatrix_dok(coo_matrix([[5]]))
    False
    )r%   r   )rL   s    r<   r   r     s   € ô. �aœÓ$Ð$rA   c                   ó   — e Zd ZdZy)r   a!  
    Dictionary Of Keys based sparse array.

    This is an efficient structure for constructing sparse
    arrays incrementally.

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

        dok_array(S)
            with another sparse array or matrix S (equivalent to S.todok())

        dok_array((M,N), [dtype])
            create the array with initial shape (M,N)
            dtype is optional, defaulting to dtype='d'

    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
        Number of nonzero elements
    size
    T

    Notes
    -----

    Sparse arrays can be used in arithmetic operations: they support
    addition, subtraction, multiplication, division, and matrix power.

    - Allows for efficient O(1) access of individual elements.
    - Duplicates are not allowed.
    - Can be efficiently converted to a coo_array once constructed.

    Examples
    --------
    >>> import numpy as np
    >>> from scipy.sparse import dok_array
    >>> S = dok_array((5, 5), dtype=np.float32)
    >>> for i in range(5):
    ...     for j in range(5):
    ...         S[i, j] = i + j    # Update element

    N)rj   rO  rP  rR  rJ   rA   r<   r   r   /  s   „ ò1rA   r   c                   óH   — e Zd ZdZd„ Zd„ Z eee¬«      Zd„ Zd„ Z	d„ Z
d„ Zy	)
r   a/  
    Dictionary Of Keys based sparse matrix.

    This is an efficient structure for constructing sparse
    matrices incrementally.

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

        dok_matrix(S)
            with another sparse array or matrix S (equivalent to S.todok())

        dok_matrix((M,N), [dtype])
            create the matrix with initial shape (M,N)
            dtype is optional, defaulting to dtype='d'

    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
        Number of nonzero elements
    size
    T

    Notes
    -----

    Sparse matrices can be used in arithmetic operations: they support
    addition, subtraction, multiplication, division, and matrix power.

    - Allows for efficient O(1) access of individual elements.
    - Duplicates are not allowed.
    - Can be efficiently converted to a coo_matrix once constructed.

    Examples
    --------
    >>> import numpy as np
    >>> from scipy.sparse import dok_matrix
    >>> S = dok_matrix((5, 5), dtype=np.float32)
    >>> for i in range(5):
    ...     for j in range(5):
    ...         S[i, j] = i + j    # Update element

    c                 ó~   — | j                  |d¬«      j                  | j                  «      }|j                  | _        y )NFr   )r¾   Úasformatr+   Ú__dict__)r6   r"   Ú
new_matrixs      r<   Ú	set_shapezdok_matrix.set_shape˜  s0   € Ø—\‘\ %¨e�\Ó4×=Ñ=¸d¿k¹kÓJˆ
Ø"×+Ñ+ˆ�rA   c                 ó   — | j                   S )zGet shape of a sparse matrix.)r(   rS   s    r<   Ú	get_shapezdok_matrix.get_shapeœ  s   € à�{‰{ÐrA   )ÚfgetÚfsetc                 ó6   — | j                   j                  «       S rR   )r)   re   rS   s    r<   re   zdok_matrix.__reversed__¢  s   € Ø�z‰z×&Ñ&Ó(Ð(rA   c                 ór   — t        |t        «      r| j                  |j                  z  S | j                  |z  S rR   ©r%   r   r)   rî   s     r<   rn   zdok_matrix.__or__¥  ó.   € Ü�eœYÔ'Ø—:‘: §¡Ñ+Ð+Ø�z‰z˜EÑ!Ð!rA   c                 ór   — t        |t        «      r| j                  |j                  z  S | j                  |z  S rR   rc  rî   s     r<   rq   zdok_matrix.__ror__ª  rd  rA   c                 ó’   — t        |t        «      r!| xj                  |j                  z  c_        | S | xj                  |z  c_        | S rR   rc  rî   s     r<   rs   zdok_matrix.__ior__¯  s:   € Ü�eœYÔ'Ø�JŠJ˜%Ÿ+™+Ñ%�Jð ˆð �JŠJ˜%Ñ�JØˆrA   N)rj   rO  rP  rR  r\  r^  Úpropertyr"   re   rn   rq   rs   rJ   rA   r<   r   r   d  s4   „ ñ1òf,òñ ˜)¨)Ô4€Eò)ò"ò
"ó
rA   r   )rR  Ú__docformat__Ú__all__rÎ   Úwarningsr   Únumpyr.   Ú_matrixr   Ú_baser	   r
   r   Ú_indexr   Ú_sputilsr   r   r   r   r   r   r   r   r  r   r   r   r   rJ   rA   r<   ú<module>rp     sm   ðÙ %à%€â
7€ã Ý Û å ß -Ñ -Ý ÷;÷ ;ó ;ô�˜ Tô òD%ô62�	˜7ô 2ôjP�˜9õ PrA   