§
    fŠtjO  ã                   ó  — d Z ddlmZ ddlZddlmZ ddlmZm	Z	 ddl
mZ ddlmZmZ ddlmZ ddlZddlZdd	lmZ d
dlmZ ej        ej        ej        ej        ej        ej        ej        dœZej        ej        ej        ej        dœZd„ Z g d¢e _!        i e _"        i e _#        i e _$        d„ Z%g d¢e%_!        ej        ej        dœe%_"        i e%_#        i e%_$        d„ Z&g d¢e&_!        i e&_"        i e&_#        i e&_$        d„ Z'g d¢e'_!        i e'_"        i e'_#        i e'_$        d„ Z(ddge(_!        ej        ej        ej        dœe(_"        dhe(_#        h d£e(_$        d„ Z)g d¢e)_!        ej        ej        ej        dœe)_"        d dhe)_#        dhe)_$        d!„ Z*d"d#ge*_!        ej        ej        ej        dœe*_"        i e*_#        i e*_$         G d$„ d%¦  «        Z+ G d&„ d'¦  «        Z, G d(„ d)¦  «        Z- G d*„ d+¦  «        Z. G d,„ d-¦  «        Z/dS ).zA Unit tests for nonlinear solvers
Author: Ondrej Certik
May 2007
é    )Úassert_N)Úpartial)Ú_nonlinÚroot)Ú	csr_array)ÚdiagÚdot)Úinv©Úminresé   )Úpressure_network)ÚandersonÚdiagbroydenÚlinearmixingÚexcitingmixingÚbroyden1Úbroyden2Úkrylov)r   r   r   r   c                 ó¦   — t          j        | ¦  «        j        } t          g d¢¦  «        }d}| | z  |t	          | j        | z  ¦  «        z  | z  z
  }|S )N)é   é   g      ø?r   ç      à?ç{®Gáz„?)ÚnpÚasarrayÚTr   Úfloat)ÚxÚdÚcÚfs       ú^/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/scipy/optimize/tests/test_nonlin.pyÚFr$   "   sU   € Ý
Œ
�1‰ŒŒ€AÝÐ Ð Ð Ñ!Ô!€AØ€AØ	
ˆˆQ‰�•U˜1œ3 ™7‘^”^Ñ# aÑ'Ñ'€AØ€Hó    )r   r   r   r   r   c                 ó   — | S ©N© ©r   s    r#   ÚF2r*   0   ó   € Ø€Hr%   )r   r   r   é   é   é   )r   r   c                 ó   — | S r'   r(   r)   s    r#   ÚF2_luckyr0   ;   r+   r%   )r   r   r   r   r   r   c                 óx   — t          j        g d¢g d¢g d¢g¦  «        }t          j        g d¢¦  «        }|| z  |z
  S )N)éþÿÿÿr   ç        )r   r2   r   )r   r   r2   )r   r   ç      @)r   Úarray©r   ÚAÚbs      r#   ÚF3r9   E   sE   € Ý
Œ�+�+�+˜z˜z˜z¨:¨:¨:Ð6Ñ7Ô7€AÝ
Œ���ÑÔ€AØˆq‰5�1‰9Ðr%   )r   r   r   c                 ó´   — d}|| d         z  | d         z  dz
  t          j        | d          ¦  «        t          j        | d          ¦  «        z   dd|z  z   z
  gS )Ng     ˆÃ@r   r   )r   Úexp)r   r7   s     r#   Ú	F4_powellr<   Q   sT   € Ø€AØˆa�Œd‰F�1�Q”4‰K˜!‰O�RœV Q q¤T E™]œ]­R¬V°Q°q´T°E©]¬]Ñ:¸aÀ!ÀAÁ#¹gÑFÐGÐGr%   éÿÿÿÿr2   )r   r   r   r   >   ÚcgsÚgmresÚtfqmrr   Úbicgstabc                 óL   — t          | dt          j        g d¢¦  «        ¦  «        S )Nr,   )r   r   r   r   )r   r   r5   r)   s    r#   ÚF5rC   a   s%   € Ý˜A˜q¥"¤(Ð+;Ð+;Ð+;Ñ"<Ô"<Ñ=Ô=Ð=r%   )ç       @r   r   r   )r   r   r   r>   c           	      ó   — | \  }}t          j        ddgddgg¦  «        }t          j        |dz   |dz  dz
  z  dz   t          j        |t          j        |¦  «        z  d	z
  ¦  «        g¦  «        }t           j                             ||¦  «         S )
Ng /Ý$Àgffffff-@g+åÌ,Ýê?gr•þ�D0ã?r   r-   é   é   r   )r   r5   Úsinr;   ÚlinalgÚsolve)r   Úx1Úx2ÚJ0Úvs        r#   ÚF6rO   p   s”   € Ø�F€BˆÝ	Œ�F˜D�>Ø˜zÐ*ð,ñ 
-ô 
-€Bå
Œ�2˜‘6˜b !™e a™iÑ(¨3Ñ.Ý”&˜�bœf R™jœj™¨1Ñ,Ñ-Ô-ð/ñ 	0ô 	0€AåŒI�OŠO˜B Ñ"Ô"Ð"Ð"r%   g      à¿gffffffö?c                   óv  — e Zd ZdZdd„Zdd„Zej        j        d„ ¦   «         Z	ej         
                    d¦  «        d„ ¦   «         Zej         
                    d¦  «        ej                             dg d	¢¦  «        d
„ ¦   «         ¦   «         Zej         
                    d¦  «        d„ ¦   «         Zd„ Zd„ Zd„ ZdS )Ú
TestNonlinzÈ
    Check the Broyden methods for a few test problems.

    broyden1, broyden2, and newton_krylov must succeed for
    all functions. Some of the others don't -- tests in KNOWN_BAD are skipped.

    r   c           
      óž  — |t           d         k    rfdD ]c}||j        v rŒ |||j        |d |dd¬¦  «        }t          t	          j         ||¦  «        ¦  «                             ¦   «         |k     ¦  «         Œd |||j        |dd¬¦  «        }t          t	          j         ||¦  «        ¦  «                             ¦   «         |k     ¦  «         d S )Nr   ©r?   rA   r>   r   r@   éÈ   r   )ÚmethodÚline_searchÚf_tolÚmaxiterÚverbose)rW   rX   rY   )ÚSOLVERSÚJAC_KSP_BADÚxinr   r   ÚabsoluteÚmax)Úselfr"   ÚfuncrW   rU   r   s         r#   Ú_check_nonlin_funczTestNonlin._check_nonlin_func�   sß   € à•7˜8Ô$Ò$Ð$ØIð 9ð 9�Ø˜Qœ]Ð*Ð*Øà�D˜˜AœE¨&¸dØ$¨c¸1ð>ñ >ô >�å�œ A A a¡D¤DÑ)Ô)×-Ò-Ñ/Ô/°%Ò7Ñ8Ô8Ð8Ð8àˆD��A”E °¸QÐ?Ñ?Ô?ˆÝ•”˜A˜A˜a™DœDÑ!Ô!×%Ò%Ñ'Ô'¨%Ò/Ñ0Ô0Ð0Ð0Ð0r%   c                 ó–  — |dk    rjdD ]g}||j         v rŒt          ||j        ||ddd|idœ¬¦  «        }t          t	          j        |j        ¦  «                             ¦   «         |k     ¦  «         Œht          ||j        ||dddœ¬¦  «        }t          t	          j        |j        ¦  «                             ¦   «         |k     ¦  «         d S )	Nr   rS   rT   r   rU   )ÚftolrX   ÚdispÚjac_options©rU   Úoptions)rc   rX   rd   )ÚROOT_JAC_KSP_BADr   r\   r   r   r]   Úfunr^   )r_   r"   rU   rW   Ú
jac_methodÚress         r#   Ú_check_rootzTestNonlin._check_root�   sõ   € à�XÒÐØMð <ð <�
Ø Ô!3Ð3Ð3Øå˜1˜aœe¨FØ,1¸cØ,-Ø4<¸jÐ3Ið$Kð $KðLñ Lô L�õ �œ C¤GÑ,Ô,×0Ò0Ñ2Ô2°UÒ:Ñ;Ô;Ð;Ð;å�1�a”e FØ$)°cÀ1ÐEÐEðGñ Gô Gˆå•”˜CœGÑ$Ô$×(Ò(Ñ*Ô*¨UÒ2Ñ3Ô3Ð3Ð3Ð3r%   c                 ó   — d S r'   r(   )r_   ÚaÚkws      r#   Ú_check_func_failzTestNonlin._check_func_fail®   s   € àˆr%   zignore::DeprecationWarningc                 ób  — t           t          t          t          t          t
          t          fD ]�}t                               ¦   «         D ]e}||j	                             ¦   «         v r2|t                               ¦   «         v r|                      ||¦  «         ŒO|                      ||¦  «         ŒfŒ‚d S r'   )r$   r*   r0   r9   r<   rC   rO   rZ   ÚvaluesÚ	KNOWN_BADÚ	MUST_WORKrp   ra   )r_   r"   r`   s      r#   Útest_problem_nonlinzTestNonlin.test_problem_nonlin²   sª   € å•R�¥2¥yµ"µbÐ9ð 	1ð 	1ˆAÝŸšÑ(Ô(ð 1ð 1�Ø˜1œ;×-Ò-Ñ/Ô/Ð/Ð/Ø�y×/Ò/Ñ1Ô1Ð1Ð1Ø×-Ò-¨a°Ñ6Ô6Ð6ØØ×'Ò'¨¨4Ñ0Ô0Ð0Ð0ð1ð	1ð 	1r%   rU   )Úlgmresr?   rA   r>   r   r@   c           	      óœ   ‡ — d‰ _         ˆ fd„}t          j        t          t          j        |ddd|¬¦  «         t          ‰ j         ¦  «         d S )NFc                 ó^   •— d‰_         t          j        | ¦  «                             ¦   «         S )NT)Ú_tol_norm_usedr   r]   r^   )r   r_   s    €r#   Úlocal_norm_funcz8TestNonlin.test_tol_norm_called.<locals>.local_norm_funcÃ   s%   ø€ Ø"&ˆDÔÝ”;˜q‘>”>×%Ò%Ñ'Ô'Ð'r%   r   rT   r   )rU   rW   rX   rY   Útol_norm)ry   ÚnonlinÚnewton_krylovr$   r\   r   )r_   rU   rz   s   `  r#   Útest_tol_norm_calledzTestNonlin.test_tol_norm_called¼   sm   ø€ ð
 $ˆÔð	(ð 	(ð 	(ð 	(ð 	(õ 	Ô�Q¥¤¨f¸DØ%(°!Ø&5ð	7ñ 	7ô 	7ð 	7õ 	�Ô#Ñ$Ô$Ð$Ð$Ð$r%   c                 óö   — t           t          t          t          t          t
          t          fD ]K}t          D ]A}||j        v r |t          v r|  
                    ||¦  «         Œ+|                      ||¦  «         ŒBŒLd S r'   )r$   r*   r0   r9   r<   rC   rO   rZ   rs   rt   rp   rl   )r_   r"   Úmeths      r#   Útest_problem_rootzTestNonlin.test_problem_rootÌ   sˆ   € å•R�¥2¥yµ"µbÐ9ð 	*ð 	*ˆAÝð *ð *�Ø˜1œ;Ð&Ð&Ø�yÐ(Ð(Ø×-Ò-¨a°Ñ6Ô6Ð6ØØ× Ò   DÑ)Ô)Ð)Ð)ð*ð	*ð 	*r%   c                 ó´   — d„ }t          j        t          j        j        ¦  «        5  t          j        |dgd¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nc                 ó   — d| z   S )Ng     @�@r(   r)   s    r#   Úwont_convergez5TestNonlin.test_no_convergence.<locals>.wont_converge×   s   € Ø˜‘7ˆNr%   r   r   )r\   rX   )ÚpytestÚraisesÚscipyÚoptimizeÚNoConvergencer|   r}   )r_   r„   s     r#   Útest_no_convergencezTestNonlin.test_no_convergenceÖ   sº   € ð	ð 	ð 	õ Œ]�5œ>Ô7Ñ8Ô8ð 	Dð 	DÝÔ  °Q°CÀÐCÑCÔCÐCð	Dð 	Dð 	Dñ 	Dô 	Dð 	Dð 	Dð 	Dð 	Dð 	Dð 	Dð 	Døøøð 	Dð 	Dð 	Dð 	Dð 	Dð 	Ds   §AÁAÁAc                 ó^  — t          j        t          d¬¦  «        5  t          j        t
          t
          j        dd¬¦  «         ddd¦  «         n# 1 swxY w Y   t          j        t
          t
          j        ddd„ ¬	¦  «         d
„ }t          j        t
          t
          j        |¬¦  «         dS )a  
        Test for ENH #21986, for behavior of `nonlin.newton_krylov`
        Test the following scenarios:
        1. Raise warning for invalid inner param
        2. No warning for valid inner param
        3. No warning for user-provided callable method
        z'Please check inner method documentation©Úmatchr   çñhãˆµøä>)rU   Ú
inner_atolNéd   c                 ó   — dS )N.r(   )Ú_s    r#   ú<lambda>z>TestNonlin.test_warnings_invalid_inner_param.<locals>.<lambda>î   s   € ¸€ r%   )rU   Úinner_maxiterÚinner_callbackc                 ó   — t          | |fi |¤ŽS )z2A dummy user-provided callable method for testing.r   )ÚopÚrhsÚkwargss      r#   Ú'user_provided_callable_method_enh_21986z]TestNonlin.test_warnings_invalid_inner_param.<locals>.user_provided_callable_method_enh_21986ñ   s   € õ ˜"˜cÐ,Ð, VÐ,Ð,Ð,r%   )rU   )r…   ÚwarnsÚUserWarningr|   r}   r$   r\   )r_   rš   s     r#   Ú!test_warnings_invalid_inner_paramz,TestNonlin.test_warnings_invalid_inner_paramÝ   s  € õ Œ\�+Ø IðKñ Kô Kð 	Mð 	MåÔ ¥¥A¤E°(ÀtÐLÑLÔLÐLð	Mð 	Mð 	Mñ 	Mô 	Mð 	Mð 	Mð 	Mð 	Mð 	Mð 	Møøøð 	Mð 	Mð 	Mð 	Mõ 	Ô�Q¥¤¨hÀcØ-;¨^ð	=ñ 	=ô 	=ð 	=ð	-ð 	-ð 	-õ
 	Ô�Q¥¤Ø$Kð	Mñ 	Mô 	Mð 	Mð 	Mð 	Ms   œ(AÁAÁAc                 ó¼   — t          j        t          d¬¦  «        5  t          j        t
          t
          j        dd¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NzUnknown parameterrŒ   r   rŽ   )rU   Úinvalid_param)r…   r†   Ú
ValueErrorr|   r}   r$   r\   ©r_   s    r#   Útest_non_inner_prefixz TestNonlin.test_non_inner_prefixù   s´   € ÝŒ]�:Ø!4ðñ ô ð 	Pð 	Põ Ô ¥¥A¤E°(È$ÐOÑOÔOÐOð		Pð 	Pð 	Pñ 	Pô 	Pð 	Pð 	Pð 	Pð 	Pð 	Pð 	Pð 	Pøøøð 	Pð 	Pð 	Pð 	Pð 	Pð 	Ps   œ(AÁAÁAN)r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__ra   rl   r…   ÚmarkÚxfailrp   Úfilterwarningsru   Úparametrizer~   r�   rŠ   r�   r¢   r(   r%   r#   rQ   rQ   †   sV  € € € € € ðð ð1ð 1ð 1ð 1ð4ð 4ð 4ð 4ð" „[Ôðð ñ Ôðð „[×ÒÐ <Ñ=Ô=ð1ð 1ñ >Ô=ð1ð „[×ÒÐ <Ñ=Ô=Ø„[×Ò˜Xð (;ð (;ð (;ñ <ô <ð%ð %ñ<ô <ñ >Ô=ð%ð „[×ÒÐ <Ñ=Ô=ð*ð *ñ >Ô=ð*ðDð Dð DðMð Mð Mð8Pð Pð Pð Pð Pr%   rQ   c                   ód  — e Zd ZdZ ej        g d¢¦  «         ej        g d¢¦  «         ej        g d¢¦  «         ej        g d¢¦  «         ej        g d¢¦  «         ej        g d¢¦  «         ej        g d¢¦  «         ej        g d	¢¦  «        gZd
„ eD ¦   «         Zdd„Zd„ Z	d„ Z
d„ Zd„ Zd„ ZdS )Ú
TestSecantzDCheck that some Jacobian approximations satisfy the secant condition)ç      ð?rD   r4   ç      @ç      @)rD   r4   r®   r¯   r­   )r4   r®   r¯   r­   rD   )r®   r¯   r­   rD   r4   )ç      "@r­   r°   r­   r4   )r3   r­   r°   r­   r4   )r¯   r¯   ç      @r­   r­   )r­   rD   r±   r¯   r­   c                 ó   — g | ]
}|d z  dz
  ‘ŒS )r   r   r(   )Ú.0r   s     r#   ú
<listcomp>zTestSecant.<listcomp>  s    € Ð	Ð	Ð	�qˆ!ˆQ‰$�‰(Ð	Ð	Ð	r%   r   c           
      óh  —  |di |¤Ž}|                      | j        d         | j        d         d¦  «         t          t	          | j        dd…         | j        dd…         ¦  «        ¦  «        D �]C\  }\  }}|                     ||¦  «         t          t          ||dz   ¦  «        ¦  «        D ]}| j        ||z
  dz            | j        ||z
           z
  }	| j        ||z
  dz            | j        ||z
           z
  }
t          t          j
        |	|                     |
¦  «        ¦  «        ¦  «         Œ€||k    r~| j        ||z
  dz            | j        ||z
           z
  }	| j        ||z
  dz            | j        ||z
           z
  }
t          t          j
        |	|                     |
¦  «        ¦  «         ¦  «         �ŒEdS )z|
        Check that the given Jacobian approximation satisfies secant
        conditions for last `npoints` points.
        r   Nr   r(   )ÚsetupÚxsÚfsÚ	enumerateÚzipÚupdateÚrangeÚminr   r   ÚallcloserJ   )r_   Újac_clsÚnpointsro   ÚjacÚjr   r"   ÚkÚdxÚdfs              r#   Ú_check_secantzTestSecant._check_secant  s�  € ð
 ˆgˆmˆm˜ˆmˆmˆØ�	Š	�$”'˜!”*˜dœg aœj¨$Ñ/Ô/Ð/Ý"¥3 t¤w¨q¨r¨r¤{°D´G¸A¸B¸B´KÑ#@Ô#@ÑAÔAð 	<ñ 	<‰IˆA‰v��1Ø�JŠJ�q˜!ÑÔÐå�3˜w¨¨!©Ñ,Ô,Ñ-Ô-ð 8ð 8�Ø”W˜Q˜q™S ™U”^ d¤g¨a°©c¤lÑ2�Ø”W˜Q˜q™S ™U”^ d¤g¨a°©c¤lÑ2�Ý�œ B¨¯	ª	°"©¬Ñ6Ô6Ñ7Ô7Ð7Ð7ð �GŠ|ˆ|Ø”W˜Q˜w™Y q™[Ô)¨D¬G°A°g±IÔ,>Ñ>�Ø”W˜Q˜w™Y q™[Ô)¨D¬G°A°g±IÔ,>Ñ>�Ý�BœK¨¨C¯IªI°b©M¬MÑ:Ô:Ð:Ñ;Ô;Ð;ùð	<ð 	<r%   c                 óD   — |                       t          j        ¦  «         d S r'   )rÆ   r|   ÚBroydenFirstr¡   s    r#   Útest_broyden1zTestSecant.test_broyden1#  s   € Ø×Ò�6Ô.Ñ/Ô/Ð/Ð/Ð/r%   c                 óD   — |                       t          j        ¦  «         d S r'   )rÆ   r|   ÚBroydenSecondr¡   s    r#   Útest_broyden2zTestSecant.test_broyden2&  s   € Ø×Ò�6Ô/Ñ0Ô0Ð0Ð0Ð0r%   c           	      óŽ  — t          j        d¬¦  «        }|                     | j        d         | j        d         d ¦  «         t          j        d¦  «        dz  }t          t          | j        dd …         | j        dd …         ¦  «        ¦  «        D ]³\  }\  }}|| j        |         z
  }|| j        |         z
  }||t          ||¦  «        z
  d d …d f         |d d d …f         z  t          ||¦  «        z  z  }| 
                    ||¦  «         t          t          j        |                     ¦   «         |dd¬	¦  «        ¦  «         Œ´d S )
Nçš™™™™™¹?©Úalphar   r-   g      $Àr   ç»½×Ùß|Û=ç‚vIhÂ%<=©ÚrtolÚatol)r|   rÈ   r¶   r·   r¸   r   Úidentityr¹   rº   r	   r»   r   r¾   Útodense)r_   rÁ   ÚBÚlast_jr   r"   rÅ   rÄ   s           r#   Útest_broyden1_updatezTestSecant.test_broyden1_update)  s5  € åÔ!¨Ð,Ñ,Ô,ˆØ�	Š	�$”'˜!”*˜dœg aœj¨$Ñ/Ô/Ð/åŒK˜‰NŒN˜fÑ%ˆå'­¨D¬G°A°B°B¬K¸¼ÀÀÀ¼Ñ(EÔ(EÑFÔFð 	Kð 	K‰NˆF‘F�Q˜Ø�T”W˜V”_Ñ$ˆBØ�T”W˜V”_Ñ$ˆBØ�"•s˜1˜b‘z”z‘/ 1 1 1 d 7Ô+¨b°°q°q°q°¬kÑ9½CÀÀB¹K¼KÑGÑGˆAØ�JŠJ�q˜!ÑÔÐÝ•B”K §¢¡¤¨q°uÀ5ÐIÑIÔIÑJÔJÐJÐJð	Kð 	Kr%   c           	      ó¨  — t          j        d¬¦  «        }|                     | j        d         | j        d         d ¦  «         t          j        d¦  «        dz  }t          t          | j        dd …         | j        dd …         ¦  «        ¦  «        D ]À\  }\  }}|| j        |         z
  }|| j        |         z
  }||t          ||¦  «        z
  d d …d f         |d d d …f         z  t          ||¦  «        z  z  }| 
                    ||¦  «         t          t          j        |                     ¦   «         t          |¦  «        dd¬	¦  «        ¦  «         ŒÁd S )
NrÎ   rÏ   r   r-   gš™™™™™¹¿r   rÑ   rÒ   rÓ   )r|   rË   r¶   r·   r¸   r   rÖ   r¹   rº   r	   r»   r   r¾   r×   r
   )r_   rÁ   ÚHrÙ   r   r"   rÅ   rÄ   s           r#   Útest_broyden2_updatezTestSecant.test_broyden2_update7  s;  € åÔ"¨Ð-Ñ-Ô-ˆØ�	Š	�$”'˜!”*˜dœg aœj¨$Ñ/Ô/Ð/åŒK˜‰NŒN˜dÑ#ˆå'­¨D¬G°A°B°B¬K¸¼ÀÀÀ¼Ñ(EÔ(EÑFÔFð 	Pð 	P‰NˆF‘F�Q˜Ø�T”W˜V”_Ñ$ˆBØ�T”W˜V”_Ñ$ˆBØ�"•s˜1˜b‘z”z‘/ 1 1 1 d 7Ô+¨b°°q°q°q°¬kÑ9½CÀÀB¹K¼KÑGÑGˆAØ�JŠJ�q˜!ÑÔÐÝ•B”K §¢¡¤­s°1©v¬v¸EÈÐNÑNÔNÑOÔOÐOÐOð	Pð 	Pr%   c                 óL   — |                       t          j        ddd¬¦  «         d S )Nr   r   )ÚMÚw0rÀ   )rÆ   r|   ÚAndersonr¡   s    r#   Útest_andersonzTestSecant.test_andersonE  s)   € ð
 	×Ò�6œ?¨a°A¸qÐÑAÔAÐAÐAÐAr%   N)r   )r£   r¤   r¥   r¦   r   r5   r·   r¸   rÆ   rÉ   rÌ   rÚ   rÝ   râ   r(   r%   r#   r¬   r¬     sP  € € € € € ØNÐNà
ˆ"Œ(Ð'Ð'Ð'Ñ
(Ô
(Ø
ˆ"Œ(Ð'Ð'Ð'Ñ
(Ô
(Ø
ˆ"Œ(Ð'Ð'Ð'Ñ
(Ô
(Ø
ˆ"Œ(Ð'Ð'Ð'Ñ
(Ô
(Ø
ˆ"Œ(Ð'Ð'Ð'Ñ
(Ô
(Ø
ˆ"Œ(Ð'Ð'Ð'Ñ
(Ô
(Ø
ˆ"Œ(Ð'Ð'Ð'Ñ
(Ô
(Ø
ˆ"Œ(Ð'Ð'Ð'Ñ
(Ô
(ð
+€Bð 
 Ð	˜BÐ	Ñ	Ô	€Bð<ð <ð <ð <ð*0ð 0ð 0ð1ð 1ð 1ðKð Kð KðPð Pð PðBð Bð Bð Bð Br%   r¬   c                   óD   — e Zd ZdZdd„Zd„ Zd„ Zd„ Zd„ Zd„ Z	d	„ Z
d
„ ZdS )Ú
TestLinearz]Solve a linear equation;
    some methods find the exact solution in a finite number of stepsFc           	      óâ  ‡	‡
— t           j                             d¦  «        }|                     ||f¦  «        Š	|r‰	d|                     ||f¦  «        z  z   Š	|                     |¦  «        Š
|r‰
d|                     |¦  «        z  z   Š
ˆ	ˆ
fd„}t	          j        |t          j        |¦  «        ||dd d¬¦  «        }t          t          j        t          ‰	|¦  «        ‰
d¬¦  «        ¦  «         d S )Né{   ù              ð?c                 ó*   •— t          ‰| ¦  «        ‰z
  S r'   ©r	   r6   s    €€r#   r`   zTestLinear._check.<locals>.func[  s   ø€ Ý�q˜!‘9”9˜q‘=Ð r%   ç�íµ ÷Æ°>r   ©rX   rW   rV   rY   ©rÕ   )
r   ÚrandomÚdefault_rngÚstandard_normalr|   Únonlin_solveÚzerosr   r¾   r	   )r_   rÁ   ÚNrX   Úcomplexro   Úrngr`   Úsolr7   r8   s            @@r#   Ú_checkzTestLinear._checkQ  s  øø€ ÝŒi×#Ò# CÑ(Ô(ˆà×Ò  A Ñ'Ô'ˆØð 	3Ø�B�s×*Ò*¨A¨q¨6Ñ2Ô2Ñ2Ñ2ˆAØ×Ò Ñ"Ô"ˆØð 	.Ø�B�s×*Ò*¨1Ñ-Ô-Ñ-Ñ-ˆAð	!ð 	!ð 	!ð 	!ð 	!ð 	!õ Ô! $­¬°©¬°SÀ'Ø(,¸$ÈðKñ Kô Kˆå•”�C  3™KœK¨°Ð6Ñ6Ô6Ñ7Ô7Ð7Ð7Ð7r%   c                 ó²   — |                       t          j        d¬¦  «        ddd¦  «         |                       t          j        d¬¦  «        ddd¦  «         d S ©Nr­   rÏ   é   é)   FT)rö   r|   rÈ   r¡   s    r#   rÉ   zTestLinear.test_broyden1b  sT   € à�Š•FÔ'¨cÐ2Ñ2Ô2°B¸¸EÑBÔBÐBØ�Š•FÔ'¨cÐ2Ñ2Ô2°B¸¸DÑAÔAÐAÐAÐAr%   c                 ó²   — |                       t          j        d¬¦  «        ddd¦  «         |                       t          j        d¬¦  «        ddd¦  «         d S rø   )rö   r|   rË   r¡   s    r#   rÌ   zTestLinear.test_broyden2g  sT   € à�Š•FÔ(¨sÐ3Ñ3Ô3°R¸¸UÑCÔCÐCØ�Š•FÔ(¨sÐ3Ñ3Ô3°R¸¸TÑBÔBÐBÐBÐBr%   c                 ó¶   — |                       t          j        dd¬¦  «        ddd¦  «         |                       t          j        dd¬¦  «        ddd¦  «         d S )Né2   r­   )rß   rÐ   rù   é   FT)rö   r|   rá   r¡   s    r#   râ   zTestLinear.test_andersonl  sV   € à�Š•F”O b°Ð4Ñ4Ô4°b¸"¸eÑDÔDÐDØ�Š•F”O b°Ð4Ñ4Ô4°b¸"¸dÑCÔCÐCÐCÐCr%   c                 ó–   — |                       t          j        dddd¬¦  «         |                       t          j        dddd¬¦  «         d S )Nrù   r   Fé
   )Úinner_mT)rö   r|   ÚKrylovJacobianr¡   s    r#   Útest_krylovzTestLinear.test_krylovq  sF   € à�Š•FÔ)¨2¨q°%ÀˆÑDÔDÐDØ�Š•FÔ)¨2¨q°$ÀˆÑCÔCÐCÐCÐCr%   c           	      ó”  ‡‡— ˆˆfd„}ˆfd„}t          j        |t          j        ‰j        d         ¦  «        |ddd d¬¦  «        }t          j                             ‰|z  ‰d¬¦  «         t          j        |t          j        ‰j        d         ¦  «        ‰ddd d¬¦  «        }t          j                             ‰|z  ‰d¬¦  «         d S )Nc                 ó4   •— ‰                      | ¦  «        ‰z
  S r'   ré   r6   s    €€r#   r`   z'TestLinear._check_autojac.<locals>.funcw  s   ø€ Ø—5’5˜‘8”8˜a‘<Ðr%   c                 ó   •— ‰S r'   r(   )rN   r7   s    €r#   rÁ   z&TestLinear._check_autojac.<locals>.jacz  s   ø€ ØˆHr%   r   r   rê   rë   rì   )r|   rð   r   rñ   ÚshapeÚtestingÚassert_allclose)r_   r7   r8   r`   rÁ   rõ   s    ``   r#   Ú_check_autojaczTestLinear._check_autojacv  s÷   øø€ ð	 ð 	 ð 	 ð 	 ð 	 ð 	 ð	ð 	ð 	ð 	ð 	õ Ô! $­¬°´¸´Ñ(<Ô(<¸cÈ1Ø(,¸$ÈðKñ Kô Kˆå
Œ
×"Ò" 1 s¡7¨A°DÐ"Ñ9Ô9Ð9åÔ! $­¬°´¸´Ñ(<Ô(<¸aÈØ(,¸$ÈðKñ Kô Kˆå
Œ
×"Ò" 1 s¡7¨A°DÐ"Ñ9Ô9Ð9Ð9Ð9r%   c                 óÀ   — t          ddgddgg¦  «        }t          j        ddg¦  «        }|                      ||¦  «         |                      d|z  d|z  ¦  «         d S ©Nr   r   r=   y      ð?       @y       @       @)r   r   r5   r
  ©r_   r7   r8   s      r#   Útest_jac_sparsezTestLinear.test_jac_sparse…  si   € Ý˜˜1�v  1˜vÐ&Ñ'Ô'ˆÝŒH�a˜�WÑÔˆØ×Ò˜A˜qÑ!Ô!Ð!Ø×Ò˜V q™L¨6°Q©,Ñ7Ô7Ð7Ð7Ð7r%   c                 óÊ   — t          j        ddgddgg¦  «        }t          j        ddg¦  «        }|                      ||¦  «         |                      d|z  d|z  ¦  «         d S r  )r   r5   r
  r  s      r#   Útest_jac_ndarrayzTestLinear.test_jac_ndarray‹  sk   € ÝŒH�q˜!�f˜q !˜fÐ%Ñ&Ô&ˆÝŒH�a˜�WÑÔˆØ×Ò˜A˜qÑ!Ô!Ð!Ø×Ò˜V q™L¨6°Q©,Ñ7Ô7Ð7Ð7Ð7r%   N)F)r£   r¤   r¥   r¦   rö   rÉ   rÌ   râ   r  r
  r  r  r(   r%   r#   rä   rä   M  s©   € € € € € ðHð Hð8ð 8ð 8ð 8ð"Bð Bð Bð
Cð Cð Cð
Dð Dð Dð
Dð Dð Dð
:ð :ð :ð8ð 8ð 8ð8ð 8ð 8ð 8ð 8r%   rä   c                   óL   — e Zd ZdZdd„Zdd„Zd„ Zd„ Zd	„ Zd
„ Z	d„ Z
d„ Zd„ ZdS )ÚTestJacobianDotSolvezP
    Check that solve/dot methods in Jacobian approximations are consistent
    Nc                 ó>   — |dz  dz
  t          j        ||¦  «        z   S )Nr   r   )r   r	   )r_   r   r7   s      r#   Ú_funczTestJacobianDotSolve._func—  s   € Ø�!‰t�a‰x�"œ&  A™,œ,Ñ&Ð&r%   Frê   c                 ó”  ‡‡‡— t           j                             d¦  «        Šd}ˆˆfd„}ˆfd„} |||¦  «        }‰                     |¦  «        }	 |di |¤Ž}
|
                     |	|                      |	|¦  «        t          | j        |¬¦  «        ¦  «         t          d|z  ¦  «        D �]œ} ||¦  «        }t          |
d¦  «        �rtt          j        |
¦  «        }t          |
d¦  «        rB|
 	                    |¦  «        }t           j
         	                    ||¦  «        } |||d	¦  «         t          |
d
¦  «        rY|
                     |¦  «        }t           j
         	                    |j                             ¦   «         |¦  «        } |||d¦  «         t          |
d¦  «        r7|
                     |¦  «        }t          j        ||¦  «        } |||d¦  «         t          |
d¦  «        rN|
                     |¦  «        }t          j        |j                             ¦   «         |¦  «        } |||d¦  «         t          |
d¦  «        rZt          |
d¦  «        rJ|
                     |¦  «        }|
 	                    |
                     |¦  «        ¦  «        } |||d¦  «         t          |
d¦  «        rZt          |
d
¦  «        rJ|
                     |¦  «        }|
                     |
                     |¦  «        ¦  «        } |||d¦  «          ||¦  «        }|
                     ||                      ||¦  «        ¦  «         �Œžd S )Nræ   rF   c                  ól   •— ‰                      | ¦  «        }‰r|d‰                      | ¦  «        z  z   }|S )Nrç   )rí   )rn   Úqró   rô   s     €€r#   Úrandz-TestJacobianDotSolve._check_dot.<locals>.randŸ  s8   ø€ Ø—
’
˜1‘”ˆAØð )Ø˜˜3Ÿ:š: a™=œ=Ñ(Ñ(�ØˆHr%   c                 óÔ   •— t          | |z
  ¦  «                             ¦   «         }‰t          |¦  «                             ¦   «         ‰z  z   }||k    rt          |› d|d›�¦  «        ‚d S )Nz: err Úg)Úabsr^   ÚAssertionError)rn   r8   Úmsgr    r"   Útols        €r#   Úassert_closez5TestJacobianDotSolve._check_dot.<locals>.assert_close¥  sh   ø€ Ý�A˜‘E‘
”
—’Ñ Ô ˆAØ•c˜!‘f”f—j’j‘l”l 3Ñ&Ñ&ˆAØ�1ŠuˆuÝ$¨Ð%8Ð%8°1Ð%8Ð%8Ð%8Ñ9Ô9Ð9ð ˆur%   )r7   r   Ú	__array__rJ   zsolve vs arrayÚrsolvezrsolve vs arrayÚmatveczdot vs arrayÚrmatveczrmatvec vs arrayzdot vs solvezrmatvec vs rsolver(   )r   rí   rî   r¶   r  r   r¼   Úhasattrr5   rJ   rI   r!  r   Úconjr"  r	   r#  r»   )r_   r¿   ró   r  ro   rò   r  r  r7   Úx0rÁ   rÃ   rN   ÚJdÚGvÚGv2ÚJvÚJv2r   rô   s     ``               @r#   Ú
_check_dotzTestJacobianDotSolve._check_dotš  s8  øøø€ ÝŒi×#Ò# CÑ(Ô(ˆàˆð	ð 	ð 	ð 	ð 	ð 	ð	:ð 	:ð 	:ð 	:ð 	:ð ˆD��A‰JŒJˆð �ZŠZ˜‰]Œ]ˆØˆgˆmˆm˜ˆmˆmˆØ�	Š	�"�d—j’j  QÑ'Ô'­°´¸qÐ)AÑ)AÔ)AÑBÔBÐBõ �q˜‘s‘”ð !	,ñ !	,ˆAØ��Q‘”ˆAå�s˜KÑ(Ô(ñ >Ý”X˜c‘]”]�Ý˜3 Ñ(Ô(ð <ØŸš 1™œ�BÝœ)Ÿ/š/¨"¨aÑ0Ô0�CØ �L  SÐ*:Ñ;Ô;Ð;Ý˜3 Ñ)Ô)ð =ØŸš A™œ�BÝœ)Ÿ/š/¨"¬$¯)ª)©+¬+°qÑ9Ô9�CØ �L  SÐ*;Ñ<Ô<Ð<Ý˜3 Ñ)Ô)ð :ØŸš A™œ�BÝœ&  Q™-œ-�CØ �L  S¨.Ñ9Ô9Ð9Ý˜3 	Ñ*Ô*ð >ØŸš Q™œ�BÝœ& ¤§¢¡¤¨aÑ0Ô0�CØ �L  SÐ*<Ñ=Ô=Ð=å�s˜HÑ%Ô%ð 6­'°#°wÑ*?Ô*?ð 6Ø—Z’Z ‘]”]�Ø—i’i §
¢
¨2¡¤Ñ/Ô/�Ø�˜R  nÑ5Ô5Ð5å�s˜IÑ&Ô&ð ;­7°3¸Ñ+AÔ+Að ;Ø—[’[ ‘^”^�Ø—k’k #§*¢*¨R¡.¤.Ñ1Ô1�Ø�˜R Ð&9Ñ:Ô:Ð:à��Q‘”ˆAØ�JŠJ�q˜$Ÿ*š* Q¨Ñ*Ô*Ñ+Ô+Ð+Ñ+ðC!	,ð !	,r%   c                 óŠ   — |                       t          j        d¬¦  «         |                       t          j        d¬¦  «         d S ©NF)ró   T)r,  r|   rÈ   r¡   s    r#   rÉ   z"TestJacobianDotSolve.test_broyden1Ö  ó:   € Ø�Š�Ô+°UˆÑ;Ô;Ð;Ø�Š�Ô+°TˆÑ:Ô:Ð:Ð:Ð:r%   c                 óŠ   — |                       t          j        d¬¦  «         |                       t          j        d¬¦  «         d S r.  )r,  r|   rË   r¡   s    r#   rÌ   z"TestJacobianDotSolve.test_broyden2Ú  s:   € Ø�Š�Ô,°eˆÑ<Ô<Ð<Ø�Š�Ô,°dˆÑ;Ô;Ð;Ð;Ð;r%   c                 óŠ   — |                       t          j        d¬¦  «         |                       t          j        d¬¦  «         d S r.  )r,  r|   rá   r¡   s    r#   râ   z"TestJacobianDotSolve.test_andersonÞ  s8   € Ø�Š�œ°ˆÑ7Ô7Ð7Ø�Š�œ°ˆÑ6Ô6Ð6Ð6Ð6r%   c                 óŠ   — |                       t          j        d¬¦  «         |                       t          j        d¬¦  «         d S r.  )r,  r|   ÚDiagBroydenr¡   s    r#   Útest_diagbroydenz%TestJacobianDotSolve.test_diagbroydenâ  s:   € Ø�Š�Ô*°EˆÑ:Ô:Ð:Ø�Š�Ô*°DˆÑ9Ô9Ð9Ð9Ð9r%   c                 óŠ   — |                       t          j        d¬¦  «         |                       t          j        d¬¦  «         d S r.  )r,  r|   ÚLinearMixingr¡   s    r#   Útest_linearmixingz&TestJacobianDotSolve.test_linearmixingæ  r/  r%   c                 óŠ   — |                       t          j        d¬¦  «         |                       t          j        d¬¦  «         d S r.  )r,  r|   ÚExcitingMixingr¡   s    r#   Útest_excitingmixingz(TestJacobianDotSolve.test_excitingmixingê  s:   € Ø�Š�Ô-°uˆÑ=Ô=Ð=Ø�Š�Ô-°tˆÑ<Ô<Ð<Ð<Ð<r%   c                 óŽ   — |                       t          j        dd¬¦  «         |                       t          j        dd¬¦  «         d S )NFgü©ñÒMbP?)ró   r  T)r,  r|   r  r¡   s    r#   r  z TestJacobianDotSolve.test_krylovî  s>   € Ø�Š�Ô-°uÀ$ˆÑGÔGÐGØ�Š�Ô-°tÀˆÑFÔFÐFÐFÐFr%   r'   )Frê   )r£   r¤   r¥   r¦   r  r,  rÉ   rÌ   râ   r4  r7  r:  r  r(   r%   r#   r  r  ’  sµ   € € € € € ðð ð'ð 'ð 'ð 'ð:,ð :,ð :,ð :,ðx;ð ;ð ;ð<ð <ð <ð7ð 7ð 7ð:ð :ð :ð;ð ;ð ;ð=ð =ð =ðGð Gð Gð Gð Gr%   r  c                   óZ   — e 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S )ÚTestNonlinOldTestsz½ Test case for a simple constrained entropy maximization problem
    (the machine translation example of Berger et al in
    Computational Linguistics, vol 22, num 1, pp 39--72, 1996.)
    c                 ó  — t          j        t          t          j        dd¬¦  «        }t	          t          j        |¦  «        dk     ¦  «         t	          t          j        t          |¦  «        ¦  «        dk     ¦  «         d S ©Né   r   ©ÚiterrÐ   ç•Ö&è.>)r|   r   r$   r\   r   Únorm©r_   r   s     r#   rÉ   z TestNonlinOldTests.test_broyden1ù  ó`   € ÝŒO�A�qœu¨2°QÐ7Ñ7Ô7ˆÝ•”˜A‘” Ò%Ñ&Ô&Ð&Ý•”�A˜a™DœDÑ!Ô! DÒ(Ñ)Ô)Ð)Ð)Ð)r%   c                 ó  — t          j        t          t          j        dd¬¦  «        }t	          t          j        |¦  «        dk     ¦  «         t	          t          j        t          |¦  «        ¦  «        dk     ¦  «         d S r?  )r|   r   r$   r\   r   rD  rE  s     r#   rÌ   z TestNonlinOldTests.test_broyden2þ  rF  r%   c                 ó    — t          j        t          t          j        ddd¬¦  «        }t	          t          j        |¦  «        dk     ¦  «         d S )Nr@  ç¸…ëQ¸ž?r-   )rB  rÐ   rß   ç…ëQ¸Õ?)r|   r   r$   r\   r   rD  rE  s     r#   râ   z TestNonlinOldTests.test_anderson  s?   € ÝŒO�A�qœu¨2°T¸QÐ?Ñ?Ô?ˆÝ•”˜A‘” Ò%Ñ&Ô&Ð&Ð&Ð&r%   c                 ó  — t          j        t          t          j        dd¬¦  «        }t	          t          j        |¦  «        dk     ¦  «         t	          t          j        t          |¦  «        ¦  «        dk     ¦  «         d S )Né<   r   rA  çH¯¼šò×z>)r|   r   r$   r\   r   rD  rE  s     r#   r7  z$TestNonlinOldTests.test_linearmixing  sa   € ÝÔ¥¥1¤5¨r¸Ð=Ñ=Ô=ˆÝ•”˜A‘” Ò%Ñ&Ô&Ð&Ý•”�A˜a™DœDÑ!Ô! DÒ(Ñ)Ô)Ð)Ð)Ð)r%   c                 ó  — t          j        t          t          j        dd¬¦  «        }t	          t          j        |¦  «        dk     ¦  «         t	          t          j        t          |¦  «        ¦  «        dk     ¦  «         d S )Nrù   r   rA  rŽ   )r|   r   r$   r\   r   rD  rE  s     r#   Útest_excitingz TestNonlinOldTests.test_exciting  sa   € ÝÔ!¥!¥Q¤U°¸3Ð?Ñ?Ô?ˆÝ•”˜A‘” Ò%Ñ&Ô&Ð&Ý•”�A˜a™DœDÑ!Ô! DÒ(Ñ)Ô)Ð)Ð)Ð)r%   c                 ó  — t          j        t          t          j        dd¬¦  «        }t	          t          j        |¦  «        dk     ¦  «         t	          t          j        t          |¦  «        ¦  «        dk     ¦  «         d S )Né   r   rA  ç:Œ0âŽyE>)r|   r   r$   r\   r   rD  rE  s     r#   r4  z#TestNonlinOldTests.test_diagbroyden  sa   € ÝÔ�q¥!¤%¨b¸Ð:Ñ:Ô:ˆÝ•”˜A‘” Ò%Ñ&Ô&Ð&Ý•”�A˜a™DœDÑ!Ô! DÒ(Ñ)Ô)Ð)Ð)Ð)r%   c                 óü   — t          t          t          j        ddddidœ¬¦  «        }t          t	          j        |j        ¦  «        dk     ¦  «         t          t	          j        |j        ¦  «        dk     ¦  «         d S )Nr   r@  rÐ   r   ©Únitre   rf   rC  ©r   r$   r\   r   r|   rD  r   ri   ©r_   rk   s     r#   Útest_root_broyden1z%TestNonlinOldTests.test_root_broyden1  ót   € Ý•1•a”e JØ#%°wÀ°lÐCÐCðEñ Eô Eˆå•”˜CœEÑ"Ô" TÒ)Ñ*Ô*Ð*Ý•”˜CœGÑ$Ô$ tÒ+Ñ,Ô,Ð,Ð,Ð,r%   c                 óü   — t          t          t          j        ddddidœ¬¦  «        }t          t	          j        |j        ¦  «        dk     ¦  «         t          t	          j        |j        ¦  «        dk     ¦  «         d S )Nr   r@  rÐ   r   rT  rf   rC  rV  rW  s     r#   Útest_root_broyden2z%TestNonlinOldTests.test_root_broyden2  rY  r%   c           	      óª   — t          t          t          j        dddddœdœ¬¦  «        }t          t	          j        |j        ¦  «        dk     ¦  «         d S )	Nr   r@  rI  r-   )rÐ   rß   rT  rf   rJ  )r   r$   r\   r   r|   rD  r   rW  s     r#   Útest_root_andersonz%TestNonlinOldTests.test_root_anderson"  sb   € Ý•1•a”e JØ#%Ø59ÀÐ+BÐ+BðDð DðEñ Eô Eˆõ 	•”˜CœEÑ"Ô" TÒ)Ñ*Ô*Ð*Ð*Ð*r%   c                 óü   — t          t          t          j        ddddidœ¬¦  «        }t          t	          j        |j        ¦  «        dk     ¦  «         t          t	          j        |j        ¦  «        dk     ¦  «         d S )Nr   rL  rÐ   r   rT  rf   rM  rV  rW  s     r#   Útest_root_linearmixingz)TestNonlinOldTests.test_root_linearmixing(  sx   € Ý•1•a”e NØ#%Ø,3°S¨>ð;ð ;ð<ñ <ô <ˆõ 	•”˜CœEÑ"Ô" TÒ)Ñ*Ô*Ð*Ý•”˜CœGÑ$Ô$ tÒ+Ñ,Ô,Ð,Ð,Ð,r%   c                 óü   — t          t          t          j        ddddidœ¬¦  «        }t          t	          j        |j        ¦  «        dk     ¦  «         t          t	          j        |j        ¦  «        dk     ¦  «         d S )Nr   rù   rÐ   r   rT  rf   rŽ   rV  rW  s     r#   Útest_root_excitingmixingz+TestNonlinOldTests.test_root_excitingmixing/  sy   € Ý•1•a”eÐ$4Ø#%Ø,3°S¨>ð;ð ;ð<ñ <ô <ˆõ 	•”˜CœEÑ"Ô" TÒ)Ñ*Ô*Ð*Ý•”˜CœGÑ$Ô$ tÒ+Ñ,Ô,Ð,Ð,Ð,r%   c                 óü   — t          t          t          j        ddddidœ¬¦  «        }t          t	          j        |j        ¦  «        dk     ¦  «         t          t	          j        |j        ¦  «        dk     ¦  «         d S )Nr   rQ  rÐ   r   rT  rf   rR  rV  rW  s     r#   Útest_root_diagbroydenz(TestNonlinOldTests.test_root_diagbroyden6  sx   € Ý•1•a”e MØ#%Ø,3°Q¨<ð9ð 9ð:ñ :ô :ˆõ 	•”˜CœEÑ"Ô" TÒ)Ñ*Ô*Ð*Ý•”˜CœGÑ$Ô$ tÒ+Ñ,Ô,Ð,Ð,Ð,r%   N)r£   r¤   r¥   r¦   rÉ   rÌ   râ   r7  rO  r4  rX  r[  r]  r_  ra  rc  r(   r%   r#   r=  r=  ó  sÒ   € € € € € ðð ð
*ð *ð *ð
*ð *ð *ð
'ð 'ð 'ð*ð *ð *ð
*ð *ð *ð
*ð *ð *ð
-ð -ð -ð-ð -ð -ð+ð +ð +ð-ð -ð -ð-ð -ð -ð-ð -ð -ð -ð -r%   r=  )0r¦   Únumpy.testingr   r…   Ú	functoolsr   Úscipy.optimizer   r|   r   Úscipy.sparser   Únumpyr   r	   Únumpy.linalgr
   r   r‡   Úscipy.sparse.linalgr   Útest_minpackr   r   r   r   r   r   r   r}   rZ   rt   r$   r\   rs   r[   rh   r*   r0   r9   r<   rC   rO   rQ   r¬   rä   r  r=  r(   r%   r#   ú<module>rl     s  ððð ð "Ð !Ð !Ð !Ð !Ð !Ø €€€Ø Ð Ð Ð Ð Ð à 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø "Ð "Ð "Ð "Ð "Ð "Ø Ð Ð Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ø €€€Ø &Ð &Ð &Ð &Ð &Ð &à *Ð *Ð *Ð *Ð *Ð *à”Ø Ô,Ø!Ô.Ø#Ô2Ø”Ø”ØÔ)ð+ð +€ð  œ°f´oØœ°FÔ4HðJð J€	ðð ð ð 	ˆˆ€„Ø€„Ø€„Ø€Ô ðð ð ð 
Ð	Ð	€„Ø &Ô 3Ø"(Ô"7ð9ð 9€„à€„Ø€Ô ðð ð ð "Ð!Ð!€„Ø€Ô Ø€Ô Ø€Ô ðð ð ð 
ˆˆ€„Ø€„Ø€„Ø€Ô ðHð Hð Hð
 �R�€	„Ø'-Ô':Ø)/Ô)>Ø&,Ô&8ð:ð :€	Ô ð "˜
€	Ô ØLÐLÐL€	Ô ð>ð >ð >ð 
ˆˆ€„Ø"(Ô"7Ø &Ô 3Ø%Ô1ð3ð 3€„ð ˜Ð"€„Ø�j€Ô ð#ð #ð #ð �ˆ€„Ø"(Ô"7Ø &Ô 3Ø%Ô1ð3ð 3€„ð €„Ø€Ô ðxPð xPð xPð xPð xPñ xPô xPð xPðvIBð IBð IBð IBð IBñ IBô IBð IBðXB8ð B8ð B8ð B8ð B8ñ B8ô B8ð B8ðJ^Gð ^Gð ^Gð ^Gð ^Gñ ^Gô ^Gð ^GðBH-ð H-ð H-ð H-ð H-ñ H-ô H-ð H-ð H-ð H-r%   