§
    fŠtj[[  ã                   óÜ   — d Z dZg d¢Zddl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é   )Úspmatrix)Ú_spbaseÚsparrayÚissparse)Ú
IndexMixin)ÚisdenseÚgetdtypeÚisshapeÚ	isintlikeÚisscalarlikeÚupcastÚupcast_scalarÚcheck_shapec                   ó¨  ‡ — e Zd ZdZdZdBddœd„Zd„ ZdCd„ZdCd	„Ze	j        j
        e_
        e	j        j
        e_
        d
„ Zd„ ZdCd„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z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$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„ Z4dEˆ fd6„	Z5dFd7„Z6e	j6        j
        e6_
        d8„ Z7e	j7        j
        e7_
        e8dGd:„¦   «         Z9dHd;„Z:e	j:        j
        e:_
        dHd<„Z;e	j;        j
        e;_
        dHd=„Z<e	j<        j
        e<_
        d>„ Z=e	j=        j
        e=_
        dIdA„Z>ˆ xZ?S )JÚ	_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    rQ|�|                     |d¬¦  «        }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      úO/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/scipy/sparse/_dok.pyú
<dictcomp>z&_dok_base.__init__.<locals>.<dictcomp>4   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__   s1  € ÝÔ˜˜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°5˜;Ñ9Ô9�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                 ón  — t          |t          ¦  «        r|                     ¦   «         }n|}|D ]ë\  }}t          |¦  «        r|fnt	          |¦  «        }t          |¦  «        | j        k    rt          d|› d�¦  «        ‚t          d„ t          || j
        ¦  «        D ¦   «         ¦  «        snt          || j
        ¦  «        D ]X\  }}t          |¦  «        st          d|› �¦  «        ‚|dk     rt          d|› d�¦  «        ‚||k    rt          d|› d	�¦  «        ‚ŒYŒì| j                             |¦  «         d
S )zÄUpdate values from a dict, sparse dok or iterable of 2-tuples like .items()

        Keys of the input must be sequences of nonnegative integers less than the shape
        for each axis.
        úIndex ú! length needs to match self.shapec              3   óZ   K  — | ]&\  }}t          |¦  «        od |cxk    o|k     nc V — Œ'dS ©r   N)r   )r#   ÚidxÚmax_idxs      r&   ú	<genexpr>z#_dok_base.update.<locals>.<genexpr>K   sa   è è € ð ð á �C˜õ ˜#‘”Ð5 1¨Ð#5Ð#5Ò#5Ð#5¨gÒ#5Ð#5Ð#5Ð#5ðð ð ð ð ð r(   z&integer keys required for update. Got r   znegative index z not allowed in updatezindex z is too large for self.shapeN)r-   ÚdictÚitemsr   r.   Úlenr:   Ú
IndexErrorÚallÚzipr*   r1   Úupdate)r>   ÚvalÚinputsÚkeyÚvalueÚindexrG   rH   s           r&   rP   z_dok_base.update<   sw  € õ �c�4Ñ Ô ð 	Ø—Y’Y‘[”[ˆFˆFàˆFà ð 	Uð 	U‰JˆC�Ý'¨™nœnÐ<�S�F�Fµ%¸±*´*ˆEÝ�5‰zŒz˜TœYÒ&Ð&Ý Ð!P¨#Ð!PÐ!PÐ!PÑQÔQÐQÝð ð å$'¨¨t¬zÑ$:Ô$:ðñ ô ñ ô ð Uõ
 %(¨¨t¬zÑ$:Ô$:ð Uð U‘L�C˜Ý$ S™>œ>ð YÝ(Ð)WÐRUÐ)WÐ)WÑXÔXÐXØ˜Q’w�wÝ(Ð)V¸3Ð)VÐ)VÐ)VÑWÔWÐWØ˜g’~�~Ý(Ð)S°#Ð)SÐ)SÐ)SÑTÔTÐTð &øð 	Œ
×Ò˜&Ñ!Ô!Ð!Ð!Ð!r(   c                 óL   — |�t          d¦  «        ‚t          | j        ¦  «        S )Nz7_getnnz over an axis is not implemented for DOK format.)ÚNotImplementedErrorrL   r1   ©r>   Úaxiss     r&   Ú_getnnzz_dok_base._getnnzZ   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 rF   r"   )r#   Úxs     r&   rI   z*_dok_base.count_nonzero.<locals>.<genexpr>f   s&   è è € Ð1Ð1˜a�1˜’6Ð1Ð1Ð1Ð1Ð1Ð1r(   )rW   ÚsumÚvaluesrX   s     r&   Úcount_nonzeroz_dok_base.count_nonzeroa   sD   € ØÐÝ%ØOñô ð õ Ð1Ð1 4§;¢;¡=¤=Ð1Ñ1Ô1Ñ1Ô1Ð1r(   c                 ó*   — t          | j        ¦  «        S ©N)rL   r1   ©r>   s    r&   Ú__len__z_dok_base.__len__k   s   € Ý�4”:‰ŒÐr(   c                 ó   — || j         v S rb   ©r1   ©r>   rS   s     r&   Ú__contains__z_dok_base.__contains__n   s   € Ø�d”jÐ Ð r(   c                ó8   — | j                              ||¦  «        S rb   )r1   Ú
setdefault)r>   rS   r   s      r&   rj   z_dok_base.setdefaultq   s   € ØŒz×$Ò$ S¨'Ñ2Ô2Ð2r(   c                ó   — | j         |= d S rb   rf   rg   s     r&   Ú__delitem__z_dok_base.__delitem__t   s   € ØŒJ�sˆOˆOˆOr(   c                 ó4   — | j                              ¦   «         S rb   )r1   Úclearrc   s    r&   rn   z_dok_base.clearw   ó   € ØŒz×ÒÑ!Ô!Ð!r(   c                ó    —  | j         j        |Ž S rb   )r1   Úpop)r>   Úargss     r&   rq   z_dok_base.popz   s   € ØˆtŒzŒ~˜tÐ$Ð$r(   c                 ó    — t          d¦  «        ‚)Nz*reversed is not defined for dok_array type)r9   rc   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__r9   ©r>   ÚotherÚ
type_namess      r&   Ú__or__z_dok_base.__or__€   ó>   € Ý˜T™
œ
Ô+ÐHÐHµ$°u±+´+Ô2FÐHÐHˆ
ÝÐG¸:ÐGÐGÑHÔHÐHr(   c                 ó|   — t          | ¦  «        j        › dt          |¦  «        j        › �}t          d|› �¦  «        ‚rv   rw   rz   s      r&   Ú__ror__z_dok_base.__ror__„   r~   r(   c                 ó|   — t          | ¦  «        j        › dt          |¦  «        j        › �}t          d|› �¦  «        ‚rv   rw   rz   s      r&   Ú__ior__z_dok_base.__ior__ˆ   r~   r(   c                 ó4   — | j                              ¦   «         S rb   )r1   Úpopitemrc   s    r&   r„   z_dok_base.popitemŒ   s   € ØŒz×!Ò!Ñ#Ô#Ð#r(   c                 ó4   — | j                              ¦   «         S rb   )r1   rK   rc   s    r&   rK   z_dok_base.items�   ro   r(   c                 ó4   — | j                              ¦   «         S rb   )r1   Úkeysrc   s    r&   r‡   z_dok_base.keys’   s   € ØŒz�ŠÑ Ô Ð r(   c                 ó4   — | j                              ¦   «         S rb   )r1   r_   rc   s    r&   r_   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   rC   rD   z%Index must be or consist of integers.Nc              3   ó6   K  — | ]\  }}|d k     r||z   n|V — ŒdS rF   r"   ©r#   r$   ÚMs      r&   rI   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 rF   r"   rŒ   s      r&   rI   z _dok_base.get.<locals>.<genexpr>¦   s2   è è € Ð@Ð@¡4 1 aˆq�1Šuˆ˜˜QšÐ@Ð@Ð@Ð@Ð@Ð@r(   zIndex out of bounds.r   )r1   r   r:   rL   rM   ÚAssertionErrorr9   r;   r.   rO   r*   ÚanyÚget)r>   rS   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                 óh   — | j                              || j                             d¦  «        ¦  «        S ©Nr   ©r1   r‘   r+   rx   )r>   rG   s     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>   rG   Ú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!   )r1   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)r6   r7   r:   r1   r‘   Úintr+   rx   ÚarrayÚ_dok_containerr*   ÚravelrL   r<   Úunravel_indexÚarangerO   )r>   rG   rQ   Ú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—   rL   Ú_get_columnXarrayr¥   r+   r‡   Údivmodr£   r1   )r>   r®   r¯   Ú	row_startÚrow_stopÚrow_stepÚ	col_startÚcol_stopÚcol_stepÚ	row_rangeÚ	col_ranger*   ÚnewdokrS   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 rb   )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¥   rL   r+   r<   r1   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   )Úmapr6   Ú
atleast_2dÚbroadcast_arraysr¥   r*   r+   Ú	itertoolsÚproductr—   r1   r‘   )r>   r®   r¯   r$   rÆ   rÄ   rS   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 rb   rf   )r>   rG   r]   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¦   rL   r6   Úfullr+   r;   rO   r1   )r>   rG   r]   Ú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 rb   rf   )r>   r®   r¯   r]   rS   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¦   r1   rP   rO   r6   Únonzero)r>   r®   r¯   r]   r$   rS   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#   rA   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 rb   r"   )r#   Úkr%   Únews      €r&   rI   z$_dok_base.__add__.<locals>.<genexpr>Q  s3   øè è € Ð EÐ E±T°Q¸ ! S¨¤V¨a¡Z Ð EÐ EÐ EÐ EÐ EÐ Er(   )r   r   r+   r¥   r*   rÛ   rÜ   r1   r‘   r
   r;   r   r   r3   rK   Útocoor:   rO   ÚcoordsÚdatar6   ÚerrstaterP   r   ÚtodenseÚNotImplemented)r>   r{   Ú	res_dtyperS   ÚaijÚo_itemsrð   s         @r&   Ú__add__z_dok_base.__add__9  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 rb   r"   ©r>   r{   s     r&   Ú__radd__z_dok_base.__radd__X  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 rb   r"   )r#   rï   r%   s      r&   rI   z$_dok_base.__neg__.<locals>.<genexpr>a  s,   è è € Ð:Ð:¡T Q¨˜!˜a˜R˜Ð:Ð:Ð:Ð:Ð:Ð:r(   )r+   ÚkindrW   r¥   r*   r1   rP   rK   ©r>   rð   s     r&   Ú__neg__z_dok_base.__neg__[  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 rb   r"   ©r#   rï   r%   r{   s      €r&   rI   z(_dok_base._mul_scalar.<locals>.<genexpr>h  s/   øè è € ÐBÐB©T¨Q°˜1˜a %™i˜.ÐBÐBÐBÐBÐBÐBr(   )r   r+   r¥   r*   r1   rP   rK   ©r>   r{   r÷   rð   s    `  r&   Ú_mul_scalarz_dok_base._mul_scalard  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 rb   rf   )r#   rï   r{   r>   s     €€r&   rI   z+_dok_base._matmul_vector.<locals>.<genexpr>u  s4   øè è € Ð$RÐ$RÈ T¤Z°¤]°U´[À´^Ñ%CÐ$RÐ$RÐ$RÐ$RÐ$RÐ$Rr(   c              3   ó4   •K  — | ]\  }}‰|         |z  V — Œd S rb   r"   r  s      €r&   rI   z+_dok_base._matmul_vector.<locals>.<genexpr>w  s/   øè è € Ð$KÐ$K±d°a¸ U¨1¤X°¡\Ð$KÐ$KÐ$KÐ$KÐ$KÐ$Kr(   rŸ   )r   r+   r:   r
   r3   r‡   rñ   rò   r^   r   rK   rö   r6   Úzerosr*   )r>   r{   r÷   r‡   Úresultr$   rÆ   r%   s   ``      r&   Ú_matmul_vectorz_dok_base._matmul_vectork  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 rb   r"   )r#   rÆ   r%   r{   s      €r&   rI   z0_dok_base._matmul_multivector.<locals>.<genexpr>†  s/   øè è € ÐCÐC©¨¨1�q˜5 œ8‘|ÐCÐCÐCÐCÐCÐCr(   r   rŸ   )	r   r+   r:   r^   r1   rK   r*   r6   r  )	r>   r{   Ú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 rb   r"   r  s      €r&   rI   z%_dok_base.__imul__.<locals>.<genexpr>’  ó/   øè è € ÐFÐF±°°A˜q ! e¡)˜nÐFÐFÐFÐFÐFÐFr(   ©r   r1   rP   rK   rö   rü   s    `r&   Ú__imul__z_dok_base.__imul__�  ó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 rb   r"   r  s      €r&   rI   z(_dok_base.__truediv__.<locals>.<genexpr>š  r  r(   )	r   r   r+   r¥   r*   r1   rP   rK   Ú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 rb   r"   r  s      €r&   rI   z)_dok_base.__itruediv__.<locals>.<genexpr>   r  r(   r  rü   s    `r&   Ú__itruediv__z_dok_base.__itruediv__ž  r  r(   c                 ó6   — t                                | ¦  «        S rb   )rJ   Ú
__reduce__rc   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 rb   r"   )r#   ÚleftÚrightrQ   s       r&   rI   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+   r1   rP   rK   )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                 ó†   — |                       | j        | j        ¬¦  «        }|j                             | j        ¦  «         |S ©NrŸ   )r¥   r*   r+   r1   rP   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#   rG   s     r&   rI   z%_dok_base.fromkeys.<locals>.<genexpr>Ì  s,   è è € Ð<Ð<¨3�#˜c™(œ( Q™,Ð<Ð<Ð<Ð<Ð<Ð<r(   r   rŸ   )
rJ   Úfromkeysr-   ÚnextÚiterr.   rO   r2  rx   r1   )ÚclsÚiterablerT   Útmpr*   r  s         r&   r3  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)r6   Úfromiter)r#   ÚixÚ	idx_dtypeÚnnzs     €€r&   rI   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)rA  r=   r*   r+   Ú_get_index_dtyper2  r6   r>  r_   r:   rO   r‡   r.   Úhas_canonical_format)r>   r   ró   Úindsrò   ÚAr@  rA  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 rb   r   ©r>   r   s     r&   r4   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:   rW   rñ   ÚtocscrG  s     r&   rI  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   r/   rL   r*   rW   r:   rš   r1   r0   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 r/  )r6   r+   r¥   r*   r¤   rš   r1   r_   rJ   rO   r   )r>   r+   Úcastingr   r  ró   s         r&   r5   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(   )NNFrb   )r‰   r!   )NF)r   )F)rO  T)@ry   Ú
__module__Ú__qualname__Ú_formatr/   r,   rP   rZ   r`   r   Ú__doc__rd   rh   rj   rl   rn   rq   rt   r}   r€   r‚   r„   rK   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-  r   Úclassmethodr3  rñ   r4   rI  rN  r5   Ú__classcell__)r&  s   @r&   r   r      sC  ø€ € € € € Ø€GØ€Ið%KÈTð %Kð %Kð %Kð %Kð %KðN"ð "ð "ð<ð ð ð ð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   )r]   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)ry   rR  rS  rU  r"   r(   r&   r   r   2  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Ë   Úasformatr3   Ú__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.)r0   rc   s    r&   Ú	get_shapezdok_matrix.get_shapeŸ  s
   € àŒ{Ðr(   )ÚfgetÚfsetc                 ó4   — | j                              ¦   «         S rb   )r1   rt   rc   s    r&   rt   zdok_matrix.__reversed__¥  s   € ØŒz×&Ò&Ñ(Ô(Ð(r(   c                 ó^   — t          |t          ¦  «        r| j        |j        z  S | j        |z  S rb   ©r-   r   r1   rü   s     r&   r}   zdok_matrix.__or__¨  ó0   € Ý�e�YÑ'Ô'ð 	,Ø”: ¤Ñ+Ð+ØŒz˜EÑ!Ð!r(   c                 ó^   — t          |t          ¦  «        r| j        |j        z  S | j        |z  S rb   rf  rü   s     r&   r€   zdok_matrix.__ror__­  rg  r(   c                 ó|   — t          |t          ¦  «        r| xj        |j        z  c_        n| xj        |z  c_        | S rb   rf  rü   s     r&   r‚   zdok_matrix.__ior__²  s=   € Ý�e�YÑ'Ô'ð 	 ØˆJŒJ˜%œ+Ñ%ˆJŒJˆJàˆJŒJ˜%ÑˆJŒJØˆr(   N)ry   rR  rS  rU  r_  ra  Úpropertyr*   rt   r}   r€   r‚   r"   r(   r&   r   r   g  s�   € € € € € ð1ð 1ðf,ð ,ð ,ðð ð ð ˆH˜)¨)Ð4Ñ4Ô4€Eð)ð )ð )ð"ð "ð "ð
"ð "ð "ð
ð ð ð ð r(   r   )rU  Ú__docformat__Ú__all__rÛ   Únumpyr6   Ú_matrixr   Ú_baser   r	   r
   Ú_indexr   Ú_sputilsr   r   r   r   r   r   r   r   rJ   r   r   r   r   r"   r(   r&   ú<module>rr     sŒ  ðØ %Ð %à%€à
7Ð
7Ð
7€à Ð Ð Ð Ø Ð Ð Ð à Ð Ð Ð Ð Ð Ø -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ø Ð Ð Ð Ð Ð ð;ð ;ð ;ð ;ð ;ð ;ð ;ð ;ð ;ð ;ð ;ð ;ð ;ð ;ð ;ð ;ð ;ð ;ð ;ð ;ðCð Cð Cð Cð C�˜ Tñ Cô Cð CðL%ð %ð %ð62ð 2ð 2ð 2ð 2�	˜7ñ 2ô 2ð 2ðjPð Pð Pð Pð P�˜9ñ Pô Pð Pð Pð Pr(   