ó
    Eñiþ0  ã                   ó2   • S SK rS SKJr   " S S5      rS rg)é    Nc                   óŽ   • \ rS rSrSrS r\S 5       r\S 5       r\S 5       r	\S 5       r
\S 5       r\S	 5       r\S
 5       rSrg)ÚCanonicalConstrainté   a6  Canonical constraint to use with trust-constr algorithm.

It represents the set of constraints of the form::

    f_eq(x) = 0
    f_ineq(x) <= 0

where ``f_eq`` and ``f_ineq`` are evaluated by a single function, see
below.

The class is supposed to be instantiated by factory methods, which
should prepare the parameters listed below.

Parameters
----------
n_eq, n_ineq : int
    Number of equality and inequality constraints respectively.
fun : callable
    Function defining the constraints. The signature is
    ``fun(x) -> c_eq, c_ineq``, where ``c_eq`` is ndarray with `n_eq`
    components and ``c_ineq`` is ndarray with `n_ineq` components.
jac : callable
    Function to evaluate the Jacobian of the constraint. The signature
    is ``jac(x) -> J_eq, J_ineq``, where ``J_eq`` and ``J_ineq`` are
    either ndarray of csr_array of shapes (n_eq, n) and (n_ineq, n),
    respectively.
hess : callable
    Function to evaluate the Hessian of the constraints multiplied
    by Lagrange multipliers, that is
    ``dot(f_eq, v_eq) + dot(f_ineq, v_ineq)``. The signature is
    ``hess(x, v_eq, v_ineq) -> H``, where ``H`` has an implied
    shape (n, n) and provide a matrix-vector product operation
    ``H.dot(p)``.
keep_feasible : ndarray, shape (n_ineq,)
    Mask indicating which inequality constraints should be kept feasible.
c                 óL   • Xl         X l        X0l        X@l        XPl        X`l        g ©N)Ún_eqÚn_ineqÚfunÚjacÚhessÚkeep_feasible)Úselfr   r	   r
   r   r   r   s          Út/home/mande/repo/quber/.venv/lib/python3.13/site-packages/scipy/optimize/_trustregion_constr/canonical_constraint.pyÚ__init__ÚCanonicalConstraint.__init__*   s!   € ØŒ	ØŒØŒØŒØŒ	Ø*Õó    c                 ó˜  • UR                   u  p#UR                  nUR                  n[        R                  " U[        R
                  * :H  5      (       aG  [        R                  " U[        R
                  :H  5      (       a  U R                  UR                  5      $ [        R                  " U[        R
                  * :H  5      (       aG  [        R                  " U[        R
                  :H  5      (       a  U R                  UR                  5      $ [        R                  " X#:H  5      (       a  U R                  XB5      $ [        R                  " U[        R
                  * :H  5      (       a  U R                  XCU5      $ [        R                  " U[        R
                  :H  5      (       a  U R                  XBU5      $ U R                  XBX55      $ )z5Create an instance from `PreparedConstrained` object.)Úboundsr
   r   ÚnpÚallÚinfÚemptyÚnÚ_equal_to_canonicalÚ_less_to_canonicalÚ_greater_to_canonicalÚ_interval_to_canonical)ÚclsÚ
constraintÚlbÚubÚcfunr   s         r   Úfrom_PreparedConstraintÚ+CanonicalConstraint.from_PreparedConstraint2   s4  € ð ×"Ñ"‰ˆØ�~‰~ˆØ"×0Ñ0ˆä�6Š6�"œŸ™˜‘-× Ñ ¤R§V¢V¨B´"·&±&©L×%9Ñ%9Ø—9‘9˜TŸV™VÓ$Ð$ä�6Š6�"œŸ™˜‘-× Ñ ¤R§V¢V¨B´"·&±&©L×%9Ñ%9Ø—9‘9˜TŸV™VÓ$Ð$Ü�VŠV�B‘H×ÑØ×*Ñ*¨4Ó4Ð4Ü�VŠV�Bœ2Ÿ6™6˜'‘M×"Ñ"Ø×)Ñ)¨$°MÓBÐBÜ�VŠV�Bœ"Ÿ&™&‘L×!Ñ!Ø×,Ñ,¨T°}ÓEÐEà×-Ñ-¨d¸ÓJÐJr   c                 ó  ^^^• [         R                  " S5      m[         R                  " SU45      m[        R                  " X45      mU4S jnU4S jnU4S jnU " SSX#U[         R                  " S[         R                  S95      $ )zŽCreate an "empty" instance.

This "empty" instance is required to allow working with unconstrained
problems as if they have some constraints.
r   c                 ó   >• TT4$ r   © )ÚxÚ	empty_funs    €r   r
   Ú&CanonicalConstraint.empty.<locals>.funR   ó   ø€ Ø˜iÐ'Ð'r   c                 ó   >• TT4$ r   r'   )r(   Ú	empty_jacs    €r   r   Ú&CanonicalConstraint.empty.<locals>.jacU   r+   r   c                 ó   >• T$ r   r'   )r(   Úv_eqÚv_ineqÚ
empty_hesss      €r   r   Ú'CanonicalConstraint.empty.<locals>.hessX   s	   ø€ ØÐr   ©Údtype)r   r   ÚspsÚ	csr_arrayÚbool_)r   r   r
   r   r   r)   r2   r-   s        @@@r   r   ÚCanonicalConstraint.emptyG   sg   ú€ ô —H’H˜Q“Kˆ	Ü—H’H˜a ˜VÓ$ˆ	Ü—]’] A 6Ó*ˆ
õ	(õ	(õ	ñ �1�a˜ 4¬¯ª°!¼2¿8¹8Ñ)DÓEÐEr   c                 óB  ^^
• U4S jnU(       a  [         R                  m
O[        R                  m
UU
4S jnU4S jn[        S T 5       5      n[        S T 5       5      n[        R                  " T Vs/ s H  oˆR
                  PM     sn5      n	U " XgX4XY5      $ s  snf )zçConcatenate multiple `CanonicalConstraint` into one.

`sparse_jacobian` (bool) determines the Jacobian format of the
concatenated constraint. Note that items in `canonical_constraints`
must have their Jacobians in the same format.
c                 óÎ   >• T(       a*  [        T Vs/ s H  oR                  U 5      PM     sn6 u  p#O/ / p2[        R                  " U5      [        R                  " U5      4$ s  snf r   )Úzipr
   r   Úhstack)r(   ÚcÚeq_allÚineq_allÚcanonical_constraintss       €r   r
   Ú,CanonicalConstraint.concatenate.<locals>.fune   s\   ø€ Þ$Ü#&Ù,AÓBÒ,A qŸ%™% ž(Ñ,AÑBð$DÑ �˜ð $& r˜ä—9’9˜VÓ$¤b§i¢i°Ó&9Ð9Ð9ùò	 Cs   ’A"c                 ó–   >• T(       a*  [        T Vs/ s H  oR                  U 5      PM     sn6 u  p#O/ / p2T" U5      T" U5      4$ s  snf r   )r<   r   )r(   r>   r?   r@   rA   Úvstacks       €€r   r   Ú,CanonicalConstraint.concatenate.<locals>.jacs   sS   ø€ Þ$Ü#&Ù,AÓBÒ,A qŸ%™% ž(Ñ,AÑBð$DÑ �˜ð $& r˜á˜&“>¡6¨(Ó#3Ð3Ð3ùò	 Cs   ’Ac                 óP  >^
• / m
SnSnT H`  nXX5R                   -    nX$XER                  -    nT
R                  UR                  XU5      5        X5R                   -  nXER                  -  nMb     U
4S jnU R                  S   n	[
        R                  R                  X™4U[        S9$ )Nr   c                 ór   >• [         R                  " U [        S9nT H  nXR                  U 5      -  nM     U$ )Nr4   )r   Ú
zeros_likeÚfloatÚdot)ÚpÚresultÚhÚhess_alls      €r   ÚmatvecÚ=CanonicalConstraint.concatenate.<locals>.hess.<locals>.matvec‡   s2   ø€ ÜŸš q´Ñ6�Û!�AØŸe™e A›hÑ&’Fñ "à�r   r4   )	r   r	   Úappendr   Úshaper6   ÚlinalgÚLinearOperatorrI   )r(   r0   r1   Úindex_eqÚ
index_ineqr>   Úvc_eqÚvc_ineqrO   r   rN   rA   s             @€r   r   Ú-CanonicalConstraint.concatenate.<locals>.hess|   sŸ   ù€ ØˆHØˆHØˆJÛ*�Ø h·±Ñ&7Ð8�Ø ¨J¿¹Ñ,AÐB�Ø—‘ §¡ q°Ó 9Ô:ØŸF™FÑ"�ØŸh™hÑ&’
ñ +õð —‘˜‘
ˆAÜ—:‘:×,Ñ,¨a¨V°VÄ5Ð,ÐIÐIr   c              3   ó8   #   • U  H  oR                   v •  M     g 7fr   )r   ©Ú.0r>   s     r   Ú	<genexpr>Ú2CanonicalConstraint.concatenate.<locals>.<genexpr>�   s   é € Ð9Ò#8˜a—6–6Ò#8ùó   ‚c              3   ó8   #   • U  H  oR                   v •  M     g 7fr   )r	   r[   s     r   r]   r^   ‘   s   é € Ð=Ò'< !—X–XÒ'<ùr_   )r6   rD   r   Úsumr=   r   )r   rA   Úsparse_jacobianr
   r   r   r   r	   r>   r   rD   s    `        @r   ÚconcatenateÚCanonicalConstraint.concatenate]   s�   ù€ õ	:ö Ü—Z‘Z‰Fä—Y‘YˆFö	4õ	Jô( Ñ9Ñ#8Ó9Ó9ˆÜÑ=Ñ'<Ó=Ó=ˆÜŸ	š	Ù#8ó#:Ú#8ð 89§?¤?Ù#8ñ#:ó ;ˆñ �4 ¨4Ó?Ð?ùò#:s   Á6Bc                 ó,  ^^^
^• [         R                  " S5      m
TR                  nTR                  S   nSn[         R                  " S[        S9nTR
                  (       a  [        R                  " SU45      mO[         R                  " SU45      mUU
U4S jnUU4S jnU4S jn	[         R                  " S5      m
TR                  nTR
                  (       a  [        R                  " SU45      mO[         R                  " SU45      mU " XEXxX–5      $ )Nr   r4   c                 ó0   >• TR                  U 5      T-
  T4$ r   ©r
   )r(   r"   r)   Úvalues    €€€r   r
   Ú4CanonicalConstraint._equal_to_canonical.<locals>.fun¥   s   ø€ Ø—8‘8˜A“; Ñ&¨	Ð1Ð1r   c                 ó*   >• TR                  U 5      T4$ r   ©r   ©r(   r"   r-   s    €€r   r   Ú4CanonicalConstraint._equal_to_canonical.<locals>.jac¨   s   ø€ Ø—8‘8˜A“; 	Ð)Ð)r   c                 ó&   >• TR                  X5      $ r   ©r   ©r(   r0   r1   r"   s      €r   r   Ú5CanonicalConstraint._equal_to_canonical.<locals>.hess«   s   ø€ Ø—9‘9˜QÓ%Ð%r   )r   r   r   rR   Úboolrb   r6   r7   )r   r"   rh   r   r   r	   r   r
   r   r   r)   r-   s    ``       @@r   r   Ú'CanonicalConstraint._equal_to_canonical—   sË   û€ ä—H’H˜Q“Kˆ	Ø�F‰Fˆà�{‰{˜1‰~ˆØˆÜŸš ¬$Ñ/ˆà××ÜŸš q¨! fÓ-‰IäŸš ! Q Ó(ˆI÷	2ö	*õ	&ô —H’H˜Q“Kˆ	Ø�F‰FˆØ××ÜŸš q¨! fÓ-‰IäŸš ! Q Ó(ˆIá�4 ¨4Ó?Ð?r   c                 ó  ^^^
^^• [         R                  " S5      m
TR                  nTR                  (       a  [        R
                  " SU45      mO[         R                  " SU45      mT[         R                  :  mSn[         R                  " T5      n[         R                  " T5      (       a  UU
U4S jnUU4S jnU4S jn	O;[         R                  " T5      S   mUT   nTT   mUU
UU4S jnUUU4S jnUU4S jn	U " XVXxX“5      $ )Nr   c                 ó0   >• TTR                  U 5      T-
  4$ r   rg   )r(   r"   r)   r!   s    €€€r   r
   Ú3CanonicalConstraint._less_to_canonical.<locals>.funÅ   s   ø€ Ø  $§(¡(¨1£+°Ñ"2Ð2Ð2r   c                 ó*   >• TTR                  U 5      4$ r   rk   rl   s    €€r   r   Ú3CanonicalConstraint._less_to_canonical.<locals>.jacÈ   s   ø€ Ø  $§(¡(¨1£+Ð-Ð-r   c                 ó&   >• TR                  X5      $ r   ro   rp   s      €r   r   Ú4CanonicalConstraint._less_to_canonical.<locals>.hessË   s   ø€ Ø—y‘y Ó+Ð+r   c                 ó6   >• TTR                  U 5      T   T-
  4$ r   rg   )r(   r"   r)   Ú	finite_ubr!   s    €€€€r   r
   rv   Ò   s    ø€ Ø  $§(¡(¨1£+¨iÑ"8¸2Ñ"=Ð=Ð=r   c                 ó0   >• TTR                  U 5      T   4$ r   rk   )r(   r"   r-   r|   s    €€€r   r   rx   Õ   s   ø€ Ø  $§(¡(¨1£+¨iÑ"8Ð8Ð8r   c                 ón   >• [         R                  " TR                  5      nX#T'   TR                  X5      $ r   ©r   ÚzerosÚmr   )r(   r0   r1   Úvr"   r|   s       €€r   r   rz   Ø   s*   ø€ Ü—H’H˜TŸV™VÓ$�Ø%�)‘Ø—y‘y “Ð&r   ©
r   r   r   rb   r6   r7   r   ra   r   Únonzero)r   r"   r!   r   r   r   r	   r
   r   r   r)   r-   r|   s    ``       @@@r   r   Ú&CanonicalConstraint._less_to_canonical·   sÑ   ü€ ä—H’H˜Q“Kˆ	Ø�F‰FˆØ××ÜŸš q¨! fÓ-‰IäŸš ! Q Ó(ˆIàœŸ™‘Kˆ	ØˆÜ—’˜	Ó"ˆä�6Š6�)×Ñ÷3ö.ö,ô Ÿ
š
 9Ó-¨aÑ0ˆIØ)¨)Ñ4ˆMØ�I‘ˆB÷>ð >÷9ö'ñ
 �4 ¨4Ó?Ð?r   c                 ó  ^^^
^^• [         R                  " S5      m
TR                  nTR                  (       a  [        R
                  " SU45      mO[         R                  " SU45      mT[         R                  * :„  mSn[         R                  " T5      n[         R                  " T5      (       a  UU
U4S jnUU4S jnU4S jn	O;[         R                  " T5      S   mUT   nTT   mUU
UU4S jnUUU4S jnUU4S jn	U " XVXxX“5      $ )Nr   c                 ó0   >• TTTR                  U 5      -
  4$ r   rg   )r(   r"   r)   r    s    €€€r   r
   Ú6CanonicalConstraint._greater_to_canonical.<locals>.funí   s   ø€ Ø  " t§x¡x°£{Ñ"2Ð2Ð2r   c                 ó,   >• TTR                  U 5      * 4$ r   rk   rl   s    €€r   r   Ú6CanonicalConstraint._greater_to_canonical.<locals>.jacð   s   ø€ Ø  4§8¡8¨A£; ,Ð.Ð.r   c                 ó(   >• TR                  X* 5      $ r   ro   rp   s      €r   r   Ú7CanonicalConstraint._greater_to_canonical.<locals>.hessó   s   ø€ Ø—y‘y  GÓ,Ð,r   c                 ó6   >• TTTR                  U 5      T   -
  4$ r   rg   )r(   r"   r)   Ú	finite_lbr    s    €€€€r   r
   rˆ   ú   s    ø€ Ø  " t§x¡x°£{°9Ñ'=Ñ"=Ð=Ð=r   c                 ó2   >• TTR                  U 5      T   * 4$ r   rk   )r(   r"   r-   rŽ   s    €€€r   r   rŠ   ý   s   ø€ Ø  4§8¡8¨A£;¨yÑ#9Ð"9Ð9Ð9r   c                 ór   >• [         R                  " TR                  5      nU* UT'   TR                  X5      $ r   r   )r(   r0   r1   r‚   r"   rŽ   s       €€r   r   rŒ      s.   ø€ Ü—H’H˜TŸV™VÓ$�Ø &˜w��)‘Ø—y‘y “Ð&r   rƒ   )r   r"   r    r   r   r   r	   r
   r   r   r)   r-   rŽ   s    ``       @@@r   r   Ú)CanonicalConstraint._greater_to_canonicalß   sÓ   ü€ ä—H’H˜Q“Kˆ	Ø�F‰FˆØ××ÜŸš q¨! fÓ-‰IäŸš ! Q Ó(ˆIàœ"Ÿ&™&˜‘Lˆ	ØˆÜ—’˜	Ó"ˆä�6Š6�)×Ñ÷3ö/ö-ô Ÿ
š
 9Ó-¨aÑ0ˆIØ)¨)Ñ4ˆMØ�I‘ˆB÷>ð >÷:ö'ñ
 �4 ¨4Ó?Ð?r   c           	      ó–  ^^^^^^^^^^• T[         R                  * :H  nT[         R                  :H  nTT:H  mXV) -  mXe) -  mT) U) -  U) -  m[         R                  " T5      S   m[         R                  " T5      S   m[         R                  " T5      S   m[         R                  " T5      S   mTR                  S   mTR                  S   mTR                  S   mTT-   ST-  -   nTR                  S   n[         R                  " UT   UT   UT   UT   45      nUUUUUUU4S jn	UUUUU4S jn
UUUUUUUUU4	S jnU " X‡XšX´5      $ )Nr   é   c                 óÈ   >• TR                  U 5      nUT   TT   -
  nUT   TT   -
  nTT	   UT	   -
  nUT
   TT
   -
  nTT
   UT
   -
  nU[        R                  " X4XV45      4$ r   )r
   r   r=   )r(   ÚfÚeqÚleÚgeÚilÚigr"   ÚequalÚgreaterÚintervalr    Úlessr!   s          €€€€€€€r   r
   Ú7CanonicalConstraint._interval_to_canonical.<locals>.fun  sƒ   ø€ Ø—‘˜“ˆAØ�5‘˜B˜u™IÑ%ˆBØ�4‘˜2˜d™8Ñ#ˆBØ�G‘˜q ™zÑ)ˆBØ�8‘˜r (™|Ñ+ˆBØ�H‘  (¡Ñ+ˆBØ”r—y’y "¨"Ð!1Ó2Ð2Ð2r   c                 óø   >• TR                  U 5      nUT	   nUT   nUT
   * nUT   nU* n[        R                  " U5      (       a  [        R                  " X4XV45      nX'4$ [        R                  " X4XV45      nX'4$ r   )r   r6   ÚissparserD   r   )r(   ÚJr–   r—   r˜   r™   rš   Úineqr"   r›   rœ   r�   rž   s           €€€€€r   r   Ú7CanonicalConstraint._interval_to_canonical.<locals>.jac(  s‚   ø€ Ø—‘˜“ˆAØ�5‘ˆBØ�4‘ˆBØ�G‘*�ˆBØ�8‘ˆBØ�ˆBÜ�|Š|˜A�‰Ü—z’z 2¨2Ð"2Ó3�ð �8ˆOô —y’y "¨"Ð!1Ó2�Ø�8ˆOr   c                 óÖ   >	• SnX#UT-    nUT-  nX#UT-    nUT-  nX#UT-    nUT-  nX#UT-    n[         R                  " T5      nXT
'   XHT'   U* UT'   Xg-
  UT'   T	R                  X5      $ )Nr   )r   rH   r   )r(   r0   r1   Ún_startÚv_lÚv_gÚv_ilÚv_igr‚   r"   r›   rœ   r�   r    rž   Ú	n_greaterÚ
n_intervalÚn_lesss            €€€€€€€€€r   r   Ú8CanonicalConstraint._interval_to_canonical.<locals>.hess5  s¢   ø€ ØˆGØ ¨6Ñ!1Ð2ˆCØ�vÑˆGØ ¨9Ñ!4Ð5ˆCØ�yÑ ˆGØ '¨JÑ"6Ð7ˆDØ�zÑ!ˆGØ '¨JÑ"6Ð7ˆDä—’˜bÓ!ˆAØˆe‰HØˆd‰GØ˜ˆAˆg‰JØ™+ˆAˆh‰Kà—9‘9˜Q“?Ð"r   )r   r   r„   rR   r=   )r   r"   r    r!   r   Úlb_infÚub_infr	   r   r
   r   r   r›   rœ   r�   rž   r«   r¬   r­   s    ```        @@@@@@@r   r   Ú*CanonicalConstraint._interval_to_canonical  sH  ÿù€ àœŸ™�w‘ˆØ”r—v‘v‘ˆØ�b‘ˆØ˜ÑˆØ˜7Ñ"ˆØ�6˜V˜GÑ# v gÑ-ˆä—
’
˜5Ó! !Ñ$ˆÜ�zŠz˜$Ó Ñ"ˆÜ—*’*˜WÓ% aÑ(ˆÜ—:’:˜hÓ'¨Ñ*ˆØ—‘˜A‘ˆØ—M‘M !Ñ$ˆ	Ø—^‘^ AÑ&ˆ
Ø˜)Ñ# a¨*¡nÑ4ˆØ�{‰{˜1‰~ˆäŸ	š	 =°Ñ#6Ø#0°Ñ#9Ø#0°Ñ#:Ø#0°Ñ#:ð#<ó =ˆ÷
	3ó 	3÷	ñ 	÷	#õ 	#ñ$ �4 ¨4Ó?Ð?r   )r
   r   r   r   r   r	   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   Úclassmethodr#   r   rc   r   r   r   r   Ú__static_attributes__r'   r   r   r   r      sª   † ñ#òH+ð ñKó ðKð( ñFó ðFð* ñ7@ó ð7@ðr ñ@ó ð@ð> ñ%@ó ð%@ðN ñ%@ó ð%@ðN ñ?@ó ó?@r   r   c                 óò  • / n/ n/ n/ nU GH…  nUR                   R                  nUR                   R                  n	UR                  u  p«[        R
                  " X«:H  5      (       a&  UR                  XŠ-
  5        UR                  U	5        M�  [        R
                  " U
[        R                  * :H  5      (       a@  U[        R                  :  nUR                  XŒ   X¼   -
  5        UR                  Xœ   5        Mî  [        R
                  " U[        R                  :H  5      (       aC  U
[        R                  * :„  nUR                  X­   X�   -
  5        UR                  X�   * 5        GM]  U
[        R                  * :H  nU[        R                  :H  nX«:H  nXï) -  nXþ) -  nU) U) -  U) -  nUR                  UU   U
U   -
  5        UR                  UU   UU   -
  5        UR                  U
U   UU   -
  5        UR                  UU   UU   -
  5        UR                  U
U   UU   -
  5        UR                  U	U   5        UR                  U	U   5        UR                  U	U   * 5        UR                  U	U   5        UR                  U	U   * 5        GMˆ     U(       a  [        R                  " U5      O[        R                  " S5      nU(       a  [        R                  " U5      O[        R                  " S5      nU(       a)  [        R                  n[        R                  " SU 45      nO([        R                  n[        R                  " SU 45      nU(       a  U" U5      OUnU(       a  U" U5      OUnX4XV4$ )a  Convert initial values of the constraints to the canonical format.

The purpose to avoid one additional call to the constraints at the initial
point. It takes saved values in `PreparedConstraint`, modifies and
concatenates them to the canonical constraint format.
r   )r
   r•   r¢   r   r   r   rQ   r   r=   r   r6   rD   r7   )r   Úprepared_constraintsrb   Úc_eqÚc_ineqÚJ_eqÚJ_ineqr>   r•   r¢   r    r!   r|   rŽ   r¯   r°   r›   rž   rœ   r�   rD   r   s                         r   Ú initial_constraints_as_canonicalr¿   J  s·  € ð €DØ€FØ€DØ€Fä!ˆØ�E‰E�G‰GˆØ�E‰E�G‰GˆØ—‘‰ˆÜ�6Š6�"‘(×ÑØ�K‰K˜™ÔØ�K‰K˜ŽNÜ�VŠV�Bœ2Ÿ6™6˜'‘M×"Ñ"ØœRŸV™V™ˆIØ�M‰M˜!™,¨©Ñ6Ô7Ø�M‰M˜!™,Ö'Ü�VŠV�Bœ"Ÿ&™&‘L×!Ñ!ØœbŸf™f˜W™ˆIØ�M‰M˜"™-¨!©,Ñ6Ô7Ø�M‰M˜1™<˜-×(àœBŸF™F˜7‘]ˆFØœ2Ÿ6™6‘\ˆFØ‘HˆEØ˜GÑ#ˆDØ˜wÑ&ˆGØ�v  Ñ'¨6¨'Ñ1ˆHà�K‰K˜˜%™ 2 e¡9Ñ,Ô-Ø�M‰M˜!˜D™' B t¡HÑ,Ô-Ø�M‰M˜"˜W™+¨¨'©
Ñ2Ô3Ø�M‰M˜!˜H™+¨¨8©Ñ4Ô5Ø�M‰M˜"˜X™,¨¨8©Ñ4Ô5à�K‰K˜˜%™Ô!Ø�M‰M˜!˜D™'Ô"Ø�M‰M˜1˜W™:˜+Ô&Ø�M‰M˜!˜H™+Ô&Ø�M‰M˜1˜X™;˜,×'ñC "öF #Œ2�9Š9�TŒ?¬¯ª°«€DÞ"(ŒR�YŠY�vÔ¬b¯hªh°q«k€FæÜ—‘ˆÜ—’˜q !˜fÓ%‰ä—‘ˆÜ—’˜!˜Q˜Ó ˆæ‰6�$Œ< U€DÞ%‰V�FŒ^¨5€Fà˜Ð%Ð%r   )Únumpyr   Úscipy.sparseÚsparser6   r   r¿   r'   r   r   Ú<module>rÃ      s   ðÛ Ý ÷B@ñ B@óJ
<&r   