§
    µ³Ùgã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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ZdCddœd„Zd„ ZdDd„ZdDd	„Ze	j        j
        e_
        e	j        j
        e_
        d
„ Zd„ ZdDd„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdEd„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/d0„ Z0d1„ Z1d2„ Z2d3„ Z3d4„ Z4dFˆ fd6„	Z5dGd7„Z6e	j6        j
        e6_
        d8„ Z7d9„ Z8e	j8        j
        e8_
        e9dHd;„¦   «         Z:dId<„Z;e	j;        j
        e;_
        dId=„Z<e	j<        j
        e<_
        dId>„Z=e	j=        j
        e=_
        d?„ Z>e	j>        j
        e>_
        dJdB„Z?ˆ xZ@S )KÚ	_dok_baseÚdok)r   é   NF©Úmaxprintc                ó¨  — t          j        | ||¬¦  «         t          |t          ¦  «        rUt	          || j        ¬¦  «        r?t          || j        ¬¦  «        | _        i | _        t          |t          ¬¦  «        | _        d S t          |¦  «        r�|j        | j        k    r|r|                     ¦   «         n|}n|                     ¦   «         }|�|                     |d¬¦  «        }|j        | _        t          |j        | j        ¬¦  «        | _        t          |j        ¦  «        | _        d S 	 t%          j        |¦  «        }n"# t(          $ r}t+          d¦  «        |‚d }~ww xY w|j        dk    rt/          d|j        › d	�¦  «        ‚|j        d
k    rO|�|                     |¦  «        }d„ t1          |¦  «        D ¦   «         | _        t          |j        ¦  «        | _        nO|                      |||¬¦  «                             ¦   «         }|j        | _        t          |j        ¦  «        | _        t          |j        | j        ¬¦  «        | _        d S )Nr   ©Úallow_nd)ÚdefaultF©ÚcopyzInvalid input format.r   zDOK arrays don't yet support zD input.r   c                 ó&   — i | ]\  }}|d k    ¯||“ŒS ©r   © )Ú.0ÚiÚvs      úG/granary/edev/quantum/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 À&À&À&ó    ©Ú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Úds           r'   r-   z_dok_base.__init__   s-  € ÝÔ˜˜t¨hÐ7Ñ7Ô7Ð7å�d�EÑ"Ô"ð "	K¥w¨t¸d¼nÐ'MÑ'MÔ'Mð "	KÝ% d°T´^ÐDÑDÔDˆDŒKØˆDŒJÝ! %µÐ7Ñ7Ô7ˆDŒJˆJˆJÝ�d‰^Œ^ð 	KØŒ{˜dœkÒ)Ð)Ø&*Ð4�t—y’y‘{”{�{°��à—z’z‘|”|�àÐ Ø—{’{ 5¨u�{Ñ5Ô5�àœˆDŒJÝ% d¤j¸4¼>ÐJÑJÔJˆDŒKÝ! $¤*Ñ-Ô-ˆDŒJˆJˆJð@Ý”z $Ñ'Ô'��øÝð @ð @ð @ÝÐ 7Ñ8Ô8¸aÐ?øøøøð@øøøð Œy˜1Š}ˆ}Ý Ð!TÀÄÐ!TÐ!TÐ!TÑUÔUÐUàŒy˜AŠ~ˆ~ØÐ$ØŸ;š; uÑ-Ô-�DØIÐI­y¸©¬ÐIÑIÔI�”
Ý% d¤jÑ1Ô1�”
�
à×'Ò'¨°EÀÐ'ÑGÔG×MÒMÑOÔO�ØœW�”
Ý% a¤gÑ.Ô.�”
Ý% d¤j¸4¼>ÐJÑJÔJˆDŒKˆKˆKs   Ä/E Å
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.)rD   Úlenr2   ©r?   Úaxiss     r'   Ú_getnnzz_dok_base._getnnzA   s-   € ØÐÝ%ØIñô ð õ �4”:‰ŒÐr)   c                 óz   — |�t          d¦  «        ‚t          d„ |                      ¦   «         D ¦   «         ¦  «        S )Nz=count_nonzero over an axis is not implemented for DOK format.c              3   ó"   K  — | ]
}|d k    V — ŒdS ©r   Nr#   )r$   Úxs     r'   ú	<genexpr>z*_dok_base.count_nonzero.<locals>.<genexpr>M   s&   è è € Ð1Ð1˜a�1˜’6Ð1Ð1Ð1Ð1Ð1Ð1r)   )rD   ÚsumÚvaluesrI   s     r'   Úcount_nonzeroz_dok_base.count_nonzeroH   sD   € ØÐÝ%ØOñô ð õ Ð1Ð1 4§;¢;¡=¤=Ð1Ñ1Ô1Ñ1Ô1Ð1r)   c                 ó*   — t          | j        ¦  «        S ©N)rH   r2   ©r?   s    r'   Ú__len__z_dok_base.__len__R   s   € Ý�4”:‰ŒÐr)   c                 ó   — || j         v S rU   ©r2   ©r?   Úkeys     r'   Ú__contains__z_dok_base.__contains__U   s   € Ø�d”jÐ Ð r)   c                ó8   — | j                              ||¦  «        S rU   )r2   Ú
setdefault)r?   r[   r   s      r'   r^   z_dok_base.setdefaultX   s   € ØŒz×$Ò$ S¨'Ñ2Ô2Ð2r)   c                ó   — | j         |= d S rU   rY   rZ   s     r'   Ú__delitem__z_dok_base.__delitem__[   s   € ØŒJ�sˆOˆOˆOr)   c                 ó4   — | j                              ¦   «         S rU   )r2   ÚclearrV   s    r'   rb   z_dok_base.clear^   ó   € ØŒz×ÒÑ!Ô!Ð!r)   c                ó    —  | j         j        |Ž S rU   )r2   Úpop)r?   Úargss     r'   re   z_dok_base.popa   s   € ØˆtŒzŒ~˜tÐ$Ð$r)   c                 ó    — t          d¦  «        ‚)Nz*reversed is not defined for dok_array type)r:   rV   s    r'   Ú__reversed__z_dok_base.__reversed__d   s   € ÝÐDÑEÔEÐEr)   c                 ó|   — t          | ¦  «        j        › dt          |¦  «        j        › �}t          d|› �¦  «        ‚©Nz and z unsupported operand type for |: ©ÚtypeÚ__name__r:   ©r?   ÚotherÚ
type_namess      r'   Ú__or__z_dok_base.__or__g   ó>   € Ý˜T™
œ
Ô+ÐHÐHµ$°u±+´+Ô2FÐHÐHˆ
ÝÐG¸:ÐGÐGÑHÔHÐHr)   c                 ó|   — t          | ¦  «        j        › dt          |¦  «        j        › �}t          d|› �¦  «        ‚rj   rk   rn   s      r'   Ú__ror__z_dok_base.__ror__k   rr   r)   c                 ó|   — t          | ¦  «        j        › dt          |¦  «        j        › �}t          d|› �¦  «        ‚rj   rk   rn   s      r'   Ú__ior__z_dok_base.__ior__o   rr   r)   c                 ó4   — | j                              ¦   «         S rU   )r2   ÚpopitemrV   s    r'   rx   z_dok_base.popitems   s   € ØŒz×!Ò!Ñ#Ô#Ð#r)   c                 ó4   — | j                              ¦   «         S rU   )r2   ÚitemsrV   s    r'   rz   z_dok_base.itemsv   rc   r)   c                 ó4   — | j                              ¦   «         S rU   )r2   ÚkeysrV   s    r'   r|   z_dok_base.keysy   s   € ØŒz�ŠÑ Ô Ð r)   c                 ó4   — | j                              ¦   «         S rU   )r2   rR   rV   s    r'   rR   z_dok_base.values|   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 rN   r#   ©r$   r%   ÚMs      r'   rP   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 rN   r#   r�   s      r'   rP   z _dok_base.get.<locals>.<genexpr>�   s2   è è € Ð@Ð@¡4 1 aˆq�1Šuˆ˜˜QšÐ@Ð@Ð@Ð@Ð@Ð@r)   zIndex out of bounds.r   )r2   r   r;   rH   Ú
IndexErrorÚAssertionErrorr:   r<   r/   Úzipr+   ÚanyÚget)r?   r[   r   r%   rA   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                 óh   — | j                              || j                             d¦  «        ¦  «        S ©Nr   ©r2   rˆ   r,   rl   )r?   Úidxs     r'   Ú_get_intz_dok_base._get_int”   s&   € ØŒz�~Š~˜c 4¤:§?¢?°1Ñ#5Ô#5Ñ6Ô6Ð6r)   c                 ó”   — t          |                     | j        d         ¦  «        Ž }|                      t	          |¦  «        ¦  «        S rŠ   )ÚrangeÚindicesr+   Ú
_get_arrayÚlist)r?   rŒ   Úi_ranges      r'   Ú
_get_slicez_dok_base._get_slice—   s6   € Ý˜Ÿš T¤Z°¤]Ñ3Ô3Ð4ˆØ�Š�t G™}œ}Ñ-Ô-Ð-r)   c                 óø  ‡ — t          j        |¦  «        }|j        dk    r[‰ j                             t          |¦  «        ‰ j                             d¦  «        ¦  «        }t          j        |‰ j        ¬¦  «        S ‰  	                    |j
        ‰ j        ¬¦  «        }ˆ fd„|                     ¦   «         D ¦   «         }|r»t          |j
        ¦  «        dk    r"t          |¦  «        D ]\  }}|r
||j        |<   Œn�t          j        t          j        t          |¦  «        ¦  «        |j
        ¦  «        }t          |¦  «        dk    r|d         nt!          |Ž }t!          ||d¬¦  «        D ]\  }}|r
||j        |<   Œ|S )Nr   )Ústype©r,   c                 óF   •— g | ]}‰j                              |d ¦  «        ‘ŒS r"   )r2   rˆ   )r$   r%   r?   s     €r'   ú
<listcomp>z(_dok_base._get_array.<locals>.<listcomp>¡   s)   ø€ Ð>Ð>Ð>¨Q�D”J—N’N 1 aÑ(Ô(Ð>Ð>Ð>r)   r   T)Ústrict)r7   r8   r;   r2   rˆ   Úintr,   rl   ÚarrayÚ_dok_containerr+   ÚravelrH   r=   Úunravel_indexÚaranger†   )r?   rŒ   rE   Únew_dokÚdok_valsr%   r&   Únew_idxs   `       r'   r‘   z_dok_base._get_array›   sk  ø€ ÝŒj˜‰oŒoˆØŒ8�qŠ=ˆ=Ø”*—.’.¥ S¡¤¨4¬:¯?ª?¸1Ñ+=Ô+=Ñ>Ô>ˆCÝ”8˜C t¤zÐ2Ñ2Ô2Ð2Ø×%Ò% c¤i°t´zÐ%ÑBÔBˆØ>Ð>Ð>Ð>°#·)²)±+´+Ð>Ñ>Ô>ˆØð 
	-Ý�3”9‰~Œ~ Ò"Ð"Ý% hÑ/Ô/ð -ð -‘D�A�qØð -Ø+,˜œ aÑ(øð-õ Ô*­2¬9µS¸±]´]Ñ+CÔ+CÀSÄYÑOÔO�Ý(+¨G©¬¸Ò(9Ð(9˜' !œ*˜*½sÀG¸}�Ý ¨¸$Ð?Ñ?Ô?ð -ð -‘D�A�qØð -Ø+,˜œ aÑ(øØˆr)   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—   )r�   r+   r�   rH   Ú_get_columnXarrayr�   r,   r|   Údivmodr›   r2   )r?   r¦   r§   Ú	row_startÚrow_stopÚrow_stepÚ	col_startÚcol_stopÚcol_stepÚ	row_rangeÚ	col_ranger+   Únewdokr[   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                 óT   — |                       |g|                     ¦   «         ¦  «        S rU   )r²   rž   r¥   s      r'   Ú_get_intXarrayz_dok_base._get_intXarrayÐ   s"   € Ø×%Ò% s e¨S¯YªY©[¬[Ñ9Ô9Ð9r)   c                 ó¢   — |                       |                     ¦   «         |g¦  «        }|j        dk    r|                     |j        ¦  «        S |S rª   )r²   rž   r;   Úreshaper+   )r?   r¦   r§   Úress       r'   Ú_get_arrayXintz_dok_base._get_arrayXintÓ   sE   € Ø×$Ò$ S§Y¢Y¡[¤[°3°%Ñ8Ô8ˆØŒ8�aŠ<ˆ<Ø—;’;˜sœyÑ)Ô)Ð)Øˆ
r)   c                 ó–   — t          t          |                     | j        d         ¦  «        Ž ¦  «        }|                      ||¦  «        S rŠ   ©r’   r�   r�   r+   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�   rH   r,   r=   r2   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   )Úmapr7   Ú
atleast_2dÚbroadcast_arraysr�   r+   r,   Ú	itertoolsÚproductr�   r2   rˆ   )r?   r¦   r§   r%   r¾   r¼   r[   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                 óH   — |r|| j         |<   d S || j         v r
| j         |= d S d S rU   rY   )r?   rŒ   rO   s      r'   Ú_set_intz_dok_base._set_intø   s;   € Øð 	 ØˆDŒJ�s‰OˆOˆOØ�D”JÐÐØ”
˜3���ð Ðr)   c                 ó¢  — |                      ¦   «         }|                      ¦   «         }t          |¦  «        t          |¦  «        k    rRt          |¦  «        dk    r0t          j        t          |¦  «        |d         | j        ¬¦  «        }nt          d¦  «        ‚t          ||¦  «        D ]#\  }}|r|| j        |<   Œ|| j        v r| j        |= Œ$d S )Nr   r   r—   z*Need len(index)==len(data) or len(data)==1)rž   rH   r7   Úfullr,   r<   r†   r2   )r?   rŒ   rO   Úidx_setÚx_setr%   r&   s          r'   Ú
_set_arrayz_dok_base._set_arrayþ   sÆ   € Ø—)’)‘+”+ˆØ—’‘	”	ˆÝˆw‰<Œ<�3˜u™:œ:Ò%Ð%Ý�5‰zŒz˜QŠˆÝœ¥ G¡¤¨e°A¬h¸d¼jÐIÑIÔI��åÐKÑLÔLÐLÝ˜ Ñ'Ô'ð 	"ð 	"‰DˆAˆqØð "Ø !�”
˜1‘�Ø�d”j��Ø”J˜q�Møð		"ð 	"r)   c                 óP   — ||f}|r|| j         |<   d S || j         v r
| j         |= d S d S rU   rY   )r?   r¦   r§   rO   r[   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›   rž   r2   rF   r†   r7   Únonzero)r?   r¦   r§   rO   r%   r[   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$   rB   s     r'   r™   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 rU   r#   )r$   Úkr&   Únews      €r'   rP   z$_dok_base.__add__.<locals>.<genexpr>8  s3   øè è € Ð EÐ E±T°Q¸ ! S¨¤V¨a¡Z Ð EÐ EÐ EÐ EÐ EÐ Er)   )r   r   r,   r�   r+   rÓ   rÔ   r2   rˆ   r   r<   r   r    r4   rz   Útocoor;   r†   ÚcoordsÚdatar7   ÚerrstaterF   r   ÚtodenseÚNotImplemented)r?   ro   Ú	res_dtyper[   Ú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 rU   r#   ©r?   ro   s     r'   Ú__radd__z_dok_base.__radd__?  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 rU   r#   )r$   rç   r&   s      r'   rP   z$_dok_base.__neg__.<locals>.<genexpr>H  s,   è è € Ð:Ð:¡T Q¨˜!˜a˜R˜Ð:Ð:Ð:Ð:Ð:Ð:r)   )r,   ÚkindrD   r�   r+   r2   rF   rz   ©r?   rè   s     r'   Ú__neg__z_dok_base.__neg__B  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 rU   r#   ©r$   rç   r&   ro   s      €r'   rP   z(_dok_base._mul_scalar.<locals>.<genexpr>O  s/   øè è € ÐBÐB©T¨Q°˜1˜a %™i˜.ÐBÐBÐBÐBÐBÐBr)   )r   r,   r�   r+   r2   rF   rz   ©r?   ro   rï   rè   s    `  r'   Ú_mul_scalarz_dok_base._mul_scalarK  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 rU   rY   )r$   rç   ro   r?   s     €€r'   rP   z+_dok_base._matmul_vector.<locals>.<genexpr>\  s4   øè è € Ð$RÐ$RÈ T¤Z°¤]°U´[À´^Ñ%CÐ$RÐ$RÐ$RÐ$RÐ$RÐ$Rr)   c              3   ó4   •K  — | ]\  }}‰|         |z  V — Œd S rU   r#   rþ   s      €r'   rP   z+_dok_base._matmul_vector.<locals>.<genexpr>^  s/   øè è € Ð$KÐ$K±d°a¸ U¨1¤X°¡\Ð$KÐ$KÐ$KÐ$KÐ$KÐ$Kr)   r—   )r   r,   r;   r   r4   r|   ré   rê   rQ   r   rz   rî   r7   Úzerosr+   )r?   ro   rï   r|   Úresultr%   r¾   r&   s   ``      r'   Ú_matmul_vectorz_dok_base._matmul_vectorR  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 rU   r#   )r$   r¾   r&   ro   s      €r'   rP   z0_dok_base._matmul_multivector.<locals>.<genexpr>m  s/   øè è € ÐCÐC©¨¨1�q˜5 œ8‘|ÐCÐCÐCÐCÐCÐCr)   r   r—   )	r   r,   r;   rQ   r2   rz   r+   r7   r  )	r?   ro   Úresult_dtyper‚   Ú	new_shaper  r%   r¾   r&   s	    `       r'   Ú_matmul_multivectorz_dok_base._matmul_multivectorh  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 rU   r#   rþ   s      €r'   rP   z%_dok_base.__imul__.<locals>.<genexpr>y  ó/   øè è € ÐFÐF±°°A˜q ! e¡)˜nÐFÐFÐFÐFÐFÐFr)   ©r   r2   rF   rz   rî   rô   s    `r'   Ú__imul__z_dok_base.__imul__w  ó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 rU   r#   rþ   s      €r'   rP   z(_dok_base.__truediv__.<locals>.<genexpr>�  r  r)   )	r   r   r,   r�   r+   r2   rF   rz   Útocsrrÿ   s    `  r'   Ú__truediv__z_dok_base.__truediv__}  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 rU   r#   rþ   s      €r'   rP   z)_dok_base.__itruediv__.<locals>.<genexpr>‡  r  r)   r  rô   s    `r'   Ú__itruediv__z_dok_base.__itruediv__…  r  r)   c                 ó6   — t                                | ¦  «        S rU   )ÚdictÚ
__reduce__rV   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)r;   ÚsuperÚdiagonalr<   )r?   rç   Ú	__class__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 rU   r#   ©r$   ÚleftÚrightrE   s       r'   rP   z&_dok_base.transpose.<locals>.<genexpr>£  s4   è è € ÐVÐVÑ3E±=°D¸%À#˜E 4˜=¨#Ð.ÐVÐVÐVÐVÐVÐVr)   )	r;   r    r<   r+   r�   r,   r2   rF   rz   )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#   )r7   Ú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   ÚDeprecationWarningr;   ré   rë   Ú	conjugater+   r�   r,   rz   r2   )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�   r+   r,   r2   rF   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'   rP   z%_dok_base.fromkeys.<locals>.<genexpr>É  s,   è è € Ð<Ð<¨3�#˜c™(œ( Q™,Ð<Ð<Ð<Ð<Ð<Ð<r)   r   r—   )
r  Úfromkeysr.   ÚnextÚiterr/   r†   r4  rl   r2   )ÚclsÚiterableÚvalueÚtmpr+   r  s         r'   r5  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)r7   Úfromiter)r$   ÚixÚ	idx_dtypeÚnnzs     €€r'   rP   z"_dok_base.tocoo.<locals>.<genexpr>Ù  s4   øè è € ÐRÐRÀr•r”{ 2¨Y¸cÐBÑBÔBÐRÐRÐRÐRÐRÐRr)   r*   T)rD  r>   r+   r,   Ú_get_index_dtyper4  r7   rA  rR   r;   r†   r|   r/   Úhas_canonical_format)r?   r    rë   Úindsrê   ÚArC  rD  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 rU   r   ©r?   r    s     r'   r5   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   )r;   rD   ré   ÚtocscrJ  s     r'   rL  z_dok_base.tocscç  sA   € ØŒ9˜Š>ˆ>Ý%Ð&MÑNÔNÐNØ�zŠz˜uˆzÑ%Ô%×+Ò+°Ð+Ñ6Ô6Ð6r)   c                 óÊ  — t          || j        ¬¦  «        }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   r0   rH   r+   rD   r;   r’   r2   r1   r|   )r?   r+   ÚnewNr%   ÚnewMr‚   r&  r¾   s           r'   Úresizez_dok_base.resizeî  sô   € Ý˜E¨D¬NÐ;Ñ;Ô;ˆÝˆ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 r1  )r7   r,   r�   r+   rœ   r’   r2   rR   r  r†   r    )r?   r,   Úcastingr    r  rë   s         r'   r6   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)   )NNFrU   )r~   r"   )NF)r   )F)rR  T)Arm   Ú
__module__Ú__qualname__Ú_formatr0   r-   rF   rK   rS   r	   Ú__doc__rW   r\   r^   r`   rb   re   rh   rq   rt   rv   rx   rz   r|   rR   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    Úclassmethodr5  ré   r5   rL  rQ  r6   Ú__classcell__)r  s   @r'   r   r      sU  ø€ € € € € Ø€GØ€Ið%KÈTð %Kð %Kð %Kð %Kð %KðNXð Xð Xðð ð ð ð2ð 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ð$ð $ð $ð"ð "ð "ð!ð !ð !ð#ð #ð #ð,ð ,ð ,ð ,ð*7ð 7ð 7ð.ð .ð .ðð ð ð*>ð >ð >ð?ð ?ð ?ð?ð ?ð ?ðð ð ð.:ð :ð :ðð ð ð0ð 0ð 0ð0ð 0ð 0ð	ð 	ð 	ð	ð 	ð 	ð ð  ð  ð"ð "ð "ð ð  ð  ð
$ð 
$ð 
$ðð ð ð>ð ð ðð ð ðð ð ðð ð ð,ð ð ðð ð ð$ð $ð $ðð ð ð%ð %ð %ð=ð =ð =ð =ð =ð =ð
ð ð ð ð   Ô)Ô1€IÔðð ð ð,ð ð ð
 ”<Ô'€D„Làðð ð ñ „[ððð ð ð ð ”MÔ)€E„Mðð ð ð ð
 ”MÔ)€E„Mð7ð 7ð 7ð 7ð
 ”MÔ)€E„Mðð ð ð. ”^Ô+€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   )rO   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)rm   rU  rV  rX  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   )rÃ   Úasformatr4   Ú__dict__)r?   r+   Ú
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.)r1   rV   s    r'   Ú	get_shapezdok_matrix.get_shapeœ  s
   € àŒ{Ðr)   )ÚfgetÚfsetc                 ó4   — | j                              ¦   «         S rU   )r2   rh   rV   s    r'   rh   zdok_matrix.__reversed__¢  s   € ØŒz×&Ò&Ñ(Ô(Ð(r)   c                 ó^   — t          |t          ¦  «        r| j        |j        z  S | j        |z  S rU   ©r.   r   r2   rô   s     r'   rq   zdok_matrix.__or__¥  ó0   € Ý�e�YÑ'Ô'ð 	,Ø”: ¤Ñ+Ð+ØŒz˜EÑ!Ð!r)   c                 ó^   — t          |t          ¦  «        r| j        |j        z  S | j        |z  S rU   ri  rô   s     r'   rt   zdok_matrix.__ror__ª  rj  r)   c                 ó|   — t          |t          ¦  «        r| xj        |j        z  c_        n| xj        |z  c_        | S rU   ri  rô   s     r'   rv   zdok_matrix.__ior__¯  s=   € Ý�e�YÑ'Ô'ð 	 ØˆJŒJ˜%œ+Ñ%ˆJŒJˆJàˆJŒJ˜%ÑˆJŒJØˆr)   N)rm   rU  rV  rX  rb  rd  Úpropertyr+   rh   rq   rt   rv   r#   r)   r'   r   r   d  s�   € € € € € ð1ð 1ðf,ð ,ð ,ðð ð ð ˆH˜)¨)Ð4Ñ4Ô4€Eð)ð )ð )ð"ð "ð "ð
"ð "ð "ð
ð ð ð ð r)   r   )rX  Ú__docformat__Ú__all__rÓ   Úwarningsr   Únumpyr7   Ú_matrixr   Ú_baser	   r
   r   Ú_indexr   Ú_sputilsr   r   r   r   r   r   r   r   r  r   r   r   r   r#   r)   r'   ú<module>rv     sž  ðØ %Ð %à%€à
7Ð
7Ð
7€à Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð à Ð Ð Ð Ð Ð Ø -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ø Ð Ð Ð Ð Ð ð;ð ;ð ;ð ;ð ;ð ;ð ;ð ;ð ;ð ;ð ;ð ;ð ;ð ;ð ;ð ;ð ;ð ;ð ;ð ;ðð ð ð ð �˜ Tñ ô ð ðD%ð %ð %ð62ð 2ð 2ð 2ð 2�	˜7ñ 2ô 2ð 2ðjPð Pð Pð Pð P�˜9ñ Pô Pð Pð Pð Pr)   