ó
    …~iú  ã                   ó˜   • S SK r\R                  " SS9S\S4S j5       r " S S5      r " S S	\5      r " S
 S\5      r " S S\5      rg)é    NÚweight)Ú
edge_attrsÚluc              #   óì  #   • SS K n[        [        [        S.nU R	                  5       n[
        R                  " U [        U5      US9R                  S5      nUR                  U5      nXS   " XrS9nUR                  n	[        S U R                  5        5       5       HS  u  p«UR                  X’S9nX
   U   R                  US5      nXÜX©-  '   U* XËU	-  '   XÈR                  X«5      -  nXêU44v •  MU     g 7f)Nr   )Úfullr   Úcg)Únodelistr   Úcsc©Údtypec              3   ó>   #   • U  H  u  p[        X45      v •  M     g 7f©N)Úsorted)Ú.0ÚuÚvs      Úg/home/mande/repo/quber/.venv/lib/python3.13/site-packages/networkx/algorithms/centrality/flow_matrix.pyÚ	<genexpr>Ú"flow_matrix_row.<locals>.<genexpr>   s   é € Ð<²)©$¨!”v˜q˜f—~�~²)ùs   ‚g      ð?)ÚnumpyÚFullInverseLaplacianÚSuperLUInverseLaplacianÚCGInverseLaplacianÚnumber_of_nodesÚnxÚlaplacian_matrixÚrangeÚasformatÚastypeÚwr   ÚedgesÚzerosÚgetÚget_rows)ÚGr   r   ÚsolverÚnpÚ
solvernameÚnÚLÚCr    r   r   ÚBÚcÚrows                  r   Úflow_matrix_rowr/      sê   é € ó ô %Ü%Ü ñ€Jð
 	
×ÑÓ€AÜ
×Ò˜A¬¨a«¸Ñ@×IÑIÈ%ÓP€AØ	�‰�‹€AØÒ˜1Ñ*€AØ	�‰€AäÑ<°!·'±'´)Ó<Ö<‰ˆØ�H‰H�QˆHÐ$ˆØ‰D�‰G�K‰K˜ Ó$ˆØˆ!‰%‰Ø�2ˆˆa‰%‰ð —*‘*˜QÓ"Ñ"ˆØ�q�6ˆkÔò =ùs   ‚C2C4c                   óB   • \ rS rSrSS jrS rS rS rS rS r	S	 r
S
rg)ÚInverseLaplaciané$   Nc                 ó  • SS K qUR                  u    nX0l        X@l        Uc  U R                  U5      U l        OX l        [        R                  U R                  U4US9U l        USS 2SS 24   U l	        U R                  U5        g )Nr   r   é   )r   r'   Úshaper   r)   Úwidthr    r"   r+   ÚL1Úinit_solver)Úselfr*   r6   r   r)   s        r   Ú__init__ÚInverseLaplacian.__init__%   sr   € ãà—‘‰ˆˆAØŒ
ØŒØ‰=Ø—Z‘Z “]ˆD�FàŒFÜ—‘˜4Ÿ6™6 1˜+¨U�Ð3ˆŒØ�A‘B˜™�F‘)ˆŒØ×Ñ˜Õó    c                 ó   • g r   © ©r9   r*   s     r   r8   ÚInverseLaplacian.init_solver4   s   € Ør<   c                 ó.   • [         R                  " S5      e©NzImplement solver©r   ÚNetworkXError©r9   Úrs     r   ÚsolveÚInverseLaplacian.solve7   ó   € Ü×ÒÐ1Ó2Ð2r<   c                 ó.   • [         R                  " S5      erB   rC   rE   s     r   Úsolve_inverseÚInverseLaplacian.solve_inverse:   rI   r<   c                 ó    • [        XS-   5       H1  nU R                  U5      U R                  X0R                  -  SS 24'   M3     U R                  $ ©Nr4   )r   rK   r+   r    )r9   Úr1Úr2rF   s       r   r$   ÚInverseLaplacian.get_rows=   sC   € Ü�r ™6Ö"ˆAØ%)×%7Ñ%7¸Ó%:ˆD�F‰F�1—v‘v‘:˜q™r�>Ó"ñ #à�v‰vˆr<   c                 ó”   • U R                  U5      U R                  XR                  -  SS 24'   U R                  XR                  -     $ rN   )rK   r+   r    rE   s     r   Úget_rowÚInverseLaplacian.get_rowB   s<   € Ø!%×!3Ñ!3°AÓ!6ˆ�‰ˆq—6‘6‰z˜1™2ˆ~ÑØ�v‰v�aŸ&™&‘jÑ!Ð!r<   c                 óî   • Sn[        U5       Hc  u  p4Sn[        R                  U5      S   n[        U5      S:”  d  M0  Xc-
  nUR	                  5       UR                  5       -
  S-   n[	        XR5      nMe     U$ )Nr   éÿÿÿÿr4   )Ú	enumerater'   ÚnonzeroÚlenÚmaxÚmin)r9   r*   ÚmÚir.   r    Úyr   s           r   r6   ÚInverseLaplacian.widthF   sk   € ØˆÜ –l‰FˆAØˆAÜ—
‘
˜3“ Ñ#ˆAÜ�1‹v˜�zØ‘E�Ø—E‘E“G˜aŸe™e›gÑ%¨Ñ)�Ü˜“I’ñ #ð ˆr<   )r+   r7   r   r)   r    )NN)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r:   r8   rG   rK   r$   rS   r6   Ú__static_attributes__r>   r<   r   r1   r1   $   s%   † ôòò3ò3òò
"õ	r<   r1   c                   ó&   • \ rS rSrS rS rS rSrg)r   éR   c                 óò   • [         R                  UR                  U R                  S9U l        [         R
                  R                  U R                  R                  5       5      U R                  SS 2SS 24'   g ©Nr   r4   )	r'   r"   r5   r   ÚILÚlinalgÚinvr7   Útodenser?   s     r   r8   Ú FullInverseLaplacian.init_solverS   sK   € Ü—(‘(˜1Ÿ7™7¨$¯*©*�(Ð5ˆŒÜŸ)™)Ÿ-™-¨¯©¯©Ó(9Ó:ˆ�‰�‘�A‘B�Šr<   c                 ót   • [         R                  UR                  U R                  S9nU R                  U-  nU$ )Nr   )r'   r"   r5   r   ri   ©r9   ÚrhsÚss      r   rG   ÚFullInverseLaplacian.solveW   s.   € Ü�H‰H�S—Y‘Y d§j¡jˆHÐ1ˆØ�G‰G�c‰MˆØˆr<   c                 ó(   • U R                   USS 24   $ rN   ©ri   rE   s     r   rK   Ú"FullInverseLaplacian.solve_inverse\   s   € Ø�w‰w�q˜!™"�u‰~Ðr<   rt   N©r`   ra   rb   rc   r8   rG   rK   rd   r>   r<   r   r   r   R   s   † ò;òõ
r<   r   c                   ó&   • \ rS rSrS rS rS rSrg)r   é`   c                 ó�   • SS K nUR                  R                  R                  U R                  R                  5       5      U l        g )Nr   )ÚscipyÚsparserj   Ú
factorizedr7   ÚtocscÚlusolve)r9   r*   Úsps      r   r8   Ú#SuperLUInverseLaplacian.init_solvera   s+   € Ûà—y‘y×'Ñ'×2Ñ2°4·7±7·=±=³?ÓCˆ�r<   c                 ó‚   • [         R                  U R                  U R                  S9nSX!'   U R	                  USS  5      $ rh   )r'   r"   r)   r   r~   ©r9   rF   rp   s      r   rK   Ú%SuperLUInverseLaplacian.solve_inversef   s8   € Ü�h‰h�t—v‘v T§Z¡ZˆhÐ0ˆØˆ‰Ø�|‰|˜C  ˜GÓ$Ð$r<   c                 ó„   • [         R                  UR                  U R                  S9nU R	                  USS  5      USS & U$ rh   )r'   r"   r5   r   r~   ro   s      r   rG   ÚSuperLUInverseLaplacian.solvek   s;   € Ü�H‰H�S—Y‘Y d§j¡jˆHÐ1ˆØ—‘˜S  ˜WÓ%ˆˆ!ˆ"ˆØˆr<   )r~   N)r`   ra   rb   rc   r8   rK   rG   rd   r>   r<   r   r   r   `   s   † òDò
%õ
r<   r   c                   ó&   • \ rS rSrS rS rS rSrg)r   éq   c                 ó  • SS K q[        R                  R                  R	                  U R
                  R                  5       5      nU R                  S-
  n[        R                  R                  R                  X34UR                  S9U l
        g )Nr   r4   )r5   Úmatvec)rz   r   r{   rj   Úspilur7   r}   r)   ÚLinearOperatorrG   ÚM)r9   r*   Úilur)   s       r   r8   ÚCGInverseLaplacian.init_solverr   s]   € ãä�i‰i×Ñ×$Ñ$ T§W¡W§]¡]£_Ó5ˆØ�F‰F�Q‰JˆÜ—‘×!Ñ!×0Ñ0¸°vÀcÇiÁiÐ0ÐPˆ�r<   c                 óä   • [         R                  UR                  U R                  S9n[        R
                  R                  R                  U R                  USS  U R                  SS9S   USS & U$ )Nr   r4   r   ©rŒ   Úatol)
r'   r"   r5   r   r   r{   rj   r   r7   rŒ   ro   s      r   rG   ÚCGInverseLaplacian.solvez   s]   € Ü�H‰H�S—Y‘Y d§j¡jˆHÐ1ˆÜ—	‘	× Ñ ×#Ñ# D§G¡G¨S°°¨W¸¿¹ÀQÐ#ÐGÈÑJˆˆ!ˆ"ˆØˆr<   c                 óæ   • [         R                  U R                  U R                  5      nSX!'   [        R
                  R                  R                  U R                  USS  U R                  SS9S   $ )Nr4   r   r�   )
r'   r"   r)   r   r   r{   rj   r   r7   rŒ   r‚   s      r   rK   Ú CGInverseLaplacian.solve_inverse   sX   € Ü�h‰h�t—v‘v˜tŸz™zÓ*ˆØˆ‰Ü�y‰y×Ñ×"Ñ" 4§7¡7¨C°°¨G°t·v±vÀAÐ"ÐFÀqÑIÐIr<   )rŒ   Nrv   r>   r<   r   r   r   q   s   † òQòõ
Jr<   r   )	Únetworkxr   Ú_dispatchableÚfloatr/   r1   r   r   r   r>   r<   r   Ú<module>r˜      sd   ðó ð ×Ò˜XÑ&Ø"¨%¸ó ó 'ð÷:+ñ +ô\Ð+ô ôÐ.ô ô"JÐ)õ Jr<   