§
    µ³Ùgå„  ã                   óD  — d dl mZ d dlZd dlmZ d dlmZmZm	Z	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mZmZmZ d0d„Zd1d„Zd„ Zd„ Zd„ Z d„ Z!d„ Z"d„ Z#d„ Z$d„ Z%d1d„Z&d„ Z' G d„ d¦  «        Z( G d„ d¦  «        Z)d„ Z* e+ ej,        ¦   «         ¦  «        e*gz   Z- G d„ d¦  «        Z. G d„ d ¦  «        Z/ G d!„ d"¦  «        Z0 G d#„ d$¦  «        Z1 G d%„ d&e.e/e0e1¦  «        Z2 G d'„ d(e.e/e0e1¦  «        Z3 G d)„ d*e.¦  «        Z4d+„ Z5d,„ Z6d-„ Z7d.„ Z8d/„ Z9dS )2é    )ÚproductN)Únorm)Úassert_Úassert_allcloseÚassert_equalÚsuppress_warnings)Úraises)ÚissparseÚ
lil_matrix)Úaslinearoperator)Úleast_squaresÚBounds)ÚIMPLEMENTED_LOSSES)ÚEPSÚmake_strictly_feasibleÚCL_scaling_vectorc                 ó   — | |z
  dz  dz   S )Né   ç      @© ©ÚxÚas     ú]/granary/edev/quantum/lib/python3.11/site-packages/scipy/optimize/tests/test_least_squares.pyÚfun_trivialr      s   € Ø�‰E�A‰:˜ÑÐó    ç        c                 ó   — d| |z
  z  S ©Nr   r   r   s     r   Újac_trivialr       s   € Ø��A‘‰;Ðr   c                 óF   — t          j        | d         | d         g¦  «        S ©Nr   é   ©ÚnpÚarray©r   s    r   Úfun_2d_trivialr(      s   € ÝŒ8�Q�q”T˜1˜Qœ4�LÑ!Ô!Ð!r   c                 ó*   — t          j        d¦  «        S r   )r%   Úidentityr'   s    r   Újac_2d_trivialr+      s   € ÝŒ;�q‰>Œ>Ðr   c                 ój   — t          j        d| d         | d         dz  z
  z  d| d         z
  g¦  «        S )Né
   r#   r   r   r$   r'   s    r   Úfun_rosenbrockr.   !   s4   € ÝŒ8�R˜1˜Qœ4 ! A¤$¨¡'™>Ñ*¨Q°°1´©XÐ7Ñ8Ô8Ð8r   c                 óH   — t          j        d| d         z  dgddgg¦  «        S )Néìÿÿÿr   r-   éÿÿÿÿr$   r'   s    r   Újac_rosenbrockr2   %   s2   € ÝŒ8Ø	ˆq�Œt‰�RÐØ	ˆQˆðñ ô ð r   c                 óN   — t          j        d| d         z  dgddgddgg¦  «        S )Nr0   r   r-   r1   r   r$   r'   s    r   Újac_rosenbrock_bad_dimr4   ,   s9   € ÝŒ8Ø	ˆq�Œt‰�RÐØ	ˆQˆØ	ˆcˆ
ðñ ô ð r   c                 ó,   — t          | ¦  «        d         S ©Nr   )r.   r'   s    r   Úfun_rosenbrock_croppedr7   4   ó   € Ý˜!ÑÔ˜QÔÐr   c                 ó,   — t          | ¦  «        d         S r6   )r2   r'   s    r   Újac_rosenbrock_croppedr:   8   r8   r   c                 ó<   — t          j        | | dz  | dz  g¦  «        S )Nr   é   r$   r'   s    r   Úfun_wrong_dimensionsr=   =   s    € ÝŒ8�Q˜˜1™˜a ™d�OÑ$Ô$Ð$r   c                 óH   — t          j        t          | |¬¦  «        ¦  «        S )N)r   )r%   Ú
atleast_3dr    r   s     r   Újac_wrong_dimensionsr@   A   s   € ÝŒ=� Q¨!Ð,Ñ,Ô,Ñ-Ô-Ð-r   c                 óŒ  — t          t          j        | j        d         ¦  «        ¦  «        }t          j        |dz   |dz   f¦  «        }|                      ||f¦  «        } | |dd…dd…f<   |d d…dd…f         |dd …dd…f         z   |dd…d d…f         z   |dd…dd …f         z   d| z  z
  | dz  z   }|                     ¦   «         S )Nr   r   r#   r1   éþÿÿÿé   r<   )Úintr%   ÚsqrtÚshapeÚzerosÚreshapeÚravel)r   ÚnÚuÚys       r   Úfun_bvprM   E   sØ   € Ý�BŒG�A”G˜A”JÑÔÑ Ô €AÝ
Œ�!�a‘%˜˜Q™�Ñ Ô €AØ	�	Š	�1�a�&ÑÔ€AØ€A€aˆ€dˆAˆbˆD€j�MØ	ˆ#ˆ2ˆ#ˆq�ˆtˆ)Œ�q˜˜˜˜Q˜r˜T˜”{Ñ" Q q¨ t¨S¨b¨S y¤\Ñ1°A°a¸°d¸A¸B¸B°h´KÑ?À!ÀaÁ%ÑGÈ!ÈQÉ$ÑN€AØ�7Š7‰9Œ9Ðr   c                   ó"   — e Zd Zdd„Zd„ Zd„ ZdS )ÚBroydenTridiagonaléd   Úsparsec                 óÌ  ‡ — t           j                             d¦  «        }|‰ _        t          j        |¦  «         ‰ _        t          j        dd|¦  «        ‰ _        t          j        dd|¦  «        ‰ _        ‰ xj        d| 	                    |¦  «        z  z  c_        ‰ xj        d| 	                    |¦  «        z  z  c_        ‰ xj        d| 	                    |¦  «        z  z  c_        t          ‰ j        ‰ j        ‰ j        ¦  «        ‰ _        |dk    r•t          ||ft          ¬¦  «        ‰ _        t          j        |¦  «        }d	‰ j        ||f<   t          j        d	|¦  «        }d	‰ j        ||d	z
  f<   t          j        |d	z
  ¦  «        }d	‰ j        ||d	z   f<   ‰ j        ‰ _        d S |d
k    rˆ fd„‰ _        d S |dk    rd ‰ _        ˆ fd„‰ _        d S t#          d¦  «         d S )Nr   rB   ç      ø¿gš™™™™™é¿r   çš™™™™™¹?rQ   )Údtyper#   Úoperatorc                 óH   •— t          ‰                     | ¦  «        ¦  «        S ©N)r   Ú_jac©r   Úselfs    €r   ú<lambda>z-BroydenTridiagonal.__init__.<locals>.<lambda>i   s   ø€ Õ!1°$·)²)¸A±,´,Ñ!?Ô!?€ r   Údensec                 óR   •— ‰                      | ¦  «                             ¦   «         S rX   )rY   ÚtoarrayrZ   s    €r   r\   z-BroydenTridiagonal.__init__.<locals>.<lambda>l   s   ø€  §¢¨1¡¤×!5Ò!5Ñ!7Ô!7€ r   F)r%   ÚrandomÚRandomStaterJ   ÚonesÚx0ÚlinspaceÚlbÚubÚrandnr   r   rD   ÚsparsityÚarangerY   Újacr   )r[   rJ   ÚmodeÚrngÚis   `    r   Ú__init__zBroydenTridiagonal.__init__O   s¹  ø€ ÝŒi×#Ò# AÑ&Ô&ˆàˆŒå”7˜1‘:”:�+ˆŒÝ”+˜b $¨Ñ*Ô*ˆŒÝ”+˜d C¨Ñ+Ô+ˆŒàˆŒ�3˜Ÿš 1™œÑ%Ñ%ˆŒØˆŒ�3˜Ÿš 1™œÑ%Ñ%ˆŒàˆŒ�3˜Ÿš 1™œÑ%Ñ%ˆŒÝ(¨¬°$´'¸4¼7ÑCÔCˆŒà�8ÒÐÝ&¨¨1 vµSÐ9Ñ9Ô9ˆDŒMÝ”	˜!‘”ˆAØ"#ˆDŒM˜!˜Q˜$ÑÝ”	˜!˜Q‘”ˆAØ&'ˆDŒM˜!˜Q ™U˜(Ñ#Ý”	˜!˜a™%Ñ Ô ˆAØ&'ˆDŒM˜!˜Q ™U˜(Ñ#à”yˆDŒHˆHˆHØ�ZÒÐØ?Ð?Ð?Ð?ˆDŒHˆHˆHØ�WŠ_ˆ_Ø ˆDŒMØ7Ð7Ð7Ð7ˆDŒHˆHˆHå�E‰NŒNˆNˆNˆNr   c                 óŠ   — d|z
  |z  dz   }|dd …xx         |d d…         z  cc<   |d d…xx         d|dd …         z  z  cc<   |S )Nr<   r#   r1   r   r   )r[   r   Úfs      r   ÚfunzBroydenTridiagonal.funp   s_   € Ø�‰U�a‰K˜!‰OˆØ	ˆ!ˆ"ˆ"ˆˆŒ��3�B�3”‰ˆˆ‰Ø	ˆ#ˆ2ˆ#ˆˆŒ�!�a˜˜˜”e‘)Ñˆˆ‰Øˆr   c                 ó  — t          | j        | j        f¦  «        }t          j        | j        ¦  «        }dd|z  z
  |||f<   t          j        d| j        ¦  «        }d|||dz
  f<   t          j        | j        dz
  ¦  «        }d|||dz   f<   |S )Nr<   r   r#   r1   rB   )r   rJ   r%   ri   )r[   r   ÚJrm   s       r   rY   zBroydenTridiagonal._jacv   s�   € Ý˜œ ¤Ð'Ñ(Ô(ˆÝŒI�d”fÑÔˆØ�a˜!‘e‘)ˆˆ!ˆQˆ$‰ÝŒI�a˜œÑ Ô ˆØˆˆ!ˆQ�‰Uˆ(‰ÝŒI�d”f˜q‘jÑ!Ô!ˆØˆˆ!ˆQ�‰Uˆ(‰Øˆr   N)rP   rQ   )Ú__name__Ú
__module__Ú__qualname__rn   rq   rY   r   r   r   rO   rO   N   sG   € € € € € ðð ð ð ðBð ð ðð ð ð ð r   rO   c                   ó*   — e Zd ZdZ	 	 d	d„Zd„ Zd„ ZdS )
ÚExponentialFittingProblemz]Provide data and function for exponential fitting in the form
    y = a + exp(b * x) + noise.r#   ©r1   r#   é   Nc                 óH  — t           j                             |¦  «        }|| _        d| _        t          j        d¦  «        | _        t          j        |d         |d         |¦  «        | _        |t          j	        || j        z  ¦  «        z   | _
        | xj
        ||                     | j        ¦  «        z  z  c_
        |                     d| j        |¦  «        }	| j
        |	xx         d|z  |                     |¦  «        z  z  cc<   t          j        ||g¦  «        | _        d S )Nr   r   r#   é2   )r%   r`   ra   ÚmrJ   rG   Úp0rd   r   ÚexprL   rg   ÚrandintÚrandr&   Úp_opt)
r[   r   ÚbÚnoiseÚ
n_outliersÚx_rangeÚn_pointsÚrandom_seedrl   Úoutlierss
             r   rn   z"ExponentialFittingProblem.__init__…   só   € åŒi×#Ò# KÑ0Ô0ˆØˆŒØˆŒå”(˜1‘+”+ˆŒÝ”˜W QœZ¨°¬°XÑ>Ô>ˆŒà•R”V˜A ¤™JÑ'Ô'Ñ'ˆŒØˆŒ�%˜#Ÿ)š) D¤FÑ+Ô+Ñ+Ñ+ˆŒà—;’;˜q $¤&¨*Ñ5Ô5ˆØŒˆxÐÐÔ˜B ™J¨¯ª°*Ñ)=Ô)=Ñ=Ñ=ÐÐÑå”X˜q !˜fÑ%Ô%ˆŒ
ˆ
ˆ
r   c                 óh   — |d         t          j        |d         | j        z  ¦  «        z   | j        z
  S r"   )r%   r   r   rL   ©r[   Úps     r   rq   zExponentialFittingProblem.fun–   s,   € Ø�Œt•b”f˜Q˜qœT D¤F™]Ñ+Ô+Ñ+¨d¬fÑ4Ð4r   c                 óº   — t          j        | j        | j        f¦  «        }d|d d …df<   | j        t          j        |d         | j        z  ¦  «        z  |d d …df<   |S )Nr#   r   )r%   Úemptyr}   rJ   r   r   )r[   rŒ   rs   s      r   rj   zExponentialFittingProblem.jac™   s\   € ÝŒH�d”f˜dœfÐ%Ñ&Ô&ˆØˆˆ!ˆ!ˆ!ˆQˆ$‰Ø”&�2œ6 ! A¤$¨¬¡-Ñ0Ô0Ñ0ˆˆ!ˆ!ˆ!ˆQˆ$‰Øˆr   )r#   ry   rz   N)rt   ru   rv   Ú__doc__rn   rq   rj   r   r   r   rx   rx   �   sY   € € € € € ð#ð #ð ;BØ*.ð&ð &ð &ð &ð"5ð 5ð 5ðð ð ð ð r   rx   c                 óˆ   — t          j        d| j        f¦  «        }d| z   }d|dz  dz
  z  |d<   |dz  |d<   d|dz  z  |d<   |S )Nr<   r#   gUUUUUUÕ?r   gUUUUUUå¿g«ªªªªªú¿r   )r%   rŽ   Úsize)ÚzÚrhoÚts      r   Úcubic_soft_l1r•       sZ   € Ý
Œ(�A�q”v�;Ñ
Ô
€Cà	ˆA‰€AØ�!�c‘(˜Q‘,Ñ€Cˆ�FØ�4‰[€Cˆ�FØ�A˜‘IÑ€Cˆ�Fà€Jr   c                   ó†   — 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„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )Ú	BaseMixinc                 óº   — t          t          d| j        ¬¦  «        }t          |j        dd¬¦  «         t          |j        t          |j        ¦  «        ¦  «         d S )Nç       @©Úmethodr   ç-Cëâ6?©Úatol)r   r   r›   r   r   rq   ©r[   Úress     r   Ú
test_basiczBaseMixin.test_basic¯   sQ   € å�K¨°D´KÐ@Ñ@Ô@ˆÝ˜œ˜q tÐ,Ñ,Ô,Ð,Ý˜œ¥¨S¬UÑ!3Ô!3Ñ4Ô4Ð4Ð4Ð4r   c           	      ó.  — d}dddt           fD �]}t          ¦   «         5 }|                     t          d¦  «         t	          t
          d||f| j        ¬¦  «        }t	          t
          d|d|i| j        ¬	¦  «        }d d d ¦  «         n# 1 swxY w Y   t          |j        |d
¬¦  «         t          |j        |d
¬¦  «         t          t          t          t
          dd| j        ¬¦  «         t          t          t          t
          dddi| j        ¬	¦  «         �Œd S )Nç      @ú2-pointú3-pointÚcsúBjac='(3-point|cs)' works equivalently to '2-point' for method='lm'r™   )Úargsr›   r   )Úkwargsr›   rœ   )Úrtol)r<   rC   Úkaboomr<   )r    r   ÚfilterÚUserWarningr   r   r›   r   r   Úassert_raisesÚ	TypeError)r[   r   rj   Úsupr    Úres1s         r   Útest_args_kwargszBaseMixin.test_args_kwargsµ   s{  € àˆØ˜y¨$µÐ<ð 	Dñ 	DˆCÝ"Ñ$Ô$ð 8¨Ø—
’
ÝØXñô ð õ $¥K°°cÀÀØ+/¬;ð8ñ 8ô 8�å$¥[°#°sÀCÈÀ8Ø+/¬;ð8ñ 8ô 8�ð8ð 8ð 8ñ 8ô 8ð 8ð 8ð 8ð 8ð 8ð 8øøøð 8ð 8ð 8ð 8õ ˜CœE 1¨4Ð0Ñ0Ô0Ð0Ý˜DœF A¨DÐ1Ñ1Ô1Ð1å�)¥]µKÀØ&¨t¬{ð<ñ <ô <ð <å�)¥]µKÀØ"*¨A °t´{ðDñ Dô Dð Dñ Dð!	Dð 	Ds   ŸABÂB
	ÂB
	c                 ó^  — dddt           fD ]w}t          ¦   «         5 }|                     t          d¦  «         t	          t
          d|| j        ¬¦  «        }d d d ¦  «         n# 1 swxY w Y   t          |j        dd¬	¦  «         Œxt          t          t          t
          dd
| j        ¬¦  «         d S )Nr¤   r¥   r¦   r§   r™   rš   r   rœ   r�   Úoops©rj   r›   )r    r   r¬   r­   r   r   r›   r   r   r®   Ú
ValueError)r[   rj   r°   r    s       r   Útest_jac_optionszBaseMixin.test_jac_optionsË   s
  € Ø˜y¨$µÐ<ð 	1ð 	1ˆCÝ"Ñ$Ô$ð O¨Ø—
’
ÝØXñô ð õ $¥K°°cÀ$Ä+ÐNÑNÔN�ðOð Oð Oñ Oô Oð Oð Oð Oð Oð Oð Oøøøð Oð Oð Oð Oõ ˜CœE 1¨4Ð0Ñ0Ô0Ð0Ð0å•j¥-µ¸cÀvØ!œ[ð	*ñ 	*ô 	*ð 	*ð 	*ð 	*s   œ9A!Á!A%	Á(A%	c                 óx   — dD ]6}t          t          d|| j        ¬¦  «        }t          |j        dd¬¦  «         Œ7d S )N)Né   r™   )Úmax_nfevr›   r   rœ   r�   )r   r   r›   r   r   )r[   rº   r    s      r   Útest_nfev_optionszBaseMixin.test_nfev_optionsØ   sT   € Ø"ð 	1ð 	1ˆHÝ¥¨S¸8Ø'+¤{ð4ñ 4ô 4ˆCå˜CœE 1¨4Ð0Ñ0Ô0Ð0Ð0ð	1ð 	1r   c                 óÜ  — dt          j        dg¦  «        dfD ].}t          t          d|¬¦  «        }t	          |j        d¦  «         Œ/t          t          t          t          dd| j        ¬¦  «         t          t          t          t          dd	| j        ¬¦  «         t          t          t          t          dd | j        ¬¦  «         t          t          t          t          dd
| j        ¬¦  «         d S )Nç      ð?ç      à?rj   r™   )Úx_scaler   Úauto)r¿   r›   ç      ð¿y      ð?       @)	r%   r&   r   r   r   r   r®   r¶   r›   )r[   r¿   r    s      r   Útest_x_scale_optionszBaseMixin.test_x_scale_optionsÞ   só   € Ø�RœX s e™_œ_¨eÐ4ð 	&ð 	&ˆGÝ¥¨S¸'ÐBÑBÔBˆCÝ˜CœE 1Ñ%Ô%Ð%Ð%Ý•j¥-µØ 6°$´+ð	?ñ 	?ô 	?ð 	?å•j¥-µØ 4°´ð	=ñ 	=ô 	=ð 	=å•j¥-µØ 4°´ð	=ñ 	=ô 	=ð 	=å•j¥-µØ 8°D´Kð	Añ 	Aô 	Að 	Að 	Að 	Ar   c                 ó¦  — t          t          dd| j        ¬¦  «        }t          t          dd| j        ¬¦  «        }t          t          dd | j        ¬¦  «        }t          |j        dd¬¦  «         t          |j        dd¬¦  «         t          |j        dd¬¦  «         t          |j        |j        ¦  «         t          |j        |j        ¦  «         d S )Nr™   rT   )Ú	diff_stepr›   gš™™™™™¹¿r   rœ   r�   )r   r   r›   r   r   r   Únfev)r[   r±   Úres2Úres3s       r   Útest_diff_stepzBaseMixin.test_diff_stepë   s×   € õ �[¨#¸Ø$(¤Kð1ñ 1ô 1ˆå�[¨#¸Ø$(¤Kð1ñ 1ô 1ˆå�[¨#Ø'+°D´KðAñ Aô Aˆå˜œ ¨Ð-Ñ-Ô-Ð-Ý˜œ ¨Ð-Ñ-Ô-Ð-Ý˜œ ¨Ð-Ñ-Ô-Ð-Ý�T”V˜TœVÑ$Ô$Ð$Ý�T”Y ¤	Ñ*Ô*Ð*Ð*Ð*r   c           	      ó²   — t          t          t          t          d| j        ddi¬¦  «         t          t          t          t          d| j        ddi¬¦  «         d S )Nr™   Úno_such_optionrP   )r›   Úoptionsrº   )r®   r¯   r   r   r›   ©r[   s    r   Útest_incorrect_options_usagez&BaseMixin.test_incorrect_options_usageú   sm   € Ý•i¥µ¸SØ!œ[Ð3CÀSÐ2Ið	Kñ 	Kô 	Kð 	Kå•i¥µ¸SØ!œ[°:¸sÐ2Cð	Eñ 	Eô 	Eð 	Eð 	Eð 	Er   c                 ó   — t          t          d| j        ¬¦  «        }t          |j        dd¬¦  «         t          |j        d¦  «         t          |j        d¦  «         t          |j        dd¬¦  «         t          |j        dd¬¦  «         t          |j	        dd¬¦  «         t          |j        d¦  «         | j        d	k    r/t          |j        d
k     ¦  «         t          |j        d u ¦  «         n0t          |j        dk     ¦  «         t          |j        dk     ¦  «         t          |j        dk    ¦  «         t          |j        ¦  «         d S )Nr™   rš   r   rœ   r�   g      )@é   ç{®Gáz„?Úlmé   r-   )r   r   r›   r   r   Úcostrq   rj   ÚgradÚ
optimalityr   Úactive_maskr   rÅ   ÚnjevÚstatusÚsuccessrŸ   s     r   Útest_full_resultzBaseMixin.test_full_result   s7  € õ �K¨°T´[ÐAÑAÔAˆÝ˜œ˜q tÐ,Ñ,Ô,Ð,Ý˜œ $Ñ'Ô'Ð'Ý˜œ Ñ#Ô#Ð#Ý˜œ ¨Ð.Ñ.Ô.Ð.Ý˜œ !¨$Ð/Ñ/Ô/Ð/Ý˜œ¨°Ð5Ñ5Ô5Ð5Ý�S”_ aÑ(Ô(Ð(ØŒ;˜$ÒÐÝ�C”H˜r’MÑ"Ô"Ð"Ý�C”H Ð$Ñ%Ô%Ð%Ð%å�C”H˜r’MÑ"Ô"Ð"Ý�C”H˜r’MÑ"Ô"Ð"Ý�”
˜Q’ÑÔÐÝ�”ÑÔÐÐÐr   c                 óè  — | j         dk    rd S t          t          d| j         d¬¦  «        }t          |j        t          j        dg¦  «        ¦  «         t          |j        d¦  «         t          |j        t          j        dg¦  «        ¦  «         t          |j	        t          j        dgg¦  «        ¦  «         t          |j
        t          j        d	g¦  «        ¦  «         t          |j        d	¦  «         t          |j        t          j        d
g¦  «        ¦  «         t          |j        d¦  «         t          |j        d¦  «         t          |j        d
¦  «         t          |j        d
¦  «         d S )NrÑ   r™   r#   )r›   rº   r   g     @D@é	   rC   é$   r   )r›   r   r   r   r   r%   r&   rÓ   rq   rj   rÔ   rÕ   rÖ   rÅ   r×   rØ   rÙ   rŸ   s     r   Útest_full_result_single_fevz%BaseMixin.test_full_result_single_fev  s5  € ð Œ;˜$ÒÐØˆFå�K¨°T´[Ø%&ð(ñ (ô (ˆå�S”U�BœH a S™MœMÑ*Ô*Ð*Ý�S”X˜tÑ$Ô$Ð$Ý�S”W�bœh¨ s™mœmÑ,Ô,Ð,Ý�S”W�bœh¨¨ u™oœoÑ.Ô.Ð.Ý�S”X�rœx¨¨™~œ~Ñ.Ô.Ð.Ý�S”^ RÑ(Ô(Ð(Ý�S”_¥b¤h°¨s¡m¤mÑ4Ô4Ð4Ý�S”X˜qÑ!Ô!Ð!Ý�S”X˜qÑ!Ô!Ð!Ý�S”Z Ñ#Ô#Ð#Ý�S”[ !Ñ$Ô$Ð$Ð$Ð$r   c           
      ót  — ddg}ddg}t          dddt          gdt          j        ddg¦  «        dgd	d
g¦  «        D ]{\  }}}t	          ¦   «         5 }|                     t          d¦  «         t          t          ||||| j	        ¬¦  «        }d d d ¦  «         n# 1 swxY w Y   t          |j        |¦  «         Œ|d S )NrB   r#   r¤   r¥   r¦   r½   çš™™™™™É?rj   ÚexactÚlsmrr§   ©r¿   Ú	tr_solverr›   )r   r2   r%   r&   r   r¬   r­   r   r.   r›   r   r   )r[   rc   Úx_optrj   r¿   rä   r°   r    s           r   Útest_rosenbrockzBaseMixin.test_rosenbrock(  s5  € Ø�!ˆWˆØ�A�ˆÝ'.Ø˜I t­^Ð<Ø•b”h  S˜zÑ*Ô*¨EÐ2Ø˜&Ð!ñ(#ô (#ð 	*ð 	*Ñ#ˆC�˜)õ #Ñ$Ô$ð M¨Ø—
’
ÝØXñô ð õ $¥N°B¸ÀWØ.7ÀÄðMñ Mô M�ðMð Mð Mñ Mô Mð Mð Mð Mð Mð Mð Møøøð Mð Mð Mð Mõ ˜CœE 5Ñ)Ô)Ð)Ð)ð	*ð 	*s   Á;BÂB	ÂB	c           	      óN  — ddg}| j         dk    r%t          t          t          t          |d¬¦  «         d S t          dddt          gdt          j        dd	g¦  «        d
gddg¦  «        D ]<\  }}}t          t          ||||| j         ¬¦  «        }t          |j
        dd¬¦  «         Œ=d S )NrB   r#   rÑ   rš   r¤   r¥   r¦   r½   rà   rj   rá   râ   rã   r   g›+¡†›„=r�   )r›   r®   r¶   r   r7   r   r:   r%   r&   r   rÓ   )r[   rc   rj   r¿   rä   r    s         r   Útest_rosenbrock_croppedz!BaseMixin.test_rosenbrock_cropped8  sà   € Ø�!ˆWˆØŒ;˜$ÒÐÝ�*¥mÕ5KØ Tð+ñ +ô +ð +ð +ð +õ ,3Ø 	¨4Õ1GÐHØ�"œ( C¨ :Ñ.Ô.°Ð6Ø˜fÐ%ñ,'ô ,'ð 9ð 9Ñ'��W˜iõ $Ý*¨B°¸WØ'°´ð=ñ =ô =�õ   ¤¨!°%Ð8Ñ8Ô8Ð8Ð8ð9ð 9r   c                 óV   — t          t          t          t          d| j        ¬¦  «         d S ©Nr™   rš   )r®   r¶   r   r=   r›   rÌ   s    r   Útest_fun_wrong_dimensionsz#BaseMixin.test_fun_wrong_dimensionsG  s1   € Ý•j¥-Õ1EØ $¤+ð	/ñ 	/ô 	/ð 	/ð 	/ð 	/r   c                 ób   — t          t          t          t          dt          | j        ¬¦  «         d S rê   )r®   r¶   r   r   r@   r›   rÌ   s    r   Útest_jac_wrong_dimensionsz#BaseMixin.test_jac_wrong_dimensionsK  s9   € Ý•j¥-µØÕ/¸¼ð	Eñ 	Eô 	Eð 	Eð 	Eð 	Er   c                 ój   — ddg}t          t          t          t          |t          | j        ¬¦  «         d S )Nr#   r   rš   )r®   r¶   r   r.   r4   r›   ©r[   rc   s     r   Ú(test_fun_and_jac_inconsistent_dimensionsz2BaseMixin.test_fun_and_jac_inconsistent_dimensionsO  sA   € Ø�ˆVˆÝ•j¥-µÀÝ,°T´[ð	Bñ 	Bô 	Bð 	Bð 	Bð 	Br   c                 ó¦   — t          j        d¦  «                             dd¦  «        }t          t          t
          t          || j        ¬¦  «         d S )NrC   r   rš   )r%   rb   rH   r®   r¶   r   r   r›   rï   s     r   Útest_x0_multidimensionalz"BaseMixin.test_x0_multidimensionalT  sM   € ÝŒW�Q‰ZŒZ×Ò  1Ñ%Ô%ˆÝ•j¥-µ¸bØ!œ[ð	*ñ 	*ô 	*ð 	*ð 	*ð 	*r   c                 óZ   — d}t          t          t          t          || j        ¬¦  «         d S )Nù       @        rš   ©r®   r¶   r   r   r›   rï   s     r   Útest_x0_complex_scalarz BaseMixin.test_x0_complex_scalarY  s5   € ØˆÝ•j¥-µ¸bØ!œ[ð	*ñ 	*ô 	*ð 	*ð 	*ð 	*r   c                 ó^   — ddg}t          t          t          t          || j        ¬¦  «         d S )Nr½   rô   rš   rõ   rï   s     r   Útest_x0_complex_arrayzBaseMixin.test_x0_complex_array^  s:   € Ø�<Ð ˆÝ•j¥-µ¸bØ!œ[ð	*ñ 	*ô 	*ð 	*ð 	*ð 	*r   c                 óô   — d}t          j        |dz  ¦  «        }| j        dk    rd}nd}t          t          |d| j        |¬¦  «        }t          |j        |k     ¦  «         t          |j        dk     ¦  «         d S )	Nr-   r   rÑ   iˆ  rP   rÐ   )Úftolr›   rº   r¾   )r%   rb   r›   r   rM   r   rÅ   rÓ   )r[   rJ   rc   rº   r    s        r   Útest_bvpzBaseMixin.test_bvpc  s…   € ð
 ˆÝŒW�Q˜‘T‰]Œ]ˆØŒ;˜$ÒÐØˆHˆHàˆHÝ�G R¨d¸4¼;Ø%-ð/ñ /ô /ˆõ 	�”˜8Ò#Ñ$Ô$Ð$Ý�”˜3’ÑÔÐÐÐr   c           
      ó\   — t          t          t          t          d| j        d d d ¬¦  «         d S )Nr™   )r›   rú   ÚxtolÚgtolrõ   rÌ   s    r   Ú/test_error_raised_when_all_tolerances_below_epsz9BaseMixin.test_error_raised_when_all_tolerances_below_epst  s<   € å•j¥-µ¸cØ!œ[¨t¸$ÀTð	Kñ 	Kô 	Kð 	Kð 	Kð 	Kr   c           
      ó¶   — | j         dk    rd S ddg}ddg}dD ]@\  }}}t          t          |t          |||| j         ¬¦  «        }t	          |j        |¦  «         ŒAd S )NrÑ   rB   r#   ))ç:Œ0âŽyE>NN)Nr  N)NNr  )rj   rú   rþ   rý   r›   )r›   r   r.   r2   r   r   )r[   rc   rå   rú   rý   rþ   r    s          r   Ú0test_convergence_with_only_one_tolerance_enabledz:BaseMixin.test_convergence_with_only_one_tolerance_enabledy  s‡   € ØŒ;˜$ÒÐØˆFØ�!ˆWˆØ�A�ˆð!6ð 	*ð 	*ÑˆD�$˜õ  ¥°½Ø%)°¸4Ø'+¤{ð4ñ 4ô 4ˆCõ ˜CœE 5Ñ)Ô)Ð)Ð)ð	*ð 	*r   N)rt   ru   rv   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—   ®   sR  € € € € € ð5ð 5ð 5ðDð Dð Dð,*ð *ð *ð1ð 1ð 1ðAð Að Að+ð +ð +ðEð Eð Eðð ð ð(%ð %ð %ð(*ð *ð *ð 9ð 9ð 9ð/ð /ð /ðEð Eð EðBð Bð Bð
*ð *ð *ð
*ð *ð *ð
*ð *ð *ð
 ð  ð  ð"Kð Kð Kð
*ð *ð *ð *ð *r   r—   c                   ó~   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	e
j                             d¦  «        d	„ ¦   «         Zd
S )ÚBoundsMixinc                 óX   — t          t          t          t          dd| j        ¬¦  «         d S )Nr™   )ç      $@r   ©Úboundsr›   rõ   rÌ   s    r   Útest_inconsistentzBoundsMixin.test_inconsistentˆ  s2   € Ý•j¥-µ¸cØ(°´ð	>ñ 	>ô 	>ð 	>ð 	>ð 	>r   c                 óX   — t          t          t          t          dd| j        ¬¦  «         d S )Nr™   )r£   rC   r  rõ   rÌ   s    r   Útest_infeasiblezBoundsMixin.test_infeasibleŒ  s2   € Ý•j¥-µ¸cØ$¨T¬[ð	:ñ 	:ô 	:ð 	:ð 	:ð 	:r   c                 óX   — t          t          t          t          dd| j        ¬¦  «         d S )Nr™   )r½   r   r<   r  rõ   rÌ   s    r   Útest_wrong_numberzBoundsMixin.test_wrong_number�  s2   € Ý•j¥-µ¸bØ'°´ð	=ñ 	=ô 	=ð 	=ð 	=ð 	=r   c           	      óÀ   — t          t          t          t          ddddgf| j        ¬¦  «         t          t          t          t
          ddgdgddgf| j        ¬¦  «         d S )Nr™   r½   r£   r  r   ç      @)r®   r¶   r   r   r›   r.   rÌ   s    r   Útest_inconsistent_shapez#BoundsMixin.test_inconsistent_shape”  s|   € Ý•j¥-µ¸cØ! C¨ :Ð.°t´{ð	Dñ 	Dô 	Dð 	Dõ 	•j¥-µÀ#ÀsÀØ"˜e c¨3 ZÐ0¸¼ð	Fñ 	Fô 	Fð 	Fð 	Fð 	Fr   c                 óÖ  — dddt           fD ]Ü}t          t          d|d| j        ¬¦  «        }t	          |j        dd¬	¦  «         t          |j        d
g¦  «         t          d|j        cxk    odk    nc ¦  «         t          t          d|d| j        ¬¦  «        }t	          |j        dd¬	¦  «         t          |j        dg¦  «         t          d|j        cxk    odk    nc ¦  «         ŒÝd S )Nr¤   r¥   r¦   r™   )rÁ   r£   ©rj   r  r›   r   rœ   r�   r   r1   r<   )r¾   r£   r¾   )	r    r   r   r›   r   r   r   rÖ   r   )r[   rj   r    s      r   Útest_in_boundszBoundsMixin.test_in_bounds›  s  € Ø˜y¨$µÐ<ð 
	'ð 
	'ˆCÝ¥¨S°cØ'2¸4¼;ðHñ Hô HˆCå˜CœE 3¨TÐ2Ñ2Ô2Ð2Ý˜œ¨1¨#Ñ.Ô.Ð.Ý�B˜#œ%Ð$Ð$Ò$Ð$ 1Ò$Ð$Ð$Ð$Ñ%Ô%Ð%Ý¥¨S°cØ'1¸$¼+ðGñ Gô GˆCå˜CœE 3¨TÐ2Ñ2Ô2Ð2Ý˜œ¨2¨$Ñ/Ô/Ð/Ý�C˜3œ5Ð%Ð%Ò%Ð% AÒ%Ð%Ð%Ð%Ñ&Ô&Ð&Ð&ð
	'ð 
	'r   c                 ó2  — d„ }d„ }dddt           fD �]}||fD ]û}ddg}t          t          ||¬¦  «        }t          |j        ddg¦  «         t          t          || |d	d
d
g¦  «        | j        ¬¦  «        }t          |j        d	d	g¦  «         t          t          || |ddgd¦  «        | j        ¬¦  «        }t          |j        ddg¦  «         t          t          || |dd	gddg¦  «        | j        ¬¦  «        }t          |j        dd	gd¬¦  «         Œü�Œd S )Nc                 ó
   — | |fS rX   r   ©re   rf   s     r   Úget_bounds_directz8BoundsMixin.test_bounds_shape.<locals>.get_bounds_direct©  s   € Ø�r�6ˆMr   c                 ó"   — t          | |¦  «        S rX   )r   r  s     r   Úget_bounds_instancesz;BoundsMixin.test_bounds_shape.<locals>.get_bounds_instances¬  s   € Ý˜"˜b‘>”>Ð!r   r¤   r¥   r¦   r½   )rj   r   r¾   r™   r  g333333Ó?rà   r£   r1   çñhãˆµøä>r�   )r+   r   r(   r   r   r›   )r[   r  r  rj   Úbounds_funcrc   r    s          r   Útest_bounds_shapezBoundsMixin.test_bounds_shape¨  s|  € ð	ð 	ð 	ð	"ð 	"ð 	"ð ˜y¨$µÐ?ð 	>ñ 	>ˆCØ 1Ð3GÐHð >ð >�Ø˜3�Z�Ý#¥N°B¸CÐ@Ñ@Ô@�Ý ¤¨¨S zÑ2Ô2Ð2Ý#¥N°B¸CØ+6¨;°s¸SÀ#¸JÑ+GÔ+GØ+/¬;ð8ñ 8ô 8�õ   ¤¨¨S zÑ2Ô2Ð2Ý#¥N°B¸CØ+6¨;¸¸S°zÀ3Ñ+GÔ+GØ+/¬;ð8ñ 8ô 8�õ   ¤¨¨S zÑ2Ô2Ð2Ý#Ý" B¨CØ&˜;¨¨C y°3¸°*Ñ=Ô=Øœ;ð(ñ (ô (�õ   ¤¨¨S z¸Ð=Ñ=Ô=Ð=Ð=ñ!>ð	>ð 	>r   c                 óî  — t          t          dt          ¦   «         ¬¦  «        }t          |j        dd¬¦  «         t          t          dt          d¬¦  «        ¬¦  «        }t          |j        dd¬¦  «         t          t          dt          d	d¬
¦  «        ¬¦  «        }t          |j        dd¬¦  «         t          t          dt          d	¬¦  «        ¬¦  «        }t          |j        d	d¬¦  «         t          t
          ddgt          d	d	gd¬
¦  «        ¬¦  «        }t          |j        ddgd¬¦  «         t          t
          ddgt          ddg¬¦  «        ¬¦  «        }t          |j        ddgd¬¦  «         d S )Nr¾   )r  r   rœ   r�   r£   r½   )re   rÁ   r  ç      À)rf   r  rT   )r   r   r   r   r   r(   rŸ   s     r   Útest_bounds_instancesz!BoundsMixin.test_bounds_instancesÂ  sl  € Ý�K¨µV±X´XÐ>Ñ>Ô>ˆÝ˜œ˜s¨Ð.Ñ.Ô.Ð.å�K¨µV¸s°^±^´^ÐDÑDÔDˆÝ˜œ˜s¨Ð.Ñ.Ô.Ð.å�K¨µV¸tÈÐ5LÑ5LÔ5LÐMÑMÔMˆÝ˜œ˜s¨Ð.Ñ.Ô.Ð.å�K¨µfÀ°o±o´oÐFÑFÔFˆÝ˜œ˜t¨$Ð/Ñ/Ô/Ð/å�N¨S°#¨JÝ#)¨d°D¨\¸cÐ#BÑ#BÔ#BðDñ Dô Dˆå˜œ  S˜z°Ð5Ñ5Ô5Ð5å�N¨S°#¨JÝ#)¨c°3¨ZÐ#8Ñ#8Ô#8ð:ñ :ô :ˆå˜œ  S˜z°Ð5Ñ5Ô5Ð5Ð5Ð5r   r-   c                 ó¼  — t          j        ddg¦  «        }t          j        ddg¦  «        }t          j        ddg¦  «        }t          j        ddg¦  «        }t          j        ddg¦  «        }|t           j         dgt           j        ff|t           j         dgt           j        ff|t           j         dgt           j        ff|t           j         dgdt           j        gff|ddgddgff|d	dgd
dgffg}|D ]d\  }}t          dddt          gddd
gdgddg¦  «        D ]=\  }	}
}t          t          ||	||
|| j        ¬¦  «        }t          |j	        dd¬¦  «         Œ>Œed S )Ng       Àr½   r™   r   g333333ó¿rS   g      ø?r£   g      IÀr¾   rP   r¤   r¥   r¦   rj   rá   râ   rã   r  r�   )
r%   r&   Úinfr   r2   r   r.   r›   r   rÕ   )r[   Úx0_1Úx0_2Úx0_3Úx0_4Úx0_5Úproblemsrc   r  rj   r¿   rä   r    s                r   Útest_rosenbrock_boundsz"BoundsMixin.test_rosenbrock_bounds×  s£  € åŒx˜˜s˜Ñ$Ô$ˆÝŒx˜˜c˜
Ñ#Ô#ˆÝŒx˜˜s˜Ñ$Ô$ˆÝŒx˜˜c˜
Ñ#Ô#ˆÝŒx˜˜s˜Ñ$Ô$ˆà•b”f�W˜d�O¥R¤VÐ,Ð-Ø•b”f�W˜c�N¥B¤FÐ+Ð,Ø•b”f�W˜c�N¥B¤FÐ+Ð,Ø•b”f�W˜c�N S­"¬& MÐ2Ð3Ø�S˜#�J  c 
Ð+Ð,Ø�U˜C�L 3¨ *Ð-Ð.ð
ˆð #ð 	@ð 	@‰JˆB�Ý+2Ø 	¨4µÐ@Ø˜3 ˜* eÐ,Ø˜fÐ%ñ,'ô ,'ð @ð @Ñ'��W˜iõ $¥N°B¸¸VØ,3¸yØ+/¬;ð8ñ 8ô 8�õ   ¤°¸$Ð?Ñ?Ô?Ð?Ð?ð@ð	@ð 	@r   N)rt   ru   rv   r	  r  r  r  r  r  r  ÚpytestÚmarkÚ	fail_slowr(  r   r   r   r  r  ‡  s±   € € € € € ð>ð >ð >ð:ð :ð :ð=ð =ð =ðFð Fð Fð'ð 'ð 'ð>ð >ð >ð46ð 6ð 6ð* „[×Ò˜2ÑÔð@ð @ñ Ôð@ð @ð @r   r  c                   óŠ   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Ze	j
                             d¦  «        d„ ¦   «         Zd	„ Zd
„ Zd„ ZdS )ÚSparseMixinc           	      óò   — t          ¦   «         }t          t          t          |j        |j        |j        d| j        ¬¦  «         t          t          t          |j        |j        d|j        | j        ¬¦  «         d S )Nrá   ©rä   r›   )rä   Újac_sparsityr›   )	rO   r®   r¶   r   rq   rc   rj   r›   rh   r‹   s     r   Útest_exact_tr_solverz SparseMixin.test_exact_tr_solverò  st   € ÝÑ Ô ˆÝ•j¥-°´¸¼¸a¼eØ '°´ð	=ñ 	=ô 	=ð 	=å•j¥-°´¸¼Ø '°a´jØ!œ[ð	*ñ 	*ô 	*ð 	*ð 	*ð 	*r   c                 óª  — t          d¬¦  «        }t          d¬¦  «        }t          |j        |j        |j        | j        ¬¦  «        }t          |j        |j        |j        | j        ¬¦  «        }t          |j        |j        ¦  «         t          |j	        |j	        d¬¦  «         t          |j
        dd¬¦  «         t          |j
        dd¬¦  «         d S )NrQ   ©rk   r]   rµ   ç#B’¡œÇ;r�   r   )rO   r   rq   rc   rj   r›   r   rÅ   r   r   rÓ   ©r[   rQ   r]   Ú
res_sparseÚ	res_denses        r   Útest_equivalencezSparseMixin.test_equivalenceú  sÓ   € Ý#¨Ð2Ñ2Ô2ˆÝ"¨Ð0Ñ0Ô0ˆÝ"ØŒJ˜œ	 v¤zØ”;ð ñ  ô  ˆ
õ "ØŒI�u”x V¤ZØ”;ð ñ  ô  ˆ	õ 	�Z”_ i¤nÑ5Ô5Ð5Ý˜
œ i¤k¸Ð>Ñ>Ô>Ð>Ý˜
œ¨°Ð7Ñ7Ô7Ð7Ý˜	œ¨°Ð6Ñ6Ô6Ð6Ð6Ð6r   c                 ó¤   — t          ¦   «         }t          |j        |j        |j        | j        ddi¬¦  «        }t          |j        dd¬¦  «         d S )NÚbtolç»½×Ùß|Û=©r›   Ú
tr_optionsr   r4  r�   )rO   r   rq   rc   rj   r›   r   rÓ   ©r[   rŒ   r    s      r   Útest_tr_optionszSparseMixin.test_tr_options  sU   € ÝÑ Ô ˆÝ˜AœE 1¤4¨¬°t´{Ø(.° ð8ñ 8ô 8ˆå˜œ !¨%Ð0Ñ0Ô0Ð0Ð0Ð0r   c           
      óì   — t          ¦   «         }t          t          t          |j        |j        |j        d| j        ¬¦  «         t          t          t          |j        |j        |j        dddi¬¦  «         d S )NÚbestr/  râ   Útolr;  )rä   r=  )	rO   r®   r¶   r   rq   rc   rj   r›   r¯   r‹   s     r   Útest_wrong_parametersz!SparseMixin.test_wrong_parameters  s{   € ÝÑ Ô ˆÝ•j¥-°´¸¼¸a¼eØ &¨t¬{ð	<ñ 	<ô 	<ð 	<å•i¥°´°q´t¸Q¼UØ &°E¸5°>ð	Cñ 	Cô 	Cð 	Cð 	Cð 	Cr   c                 óØ  — t          d¬¦  «        }t          d¬¦  «        }t          |j        |j        |j        | j        ¬¦  «        }t          |j        |j        |j        | j        ¬¦  «        }t          |j        dd¬¦  «         t          |j        dd¬¦  «         t          t          |j        ¦  «        ¦  «         t          t          |j        t          j        ¦  «        ¦  «         d S )NrQ   r3  r]   rµ   r   r4  r�   )rO   r   rq   rc   rj   r›   r   rÓ   r   r
   Ú
isinstancer%   Úndarrayr5  s        r   Útest_solver_selectionz!SparseMixin.test_solver_selection  sÔ   € Ý#¨Ð2Ñ2Ô2ˆÝ"¨Ð0Ñ0Ô0ˆÝ" 6¤:¨v¬y¸f¼jØ*.¬+ð7ñ 7ô 7ˆ
å! %¤)¨U¬X¸5¼9Ø)-¬ð6ñ 6ô 6ˆ	å˜
œ¨°Ð7Ñ7Ô7Ð7Ý˜	œ¨°Ð6Ñ6Ô6Ð6Ý•˜œÑ(Ô(Ñ)Ô)Ð)Ý•
˜9œ=­"¬*Ñ5Ô5Ñ6Ô6Ð6Ð6Ð6r   c                 óˆ  — t          ¦   «         }dD ]°}t          |j        |j        || j        ¬¦  «        }t          |j        |j        || j        |j        ¬¦  «        }t          |j        |j        ¦  «         t          |j	        |j	        d¬¦  «         t          |j
        dd¬¦  «         t          |j
        dd¬¦  «         Œ±d S )N)r¤   r¥   r¦   rš   )r›   r0  r4  r�   r   )rO   r   rq   rc   r›   rh   r   rÅ   r   r   rÓ   )r[   rŒ   rj   r7  r6  s        r   Útest_numerical_jaczSparseMixin.test_numerical_jac!  sÊ   € ÝÑ Ô ˆØ/ð 	<ð 	<ˆCÝ% a¤e¨Q¬T°3¸t¼{ÐKÑKÔKˆIÝ&Ø”�q”t˜S¨¬ØœZð)ñ )ô )ˆJõ ˜œ¨¬Ñ9Ô9Ð9Ý˜IœK¨¬¸EÐBÑBÔBÐBÝ˜IœN¨A°EÐ:Ñ:Ô:Ð:Ý˜JœO¨Q°UÐ;Ñ;Ô;Ð;Ð;ð	<ð 	<r   r-   c           	      ó.  — t          ¦   «         }t          |j        dddgd |j        g¦  «        D ]å\  }}t	          |j        |j        ||j        t          j	        f| j
        |¬¦  «        }t	          |j        |j        |t          j	         |j        f| j
        |¬¦  «        }t	          |j        |j        ||j        |j        f| j
        |¬¦  «        }t          |j        dd¬¦  «         t          |j        dd¬¦  «         t          |j        dd¬¦  «         Œæd S )Nr¤   r¥   r¦   )r  r›   r0  r   r;  r�   )rO   r   rj   rh   r   rq   rc   re   r%   r!  r›   rf   r   rÕ   )r[   rŒ   rj   r0  Úres_1Úres_2Úres_3s          r   Útest_with_boundszSparseMixin.test_with_bounds-  s1  € åÑ Ô ˆÝ!(Ø”˜	 9¨dÐ3°d¸A¼JÐ5Gñ"Iô "Ið 	=ð 	=ÑˆC�å!Ø”�q”t˜S¨!¬$µ´¨Ø”{°ð>ñ >ô >ˆEõ "Ø”�q”t˜S­2¬6¨'°1´4¨Ø”{°ð?ñ ?ô ?ˆEõ "Ø”�q”t˜S¨!¬$°´¨Ø”{°ð?ñ ?ô ?ˆEõ ˜EÔ,¨a°eÐ<Ñ<Ô<Ð<Ý˜EÔ,¨a°eÐ<Ñ<Ô<Ð<Ý˜EÔ,¨a°eÐ<Ñ<Ô<Ð<Ð<ð	=ð 	=r   c                 óœ   — t          ¦   «         }|j        d d…         }t          t          t          |j        |j        || j        ¬¦  «         d S )Nr1   ©r0  r›   )rO   rh   r®   r¶   r   rq   rc   r›   )r[   rŒ   rh   s      r   Útest_wrong_jac_sparsityz#SparseMixin.test_wrong_jac_sparsity?  sV   € ÝÑ Ô ˆØ”:˜c˜r˜c”?ˆÝ•j¥-°´¸¼Ø#+°D´Kð	Añ 	Aô 	Að 	Að 	Að 	Ar   c           	      ó
  — t          d¬¦  «        }t          |j        |j        |j        | j        ¬¦  «        }t          |j        dd¬¦  «         t          t          t          |j        |j        |j        | j        d¬¦  «         d S )	NrV   r3  rš   r   r4  r�   rá   )r›   rä   ©
rO   r   rq   rc   rj   r›   r   rÓ   r®   r¶   r>  s      r   Útest_linear_operatorz SparseMixin.test_linear_operatorE  s   € Ý JÐ/Ñ/Ô/ˆÝ˜AœE 1¤4¨¬°t´{ÐCÑCÔCˆÝ˜œ #¨EÐ2Ñ2Ô2Ð2Ý•j¥-°´¸¼¸a¼eØ!œ[°Gð	=ñ 	=ô 	=ð 	=ð 	=ð 	=r   c           	      ó(  — t          ¦   «         }t          |j        |j        |j        | j        d¬¦  «        }t          |j        dd¬¦  «         t          d¬¦  «        }t          t          t          |j        |j        |j        | j        d¬¦  «         d S )Nrj   )r›   r¿   r   r4  r�   rV   r3  rS  r>  s      r   Útest_x_scale_jac_scalez"SparseMixin.test_x_scale_jac_scaleL  s“   € ÝÑ Ô ˆÝ˜AœE 1¤4¨¬°t´{Ø$)ð+ñ +ô +ˆå˜œ #¨EÐ2Ñ2Ô2Ð2å JÐ/Ñ/Ô/ˆÝ•j¥-°´¸¼¸a¼eØ!œ[°%ð	9ñ 	9ô 	9ð 	9ð 	9ð 	9r   N)rt   ru   rv   r1  r8  r?  rC  rG  rI  r)  r*  r+  rN  rQ  rT  rV  r   r   r   r-  r-  ñ  sÍ   € € € € € ð*ð *ð *ð7ð 7ð 7ð1ð 1ð 1ðCð Cð Cð
7ð 
7ð 
7ð
<ð 
<ð 
<ð „[×Ò˜2ÑÔð=ð =ñ Ôð=ð"Að Að Að=ð =ð =ð9ð 9ð 9ð 9ð 9r   r-  c                   ó,   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚLossFunctionMixinc                 óÔ   — t           D ]6}t          t          d|| j        ¬¦  «        }t	          |j        dd¬¦  «         Œ7t          t          t          t          dd| j        ¬¦  «         d S )Nr™   ©Úlossr›   r   çVçž¯Ò<r�   Úhinge)ÚLOSSESr   r   r›   r   r   r®   r¶   ©r[   r[  r    s      r   Útest_optionszLossFunctionMixin.test_optionsX  sz   € Ýð 	2ð 	2ˆDÝ¥¨S°tØ'+¤{ð4ñ 4ô 4ˆCå˜CœE 1¨5Ð1Ñ1Ô1Ð1Ð1å•j¥-µ¸cØ"¨4¬;ð	8ñ 	8ô 	8ð 	8ð 	8ð 	8r   c                 ó¢   — t           D ]F}t          t          d|| j        ¬¦  «        }t	          |j        t          |j        ¦  «        ¦  «         ŒGd S )Nr™   rZ  )r^  r   r   r›   r   rq   r   r_  s      r   Útest_funzLossFunctionMixin.test_funa  s[   € õ ð 	6ð 	6ˆDÝ¥¨S°tØ'+¤{ð4ñ 4ô 4ˆCå˜œ¥+¨c¬eÑ"4Ô"4Ñ5Ô5Ð5Ð5ð	6ð 	6r   c                 óè  — t          j        dg¦  «        }t          t          |t          dd| j        ¬¦  «        }t          |j        d|z  |dz  dz   z  ¦  «         t          t          |t          dd| j        ¬¦  «        }t          |j        d|z  ¦  «         t          t          |t          dd| j        ¬¦  «        }t          |j        d|z  |dz  dz   z  d|dz  dz   dz  z   d	z  z  ¦  «         t          t          |t          d
d| j        ¬¦  «        }t          |j        d|z  |dz  dz   z  d|dz  dz   dz  z   z  ¦  «         t          t          |t          dd| j        ¬¦  «        }t          |j        d|z  |dz  dz   z  d|dz  dz   dz  z   z  ¦  «         t          t          |t          t          d| j        ¬¦  «        }t          |j        d|z  |dz  dz   z  d|dz  dz   dz  z   dz  z  ¦  «         d S )Nr™   Úlinearr#   ©r[  rº   r›   r   rÏ   ÚhuberÚsoft_l1r¾   ÚcauchyÚarctanrC   gUUUUUUå?)
r%   r&   r   r   r    r›   r   rÔ   r   r•   )r[   r   r    s      r   Ú	test_gradzLossFunctionMixin.test_gradi  s.  € õ ŒH�c�U‰OŒOˆå�K¨­K¸hØ%&¨t¬{ð<ñ <ô <ˆå�S”X˜q 1™u¨¨1©¨q©Ñ1Ñ2Ô2Ð2å�K¨­K¸gØ%&¨t¬{ð<ñ <ô <ˆå�S”X˜q 1™uÑ%Ô%Ð%å�K¨­K¸iØ%&¨t¬{ð<ñ <ô <ˆå˜œØ˜A™  A¡¨¡Ñ*¨a°1°a±4¸!±8¸a±-Ñ.?À#Ñ-EÑEñ	Gô 	Gð 	Gõ �K¨­K¸hØ%&¨t¬{ð<ñ <ô <ˆå˜œ ! a¡%¨1¨a©4°!©8Ñ"4¸¸QÀ¹TÀA¹XÈ¹MÑ8IÑ"JÑKÔKÐKå�K¨­K¸hØ%&¨t¬{ð<ñ <ô <ˆå˜œ ! a¡%¨1¨a©4°!©8Ñ"4¸¸QÀ¹TÀA¹XÈ¹MÑ8IÑ"JÑKÔKÐKå�K¨­K½mØ%&¨t¬{ð<ñ <ô <ˆå˜œØ˜A™  A¡¨¡Ñ*¨a°1°a±4¸!±8¸a±-Ñ.?À3Ñ-GÑGñ	Iô 	Ið 	Ið 	Ið 	Ir   c           	      óà  — d}|dz  dz   }t          t          |t          dd| j        ¬¦  «        }t	          |j        d|z  ¦  «         t          t          |t          dd| j        ¬¦  «        }t	          |j        d|z  t          dz  z  ¦  «         t          t          |t          dd	d¬
¦  «        }t	          |j        d|z  ¦  «         t          t          |t          dd| j        ¬¦  «        }t          |j        d|z  d|dz  z   dz  z  ¦  «         t          t          |t          dd| j        ¬¦  «        }t          |j        d|z  t          dz  z  ¦  «         t          t          |t          dd	d| j        ¬¦  «        }|d	z  }t          |j        d|z  d|dz  z
  dz  z  d|dz  z   z  ¦  «         t          t          |t          dd| j        ¬¦  «        }t          |j        d|z  t          dz  z  ¦  «         t          t          |t          ddd| j        ¬¦  «        }|dz  }t          |j        d|z  dd|dz  z  z
  dz  z  d|dz  z   z  ¦  «         t          t          |t          t          d¬¦  «        }t          |j        d|z  t          dz  z  ¦  «         t          t          |t          t          dd¬
¦  «        }|dz  }t          |j        d|z  d|dz  dz  z
  dz  z  d|dz  z   dz  z  ¦  «         d S )Nr™   r   rÏ   rd  r#   re  rf  r¾   r-   )r[  Úf_scalerº   rg  g      è¿rh  )r[  rl  rº   r›   ri  g      4@r¹   r<   rC   )r[  rº   é   g«ªªªªªê¿)	r   r   r    r›   r   rj   r   r   r•   )r[   r   rp   r    Úfss        r   Útest_jaczLossFunctionMixin.test_jacˆ  s8  € ð ˆØˆq‰D�1‰Hˆå�K¨­K¸hØ%&¨t¬{ð<ñ <ô <ˆå�S”W˜a !™eÑ$Ô$Ð$õ �K¨­K¸gØ%&¨t¬{ð<ñ <ô <ˆå�S”W˜a !™e¥c¨3¡hÑ.Ñ/Ô/Ð/õ �K¨­K¸gØ$&°ð4ñ 4ô 4ˆå�S”W˜a !™eÑ$Ô$Ð$õ �K¨­K¸iØ%&¨t¬{ð<ñ <ô <ˆå˜œ  Q¡¨!¨a°©d©(°UÑ):Ñ!:Ñ;Ô;Ð;õ �K¨­K¸hØ%&¨t¬{ð<ñ <ô <ˆå˜œ  Q¡­¨c©Ñ!1Ñ2Ô2Ð2õ �K¨­K¸hØ$&°¸4¼;ðHñ Hô Hˆà�‰VˆÝ˜œ  Q¡¨!¨b°!©e©)°cÑ)9Ñ!9¸QÀÀQÁ¹YÑ!GÑHÔHÐHõ �K¨­K¸hØ%&¨t¬{ð<ñ <ô <ˆå˜œ  Q¡­¨c©Ñ!1Ñ2Ô2Ð2õ �K¨­K¸hØ$(°1¸T¼[ðJñ Jô Jˆà�‰VˆÝ˜œ  Q¡¨!¨a°"°a±%©i©-¸#Ñ)=Ñ!=ÀÀRÈÁUÁÑ!KÑLÔLÐLõ �K¨­K½mØ%&ð(ñ (ô (ˆå˜œ  Q¡­¨c©Ñ!1Ñ2Ô2Ð2õ �K¨­KÝ!.¸ÀAðGñ Gô Gˆà�‰UˆÝ˜œØ˜A™  R¨¡U¨Q¡Y¡°Ñ 4Ñ4¸¸BÀ¹E¹	ÀTÑ7JÑJñ	Lô 	Lð 	Lð 	Lð 	Lr   c                 óê  — dD ]ï}t          dd|d¬¦  «        }ddd|j        fD ]Î}t          |j        |j        || j        ¬	¦  «        }t          |j        dd
¬¦  «         t          D ]‹}|dk    rŒ	t          |j        |j        |||| j        ¬¦  «        }t          |j        dd
¬¦  «         t          t          |j        |j        z
  ¦  «        t          |j        |j        z
  ¦  «        k     ¦  «         ŒŒŒÏŒðd S )N)rT   r½   r#   rT   r   )rˆ   r¤   r¥   r¦   rµ   rÐ   r�   rd  )rj   r[  rl  r›   )rx   rj   r   rq   r~   r›   r   rÕ   r^  r   r   r   r‚   )r[   r„   rŒ   rj   Úres_lsqr[  Ú
res_robusts          r   Útest_robustnessz!LossFunctionMixin.test_robustnessÌ  s2  € Øð 	7ð 	7ˆEÝ)¨!¨S°%ÀQÐGÑGÔGˆAà! 9¨d°A´EÐ:ð 7ð 7�Ý'¨¬¨q¬t¸Ø/3¬{ð<ñ <ô <�å Ô 2°A¸DÐAÑAÔAÐAÝ"ð 7ð 7�DØ˜xÒ'Ð'Ø Ý!.Øœ˜qœt¨°4ÀØ#œ{ð",ñ ",ô ",�Jõ $ JÔ$9¸1À4ÐHÑHÔHÐHÝ�D ¤°´Ñ!7Ñ8Ô8Ý  ¤¨Q¬WÑ!4Ñ5Ô5ò6ñ 7ô 7ð 7ð 7ð7ð	7ð	7ð 	7r   N)rt   ru   rv   r`  rb  rj  ro  rs  r   r   r   rX  rX  W  si   € € € € € ð8ð 8ð 8ð6ð 6ð 6ðIð Ið Ið>BLð BLð BLðH7ð 7ð 7ð 7ð 7r   rX  c                   ó   — e Zd ZdZdS )Ú
TestDogboxÚdogboxN)rt   ru   rv   r›   r   r   r   ru  ru  ß  s   € € € € € Ø€F€F€Fr   ru  c                   ó   — e Zd ZdZd„ ZdS )ÚTestTRFÚtrfc           	      ó¤   — t          ¦   «         }dD ]>}t          |j        |j        |j        dd|i¬¦  «        }t          |j        dd¬¦  «         Œ?d S )N)TFry  Ú
regularizer<  r   r4  r�   )rO   r   rq   rc   rj   r   rÓ   )r[   rŒ   r{  r    s       r   Útest_lsmr_regularizationz TestTRF.test_lsmr_regularizationæ  sm   € ÝÑ Ô ˆØ'ð 	5ð 	5ˆJÝ ¤ q¤t¨Q¬U¸5Ø,8¸*Ð+EðGñ Gô GˆCå˜CœH a¨eÐ4Ñ4Ô4Ð4Ð4ð	5ð 	5r   N)rt   ru   rv   r›   r|  r   r   r   rx  rx  ã  s(   € € € € € Ø€Fð5ð 5ð 5ð 5ð 5r   rx  c                   ó6   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	dS )	ÚTestLMrÑ   c                 óN   — t          t          t          t          ddd¬¦  «         d S )Nr™   )r  r£   rÑ   r  ©r®   r¶   r   r   rÌ   s    r   Útest_bounds_not_supportedz TestLM.test_bounds_not_supportedñ  s0   € Ý•j¥-µØ +°dð	<ñ 	<ô 	<ð 	<ð 	<ð 	<r   c                 óT   — ddg}t          t          t          t          |d¬¦  «         d S )NrB   r#   rÑ   rš   )r®   r¶   r   r7   rï   s     r   Útest_m_less_n_not_supportedz"TestLM.test_m_less_n_not_supportedõ  s8   € Ø�!ˆWˆÝ•j¥-Õ1GÈØ!ð	#ñ 	#ô 	#ð 	#ð 	#ð 	#r   c                 ó~   — t          ¦   «         }t          t          t          |j        |j        |j        d¬¦  «         d S )NrÑ   rš   ©rO   r®   r¶   r   rq   rc   rj   r‹   s     r   Útest_sparse_not_supportedz TestLM.test_sparse_not_supportedú  sA   € ÝÑ Ô ˆÝ•j¥-°´¸¼¸a¼eØ!ð	#ñ 	#ô 	#ð 	#ð 	#ð 	#r   c                 óP   — t          t          t          t          ddgd¬¦  «         d S )Nr™   r#   rÑ   rP  r€  rÌ   s    r   Útest_jac_sparsity_not_supportedz&TestLM.test_jac_sparsity_not_supportedÿ  s2   € Ý•j¥-µ¸cØ$% 3¨tð	5ñ 	5ô 	5ð 	5ð 	5ð 	5r   c                 ó‚   — t          d¬¦  «        }t          t          t          |j        |j        |j        d¬¦  «         d S )NrV   r3  rÑ   rš   r…  r‹   s     r   Ú!test_LinearOperator_not_supportedz(TestLM.test_LinearOperator_not_supported  sF   € Ý JÐ/Ñ/Ô/ˆÝ•j¥-°´¸¼¸a¼eØ!ð	#ñ 	#ô 	#ð 	#ð 	#ð 	#r   c                 ó¬   — t          t          ddd¬¦  «        }t          |j        dd¬¦  «         t	          t
          t           t          ddd¬	¦  «         d S )
Nr™   rd  rÑ   rZ  r   rœ   r�   rf  )r›   r[  )r   r   r   r   r®   r¶   rŸ   s     r   Ú	test_losszTestLM.test_loss  s]   € Ý�K¨°8ÀDÐIÑIÔIˆÝ˜œ˜s¨Ð.Ñ.Ô.Ð.å•j¥-µ¸cØ!¨ð	1ñ 	1ô 	1ð 	1ð 	1ð 	1r   N)
rt   ru   rv   r›   r�  rƒ  r†  rˆ  rŠ  rŒ  r   r   r   r~  r~  î  ss   € € € € € Ø€Fð<ð <ð <ð#ð #ð #ð
#ð #ð #ð
5ð 5ð 5ð#ð #ð #ð
1ð 1ð 1ð 1ð 1r   r~  c                  ó^   — t          t          d¦  «        } t          | j        dd¬¦  «         d S )Nr™   r   r;  r�   )r   r   r   r   )r    s    r   r¡   r¡     s.   € å
� SÑ
)Ô
)€CÝ�C”E˜1 5Ð)Ñ)Ô)Ð)Ð)Ð)r   c                  ód   — dD ],\  } }}t          t          t          t          d|| |d¬¦  «         Œ-d S )N))Nç‚vIhÂ%<=r�  )r�  Nr�  )r�  r�  Nr™   rÑ   )rý   rú   rþ   r›   r€  )rú   rý   rþ   s      r   Útest_small_tolerances_for_lmr�    sS   € ð3ð 9ð 9Ñˆˆd�Dõ 	•j¥-µ¸cÈØ d°4ð	9ñ 	9ô 	9ð 	9ð 	9ð9ð 9r   c                  ó”  ‡— t           j                             d¦  «        } t          j        ddd¦  «                             d¦  «        }|                      d¦  «                             d¦  «        }d„ Šˆfd„}t          |ddg||f¬¦  «        }|j        d	k    sJ ‚t          |j        t          j	        d
dg¦  «        d¬¦  «         d S )Nr#   r   rP   Úfloat32c                 ó*   — | d         | d         |z  z   S r"   r   )rŒ   r   s     r   Úfuncztest_fp32_gh12991.<locals>.func&  s   € Ø�Œt�a˜”d˜Q‘h‰Ðr   c                 ó"   •—  ‰| |¦  «        |z
  S rX   r   )rŒ   r   rL   r”  s      €r   Úerrztest_fp32_gh12991.<locals>.err)  s   ø€ Øˆt�A�q‰zŒz˜A‰~Ðr   rÁ   )r¨   r   g ¼ùW Ú?gá	ÞáÃ?g-Cëâ6
?r�   )
r%   r`   ra   rd   Úastyper   rÅ   r   r   r&   )rl   r   rL   r–  r    r”  s        @r   Útest_fp32_gh12991r˜    sÛ   ø€ õ Œ)×
Ò
 Ñ
"Ô
"€Cå
Œ�A�q˜#ÑÔ×%Ò% iÑ0Ô0€AØ�
Š
�3‰Œ×Ò˜yÑ)Ô)€Aðð ð ðð ð ð ð õ ˜˜d D˜\°°A°Ð
7Ñ
7Ô
7€Cð Œ8�aŠ<ˆ<ˆ<ˆ<Ý�C”E�2œ8 Y°
Ð$;Ñ<Ô<À4ÐHÑHÔHÐHÐHÐHr   c                  ó‚  ‡— dŠd} ˆfd„}d}t          || ddt          j        f¬¦  «        }t          |j        |j        t          j        d¦  «        t          j        t          j        ¦  «        ¦  «        \  }}|j        dk    sJ ‚t          j         	                    |j        |z  t          j        ¬¦  «        |k     sJ ‚d S )	Ngê-�™—q=gy�²§õYs=c                 ó   •— | ‰z
  dz  S r   r   )r   Úanswers    €r   Úchi2z%test_gh_18793_and_19351.<locals>.chi2;  s   ø€ Ø�&‘˜1‰}Ðr   r\  r   )rc   rþ   r  r#   )Úord)
r   r%   r!  r   r   rÔ   Ú
atleast_1drØ   Úlinalgr   )Úinitial_guessrœ  rþ   r    ÚscalingÚ_r›  s         @r   Útest_gh_18793_and_19351r£  7  sÄ   ø€ Ø€FØ€Mðð ð ð ð ð €DÝ
˜ °UÀAÅrÄvÀ;Ð
OÑ
OÔ
O€Cõ # 3¤5¨#¬(Ý#%¤=°Ñ#3Ô#3µR´]Å2Ä6Ñ5JÔ5JñLô L�J€GˆQàŒ:˜Š?ˆ?ˆ?ˆ?ÝŒ9�>Š>˜#œ( WÑ,µ"´&ˆ>Ñ9Ô9¸DÒ@Ð@Ð@Ð@Ð@Ð@r   c                  óì   ‡‡— t          j        dgdz  g d¢z   ¦  «        Št          j        d‰j        ¦  «        dz  Šˆˆfd„} g d¢}dt           j        d	d
ff}t          | |d|¬¦  «        }|j        sJ ‚d S )Nr   éB   )Sr½   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©  r§  r™   ç      *@r¨  r§  ç      &@r  rª  g      ,@ç      3@r«  g      .@g      2@g      :@r¬  ç      @@g      =@g      <@ç      B@r­  g     €A@r®  g     €E@ç      J@r­  g      M@g      L@r¯  g     ÀP@g     €J@g      R@g      V@g     @S@g     ÀW@g     €W@g      U@g     €U@g     @Y@g     ÀZ@g      [@g     €]@g      X@g     À\@g     @a@g      a@r   rT   c                 óP   •— | \  }}}|t          j        |‰|z
  z  ¦  «        z  ‰z
  S rX   )r%   r   )ÚparamsÚAÚBrc   ÚxdataÚydatas       €€r   Úexponential_wrappedz*test_gh_19103.<locals>.exponential_wrappedc  s1   ø€ Ø‰ˆˆ1ˆbØ•2”6˜!˜u r™zÑ*Ñ+Ô+Ñ+¨eÑ3Ð3r   )rÐ   r½   r   )rÐ   r   r   r-   gfffffæ4@ry  )r›   r  )r%   r&   ri   r‘   r!  r   rÙ   )r¶  rc   r  r    r´  rµ  s       @@r   Útest_gh_19103r·  Q  s´   øø€ õ ŒH�b�T˜B‘Yð 	"ð 	"ð 	"ñ 	ñ 	ô 	€Eõ ŒI�a˜œÑ$Ô$ sÑ*€Eð4ð 4ð 4ð 4ð 4ð 4ð 
ˆˆ€BØ�RœV R¨Ð.Ð/€FÝ
Ð+¨R¸ÀfÐ
MÑ
MÔ
M€CØŒ;ÐÐÐÐÐr   )r   )r   ):Ú	itertoolsr   Únumpyr%   Únumpy.linalgr   Únumpy.testingr   r   r   r   r)  r	   r®   Úscipy.sparser
   r   Úscipy.sparse.linalgr   Úscipy.optimizer   r   Ú!scipy.optimize._lsq.least_squaresr   Úscipy.optimize._lsq.commonr   r   r   r   r    r(   r+   r.   r2   r4   r7   r:   r=   r@   rM   rO   rx   r•   ÚlistÚkeysr^  r—   r  r-  rX  ru  rx  r~  r¡   r�  r˜  r£  r·  r   r   r   ú<module>rÃ     sú  ðØ Ð Ð Ð Ð Ð à Ð Ð Ð Ø Ð Ð Ð Ð Ð ð<ð <ð <ð <ð <ð <ð <ð <ð <ð <ð <ð <à €€€Ø *Ð *Ð *Ð *Ð *Ð *Ø -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0à 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø @Ð @Ð @Ð @Ð @Ð @Ø UÐ UÐ UÐ UÐ UÐ UÐ UÐ UÐ UÐ Uðð ð ð ðð ð ð ð"ð "ð "ðð ð ð9ð 9ð 9ðð ð ðð ð ð ð  ð  ð ð  ð  ð
%ð %ð %ð.ð .ð .ð .ðð ð ð0ð 0ð 0ð 0ð 0ñ 0ô 0ð 0ðfð ð ð ð ñ ô ð ð>ð ð ð 
ˆÐ%Ð Ô%Ñ'Ô'Ñ	(Ô	(¨M¨?Ñ	:€ðV*ð V*ð V*ð V*ð V*ñ V*ô V*ð V*ðrg@ð g@ð g@ð g@ð g@ñ g@ô g@ð g@ðTc9ð c9ð c9ð c9ð c9ñ c9ô c9ð c9ðLE7ð E7ð E7ð E7ð E7ñ E7ô E7ð E7ðPð ð ð ð �˜K¨Ð6Gñ ô ð ð5ð 5ð 5ð 5ð 5ˆi˜ kÐ3Dñ 5ô 5ð 5ð1ð 1ð 1ð 1ð 1ˆYñ 1ô 1ð 1ðD*ð *ð *ð9ð 9ð 9ðIð Ið Ið2Að Að Að4ð ð ð ð r   