§
    ¡éUg-X  ã                   óè   — 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dS )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                   ó¤  ‡ — e Zd ZdZd@d„Zd„ ZdAd„Zd„ Zej        j	        e_	        ej        j	        e_	        d„ Z
d	„ ZdAd
„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdBd„Zˆ fd„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z d „ Z!d!„ Z"d"„ Z#d#„ Z$ˆ fd$„Z%d%„ Z&d&„ Z'd'„ Z(d(„ Z)d)„ Z*d*„ Z+d+„ Z,d,„ Z-d-„ Z.d.„ Z/d/„ Z0d0„ Z1d1„ Z2dCˆ fd3„	Z3dDd4„Z4ej4        j	        e4_	        d5„ Z5d6„ Z6ej6        j	        e6_	        e7dEd8„¦   «         Z8dFd9„Z9ej9        j	        e9_	        dFd:„Z:ej:        j	        e:_	        dFd;„Z;ej;        j	        e;_	        d<„ Z<ej<        j	        e<_	        dGd?„Z=ˆ xZ>S )HÚ	_dok_baseÚdokNFc                 óD  — t          j        | |¦  «         t          | t          ¦  «        }t          |t          ¦  «        rKt          ||¬¦  «        r:t          ||¬¦  «        | _        i | _        t          |t          ¬¦  «        | _        d S t          |¦  «        r‹|j        | j        k    r|r|                     ¦   «         n|}n|                     ¦   «         }|�|                     |d¬¦  «        }|j        | _        t          |j        |¬¦  «        | _        |j        | _        d S 	 t%          j        |¦  «        }n"# t(          $ r}t+          d¦  «        |‚d }~ww xY w|j        dk    rt+          d¦  «        ‚|j        dk    rB|�|                     |¦  «        }d	„ t/          |¦  «        D ¦   «         | _        |j        | _        nA|                      ||¬
¦  «                             ¦   «         }|j        | _        |j        | _        t          |j        |¬¦  «        | _        d S )N©Úallow_1d)ÚdefaultF©ÚcopyzInvalid input format.é   z(Expected rank <=2 dense array or matrix.r   c                 ó&   — i | ]\  }}|d k    ¯||“ŒS ©r   © )Ú.0ÚiÚvs      úP/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/scipy/sparse/_dok.pyú
<dictcomp>z&_dok_base.__init__.<locals>.<dictcomp>5   s#   € ÐIÐIÐI¡t q¨!À!ÀqÂ&À&˜a À&À&À&ó    ©Údtype)r	   Ú__init__Ú
isinstancer
   Útupler   r   Ú_shapeÚ_dictr   Úfloatr)   r   Úformatr   ÚtodokÚastypeÚshapeÚnpÚasarrayÚ	ExceptionÚ	TypeErrorÚndimÚ	enumerateÚ_coo_container)ÚselfÚarg1r3   r)   r   Úis_arrayÚeÚds           r%   r*   z_dok_base.__init__   s  € ÝÔ˜˜tÑ$Ô$Ð$å˜d¥GÑ,Ô,ˆÝ�d�EÑ"Ô"ð "	E¥w¨t¸hÐ'GÑ'GÔ'Gð "	EÝ% d°XÐ>Ñ>Ô>ˆDŒKØˆDŒJÝ! %µÐ7Ñ7Ô7ˆDŒJˆJˆJÝ�d‰^Œ^ð 	EØŒ{˜dœkÒ)Ð)Ø&*Ð4�t—y’y‘{”{�{°��à—z’z‘|”|�àÐ Ø—{’{ 5¨u�{Ñ5Ô5�àœˆDŒJÝ% d¤j¸8ÐDÑDÔDˆDŒKØœˆDŒJˆJˆJð@Ý”z $Ñ'Ô'��øÝð @ð @ð @ÝÐ 7Ñ8Ô8¸aÐ?øøøøð@øøøð Œy˜1Š}ˆ}ÝÐ JÑKÔKÐKàŒy˜AŠ~ˆ~ØÐ$ØŸ;š; uÑ-Ô-�DØIÐI­y¸©¬ÐIÑIÔI�”
Ø!œZ�”
�
à×'Ò'¨°EÐ'Ñ:Ô:×@Ò@ÑBÔB�ØœW�”
ØœW�”
Ý% d¤j¸8ÐDÑDÔDˆDŒKˆKˆKs   Ä&D; Ä;
EÅEÅEc                 ó    — t          d¦  «        ‚)Nz2Direct update to DOK sparse format is not allowed.)ÚNotImplementedError)r;   Úvals     r%   Úupdatez_dok_base.update=   s   € å!Ð"VÑWÔWÐWr'   c                 óL   — |�t          d¦  «        ‚t          | j        ¦  «        S )Nz7_getnnz over an axis is not implemented for DOK format.)rA   Úlenr.   )r;   Úaxiss     r%   Ú_getnnzz_dok_base._getnnzA   s-   € ØÐÝ%ØIñô ð õ �4”:‰ŒÐr'   c                 óX   — t          d„ |                      ¦   «         D ¦   «         ¦  «        S )Nc              3   ó"   K  — | ]
}|d k    V — ŒdS ©r   Nr!   )r"   Úxs     r%   ú	<genexpr>z*_dok_base.count_nonzero.<locals>.<genexpr>I   s&   è è € Ð1Ð1˜a�1˜’6Ð1Ð1Ð1Ð1Ð1Ð1r'   )ÚsumÚvalues©r;   s    r%   Úcount_nonzeroz_dok_base.count_nonzeroH   s'   € ÝÐ1Ð1 4§;¢;¡=¤=Ð1Ñ1Ô1Ñ1Ô1Ð1r'   c                 ó*   — t          | j        ¦  «        S ©N)rE   r.   rO   s    r%   Ú__len__z_dok_base.__len__N   s   € Ý�4”:‰ŒÐr'   c                 ó   — || j         v S rR   ©r.   ©r;   Úkeys     r%   Ú__contains__z_dok_base.__contains__Q   s   € Ø�d”jÐ Ð r'   c                ó8   — | j                              ||¦  «        S rR   )r.   Ú
setdefault)r;   rW   r   s      r%   rZ   z_dok_base.setdefaultT   s   € ØŒz×$Ò$ S¨'Ñ2Ô2Ð2r'   c                ó   — | j         |= d S rR   rU   rV   s     r%   Ú__delitem__z_dok_base.__delitem__W   s   € ØŒJ�sˆOˆOˆOr'   c                 ó4   — | j                              ¦   «         S rR   )r.   ÚclearrO   s    r%   r^   z_dok_base.clearZ   ó   € ØŒz×ÒÑ!Ô!Ð!r'   c                ó    —  | j         j        |Ž S rR   )r.   Úpop)r;   Úargss     r%   ra   z_dok_base.pop]   s   € ØˆtŒzŒ~˜tÐ$Ð$r'   c                 ó    — t          d¦  «        ‚)Nz*reversed is not defined for dok_array type)r7   rO   s    r%   Ú__reversed__z_dok_base.__reversed__`   s   € ÝÐDÑEÔEÐEr'   c                 ó|   — t          | ¦  «        j        › dt          |¦  «        j        › �}t          d|› �¦  «        ‚©Nz and z unsupported operand type for |: ©ÚtypeÚ__name__r7   ©r;   ÚotherÚ
type_namess      r%   Ú__or__z_dok_base.__or__c   ó>   € Ý˜T™
œ
Ô+ÐHÐHµ$°u±+´+Ô2FÐHÐHˆ
ÝÐG¸:ÐGÐGÑHÔHÐHr'   c                 ó|   — t          | ¦  «        j        › dt          |¦  «        j        › �}t          d|› �¦  «        ‚rf   rg   rj   s      r%   Ú__ror__z_dok_base.__ror__g   rn   r'   c                 ó|   — t          | ¦  «        j        › dt          |¦  «        j        › �}t          d|› �¦  «        ‚rf   rg   rj   s      r%   Ú__ior__z_dok_base.__ior__k   rn   r'   c                 ó4   — | j                              ¦   «         S rR   )r.   ÚpopitemrO   s    r%   rt   z_dok_base.popitemo   s   € ØŒz×!Ò!Ñ#Ô#Ð#r'   c                 ó4   — | j                              ¦   «         S rR   )r.   ÚitemsrO   s    r%   rv   z_dok_base.itemsr   r_   r'   c                 ó4   — | j                              ¦   «         S rR   )r.   ÚkeysrO   s    r%   rx   z_dok_base.keysu   s   € ØŒz�ŠÑ Ô Ð r'   c                 ó4   — | j                              ¦   «         S rR   )r.   rN   rO   s    r%   rN   z_dok_base.valuesx   s   € ØŒz× Ò Ñ"Ô"Ð"r'   ç        c                 óv  — || j         v r| j         |         S t          |¦  «        r| j        dk    r|f}| j        t          |¦  «        k    rt	          d|› d�¦  «        ‚	 |D ]}t          |¦  «        sJ ‚Œn/# t
          t          t          f$ r}t	          d¦  «        |‚d}~ww xY wt          d„ t          || j
        ¦  «        D ¦   «         ¦  «        }t          d„ t          || j
        ¦  «        D ¦   «         ¦  «        rt	          d¦  «        ‚| j        dk    r|d	         }| j                              ||¦  «        S )
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   ó6   K  — | ]\  }}|d k     r||z   n|V — ŒdS rJ   r!   ©r"   r#   ÚMs      r%   rL   z _dok_base.get.<locals>.<genexpr>ˆ   s6   è è € ÐKÐK©d¨a°˜Q šU˜U�A˜‘E�E¨ÐKÐKÐKÐKÐKÐKr'   c              3   ó4   K  — | ]\  }}|d k     p||k    V — ŒdS rJ   r!   r}   s      r%   rL   z _dok_base.get.<locals>.<genexpr>‰   s2   è è € Ð@Ð@¡4 1 aˆq�1Šuˆ˜˜QšÐ@Ð@Ð@Ð@Ð@Ð@r'   zIndex out of bounds.r   )r.   r   r8   rE   Ú
IndexErrorÚAssertionErrorr7   Ú
ValueErrorr,   Úzipr3   ÚanyÚget)r;   rW   r   r#   r>   s        r%   r…   z_dok_base.get{   s]  € à�$”*ÐÐØ”:˜c”?Ð"Ý�S‰>Œ>ð 	˜dœi¨1šn˜nØ�&ˆCØŒ9�˜C™œÒ Ð ÝÐL cÐLÐLÐLÑMÔMÐMð	MØð $ð $�Ý  ‘|”|Ð#Ð#Ð#Ð#ð$øå¥	­:Ð6ð 	Mð 	Mð 	MÝÐDÑEÔEÈ1ÐLøøøøð	MøøøåÐKÐKµc¸#¸t¼zÑ6JÔ6JÐKÑKÔKÑKÔKˆÝÐ@Ð@­3¨s°D´JÑ+?Ô+?Ð@Ñ@Ô@Ñ@Ô@ð 	5ÝÐ3Ñ4Ô4Ð4ØŒ9˜Š>ˆ>Ø�a”&ˆCØŒz�~Š~˜c 7Ñ+Ô+Ð+s   Á A7 Á7B#ÂBÂB#c                 óÂ  •— | j         dk    r!t          ¦   «                              |¦  «        S t          |t          ¦  «        rt          |¦  «        dk    r|d         }t          t          j        f}t          ||¦  «        rQ|dk     r|| j	        d         z  }|dk     s|| j	        d         k    rt          d¦  «        ‚|                      |¦  «        S t          d¦  «        ‚)Nr   r   r   éÿÿÿÿúindex value out of boundsz4array/slice index for 1d dok_array not yet supported)r8   ÚsuperÚ__getitem__r+   r,   rE   Úintr4   Úintegerr3   r€   Ú_get_int)r;   rW   Ú	INT_TYPESÚ	__class__s      €r%   rŠ   z_dok_base.__getitem__�   sÐ   ø€ ØŒ9˜Š>ˆ>Ý‘7”7×&Ò& sÑ+Ô+Ð+å�c�5Ñ!Ô!ð 	¥c¨#¡h¤h°!¢m mØ�a”&ˆCÝ�"œ*Ð%ˆ	Ý�c˜9Ñ%Ô%ð 	UØ�QŠwˆwØ�t”z "”~Ñ%�Ø�QŠwˆw˜# ¤¨B¤Ò/Ð/Ý Ð!<Ñ=Ô=Ð=Ø—=’= Ñ%Ô%Ð%åÐSÑTÔTÐTr'   c                 óh   — | j                              || j                             d¦  «        ¦  «        S ©Nr   ©r.   r…   r)   rh   )r;   Úidxs     r%   r�   z_dok_base._get_int¡   s&   € ØŒz�~Š~˜c 4¤:§?¢?°1Ñ#5Ô#5Ñ6Ô6Ð6r'   c                 ól   — | j                              ||f| j                             d¦  «        ¦  «        S r‘   r’   ©r;   ÚrowÚcols      r%   Ú_get_intXintz_dok_base._get_intXint¥   s*   € ØŒz�~Š~˜s C˜j¨$¬*¯/ª/¸!Ñ*<Ô*<Ñ=Ô=Ð=r'   c                 óP   — |                       t          ||dz   ¦  «        |¦  «        S ©Nr   ©Ú_get_sliceXsliceÚslicer•   s      r%   Ú_get_intXslicez_dok_base._get_intXslice¨   s&   € Ø×$Ò$¥U¨3°°a±Ñ%8Ô%8¸#Ñ>Ô>Ð>r'   c                 óP   — |                       |t          ||dz   ¦  «        ¦  «        S rš   r›   r•   s      r%   Ú_get_sliceXintz_dok_base._get_sliceXint«   s&   € Ø×$Ò$ S­%°°S¸1±WÑ*=Ô*=Ñ>Ô>Ð>r'   c                 ó(  — |                      | j        d         ¦  «        \  }}}|                      | j        d         ¦  «        \  }}}t          |||¦  «        }	t          |||¦  «        }
t          |	¦  «        t          |
¦  «        f}t          | ¦  «        d|d         z  |d         z  k    r|                      |	|
¦  «        S |                      || j        ¬¦  «        }|                      ¦   «         D ]�}t          t          |d         ¦  «        |z
  |¦  «        \  }}|dk    s|dk     s||d         k    rŒDt          t          |d         ¦  «        |z
  |¦  «        \  }}|dk    s|dk     s||d         k    rŒ†| j
        |         |j
        ||f<   Œž|S )Nr   r   r   r(   )Úindicesr3   ÚrangerE   Ú_get_columnXarrayÚ_dok_containerr)   rx   Údivmodr‹   r.   )r;   r–   r—   Ú	row_startÚrow_stopÚrow_stepÚ	col_startÚcol_stopÚcol_stepÚ	row_rangeÚ	col_ranger3   ÚnewdokrW   r#   ÚriÚjÚrjs                     r%   rœ   z_dok_base._get_sliceXslice®   sƒ  € Ø(+¯ª°D´J¸q´MÑ(BÔ(BÑ%ˆ	�8˜XØ(+¯ª°D´J¸q´MÑ(BÔ(BÑ%ˆ	�8˜XÝ˜) X¨xÑ8Ô8ˆ	Ý˜) X¨xÑ8Ô8ˆ	Ý�Y‘”¥ Y¡¤Ð0ˆõ ˆt‰9Œ9˜˜E !œH™ u¨Q¤xÑ/Ò/Ð/à×)Ò)¨)°YÑ?Ô?Ð?à×$Ò$ U°$´*Ð$Ñ=Ô=ˆØ—9’9‘;”;ð 	1ð 	1ˆCÝ�3˜s 1œv™;œ;¨Ñ2°HÑ=Ô=‰EˆAˆrØ�QŠwˆw˜!˜aš%˜% 1¨¨a¬¢= =ØÝ�3˜s 1œv™;œ;¨Ñ2°HÑ=Ô=‰EˆAˆrØ�QŠwˆw˜!˜aš%˜% 1¨¨a¬¢= =ØØ!%¤¨C¤ˆFŒL˜˜A˜ÑÐØˆr'   c                 óX   — |                      ¦   «         }|                      |g|¦  «        S rR   ©Úsqueezer¤   r•   s      r%   Ú_get_intXarrayz_dok_base._get_intXarrayÅ   s'   € Ø�kŠk‰mŒmˆØ×%Ò% s e¨SÑ1Ô1Ð1r'   c                 óX   — |                      ¦   «         }|                      ||g¦  «        S rR   r´   r•   s      r%   Ú_get_arrayXintz_dok_base._get_arrayXintÉ   s'   € Ø�kŠk‰mŒmˆØ×%Ò% c¨C¨5Ñ1Ô1Ð1r'   c                 ó–   — t          t          |                     | j        d         ¦  «        Ž ¦  «        }|                      ||¦  «        S r‘   ©Úlistr£   r¢   r3   r¤   r•   s      r%   Ú_get_sliceXarrayz_dok_base._get_sliceXarrayÍ   ó<   € Ý•5˜#Ÿ+š+ d¤j°¤mÑ4Ô4Ð5Ñ6Ô6ˆØ×%Ò% c¨3Ñ/Ô/Ð/r'   c                 ó–   — t          t          |                     | j        d         ¦  «        Ž ¦  «        }|                      ||¦  «        S rš   rº   r•   s      r%   Ú_get_arrayXslicez_dok_base._get_arrayXsliceÑ   r½   r'   c                 ó   — |                       t          |¦  «        t          |¦  «        f| j        ¬¦  «        }t          |¦  «        D ]E\  }}t          |¦  «        D ]0\  }}| j                             ||fd¦  «        }|r||j        ||f<   Œ1ŒF|S )Nr(   r   )r¥   rE   r)   r9   r.   r…   )	r;   r–   r—   r¯   r#   Úrr±   Úcr$   s	            r%   r¤   z_dok_base._get_columnXarrayÕ   s�   € à×$Ò$¥c¨#¡h¤hµ°C±´Ð%9ÀÄÐ$ÑLÔLˆå˜c‘N”Nð 	+ð 	+‰DˆAˆqÝ! #™œð +ð +‘��1Ø”J—N’N A q 6¨1Ñ-Ô-�Øð +Ø)*�F”L  A Ñ&øð+ð ˆr'   c                 ó¢  — t          t          j        t          j        ||¦  «        ¦  «        \  }}|                      |j        | j        ¬¦  «        }t          j        t          |j        d         ¦  «        t          |j        d         ¦  «        ¦  «        D ]7}| j
                             ||         ||         fd¦  «        }|r
||j
        |<   Œ8|S )Nr(   r   r   )Úmapr4   Ú
atleast_2dÚbroadcast_arraysr¥   r3   r)   Ú	itertoolsÚproductr£   r.   r…   )r;   r–   r—   r#   r±   r¯   rW   r$   s           r%   Ú_get_arrayXarrayz_dok_base._get_arrayXarrayà   s´   € å•2”=¥"Ô"5°c¸3Ñ"?Ô"?Ñ@Ô@‰ˆˆ1Ø×$Ò$ Q¤W°D´JÐ$Ñ?Ô?ˆåÔ$¥U¨1¬7°1¬:Ñ%6Ô%6½¸a¼gÀa¼jÑ8IÔ8IÑJÔJð 	&ð 	&ˆCØ”
—’  #¤¨¨#¬Ð/°Ñ3Ô3ˆAØð &Ø$%�”˜SÑ!øØˆr'   c                 óÆ  •— | j         dk    r"t          ¦   «                              ||¦  «        S t          |t          ¦  «        rt          |¦  «        dk    r|d         }t          t          j        f}t          ||¦  «        rR|dk     r|| j	        d         z  }|dk     s|| j	        d         k    rt          d¦  «        ‚|                      ||¦  «        S t          d¦  «        ‚)Nr   r   r   r‡   rˆ   z-array index for 1d dok_array not yet provided)r8   r‰   Ú__setitem__r+   r,   rE   r‹   r4   rŒ   r3   r€   Ú_set_int)r;   rW   ÚvaluerŽ   r�   s       €r%   rË   z_dok_base.__setitem__ì   sÔ   ø€ ØŒ9˜Š>ˆ>Ý‘7”7×&Ò& s¨EÑ2Ô2Ð2å�c�5Ñ!Ô!ð 	¥c¨#¡h¤h°!¢m mØ�a”&ˆCÝ�"œ*Ð%ˆ	Ý�c˜9Ñ%Ô%ð 	NØ�QŠwˆwØ�t”z "”~Ñ%�Ø�QŠwˆw˜# ¤¨B¤Ò/Ð/Ý Ð!<Ñ=Ô=Ð=Ø—=’=  eÑ,Ô,Ð,åÐLÑMÔMÐMr'   c                 óH   — |r|| j         |<   d S || j         v r
| j         |= d S d S rR   rU   )r;   r“   rK   s      r%   rÌ   z_dok_base._set_intý   s;   € Øð 	 ØˆDŒJ�s‰OˆOˆOØ�D”JÐÐØ”
˜3���ð Ðr'   c                 óP   — ||f}|r|| j         |<   d S || j         v r
| j         |= d S d S rR   rU   )r;   r–   r—   rK   rW   s        r%   Ú_set_intXintz_dok_base._set_intXint  sD   € Ø�CˆjˆØð 	 ØˆDŒJ�s‰OˆOˆOØ�D”JÐÐØ”
˜3���ð Ðr'   c                 óþ  — t          t          t          |                     ¦   «         ¦  «        ¦  «        }t          t          t          |                     ¦   «         ¦  «        ¦  «        }|                     ¦   «         }| j                             t          t          ||¦  «        |¦  «        ¦  «         t          j        |dk    ¦  «        d         D ]+}||         ||         f}| j        |         dk    r| j        |= Œ,d S r‘   )	r»   rÄ   r‹   Úravelr.   rC   rƒ   r4   Únonzero)r;   r–   r—   rK   r#   rW   s         r%   Ú_set_arrayXarrayz_dok_base._set_arrayXarray  sÎ   € Ý•3•s˜CŸIšI™KœKÑ(Ô(Ñ)Ô)ˆÝ•3•s˜CŸIšI™KœKÑ(Ô(Ñ)Ô)ˆØ�GŠG‰IŒIˆØŒ
×Ò�#�c # s™mœm¨QÑ/Ô/Ñ0Ô0Ð0å”˜A šFÑ#Ô# AÔ&ð 	$ð 	$ˆAØ�q”6˜3˜qœ6Ð"ˆCØŒz˜#Œ !Ò#Ð#à”J˜s�Oøð		$ð 	$r'   c                 ó"  ‡— t          |¦  «        rxt          | j        |¦  «        }|                      | j        |¬¦  «        Št          j        d„ | j        D ¦   «         Ž D ]'}| j                             |d¦  «        |z   }|r|‰|<   Œ(�n†t          |¦  «        �rH|j        | j        k    rt          d¦  «        ‚t          | j        |j        ¦  «        }|                      | j        |¬¦  «        Š| j                             ¦   «         ‰_        |j        dk    r|                     ¦   «         }na|                     ¦   «         }| j        dk    r!t#          |j        d         |j        ¦  «        }n!t#          t#          |j        Ž |j        ¦  «        }t)          j        d¬¦  «        5  ‰j                             ˆfd	„|D ¦   «         ¦  «         d d d ¦  «         n# 1 swxY w Y   n.t/          |¦  «        r|                      ¦   «         |z   Šnt2          S ‰S )
Nr(   c                 ó,   — g | ]}t          |¦  «        ‘ŒS r!   )r£   )r"   r?   s     r%   ú
<listcomp>z%_dok_base.__add__.<locals>.<listcomp>  s   € Ð*HÐ*HÐ*H¸­5°©8¬8Ð*HÐ*HÐ*Hr'   r   z Matrix dimensions are not equal.r   r   Úignore)Úoverc              3   ó8   •K  — | ]\  }}|‰|         |z   fV — Œd S rR   r!   )r"   Úkr$   Únews      €r%   rL   z$_dok_base.__add__.<locals>.<genexpr>/  s3   øè è € Ð EÐ E±T°Q¸ ! S¨¤V¨a¡Z Ð EÐ EÐ EÐ EÐ EÐ Er'   )r   r   r)   r¥   r3   rÇ   rÈ   r.   r…   r   r‚   r   r   r0   rv   Útocoor8   rƒ   ÚcoordsÚdatar4   ÚerrstaterC   r   ÚtodenseÚNotImplemented)r;   rk   Ú	res_dtyperW   ÚaijÚo_itemsrÜ   s         @r%   Ú__add__z_dok_base.__add__  s<  ø€ Ý˜ÑÔð 	"Ý% d¤j°%Ñ8Ô8ˆIØ×%Ò% d¤j¸	Ð%ÑBÔBˆCå Ô(Ð*HÐ*H¸T¼ZÐ*HÑ*HÔ*HÐIð #ð #�Ø”j—n’n S¨!Ñ,Ô,¨uÑ4�Øð #Ø"�C˜‘Høñ#õ �e‰_Œ_ñ 	"ØŒ{˜dœjÒ(Ð(Ý Ð!CÑDÔDÐDÝ˜tœz¨5¬;Ñ7Ô7ˆIØ×%Ò% d¤j¸	Ð%ÑBÔBˆCØœ
ŸšÑ)Ô)ˆCŒIØŒ|˜uÒ$Ð$ØŸ+š+™-œ-��àŸš™œ�Ø”9 ’>�>Ý! %¤,¨q¤/°5´:Ñ>Ô>�G�Gå!¥# u¤|Ð"4°e´jÑAÔA�GÝ” (Ð+Ñ+Ô+ð Fð FØ”	× Ò Ð EÐ EÐ EÐ E¸WÐ EÑ EÔ EÑEÔEÐEðFð Fð Fñ Fô Fð Fð Fð Fð Fð Fð Føøøð Fð Fð Fð Føå�U‰^Œ^ð 	"Ø—,’,‘.”. 5Ñ(ˆCˆCå!Ð!Øˆ
s   Æ"'GÇGÇGc                 ó   — | |z   S rR   r!   ©r;   rk   s     r%   Ú__radd__z_dok_base.__radd__6  s   € Ø�e‰|Ðr'   c                 óò   — | j         j        dk    rt          d¦  «        ‚|                      | j        | j         ¬¦  «        }|j                             d„ |                      ¦   «         D ¦   «         ¦  «         |S )NÚbz2Negating a sparse boolean matrix is not supported.r(   c              3   ó&   K  — | ]\  }}|| fV — Œd S rR   r!   )r"   rÛ   r$   s      r%   rL   z$_dok_base.__neg__.<locals>.<genexpr>?  s,   è è € Ð:Ð:¡T Q¨˜!˜a˜R˜Ð:Ð:Ð:Ð:Ð:Ð:r'   )r)   ÚkindrA   r¥   r3   r.   rC   rv   ©r;   rÜ   s     r%   Ú__neg__z_dok_base.__neg__9  sv   € ØŒ:Œ?˜cÒ!Ð!Ý%ØDñô ð ð ×!Ò! $¤*°D´JÐ!Ñ?Ô?ˆØŒ	×ÒÐ:Ð:¨T¯ZªZ©\¬\Ð:Ñ:Ô:Ñ:Ô:Ð:Øˆ
r'   c                 óÚ   ‡— t          | j        ‰¦  «        }|                      | j        |¬¦  «        }|j                             ˆfd„|                      ¦   «         D ¦   «         ¦  «         |S )Nr(   c              3   ó,   •K  — | ]\  }}||‰z  fV — Œd S rR   r!   ©r"   rÛ   r$   rk   s      €r%   rL   z(_dok_base._mul_scalar.<locals>.<genexpr>F  s/   øè è € ÐBÐB©T¨Q°˜1˜a %™i˜.ÐBÐBÐBÐBÐBÐBr'   )r   r)   r¥   r3   r.   rC   rv   ©r;   rk   rã   rÜ   s    `  r%   Ú_mul_scalarz_dok_base._mul_scalarB  sf   ø€ Ý! $¤*¨eÑ4Ô4ˆ	à×!Ò! $¤*°IÐ!Ñ>Ô>ˆØŒ	×ÒÐBÐBÐBÐB°T·Z²Z±\´\ÐBÑBÔBÑCÔCÐCØˆ
r'   c                 óÔ  ‡ ‡— t          ‰ j        ‰j        ¦  «        }‰ j        dk    rét          ‰¦  «        rŽ‰j        dk    r*‰                      ¦   «         ‰                     ¦   «         z  }n4‰                      ¦   «         ‰                     ¦   «         j        d         z  } |t          ˆˆ fd„|D ¦   «         ¦  «        ¦  «        S t          ‰¦  «        r6 |t          ˆfd„‰  
                    ¦   «         D ¦   «         ¦  «        ¦  «        S t          S t          j        ‰ j        d         |¬¦  «        }‰  
                    ¦   «         D ]!\  \  }}}||xx         |‰|         z  z  cc<   Œ"|S )Nr   r   r   c              3   óN   •K  — | ]}‰j         |         ‰j         |         z  V — Œ d S rR   rU   )r"   rÛ   rk   r;   s     €€r%   rL   z+_dok_base._matmul_vector.<locals>.<genexpr>S  s4   øè è € Ð$RÐ$RÈ T¤Z°¤]°U´[À´^Ñ%CÐ$RÐ$RÐ$RÐ$RÐ$RÐ$Rr'   c              3   ó4   •K  — | ]\  }}‰|         |z  V — Œd S rR   r!   rò   s      €r%   rL   z+_dok_base._matmul_vector.<locals>.<genexpr>U  s/   øè è € Ð$KÐ$K±d°a¸ U¨1¤X°¡\Ð$KÐ$KÐ$KÐ$KÐ$KÐ$Kr'   r(   )r   r)   r8   r   r0   rx   rÝ   rÞ   rM   r   rv   râ   r4   Úzerosr3   )r;   rk   rã   rx   Úresultr#   r±   r$   s   ``      r%   Ú_matmul_vectorz_dok_base._matmul_vectorI  sV  øø€ Ý˜4œ: u¤{Ñ3Ô3ˆ	ð Œ9˜Š>ˆ>Ý˜‰Œð 	&Ø”< 5Ò(Ð(ØŸ9š9™;œ;¨¯ª©¬Ñ5�D�DàŸ9š9™;œ;¨¯ª©¬Ô)=¸aÔ)@Ñ@�DØ �y¥Ð$RÐ$RÐ$RÐ$RÐ$RÈTÐ$RÑ$RÔ$RÑ!RÔ!RÑSÔSÐSÝ˜‘”ð &Ø �y¥Ð$KÐ$KÐ$KÐ$K¸d¿jºj¹l¼lÐ$KÑ$KÔ$KÑ!KÔ!KÑLÔLÐLå%Ð%õ ”˜$œ* Qœ-¨yÐ9Ñ9Ô9ˆØŸš™œð 	&ð 	&‰I‰FˆQ��AØ�1ˆIˆIŒI˜˜U 1œX™Ñ%ˆIˆI‰IˆIØˆr'   c                 ó¢  ‡— t          | j        ‰j        ¦  «        }| j        dk    r2t          ˆfd„| j                             ¦   «         D ¦   «         ¦  «        S | j        d         }‰j        dk    r|fn|‰j        d         f}t          j        ||¬¦  «        }|                      ¦   «         D ]!\  \  }}}||xx         |‰|         z  z  cc<   Œ"|S )Nr   c              3   ó4   •K  — | ]\  }}|‰|         z  V — Œd S rR   r!   )r"   r±   r$   rk   s      €r%   rL   z0_dok_base._matmul_multivector.<locals>.<genexpr>d  s/   øè è € ÐCÐC©¨¨1�q˜5 œ8‘|ÐCÐCÐCÐCÐCÐCr'   r   r(   )	r   r)   r8   rM   r.   rv   r3   r4   rø   )	r;   rk   Úresult_dtyper~   Ú	new_shaperù   r#   r±   r$   s	    `       r%   Ú_matmul_multivectorz_dok_base._matmul_multivector_  s×   ø€ Ý˜dœj¨%¬+Ñ6Ô6ˆàŒ9˜Š>ˆ>åÐCÐCÐCÐC°´
×0@Ò0@Ñ0BÔ0BÐCÑCÔCÑCÔCÐCð ŒJ�qŒMˆØ!œJ¨!šO˜O�Q�D�D°!°U´[À´^Ð1Dˆ	Ý”˜)¨<Ð8Ñ8Ô8ˆØŸš™œð 	&ð 	&‰I‰FˆQ��AØ�1ˆIˆIŒI˜˜U 1œX™Ñ%ˆIˆI‰IˆIØˆr'   c                 ó¤   ‡— t          ‰¦  «        r:| j                             ˆfd„|                      ¦   «         D ¦   «         ¦  «         | S t          S )Nc              3   ó,   •K  — | ]\  }}||‰z  fV — Œd S rR   r!   rò   s      €r%   rL   z%_dok_base.__imul__.<locals>.<genexpr>p  ó/   øè è € ÐFÐF±°°A˜q ! e¡)˜nÐFÐFÐFÐFÐFÐFr'   ©r   r.   rC   rv   râ   rè   s    `r%   Ú__imul__z_dok_base.__imul__n  óQ   ø€ Ý˜ÑÔð 	ØŒJ×ÒÐFÐFÐFÐF¸¿º¹¼ÐFÑFÔFÑFÔFÐFØˆKÝÐr'   c                 ó&  ‡— t          ‰¦  «        rkt          | j        ‰¦  «        }|                      | j        |¬¦  «        }|j                             ˆfd„|                      ¦   «         D ¦   «         ¦  «         |S |                      ¦   «         ‰z  S )Nr(   c              3   ó,   •K  — | ]\  }}||‰z  fV — Œd S rR   r!   rò   s      €r%   rL   z(_dok_base.__truediv__.<locals>.<genexpr>x  r  r'   )	r   r   r)   r¥   r3   r.   rC   rv   Útocsrró   s    `  r%   Ú__truediv__z_dok_base.__truediv__t  s‰   ø€ Ý˜ÑÔð 	Ý% d¤j°%Ñ8Ô8ˆIØ×%Ò% d¤j¸	Ð%ÑBÔBˆCØŒI×ÒÐFÐFÐFÐF¸¿º¹¼ÐFÑFÔFÑGÔGÐGØˆJØ�zŠz‰|Œ|˜eÑ#Ð#r'   c                 ó¤   ‡— t          ‰¦  «        r:| j                             ˆfd„|                      ¦   «         D ¦   «         ¦  «         | S t          S )Nc              3   ó,   •K  — | ]\  }}||‰z  fV — Œd S rR   r!   rò   s      €r%   rL   z)_dok_base.__itruediv__.<locals>.<genexpr>~  r  r'   r  rè   s    `r%   Ú__itruediv__z_dok_base.__itruediv__|  r  r'   c                 ó6   — t                                | ¦  «        S rR   )ÚdictÚ
__reduce__rO   s    r%   r  z_dok_base.__reduce__‚  s   € õ �Š˜tÑ$Ô$Ð$r'   r   c                 óz   •— | j         dk    r!t          ¦   «                              |¦  «        S t          d¦  «        ‚)Nr   z diagonal requires two dimensions)r8   r‰   Údiagonalr‚   )r;   rÛ   r�   s     €r%   r  z_dok_base.diagonalˆ  s5   ø€ ØŒ9˜Š>ˆ>Ý‘7”7×#Ò# AÑ&Ô&Ð&ÝÐ;Ñ<Ô<Ð<r'   c                 ó0  — | j         dk    r|                      ¦   «         S |�|dk    rt          d¦  «        ‚| j        \  }}|                      ||f| j        |¬¦  «        }|j                             d„ |                      ¦   «         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   ó.   K  — | ]\  \  }}}||f|fV — Œd S rR   r!   ©r"   ÚleftÚrightrB   s       r%   rL   z&_dok_base.transpose.<locals>.<genexpr>š  s4   è è € ÐVÐVÑ3E±=°D¸%À#˜E 4˜=¨#Ð.ÐVÐVÐVÐVÐVÐVr'   )	r8   r   r‚   r3   r¥   r)   r.   rC   rv   )r;   Úaxesr   r~   ÚNrÜ   s         r%   Ú	transposez_dok_base.transpose�  sŸ   € ØŒ9˜Š>ˆ>Ø—9’9‘;”;ÐàÐ ¨¢ Ýð>ñô ð ð Œz‰ˆˆ1Ø×!Ò! 1 a &°´
ÀÐ!ÑFÔFˆØŒ	×ÒÐVÐVÈÏÊÉÌÐVÑVÔVÑWÔWÐWØˆ
r'   c                 óL  — d}t          |t          d¬¦  «         | j        dk    r4|                      ¦   «         }|j                             ¦   «         |_        |S | j        \  }}|                      ||f| j        ¬¦  «        }d„ |  	                    ¦   «         D ¦   «         |_
        |S )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(   c                 óH   — i | ]\  \  }}}||ft          j        |¦  «        “Œ S r!   )r4   Úconjr  s       r%   r&   z(_dok_base.conjtransp.<locals>.<dictcomp>²  s/   € ÐXÐXÐXÑ5G±]°d¸EÀC�e˜T�]¥B¤G¨C¡L¤LÐXÐXÐXr'   )r   ÚDeprecationWarningr8   rÝ   rß   Ú	conjugater3   r¥   r)   rv   r.   )r;   ÚmsgrÜ   r~   r  s        r%   Ú
conjtranspz_dok_base.conjtranspŸ  sœ   € ð.ˆåˆSÕ$°Ð3Ñ3Ô3Ð3àŒ9˜Š>ˆ>Ø—*’*‘,”,ˆCØ”x×)Ò)Ñ+Ô+ˆCŒHØˆJàŒz‰ˆˆ1Ø×!Ò! 1 a &°´
Ð!Ñ;Ô;ˆØXÐXÈ4Ï:Ê:É<Ì<ÐXÑXÔXˆŒ	Øˆ
r'   c                 ó†   — |                       | j        | j        ¬¦  «        }|j                             | j        ¦  «         |S ©Nr(   )r¥   r3   r)   r.   rC   rî   s     r%   r   z_dok_base.copyµ  s;   € Ø×!Ò! $¤*°D´JÐ!Ñ?Ô?ˆØŒ	×Ò˜œÑ$Ô$Ð$Øˆ
r'   r   c                óD  — t                                ||¦  «        }t          t          t	          |¦  «        ¦  «        t
          ¦  «        r!t          d„ t          |Ž D ¦   «         ¦  «        }nt          |¦  «        dz   f} | |t          |¦  «        ¬¦  «        }||_	        |S )Nc              3   ó:   K  — | ]}t          |¦  «        d z   V — ŒdS )r   N)Úmax)r"   r“   s     r%   rL   z%_dok_base.fromkeys.<locals>.<genexpr>À  s,   è è € Ð<Ð<¨3�#˜c™(œ( Q™,Ð<Ð<Ð<Ð<Ð<Ð<r'   r   r(   )
r  Úfromkeysr+   ÚnextÚiterr,   rƒ   r&  rh   r.   )ÚclsÚiterablerÍ   Útmpr3   rù   s         r%   r'  z_dok_base.fromkeys¼  sŒ   € å�mŠm˜H eÑ,Ô,ˆÝ•d�4 ™9œ9‘o”o¥uÑ-Ô-ð 	$ÝÐ<Ð<µ#°s°)Ð<Ñ<Ô<Ñ<Ô<ˆEˆEå˜‘X”X ‘\�OˆEØ��U¥$ u¡+¤+Ð.Ñ.Ô.ˆØˆŒØˆr'   c                 ó  ‡‡— | j         Š‰dk    r!|                      | j        | j        ¬¦  «        S |                      t          | j        ¦  «        ¬¦  «        Št          j        |                      ¦   «         | j        ‰¬¦  «        }| j	        dk    rt          |                      ¦   «         Ž n|                      ¦   «         f}t          ˆˆfd„|D ¦   «         ¦  «        }|                      ||f| j        | j        ¬¦  «        }d|_        |S )	Nr   r(   )Úmaxval©r)   Úcountr   c              3   óF   •K  — | ]}t          j        |‰‰¬ ¦  «        V — ŒdS )r/  N)r4   Úfromiter)r"   ÚixÚ	idx_dtypeÚnnzs     €€r%   rL   z"_dok_base.tocoo.<locals>.<genexpr>Ð  s4   øè è € ÐRÐRÀr•r”{ 2¨Y¸cÐBÑBÔBÐRÐRÐRÐRÐRÐRr'   )r3   r)   T)r5  r:   r3   r)   Ú_get_index_dtyper&  r4   r2  rN   r8   rƒ   rx   r,   Úhas_canonical_format)r;   r   rß   ÚindsrÞ   ÚAr4  r5  s         @@r%   rÝ   z_dok_base.tocooÇ  sî   øø€ ØŒhˆØ�!Š8ˆ8Ø×&Ò& t¤z¸¼Ð&ÑDÔDÐDà×)Ò)µ°T´Z±´Ð)ÑAÔAˆ	ÝŒ{˜4Ÿ;š;™=œ=°´
À#ÐFÑFÔFˆà$(¤I°¢M M�s�D—I’I‘K”KÐ Ð ¸¿	º	¹¼°~ˆÝÐRÐRÐRÐRÐRÈTÐRÑRÔRÑRÔRˆØ×Ò  v °d´jÈÌ
ÐÑSÔSˆØ!%ˆÔØˆr'   c                 ó2   — |r|                       ¦   «         S | S rR   r   ©r;   r   s     r%   r1   z_dok_base.todok×  s   € Øð 	Ø—9’9‘;”;ÐØˆr'   c                 óŠ   — | j         dk    rt          d¦  «        ‚|                      d¬¦  «                             |¬¦  «        S )Nr   z%tocsr() not valid for 1d sparse arrayFr   )r8   rA   rÝ   Útocscr;  s     r%   r=  z_dok_base.tocscÞ  sA   € ØŒ9˜Š>ˆ>Ý%Ð&MÑNÔNÐNØ�zŠz˜uˆzÑ%Ô%×+Ò+°Ð+Ñ6Ô6Ð6r'   c                 óê  — t          | t          ¦  «        }t          ||¬¦  «        }t          |¦  «        t          | j        ¦  «        k    rt
          ‚| j        dk    r6|d         }t          | j        ¦  «        D ]}||k    r| j        |= Œ|| _	        d S |\  }}| j        \  }}||k     s||k     r=t          |  
                    ¦   «         ¦  «        D ]\  }}||k    s||k    r
| j        ||f= Œ|| _	        d S )Nr   r   r‡   )r+   r
   r   rE   r3   rA   r8   r»   r.   r-   rx   )	r;   r3   r=   ÚnewNr#   ÚnewMr~   r  r±   s	            r%   Úresizez_dok_base.resizeå  s  € Ý˜d¥GÑ,Ô,ˆÝ˜E¨HÐ5Ñ5Ô5ˆÝˆu‰:Œ:�˜TœZ™œÒ(Ð(å%Ð%àŒ9˜Š>ˆ>Ø˜”9ˆDÝ˜$œ*Ñ%Ô%ð &ð &�Ø˜’9�9Øœ
 1˜øØˆDŒKØˆFà‰
ˆˆdØŒz‰ˆˆ1Ø�!Š8ˆ8�t˜a’x�xå˜TŸYšY™[œ[Ñ)Ô)ð )ð )‘��1Ø˜’9�9  T¢	 	Øœ
 1 a 4Ð(øØˆŒˆˆr'   ÚunsafeTc                 ón  — t          j        |¦  «        }| j        |k    r|                      | j        |¬¦  «        }t          j        t          | j                             ¦   «         ¦  «        |¬¦  «        }t          t          | j        |¦  «        ¦  «        |_        |S |r|  
                    ¦   «         S | S r#  )r4   r)   r¥   r3   Úarrayr»   r.   rN   r  rƒ   r   )r;   r)   Úcastingr   rù   rß   s         r%   r2   z_dok_base.astype   s›   € Ý”˜‘”ˆØŒ:˜ÒÐØ×(Ò(¨¬¸5Ð(ÑAÔAˆFÝ”8�D ¤×!2Ò!2Ñ!4Ô!4Ñ5Ô5¸UÐCÑCÔCˆDÝ¥ D¤J°Ñ 5Ô 5Ñ6Ô6ˆFŒLØˆMØð 	Ø—9’9‘;”;ÐØˆr'   )NNFrR   )rz   r    )NF)r   )F)rB  T)?ri   Ú
__module__Ú__qualname__Ú_formatr*   rC   rG   rP   r	   Ú__doc__rS   rX   rZ   r\   r^   ra   rd   rm   rp   rr   rt   rv   rx   rN   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Ý   r1   r=  rA  r2   Ú__classcell__)r�   s   @r%   r   r      sL  ø€ € € € € Ø€Gð&Eð &Eð &Eð &EðPXð Xð Xðð ð ð ð2ð 2ð 2ð ”oÔ-€G„OØ#Ô1Ô9€MÔðð ð ð!ð !ð !ð3ð 3ð 3ð 3ðð ð ð"ð "ð "ð%ð %ð %ðFð Fð FðIð Ið IðIð Ið IðIð Ið Ið$ð $ð $ð"ð "ð "ð!ð !ð !ð#ð #ð #ð,ð ,ð ,ð ,ð*Uð Uð Uð Uð Uð"7ð 7ð 7ð>ð >ð >ð?ð ?ð ?ð?ð ?ð ?ðð ð ð.2ð 2ð 2ð2ð 2ð 2ð0ð 0ð 0ð0ð 0ð 0ð	ð 	ð 	ð	ð 	ð 	ðNð Nð Nð Nð Nð" ð  ð  ð ð  ð  ð
$ð 
$ð 
$ðð ð ð>ð ð ðð ð ðð ð ðð ð ð,ð ð ðð ð ð$ð $ð $ðð ð ð%ð %ð %ð=ð =ð =ð =ð =ð =ð
ð ð ð ð   Ô)Ô1€IÔðð ð ð,ð ð ð
 ”<Ô'€D„Làðð ð ñ „[ððð ð ð ð ”MÔ)€E„Mðð ð ð ð
 ”MÔ)€E„Mð7ð 7ð 7ð 7ð
 ”MÔ)€E„Mðð ð ð0 ”^Ô+€F„Nð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	r'   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   )rK   s    r%   r   r     s   € õ. �a�Ñ$Ô$Ð$r'   c                   ó   — e Zd ZdZdS )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)ri   rF  rG  rI  r!   r'   r%   r   r   '  s   € € € € € ð1ð 1ð 1ð 1r'   r   c                   óP   — e Zd ZdZd„ Zd„ Z eee¬¦  «        Zd„ Zd„ Z	d„ Z
d„ Zd	S )
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                 ó|   — |                       |d¬¦  «                             | j        ¦  «        }|j        | _        d S )NFr   )ÚreshapeÚasformatr0   Ú__dict__)r;   r3   Ú
new_matrixs      r%   Ú	set_shapezdok_matrix.set_shape�  s5   € Ø—\’\ %¨e�\Ñ4Ô4×=Ò=¸d¼kÑJÔJˆ
Ø"Ô+ˆŒˆˆr'   c                 ó   — | j         S )zGet shape of a sparse matrix.)r-   rO   s    r%   Ú	get_shapezdok_matrix.get_shape”  s
   € àŒ{Ðr'   )ÚfgetÚfsetc                 ó4   — | j                              ¦   «         S rR   )r.   rd   rO   s    r%   rd   zdok_matrix.__reversed__š  s   € ØŒz×&Ò&Ñ(Ô(Ð(r'   c                 ó^   — t          |t          ¦  «        r| j        |j        z  S | j        |z  S rR   ©r+   r   r.   rè   s     r%   rm   zdok_matrix.__or__�  ó0   € Ý�e�YÑ'Ô'ð 	,Ø”: ¤Ñ+Ð+ØŒz˜EÑ!Ð!r'   c                 ó^   — t          |t          ¦  «        r| j        |j        z  S | j        |z  S rR   r[  rè   s     r%   rp   zdok_matrix.__ror__¢  r\  r'   c                 ó|   — t          |t          ¦  «        r| xj        |j        z  c_        n| xj        |z  c_        | S rR   r[  rè   s     r%   rr   zdok_matrix.__ior__§  s=   € Ý�e�YÑ'Ô'ð 	 ØˆJŒJ˜%œ+Ñ%ˆJŒJˆJàˆJŒJ˜%ÑˆJŒJØˆr'   N)ri   rF  rG  rI  rT  rV  Úpropertyr3   rd   rm   rp   rr   r!   r'   r%   r   r   \  s�   € € € € € ð1ð 1ðf,ð ,ð ,ðð ð ð ˆH˜)¨)Ð4Ñ4Ô4€Eð)ð )ð )ð"ð "ð "ð
"ð "ð "ð
ð ð ð ð r'   r   )rI  Ú__docformat__Ú__all__rÇ   Úwarningsr   Únumpyr4   Ú_matrixr   Ú_baser	   r
   r   Ú_indexr   Ú_sputilsr   r   r   r   r   r   r   r   r  r   r   r   r   r!   r'   r%   ú<module>rh     sž  ðØ %Ð %à%€à
7Ð
7Ð
7€à Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð à Ð Ð Ð Ð Ð Ø -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ø Ð Ð Ð Ð Ð ð;ð ;ð ;ð ;ð ;ð ;ð ;ð ;ð ;ð ;ð ;ð ;ð ;ð ;ð ;ð ;ð ;ð ;ð ;ð ;ðwð wð wð wð w�˜ Tñ wô wð wðt%ð %ð %ð62ð 2ð 2ð 2ð 2�	˜7ñ 2ô 2ð 2ðjPð Pð Pð Pð P�˜9ñ Pô Pð Pð Pð Pr'   