ó
    Û“,j88  ã                   óT  • S r SSKJr  SSKrSSKJrJr  SSKJ	r
  SSKr/ SQr " S S\5      rS=S	 jr " S
 S\5      r " S S\5      rS>S jr " S S\5      rS r " S S\5      rS?S jr " S S\5      rS?S jr " S S\5      rS@S jr " S S\5      r " S S\5      r " S S \5      r " S! S"\5      rS@S# jr " S$ S%\5      rSAS& jr  " S' S(\5      r!S) r" " S* S+\5      r# " S, S-\5      r$S. r%S/ r&S0 r'S1 r(S@S2 jr)S3 r*S4 r+S5 r, " S6 S7\5      r-S?S8 jr.S?S9 jr/S: r0S; r1S< r2g)BzR
Author(s): Matthew Loper

See LICENCE.txt for licensing and contact information.
é   )ÚChé    N)ÚrowÚcol)ÚsortÚtileÚrepeatÚ	transposeÚrollaxisÚswapaxesÚreshapeÚSelectÚ
atleast_1dÚ
atleast_2dÚ
atleast_3dÚsqueezeÚexpand_dimsÚfliplrÚflipudÚconcatenateÚvstackÚhstackÚdstackÚravelÚdiagÚdiagflatÚrollÚrot90c                   ó   • \ rS rSrSrg)ÚPermuteé   © N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__static_attributes__r"   ó    ÚŸC:\Users\johnn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\chumpy/reordering.pyr    r       s   † Úr(   r    c                 óz   • US:X  d   e[        U [        R                  5      (       a  [        U 5      n[	        U SS9$ )NÚC)éÿÿÿÿ©ÚaÚnewshape)Ú
isinstanceÚnpÚndarrayr   r   )r.   ÚorderÚselfs      r)   r   r      s5   € Ø�#‹:Ðˆ:Ü�1”b—j‘j×!Ñ!Ü�!‹uˆä�Q Ñ'Ð'r(   c                   ó*   • \ rS rSrSrS rS rS rSrg)ÚReorderé   ©r.   c                 ó6   • [        U S5      (       d  0 U l        g g )NÚ	dr_lookup)Úhasattrr:   ©r4   Úwhichs     r)   Ú
on_changedÚReorder.on_changed   s   € Ü�t˜[×)Ñ)ØˆD�Nð *r(   c                 óL   • U R                  U R                  R                  5      $ ©N)Úreorderr.   Úr©r4   s    r)   Ú	compute_rÚReorder.compute_r#   s   € Ø�|‰|˜DŸF™FŸH™HÓ%Ð%r(   c                 óz  ^ • UT R                   L Ga*   T R                   nUR                  nUR                  nT R                  5       nUT R                  ;  d  UcÓ  T R                  [        R                  " U5      R                  U5      5      n[        R                  " UR                  5      n[        R                  " U5      n	UR                  n
[        R                  " X˜UR                  5       44T R                  R                  UR                  R                  4S9T R                  U'   T R                  U   $ g )N©Úshape)r.   Úscipy.sparse.linalg.interfaceÚLinearOperatorÚsizerI   Úunique_reorder_idr:   rB   r1   Úaranger   Ú	ones_likeÚspÚ
csc_matrixr   rC   )r4   ÚwrtrK   r.   ÚaszÚashapeÚkeyÚJSÚISÚdatarI   s   `          r)   Úcompute_dr_wrtÚReorder.compute_dr_wrt&   sð   ø€ Ø�$—&‘&‹=Øð —F‘F�Ø—f‘f�ØŸ™�Ø×,Ñ,Ó.�Ø˜dŸn™nÓ,°±ØŸ™¤b§i¢i°£n×&<Ñ&<¸VÓ&DÓE�BÜŸš 2§7¡7Ó+�BÜŸ<š<¨Ó+�DØŸH™H�EÜ*,¯-ª-¸ÀBÇHÁHÃJÐ?OÐ8PÐY]×Y_ÑY_×YdÑYdÐfi×fkÑfk×fpÑfpÐXqÑ*r�D—N‘N 3Ñ'Ø—~‘~ cÑ*Ð*ð r(   )r:   N)	r#   r$   r%   r&   Údtermsr>   rE   rY   r'   r"   r(   r)   r6   r6      s   † Ø€Fò ò&õ+r(   r6   c                   ó(   • \ rS rSrSrSrS rS rSrg)ÚSorté8   r.   )ÚaxisÚkindr3   c                 ón   • [         R                  " XR                  U R                  U R                  5      $ rA   )r1   r   r_   r`   r3   ©r4   r.   s     r)   rB   ÚSort.reorder<   s    € ¤§¢¨¯I©I°t·y±yÀ$Ç*Á*Ó!MÐMr(   c                 ó   • g rA   r"   rD   s    r)   rM   ÚSort.unique_reorder_id=   s   € ¨r(   r"   N©	r#   r$   r%   r&   r[   ÚtermsrB   rM   r'   r"   r(   r)   r]   r]   8   s   † Ø€FØ#€EâMÝ,r(   r]   c                 ó   • [        XX#S9$ )N©r.   r_   r`   r3   )r]   ri   s       r)   r   r   ?   s   € Ü�! TÑ7Ð7r(   c                   ó,   • \ rS rSrSrSrSrS rS rSr	g)	ÚTileéC   r8   )Úreps©r.   rm   c                 óB   • [         R                  " XR                  5      $ rA   )r1   r   rm   rb   s     r)   rB   ÚTile.reorderH   s   € ¤§¢¨¯I©IÓ!6Ð6r(   c                 óX   • U R                   R                  [        U R                  5      4$ rA   )r.   rI   Útuplerm   rD   s    r)   rM   ÚTile.unique_reorder_idI   s   € ¨¯©¯©´u¸T¿Y¹YÓ7GÐ(HÐ!Hr(   r"   N©
r#   r$   r%   r&   r[   rg   Ú
term_orderrB   rM   r'   r"   r(   r)   rk   rk   C   s   † Ø€FØ€EØ€Jâ6ÝHr(   rk   c                 ó   • [        XS9$ )Nrn   )rk   )ÚArm   s     r)   r   r   K   s   € Ü�!ÑÐr(   c                   ó(   • \ rS rSrSrSrS rS rSrg)ÚDiagéO   r8   ©Úkc                 óB   • [         R                  " XR                  5      $ rA   )r1   r   r|   rb   s     r)   rB   ÚDiag.reorderS   s   € ¤§¢¨¯F©FÓ!3Ð3r(   c                 óF   • U R                   R                  U R                  4$ rA   ©r.   rI   r|   rD   s    r)   rM   ÚDiag.unique_reorder_idT   ó   € ¨¯©¯©°t·v±vÐ(>Ð!>r(   r"   Nrf   r"   r(   r)   ry   ry   O   s   † Ø€FØ€Eâ3Ý>r(   ry   c                 ó   • [        XS9$ ©N)r.   r|   )ry   ©Úvr|   s     r)   r   r   V   s   € Ü�!‰>Ðr(   c                   ó(   • \ rS rSrSrSrS rS rSrg)ÚDiagFlatéY   r8   r{   c                 óB   • [         R                  " XR                  5      $ rA   )r1   r   r|   rb   s     r)   rB   ÚDiagFlat.reorder]   s   € ¤§¢¨Q·±Ó!7Ð7r(   c                 óF   • U R                   R                  U R                  4$ rA   r€   rD   s    r)   rM   ÚDiagFlat.unique_reorder_id^   r‚   r(   r"   Nrf   r"   r(   r)   rˆ   rˆ   Y   s   † Ø€FØ€Eâ7Ý>r(   rˆ   c                 ó   • [        XS9$ r„   )rˆ   r…   s     r)   r   r   `   s   € Ü�aÑÐr(   c                   ó(   • \ rS rSrSrSrS rS rSrg)ÚRepeatéd   r8   ©Úrepeatsr_   c                 óX   • [         R                  " XR                  U R                  5      $ rA   )r1   r	   r“   r_   rb   s     r)   rB   ÚRepeat.reorderh   s   € ¤§¢¨1¯l©l¸D¿I¹IÓ!FÐFr(   c                 ó2   • U R                   U R                  4$ rA   r’   rD   s    r)   rM   ÚRepeat.unique_reorder_idi   s   € ¨¯©°t·y±yÐ(AÐ!Ar(   r"   Nrf   r"   r(   r)   r�   r�   d   s   † Ø€FØ€EâFÝAr(   r�   c                 ó   • [        XUS9$ )N©r.   r“   r_   )r�   r™   s      r)   r	   r	   k   s   € Ü�A¨TÑ2Ð2r(   c                   ó@   ^ • \ rS rSrSrSrSrS rS rU 4S jr	Sr
U =r$ )	r
   én   r.   Úaxes)r.   rœ   c                 ód   • [         R                  " [         R                  " XR                  S9SS9$ )N©rœ   r+   )Úrequirements)r1   Úrequirer
   rœ   rb   s     r)   rB   Útranspose.reorders   s    € ¤B§J¢J¬r¯|ª|¸AÇIÁIÑ/NÐ]`Ñ$aÐar(   c                 óx   • U R                   R                  U R                  c  S 4$ [        U R                  5      4$ rA   )r.   rI   rœ   rr   rD   s    r)   rM   Útranspose.unique_reorder_idt   s2   € ¨¯©¯©¸t¿y¹yÑ?P°tÐ(gÐ!gÔV[Ð\`×\eÑ\eÓVfÐ(gÐ!gr(   c                 óh   >• [        U S5      (       d  S U l        [        U R                  U ]  U5        g )Nrœ   )r;   rœ   ÚsuperÚ	__class__r>   ©r4   r=   r¦   s     €r)   r>   Útranspose.on_changedu   s*   ø€ Ü�t˜V×$Ñ$ØˆDŒIÜˆd�n‰n˜dÑ.¨uÕ5r(   rž   ©r#   r$   r%   r&   r[   rg   ru   rB   rM   r>   r'   Ú__classcell__©r¦   s   @r)   r
   r
   n   s"   ø† Ø€FØ€EØ€JâaÚg÷6ó 6r(   r
   c                   ó@   ^ • \ rS rSrSrSrSrS rS rU 4S jr	Sr
U =r$ )	r   éz   r.   ©r_   Ústart)r.   r_   r¯   c                 óT   • [         R                  " XR                  U R                  S9$ )Nr®   )r1   r   r_   r¯   rb   s     r)   rB   Úrollaxis.reorder   s   € ¤B§K¢K°¿	¹	ÈÏÉÑ$TÐTr(   c                 ó\   • U R                   R                  U R                  U R                  4$ rA   )r.   rI   r_   r¯   rD   s    r)   rM   Úrollaxis.unique_reorder_id€   s   € ¨¯©¯©°t·y±yÀ$Ç*Á*Ð(MÐ!Mr(   c                 óh   >• [        U S5      (       d  SU l        [        U R                  U ]  U5        g )Nr¯   r   )r;   r¯   r¥   r¦   r>   r§   s     €r)   r>   Úrollaxis.on_changed�   s*   ø€ Ü�t˜W×%Ñ%ØˆDŒJÜˆd�n‰n˜dÑ.¨uÕ5r(   )r¯   r©   r«   s   @r)   r   r   z   s"   ø† Ø€FØ€EØ%€JâTÚM÷6ó 6r(   r   c                   ó,   • \ rS rSrSrSrSrS rS rSr	g)	r   é†   r.   ©Úaxis1Úaxis2)r.   r¹   rº   c                 óT   • [         R                  " XR                  U R                  S9$ )Nr¸   )r1   r   r¹   rº   rb   s     r)   rB   Úswapaxes.reorder‹   s   € ¤B§K¢K°¿¹È4Ï:É:Ñ$VÐVr(   c                 ó\   • U R                   R                  U R                  U R                  4$ rA   )r.   rI   r¹   rº   rD   s    r)   rM   Úswapaxes.unique_reorder_idŒ   s   € ¨¯©¯©°t·z±zÀ4Ç:Á:Ð(NÐ!Nr(   r"   Nrt   r"   r(   r)   r   r   †   s   † Ø€FØ€EØ&€JâVÝNr(   r   c                   ó,   • \ rS rSrSrSrSrS rS rSr	g)	ÚRollé�   r8   ©Úshiftr_   ©r.   rÃ   r_   c                 óX   • [         R                  " XR                  U R                  5      $ rA   )r1   r   rÃ   r_   rb   s     r)   rB   ÚRoll.reorder•   s   € ¤§¢¨¯J©J¸¿	¹	Ó!BÐBr(   c                 ó2   • U R                   U R                  4$ rA   rÂ   rD   s    r)   rM   ÚRoll.unique_reorder_id–   s   € ¨¯©°T·Y±YÐ(?Ð!?r(   r"   Nrt   r"   r(   r)   rÀ   rÀ   �   s   † Ø€FØ€EØ%€JâBÝ?r(   rÀ   c                 ó   • [        XU5      $ rA   )rÀ   rÄ   s      r)   r   r   ˜   s   € Ü�˜$ÓÐr(   c                   ó(   • \ rS rSrSrSrS rS rSrg)ÚRot90é›   r8   r{   c                 óB   • [         R                  " XR                  5      $ rA   )r1   r   r|   rb   s     r)   rB   ÚRot90.reorderŸ   s   € ¤§¢¨!¯V©VÓ!4Ð4r(   c                 óF   • U R                   R                  U R                  4$ rA   r€   rD   s    r)   rM   ÚRot90.unique_reorder_id    r‚   r(   r"   Nrf   r"   r(   r)   rË   rË   ›   s   † Ø€FØ€Eâ4Ý>r(   rË   c                 ó   • [        XS9$ r„   )rË   )Úmr|   s     r)   r   r   ¢   s   € Ü�1‰?Ðr(   c                   ó,   • \ rS rSrSrSrSrS rS rSr	g)	ÚReshapeé¥   r8   )r/   r-   c                 ó`   • U R                   R                  R                  U R                  5      $ rA   )r.   rC   r   r/   rD   s    r)   rE   ÚReshape.compute_rª   s   € Ø�v‰v�x‰x×Ñ §¡Ó.Ð.r(   c                 óž   • XR                   L a?  [        R                  " U R                   R                  U R                   R                  5      $ g rA   )r.   rP   ÚeyerL   ©r4   rR   s     r)   rY   ÚReshape.compute_dr_wrt­   s1   € Ø—&‘&Š=Ü—6’6˜$Ÿ&™&Ÿ+™+ t§v¡v§{¡{Ó3Ð3ð r(   r"   N)
r#   r$   r%   r&   r[   rg   ru   rE   rY   r'   r"   r(   r)   rÔ   rÔ   ¥   s   † Ø€FØ€EØ€Jò/õ4r(   rÔ   c                 ó„   • [        U [        5      (       a#  U R                  n [        U [        5      (       a  M#  [        XS9$ )Nr-   )r0   rÔ   r.   r-   s     r)   r   r   ¶   s2   € Ü
�Qœ×
 Ñ
 Ø�C‰Cˆô �Qœ×
 Ó
 ä�QÑ*Ð*r(   c                   ó8   • \ rS rSrSS/rS/rSrS rS rS r	S	r
g
)r   i  ÚidxsÚpreferred_shaper.   )r.   rÞ   rß   c                 óÜ   • U R                   R                  R                  5       U R                     R	                  5       n[        U S5      (       a  UR                  U R                  5      $ U$ )Nrß   )r.   rC   r   rÞ   Úcopyr;   r   rß   )r4   Úresults     r)   rE   ÚSelect.compute_r  sP   € Ø—‘—‘—‘Ó! $§)¡)Ñ,×1Ñ1Ó3ˆÜ�4Ð*×+Ñ+Ø—>‘> $×"6Ñ"6Ó7Ð7àˆMr(   c                 ó8  • XR                   L Ga  [        U S5      (       dî  [        R                  " [	        U R
                  5      5      nU R
                  R                  5       n[        R                  " [        U5      [        U5      45      n[        R                  " [	        U R
                  5      5      n[        R                  " XT4[	        U R
                  5      [        R                  " U R                   R                  5      4S9U l        U R                  $ g )NÚ
_dr_cachedrH   )r.   r;   r1   rN   ÚlenrÞ   r   r   r   ÚonesrP   rQ   ÚprodrI   rå   )r4   ÚobjrW   rV   ÚijrX   s         r)   rY   ÚSelect.compute_dr_wrt   s¸   € Ø—&‘&‹=Ü˜4 ×.Ñ.Ü—Y’Yœs 4§9¡9›~Ó.�Ø—Y‘Y—_‘_Ó&�Ü—Y’Y¤ B£¬¨R«Ð1Ó2�Ü—w’wœs 4§9¡9›~Ó.�Ü"$§-¢-°°
Ä3ÀtÇyÁyÃ>ÔSU×SZÒSZÐ[_×[aÑ[a×[gÑ[gÓShÐBiÑ"j�”Ø—?‘?Ð"ð r(   c                 ó°   • [        U S5      (       aE  SU;   d;  U R                  R                  R                  U R                  R
                  S   :w  a  U ?g g g )Nrå   rÞ   r   )r;   r.   rC   rL   rå   rI   r<   s     r)   r>   ÚSelect.on_changed*  sH   € Ü�4˜×&Ñ&Ø˜‹ $§&¡&§(¡(§-¡-°4·?±?×3HÑ3HÈÑ3KÓ"KØ‘Oð #Lð 'r(   )rå   N)r#   r$   r%   r&   rg   r[   ru   rE   rY   r>   r'   r"   r(   r)   r   r     s(   † ØÐ&Ð'€EØˆU€FØ/€Jòò#õ$r(   r   c                   ó(   • \ rS rSrSrSrS rS rSrg)Ú	AtleastNdi1  ÚxÚndimsc                 óŒ  • U R                   R                  nU R                  S:X  a!  [        R                  " U5      R
                  nOmU R                  S:X  a!  [        R                  " U5      R
                  nO<U R                  S:X  a!  [        R                  " U5      R
                  nO[        S5      eUR                  U5      $ )Nr   é   é   zNeed ndims to be 1, 2, or 3.)
rð   rC   rñ   r1   r   rI   r   r   Ú	Exceptionr   )r4   ÚxrÚtarget_shapes      r)   rE   ÚAtleastNd.compute_r5  s‡   € Ø�V‰V�X‰XˆØ�:‰:˜‹?ÜŸ=š=¨Ó,×2Ñ2‰LØ�Z‰Z˜1‹_ÜŸ=š=¨Ó,×2Ñ2‰LØ�Z‰Z˜1‹_ÜŸ=š=¨Ó,×2Ñ2‰LäÐ:Ó;Ð;à�z‰z˜,Ó'Ð'r(   c                 ó"   • XR                   L a  gg ©Nr   )rð   rÚ   s     r)   rY   ÚAtleastNd.compute_dr_wrtB  s   € Ø—&‘&Š=Øð r(   r"   N)	r#   r$   r%   r&   r[   rg   rE   rY   r'   r"   r(   r)   rï   rï   1  s   † Ø€FØ€Eò(õr(   rï   c                 ój   • U Vs/ s H  n[        X S9PM     nn[        U5      S:”  a  U$ US   $ s  snf )N)rð   rñ   r   r   )rï   ræ   )rñ   ÚarysÚarys      r)   Ú
atleast_ndrÿ   F  s9   € Ù59Ó:²T¨cŒI˜Ô)±T€DÐ:Ü�t“9˜q“=ˆ4Ð- d¨1¡gÐ-ùò ;s   …0c                  ó   • [        S/U Q76 $ rú   ©rÿ   ©rý   s    r)   r   r   J  ó   € Ü�aÐ˜$ÒÐr(   c                  ó   • [        S/U Q76 $ )Nró   r  r  s    r)   r   r   M  r  r(   c                  ó   • [        S/U Q76 $ )Nrô   r  r  s    r)   r   r   P  r  r(   c                 óä   • [        U [        R                  5      (       a  [        R                  " X5      $ [        R                  " U R                  U5      R
                  nU R                  U5      $ rA   )r0   r1   r2   r   rC   rI   r   ©r.   r_   rI   s      r)   r   r   S  sK   € Ü�!”R—Z‘Z× Ñ Ü�zŠz˜!Ó"Ð"Ü�JŠJ�q—s‘s˜DÓ!×'Ñ'€EØ�9‰9�UÓÐr(   c                 óä   • [        U [        R                  5      (       a  [        R                  " X5      $ [        R                  " U R                  U5      R
                  nU R                  U5      $ rA   )r0   r1   r2   r   rC   rI   r   r  s      r)   r   r   Y  sK   € Ü�!”R—Z‘Z× Ñ Ü�~Š~˜aÓ&Ð&Ü�NŠN˜1Ÿ3™3 Ó%×+Ñ+€EØ�9‰9�UÓÐr(   c                 ó   • U S S 2S S S24   $ )Nr,   r"   ©rÒ   s    r)   r   r   _  s   € ØŠQ‰t�ˆtˆV‰9Ðr(   c                 ó   • U S S S2S4   $ )Nr,   .r"   r
  s    r)   r   r   b  s   € Ø‰TˆrˆT�#ˆX‰;Ðr(   c                   óZ   ^ • \ rS rSrS r\S 5       rU 4S jrS r\S 5       r	S r
SrU =r$ )	ÚConcatenateie  c                 ó\   • [        U S5      (       d  [        R                  " 5       U l        g g ©NÚ	dr_cached)r;   ÚweakrefÚWeakKeyDictionaryr  r<   s     r)   r>   ÚConcatenate.on_changedg  s$   € Ü�t˜[×)Ñ)Ü$×6Ò6Ó8ˆD�Nð *r(   c                 óœ   • [        U S5      (       d+  U R                   Vs/ s H  n[        X5      PM     snU l        U R                  $ s  snf )NÚ
_our_terms)r;   r[   Úgetattrr  )r4   Úss     r)   Ú	our_termsÚConcatenate.our_termsk  s>   € ä�t˜\×*Ñ*Ø9=¿ºÓEº°Aœw tÖ/¹ÑEˆDŒOØ�‰Ðùò Fs    A	c                 óZ   >• [        U S5      (       a  U ?[        U R                  U ]  5       $ r  )r;   r  r¥   r¦   Ú__getstate__)r4   r¦   s    €r)   r  ÚConcatenate.__getstate__q  s)   ø€ ä�4˜×%Ñ%Ø�Ü�T—^‘^ TÑ7Ó9Ð9r(   c                 ó’   • [         R                  " U R                   Vs/ s H  oR                  PM     snU R                  S9$ s  snf )N)r_   )r1   r   r  rC   r_   )r4   Úts     r)   rE   ÚConcatenate.compute_rw  s/   € Ü�~Š~¨D¯NªNÓ;ªN qŸsœs©NÑ;À$Ç)Á)ÑLÐLùÒ;s   ŸAc                 óB  • [        U S5      (       dƒ  [        R                  " U R                  R                  5      R                  U R                  R                  5      U l        [        R                  " U R                  U R                  S5      U l        U R                  $ )NÚ_everythingr   )
r;   r1   rN   rC   rL   r   rI   r!  r   r_   rD   s    r)   Ú
everythingÚConcatenate.everythingz  sf   € ä�t˜]×+Ñ+Ü!Ÿyšy¨¯©¯©Ó5×=Ñ=¸d¿f¹f¿l¹lÓKˆDÔÜ!Ÿ{š{¨4×+;Ñ+;¸T¿Y¹YÈÓJˆDÔØ×ÑÐr(   c                 ó4  • [        U S5      (       d  [        R                  " 5       U l        XR                  ;   a  U R                  U   b  U R                  U   $ XR                  ;  a  g [
        R                  " UR                  5      n[
        R                  " UR                  5      n/ n/ n/ nSnU R                   Hq  nUR                  U R                     n	X�L aM  XR/-  nXc/-  nU[
        R                  " U R                  XwU	-    U R                  S5      R                  5       /-  nXy-  nMs     [
        R                  " U5      R                  5       n[
        R                  " U5      R                  5       n[
        R                  " U5      n[        R                   " XdU44U R"                  R                  UR                  4S9n
[%        ['        U R(                  R+                  5       5      5      S:w  a  X R                  U'   U
$ S U R                  U'   U
$ )Nr  r   rH   r   )r;   r  r  r  r  r1   rN   rL   rç   rI   r_   r   r"  r   r   rP   rQ   rC   ræ   ÚlistÚ_parentsÚkeys)r4   rR   Ú_JSÚ_datarW   rV   rX   ÚoffsetÚtermÚtszÚress              r)   rY   ÚConcatenate.compute_dr_wrt�  s«  € Ü�t˜[×)Ñ)Ü$×6Ò6Ó8ˆDŒNØ—.‘.Ó  T§^¡^°CÑ%8Ñ%DØ—>‘> #Ñ&Ð&à—n‘nÓ$Øä�iŠi˜Ÿ™Ó!ˆÜ—’˜Ÿ™Ó!ˆàˆØˆØˆàˆØ—N”NˆDØ—*‘*˜TŸY™YÑ'ˆCØŠ{Ø�e‘�Ø˜‘�Ø”r—{’{ 4§?¡?°6À¹*Ð#EÀtÇyÁyÐRSÓT×ZÑZÓ\Ð]Ñ]�Ø‰MŠFñ #ô �~Š~˜bÓ!×'Ñ'Ó)ˆÜ�~Š~˜bÓ!×'Ñ'Ó)ˆÜ�~Š~˜dÓ#ˆä�mŠm˜T¨ 8Ð,°T·V±V·[±[À#Ç(Á(Ð4KÑLˆäŒt�D—M‘M×&Ñ&Ó(Ó)Ó*¨aÓ/Ø"%�N‰N˜3Ñð ˆ
ð #'ˆD�N‰N˜3Ñàˆ
r(   )r!  r  r  )r#   r$   r%   r&   r>   Úpropertyr  r  rE   r"  rY   r'   rª   r«   s   @r)   r  r  e  sE   ø† ò9ð ñó ðõ
:òMð ñ ó ð ÷#ð #r(   r  c                 óL  • [        U 5      n / n[        U 5      S:”  a‚  U R                  S5      n[        U[        5      (       a:  UR
                  U:X  a*  UR                   Vs/ s H  n[        X45      PM     snU -   n OUR                  U5        [        U 5      S:”  a  M‚  U$ s  snf )Nr   )	r%  ræ   Úpopr0   r  r_   r[   r  Úappend)Úmtxsr_   ÚdoneÚmtxr  s        r)   Úexpand_concatenatesr6  §  s†   € Ü�‹:€DØ€DÜ
ˆd‹)�a‹-Ø�h‰h�q‹kˆÜ�cœ;×'Ñ'¨C¯H©H¸Ó,<Ø-0¯ZªZÓ8ªZ¨”G˜C–O©ZÑ8¸4Ñ?‰Dà�K‰K˜Ôô ˆd‹)�a�-ð €Kùò 9s   Á!B!c                 óä   • [        X5      n [        S0 UD6n/ Ul        [        U 5       H=  u  pEUR                  R	                  SU4-  5        [        X3R                  S   U5        M?     Xl        U$ )Nzm%dr,   r"   )r6  r  r[   Ú	enumerater2  Úsetattrr_   )r3  r_   Úkwargsrâ   Úir5  s         r)   r   r   ³  sg   € ä˜tÓ*€DäÑ"˜6Ñ"€FØ€F„MÜ˜D–/‰ˆØ�‰×Ñ˜U a T™\Ô*Ü�Ÿ™ bÑ)¨3Ö/ñ "ð „KØ€Mr(   c                 ó   • [        U 4SS0UD6$ )Nr_   r   )r   )r3  r:  s     r)   r   r   ¿  s   € Ü�tÑ. !Ð. vÑ.Ð.r(   c                 ó\   • [        U  Vs/ s H  n[        U5      PM     sn4SS0UD6$ s  snf )Nr_   r   )r   r   ©r3  r:  rÒ   s      r)   r   r   Â  ó-   € Ü©tÓ4ªt¨!œ
 1ž©tÑ4ÑG¸1ÐGÀÑGÐGùÒ4ó   Š)c                 ó\   • [        U  Vs/ s H  n[        U5      PM     sn4SS0UD6$ s  snf )Nr_   ró   )r   r   r>  s      r)   r   r   Å  r?  r@  )r+   )r,   Ú	quicksortN)r   rA   )r   )3Ú__doc__Úchr   Únumpyr1   Úutilsr   r   Úscipy.sparseÚsparserP   r  Ú__all__r    r   r6   r]   r   rk   r   ry   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  r6  r   r   r   r   r"   r(   r)   Ú<module>rJ     s]  ðñõ Û ß Ý Û òf€ô
	ˆbô 	ô(ô+ˆgô +ô8-ˆ7ô -ô8ôIˆ7ô Iò ô?ˆ7ô ?ôô?ˆwô ?ôôBˆWô Bô3ô
6�ô 
6ô
6ˆwô 
6ôOˆwô Oô@ˆ7ô @ô ô?ˆGô ?ôô
4ˆgô 
4ò"+ô|$ˆWô $ô:�ô ò*.ò ò ò ôòòòô?�"ô ?ôD	ô
ò/òHóHr(   