§
    fŠtj™•  ã                   ó„  — d dl Z d dlmZ d dlmZ d dlZd dlmZ d dl	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mZ d d
lmZ d dlmZmZmZ d dlmZ d5d„Z d6d„Z!d„ Z"d„ Z#d„ Z$ G d„ d¦  «        Z%d„ Z&d„ Z'd„ Z(d„ Z)d„ Z*d6d„Z+d„ Z, G d„ d¦  «        Z- G d„ d¦  «        Z.d „ Z/ e0 ej1        ¦   «         ¦  «        e/gz   Z2 G d!„ d"¦  «        Z3 G d#„ d$¦  «        Z4 G d%„ d&¦  «        Z5 G d'„ d(¦  «        Z6 G d)„ d*e3e4e5e6¦  «        Z7 G d+„ d,e3e4e5e6¦  «        Z8 G d-„ d.e3¦  «        Z9d/„ Z:d0„ Z;d1„ Z<d2„ Z=d3„ Z>d4„ Z?dS )7é    N)Úproduct)ÚPool)Únorm)Úassert_Úassert_allcloseÚassert_equal)Úraises)ÚissparseÚ	lil_array)Úaslinearoperator)Úleast_squaresÚBoundsÚminimize)ÚIMPLEMENTED_LOSSES)ÚEPSÚmake_strictly_feasibleÚCL_scaling_vector)ÚOptimizeResultc                 ó   — | |z
  dz  dz   S )Né   ç      @© ©ÚxÚas     úe/var/www/html/CA-Chatbot/venv/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_rosenbrockr0   %   s4   € ÝŒ8�R˜1˜Qœ4 ! A¤$¨¡'™>Ñ*¨Q°°1´©XÐ7Ñ8Ô8Ð8r   c                   ó   — e Zd Zd„ Zdd„ZdS )ÚFun_Rosenbrockc                 ó   — d| _         d S ©Nr   )Únfev©Úselfs    r   Ú__init__zFun_Rosenbrock.__init__*   s   € ØˆŒ	ˆ	ˆ	r   r   c                 ó@   — | xj         dz  c_         t          |¦  «        S ©Nr%   )r5   r0   )r7   r   r   s      r   Ú__call__zFun_Rosenbrock.__call__-   s   € Øˆ	Œ	�Q‰ˆ	Œ	Ý˜aÑ Ô Ð r   N©r   )Ú__name__Ú
__module__Ú__qualname__r8   r;   r   r   r   r2   r2   )   s7   € € € € € ðð ð ð!ð !ð !ð !ð !ð !r   r2   c                 óH   — t          j        d| d         z  dgddgg¦  «        S )Néìÿÿÿr   r/   éÿÿÿÿr&   r)   s    r   Újac_rosenbrockrC   2   s2   € ÝŒ8Ø	ˆq�Œt‰�RÐØ	ˆQˆðñ ô ð r   c                 óN   — t          j        d| d         z  dgddgddgg¦  «        S )NrA   r   r/   rB   r   r&   r)   s    r   Újac_rosenbrock_bad_dimrE   9   s9   € ÝŒ8Ø	ˆq�Œt‰�RÐØ	ˆQˆØ	ˆcˆ
ðñ ô ð r   c                 ó,   — t          | ¦  «        d         S r4   )r0   r)   s    r   Úfun_rosenbrock_croppedrG   A   ó   € Ý˜!ÑÔ˜QÔÐr   c                 ó,   — t          | ¦  «        d         S r4   )rC   r)   s    r   Újac_rosenbrock_croppedrJ   E   rH   r   c                 ó<   — t          j        | | dz  | dz  g¦  «        S )Nr   é   r&   r)   s    r   Úfun_wrong_dimensionsrM   J   s    € ÝŒ8�Q˜˜1™˜a ™d�OÑ$Ô$Ð$r   c                 óH   — t          j        t          | |¬¦  «        ¦  «        S )N)r   )r'   Ú
atleast_3dr"   r   s     r   Újac_wrong_dimensionsrP   N   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%   rB   éþÿÿÿé   rL   )Úintr'   ÚsqrtÚshapeÚzerosÚreshapeÚravel)r   ÚnÚuÚys       r   Úfun_bvpr]   R   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 )Ni0â rR   ç      ø¿gš™™™™™é¿r   çš™™™™™¹?ra   ©Údtyper%   Úoperatorc                 óH   •— t          ‰                     | ¦  «        ¦  «        S ©N)r   Ú_jac©r   r7   s    €r   ú<lambda>z-BroydenTridiagonal.__init__.<locals>.<lambda>v   s   ø€ Õ!1°$·)²)¸A±,´,Ñ!?Ô!?€ r   Údensec                 óR   •— ‰                      | ¦  «                             ¦   «         S ri   )rj   Útoarrayrk   s    €r   rl   z-BroydenTridiagonal.__init__.<locals>.<lambda>y   s   ø€  §¢¨1¡¤×!5Ò!5Ñ!7Ô!7€ r   F)r'   ÚrandomÚdefault_rngrZ   ÚonesÚx0ÚlinspaceÚlbÚubÚstandard_normalr   r   rT   ÚsparsityÚarangerj   Újacr   )r7   rZ   ÚmodeÚrngÚis   `    r   r8   zBroydenTridiagonal.__init__\   sÅ  ø€ ÝŒi×#Ò# FÑ+Ô+ˆàˆŒå”7˜1‘:”:�+ˆŒÝ”+˜b $¨Ñ*Ô*ˆŒÝ”+˜d C¨Ñ+Ô+ˆŒàˆŒ�3˜×,Ò,¨QÑ/Ô/Ñ/Ñ/ˆŒØˆŒ�3˜×,Ò,¨QÑ/Ô/Ñ/Ñ/ˆŒàˆŒ�3˜×,Ò,¨QÑ/Ô/Ñ/Ñ/ˆŒÝ(¨¬°$´'¸4¼7ÑCÔCˆŒà�8ÒÐÝ% q¨! fµCÐ8Ñ8Ô8ˆ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 )NrL   r%   rB   r   r   )r7   r   Úfs      r   ÚfunzBroydenTridiagonal.fun}   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 )NrL   r   r%   rB   rR   )r   rZ   r'   ry   )r7   r   ÚJr}   s       r   rj   zBroydenTridiagonal._jacƒ   s�   € Ý�t”v˜tœvÐ&Ñ'Ô'ˆÝŒI�d”fÑÔˆØ�a˜!‘e‘)ˆˆ!ˆQˆ$‰ÝŒI�a˜œÑ Ô ˆØˆˆ!ˆQ�‰Uˆ(‰ÝŒI�d”f˜q‘jÑ!Ô!ˆØˆˆ!ˆQ�‰Uˆ(‰Øˆr   N)r`   ra   )r=   r>   r?   r8   r€   rj   r   r   r   r_   r_   [   sG   € € € € € ðð ð ð ðBð ð ðð ð ð ð r   r_   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%   ©rB   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'   rp   rq   ÚmrZ   rW   Úp0rt   r   Úexpr\   rw   Úintegersr(   Úp_opt)	r7   r   ÚbÚnoiseÚ
n_outliersÚx_rangeÚn_pointsr|   Úoutlierss	            r   r8   z"ExponentialFittingProblem.__init__’   sõ   € åŒi×#Ò# CÑ(Ô(ˆØˆŒØˆŒå”(˜1‘+”+ˆŒÝ”˜W QœZ¨°¬°XÑ>Ô>ˆŒà•R”V˜A ¤™JÑ'Ô'Ñ'ˆŒØˆŒ�%˜#×-Ò-¨d¬fÑ5Ô5Ñ5Ñ5ˆŒà—<’<  4¤6¨:Ñ6Ô6ˆØŒˆxÐÐÔ˜B ™J¨¯ª°JÑ)?Ô)?Ñ?Ñ?ÐÐÑå”X˜q !˜fÑ%Ô%ˆŒ
ˆ
ˆ
r   c                 óh   — |d         t          j        |d         | j        z  ¦  «        z   | j        z
  S r$   )r'   r‹   r   r\   ©r7   Úps     r   r€   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‰   rZ   r   r‹   )r7   r–   r‚   s      r   rz   zExponentialFittingProblem.jac¦   s\   € ÝŒH�d”f˜dœfÐ%Ñ&Ô&ˆØˆˆ!ˆ!ˆ!ˆQˆ$‰Ø”&�2œ6 ! A¤$¨¬¡-Ñ0Ô0Ñ0ˆˆ!ˆ!ˆ!ˆQˆ$‰Øˆr   )r%   r…   r†   N)r=   r>   r?   Ú__doc__r8   r€   rz   r   r   r   r„   r„   Ž   sY   € € € € € ð#ð #ð ;BØ"&ð&ð &ð &ð &ð"5ð 5ð 5ðð ð ð ð r   r„   c                 óˆ   — t          j        d| j        f¦  «        }d| z   }d|dz  dz
  z  |d<   |dz  |d<   d|dz  z  |d<   |S )NrL   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„ Zd„ Zej                             d¦  «        ej                             d¦  «        d„ ¦   «         ¦   «         ZdS )Ú	BaseMixinzBjac='(3-point|cs)' works equivalently to '2-point' for method='lm'c                 óº   — t          t          d| j        ¬¦  «        }t          |j        dd¬¦  «         t          |j        t          |j        ¦  «        ¦  «         d S )Nç       @©Úmethodr   ç-Cëâ6?©Úatol)r   r   r¥   r   r   r€   ©r7   Úress     r   Ú
test_basiczBaseMixin.test_basic½   sQ   € å�K¨°D´KÐ@Ñ@Ô@ˆÝ˜œ˜q tÐ,Ñ,Ô,Ð,Ý˜œ¥¨S¬UÑ!3Ô!3Ñ4Ô4Ð4Ð4Ð4r   c           	      óB  — d}dddt           fD �]}t          j        ¦   «         5  t          j        d| j        t
          ¦  «         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Úignorer£   )Úargsr¥   r   )Úkwargsr¥   r¦   )Úrtol)rL   rS   ÚkaboomrL   )r"   ÚwarningsÚcatch_warningsÚfilterwarningsÚmsgÚUserWarningr   r   r¥   r   r   Úassert_raisesÚ	TypeError)r7   r   rz   rª   Úres1s        r   Útest_args_kwargszBaseMixin.test_args_kwargsÃ   sz  € àˆØ˜y¨$µÐ<ð 	Dñ 	DˆCÝÔ(Ñ*Ô*ð 8ð 8ÝÔ'¨°$´(½KÑHÔHÐHÝ#¥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                 ór  — dddt           fD ]�}t          j        ¦   «         5  t          j        d| j        t
          ¦  «         t          t          d|| j        ¬¦  «        }d d d ¦  «         n# 1 swxY w Y   t          |j
        dd¬	¦  «         Œ‚t          t          t          t          dd
| j        ¬¦  «         d S )Nr®   r¯   r°   r±   r£   r¤   r   r¦   r§   Úoops©rz   r¥   )r"   r¶   r·   r¸   r¹   rº   r   r   r¥   r   r   r»   Ú
ValueError©r7   rz   rª   s      r   Útest_jac_optionszBaseMixin.test_jac_optionsÖ   s
  € Ø˜y¨$µÐ<ð 	1ð 	1ˆCÝÔ(Ñ*Ô*ð Oð OÝÔ'¨°$´(½KÑHÔHÐHÝ#¥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   ¡>A+Á+A/	Á2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   )r7   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        ¬¦  «         d S )Nç      ð?ç      à?rz   r£   )Úx_scaler   Úauto)rÍ   r¥   ç      ð¿y      ð?       @)	r'   r(   r   r   r   r   r»   rÂ   r¥   )r7   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¥-µØ 8°D´Kð	Añ 	Aô 	Að 	Að 	Að 	Ar   c                 óÖ   — t          t          dd| j        ¬¦  «        }t          t          dd | j        ¬¦  «        }t          |j        dd¬¦  «         t          |j        dd¬¦  «         d S )Nr£   rd   )Ú	diff_stepr¥   r   r¦   r§   rÈ   )r7   r½   Úres3s      r   Útest_diff_stepzBaseMixin.test_diff_stepñ   sw   € Ý�[¨#¸Ø$(¤Kð1ñ 1ô 1ˆå�[¨#Ø'+°D´KðAñ Aô Aˆå˜œ ¨Ð-Ñ-Ô-Ð-Ý˜œ ¨Ð-Ñ-Ô-Ð-Ð-Ð-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_optionr`   )r¥   ÚoptionsrÇ   )r»   r¼   r   r   r¥   r6   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                 óp  — 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 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„?Úlmr/   )r   r   r¥   r   r   Úcostr€   rz   ÚgradÚ
optimalityr   Úactive_maskr   Únjevr5   ÚstatusÚsuccessr©   s     r   Útest_full_resultzBaseMixin.test_full_result   s#  € õ �K¨°T´[ÐAÑAÔAˆÝ˜œ˜q tÐ,Ñ,Ô,Ð,Ý˜œ $Ñ'Ô'Ð'Ý˜œ Ñ#Ô#Ð#Ý˜œ ¨Ð.Ñ.Ô.Ð.Ý˜œ !¨$Ð/Ñ/Ô/Ð/Ý˜œ¨°Ð5Ñ5Ô5Ð5Ý�S”_ aÑ(Ô(Ð(ØŒ;˜$ÒÐÝ�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@é	   rS   é$   r   )r¥   r   r   r   r   r'   r(   rÝ   r€   rz   rÞ   rß   rà   r5   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¦  «        D ]x}t          j                             d¦  «        }|                     d¬¦  «        dz  }t          ¦   «         }t          ||t          | j        |¬¦  «        }|j	        |j	        k    sJ ‚Œyd S )Nr%   rL   iŒ÷ r   )r›   r/   )rz   r¥   rÇ   )
Úranger'   rp   rq   Úuniformr2   r   rC   r¥   r5   )r7   r}   r|   rs   Úftrivialrª   s         r   Ú	test_nfevzBaseMixin.test_nfev'  s–   € å�q˜!‘”ð 	-ð 	-ˆAÝ”)×'Ò'¨Ñ/Ô/ˆCØ—’ !�Ñ$Ô$ rÑ)ˆBÝ%Ñ'Ô'ˆHÝØ˜¥¸¼Èaðñ ô ˆCð ”8˜xœ}Ò,Ð,Ð,Ð,Ð,ð	-ð 	-r   c           
      óˆ  — 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	          j        ¦   «         5  t	          j        d| j        t          ¦  «         t          t          ||||| j        ¬¦  «        }d d d ¦  «         n# 1 swxY w Y   t          |j        |¦  «         Œ†d S )NrR   r%   r®   r¯   r°   rË   çš™™™™™É?rz   ÚexactÚlsmrr±   ©rÍ   Ú	tr_solverr¥   )r   rC   r'   r(   r¶   r·   r¸   r¹   rº   r   r0   r¥   r   r   )r7   rs   Úx_optrz   rÍ   ró   rª   s          r   Útest_rosenbrockzBaseMixin.test_rosenbrock2  s5  € Ø�!ˆWˆØ�A�ˆÝ'.Ø˜I t­^Ð<Ø•b”h  S˜zÑ*Ô*¨EÐ2Ø˜&Ð!ñ(#ô (#ð 	*ð 	*Ñ#ˆC�˜)õ Ô(Ñ*Ô*ð Mð MÝÔ'¨°$´(½KÑHÔHÐHÝ#¥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   ÁA 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 )NrR   r%   rÜ   r¤   r®   r¯   r°   rË   rï   rz   rð   rñ   rò   r   g›+¡†›„=r§   )r¥   r»   rÂ   r   rG   r   rJ   r'   r(   r   rÝ   )r7   rs   rz   rÍ   ró   rª   s         r   Útest_rosenbrock_croppedz!BaseMixin.test_rosenbrock_cropped?  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   rM   r¥   r6   s    r   Útest_fun_wrong_dimensionsz#BaseMixin.test_fun_wrong_dimensionsN  s1   € Ý•j¥-Õ1EØ $¤+ð	/ñ 	/ô 	/ð 	/ð 	/ð 	/r   c                 ób   — t          t          t          t          dt          | j        ¬¦  «         d S rù   )r»   rÂ   r   r   rP   r¥   r6   s    r   Útest_jac_wrong_dimensionsz#BaseMixin.test_jac_wrong_dimensionsR  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   r0   rE   r¥   ©r7   rs   s     r   Ú(test_fun_and_jac_inconsistent_dimensionsz2BaseMixin.test_fun_and_jac_inconsistent_dimensionsV  sA   € Ø�ˆVˆÝ•j¥-µÀÝ,°T´[ð	Bñ 	Bô 	Bð 	Bð 	Bð 	Br   c                 ó¦   — t          j        d¦  «                             dd¦  «        }t          t          t
          t          || j        ¬¦  «         d S )NrS   r   r¤   )r'   rr   rX   r»   rÂ   r   r   r¥   rþ   s     r   Útest_x0_multidimensionalz"BaseMixin.test_x0_multidimensional[  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_scalar`  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_arraye  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ˆ  r`   rÛ   )Úftolr¥   rÇ   rÌ   )r'   rr   r¥   r   r]   r   r5   rÝ   )r7   rZ   rs   rÇ   rª   s        r   Útest_bvpzBaseMixin.test_bvpj  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  r6   s    r   Ú/test_error_raised_when_all_tolerances_below_epsz9BaseMixin.test_error_raised_when_all_tolerances_below_eps{  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Ü   rR   r%   ))ç:Œ0âŽyE>NN)Nr  N)NNr  )rz   r	  r  r  r¥   )r¥   r   r0   rC   r   r   )r7   rs   rô   r	  r  r  rª   s          r   Ú0test_convergence_with_only_one_tolerance_enabledz:BaseMixin.test_convergence_with_only_one_tolerance_enabled€  s‡   € ØŒ;˜$ÒÐØˆFØ�!ˆWˆØ�A�ˆð!6ð 	*ð 	*ÑˆD�$˜õ  ¥°½Ø%)°¸4Ø'+¤{ð4ñ 4ô 4ˆCõ ˜CœE 5Ñ)Ô)Ð)Ð)ð	*ð 	*r   r%   r   c                 ó$  — t          t          d| j        ¬¦  «        }g }dD ]4}t          t          d| j        |¬¦  «        }|                     |¦  «         Œ5t	          d¦  «        5 }t          t          d| j        |j        ¬¦  «        }|                     |¦  «         d d d ¦  «         n# 1 swxY w Y   |D ]Y}|j        sJ ‚t          |j        |j        ¦  «         t          |j	        |j	        ¦  «         t          |j
        |j
        ¦  «         ŒZd S )Nr£   r¤   r!   )r¥   Úworkersr   )r   r   r¥   Úappendr   Úmaprã   r   r   r5   rá   )r7   ÚserialÚresesr  rª   s        r   Útest_workerszBaseMixin.test_workers�  s^  € õ �{¨C¸¼ÐDÑDÔDˆàˆØ ð 	ð 	ˆGÝÝ˜S¨¬¸gðñ ô ˆCð �LŠL˜ÑÔÐÐÝ�!‰WŒWð 	˜ÝÝ˜S¨¬¸g¼kðñ ô ˆCð �LŠL˜ÑÔÐð		ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð
 ð 	0ð 	0ˆCØ”;ÐÐ�;Ý˜œ ¤Ñ)Ô)Ð)Ý˜œ 6¤;Ñ/Ô/Ð/Ý˜œ 6¤;Ñ/Ô/Ð/Ð/ð		0ð 	0s   Á%8B)Â)B-Â0B-N)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  ÚpytestÚmarkÚparallel_threads_limitÚ	fail_slowr  r   r   r   r¡   r¡   »   s­  € € € € € Ø
N€Cð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ð
*ð *ð *ð „[×'Ò'¨Ñ*Ô*Ø„[×Ò˜3ÑÔð0ð 0ñ  Ôñ +Ô*ð0ð 0ð 0r   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  r6   s    r   Útest_inconsistentzBoundsMixin.test_inconsistent§  s2   € Ý•j¥-µ¸cØ(°´ð	>ñ 	>ô 	>ð 	>ð 	>ð 	>r   c                 óX   — t          t          t          t          dd| j        ¬¦  «         d S )Nr£   )r­   rS   r!  r  r6   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   rL   r!  r  r6   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¥   r0   r6   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­   ©rz   r"  r¥   r   r¦   r§   r   rB   rL   )rÌ   r­   rÌ   )	r"   r   r   r¥   r   r   r   rà   r   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 ri   r   ©ru   rv   s     r   Úget_bounds_directz8BoundsMixin.test_bounds_shape.<locals>.get_bounds_directÈ  s   € Ø�r�6ˆMr   c                 ó"   — t          | |¦  «        S ri   )r   r0  s     r   Úget_bounds_instancesz;BoundsMixin.test_bounds_shape.<locals>.get_bounds_instancesË  s   € Ý˜"˜b‘>”>Ð!r   r®   r¯   r°   rË   )rz   r   rÌ   r£   r,  g333333Ó?rï   r­   rB   çñhãˆµøä>r§   )r-   r   r*   r   r   r¥   )r7   r1  r3  rz   Úbounds_funcrs   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Ë   )ru   rÏ   r0  ç      À)rv   r4  rd   )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ó¿rc   g      ø?r­   g      IÀrÌ   r`   r®   r¯   r°   rz   rð   rñ   rò   r4  r§   )
r'   r(   Úinfr   rC   r   r0   r¥   r   rß   )r7   Úx0_1Úx0_2Úx0_3Úx0_4Úx0_5Úproblemsrs   r"  rz   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)r=   r>   r?   r#  r%  r'  r*  r-  r6  r9  r  r  r  rB  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¥   )	r_   r»   rÂ   r   r€   rs   rz   r¥   rx   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 )Nra   ©r{   rm   rÁ   ç#B’¡œÇ;r§   r   )r_   r   r€   rs   rz   r¥   r   r5   r   r   rÝ   ©r7   ra   rm   Ú
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   rK  r§   )r_   r   r€   rs   rz   r¥   r   rÝ   ©r7   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ÚbestrF  rñ   ÚtolrR  )ró   rT  )	r_   r»   rÂ   r   r€   rs   rz   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 )Nra   rJ  rm   rÁ   r   rK  r§   )r_   r   r€   rs   rz   r¥   r   rÝ   r   r
   Ú
isinstancer'   ÚndarrayrL  s        r   Útest_solver_selectionz!SparseMixin.test_solver_selection4  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¥   rG  rK  r§   r   )r_   r   r€   rs   r¥   rx   r   r5   r   r   rÝ   )r7   r–   rz   rN  rM  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¥   rG  r   rR  r§   )r_   r   rz   rx   r   r€   rs   ru   r'   r;  r¥   rv   r   rß   )r7   r–   rz   rG  Úres_1Úres_2Úres_3s          r   Útest_with_boundszSparseMixin.test_with_boundsL  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 )NrB   ©rG  r¥   )r_   rx   r»   rÂ   r   r€   rs   r¥   )r7   r–   rx   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 )	Nrg   rJ  r¤   r   rK  r§   rð   )r¥   ró   ©
r_   r   r€   rs   rz   r¥   r   rÝ   r»   rÂ   rU  s      r   Útest_linear_operatorz SparseMixin.test_linear_operatord  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 )Nrz   )r¥   rÍ   r   rK  r§   rg   rJ  rj  rU  s      r   Útest_x_scale_jac_scalez"SparseMixin.test_x_scale_jac_scalek  s“   € ÝÑ Ô ˆÝ˜AœE 1¤4¨¬°t´{Ø$)ð+ñ +ô +ˆå˜œ #¨EÐ2Ñ2Ô2Ð2å JÐ/Ñ/Ô/ˆÝ•j¥-°´¸¼¸a¼eØ!œ[°%ð	9ñ 	9ô 	9ð 	9ð 	9ð 	9r   N)r=   r>   r?   rH  rO  rV  rZ  r^  r`  r  r  r  re  rh  rk  rm  r   r   r   rD  rD    sÍ   € € € € € ð*ð *ð *ð7ð 7ð 7ð1ð 1ð 1ðCð Cð Cð
7ð 
7ð 
7ð
<ð 
<ð 
<ð „[×Ò˜2ÑÔð=ð =ñ Ôð=ð"Að Að Að=ð =ð =ð9ð 9ð 9ð 9ð 9r   rD  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Â   ©r7   rr  rª   s      r   Útest_optionszLossFunctionMixin.test_optionsw  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£   rq  )ru  r   r   r¥   r   r€   r   rv  s      r   Útest_funzLossFunctionMixin.test_fun€  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%   ©rr  rÇ   r¥   r   rÚ   ÚhuberÚsoft_l1rÌ   ÚcauchyÚarctanrS   gUUUUUUå?)
r'   r(   r   r   r"   r¥   r   rÞ   r   rŸ   )r7   r   rª   s      r   Ú	test_gradzLossFunctionMixin.test_gradˆ  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Ú   r{  r%   r|  r}  rÌ   r/   )rr  Úf_scalerÇ   r~  g      è¿r  )rr  rƒ  rÇ   r¥   r€  g      4@rÆ   rL   rS   )rr  rÇ   é   g«ªªªªªê¿)	r   r   r"   r¥   r   rz   r   r   rŸ   )r7   r   r   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)rd   rË   r%   rd   içyº )r|   r®   r¯   r°   rÁ   r   rÛ   r§   r{  )rz   rr  rƒ  r¥   )r„   rz   r   r€   rŠ   r¥   r   rß   ru  r   r   r   r�   )r7   r�   r–   rz   Úres_lsqrr  Ú
res_robusts          r   Útest_robustnessz!LossFunctionMixin.test_robustnessë  s2  € Øð 	7ð 	7ˆEÝ)¨!¨S°%¸XÐFÑFÔFˆ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)r=   r>   r?   rw  ry  r�  r†  rŠ  r   r   r   ro  ro  v  si   € € € € € ð8ð 8ð 8ð6ð 6ð 6ðIð Ið Ið>BLð BLð BLðH7ð 7ð 7ð 7ð 7r   ro  c                   ó   — e Zd ZdZdS )Ú
TestDogboxÚdogboxN)r=   r>   r?   r¥   r   r   r   rŒ  rŒ  þ  s   € € € € € Ø€F€F€Fr   rŒ  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)TFr�  Ú
regularizerS  r   rK  r§   )r_   r   r€   rs   rz   r   rÝ   )r7   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)r=   r>   r?   r¥   r“  r   r   r   r�  r�    s(   € € € € € Ø€Fð5ð 5ð 5ð 5ð 5r   r�  c                   ó<   — e Zd 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£   )r8  r­   rÜ   r!  ©r»   rÂ   r   r   r6   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 )NrR   r%   rÜ   r¤   )r»   rÂ   r   rG   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¤   ©r_   r»   rÂ   r   r€   rs   rz   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Ü   rg  r—  r6   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 )Nrg   rJ  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£   r{  rÜ   rq  r   r¦   r§   r}  )r¥   rr  )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   c                 óÌ   — d„ }t          j        ¦   «         5  t          j        ddt          ¦  «         t	          t
          dgd|¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nc                 ó   — J ‚ri   r   r)   s    r   Úcallbackz5TestLM.test_callback_with_lm_method.<locals>.callback/  s   € Ø�5r   r±   z@Callback function specified, but not supported with `lm` method.r   rÜ   )rs   r¥   r¦  )r¶   r·   r¸   rº   r   r   )r7   r¦  s     r   Útest_callback_with_lm_methodz#TestLM.test_callback_with_lm_method.  sÓ   € ð	ð 	ð 	õ Ô$Ñ&Ô&ð 	Oð 	OÝÔ#ØØRÝñô ð õ
 �+¨1¨#°dÀXÐNÑNÔNÐNð	Oð 	Oð 	Oñ 	Oô 	Oð 	Oð 	Oð 	Oð 	Oð 	Oð 	Oð 	Oøøøð 	Oð 	Oð 	Oð 	Oð 	Oð 	Os   —5AÁAÁ AN)r=   r>   r?   r¥   r˜  rš  r�  rŸ  r¡  r£  r§  r   r   r   r•  r•    s‡   € € € € € Ø€Fð<ð <ð <ð#ð #ð #ð
#ð #ð #ð
5ð 5ð 5ð#ð #ð #ð
1ð 1ð 1ð
Oð 
Oð 
Oð 
Oð 
Or   r•  c                  ó^   — t          t          d¦  «        } t          | j        dd¬¦  «         d S )Nr£   r   rR  r§   )r   r   r   r   )rª   s    r   r«   r«   ;  s.   € å
� SÑ
)Ô
)€CÝ�C”E˜1 5Ð)Ñ)Ô)Ð)Ð)Ð)r   c                  ó\  ‡
— g Š
dt           fˆ
fd„} ˆ
fd„}dt           fˆ
fd„}ˆ
fd„}| |g}||g}d„ d„ d„ g}t          ||¦  «        D ]y\  }}‰
                     ¦   «           ||¦  «        }	t          ‰
¦  «        d	k    sJ ‚‰
d
         j        d	k    sJ ‚|	j        dk    sJ ‚t          ‰
d
         j        |	j        ¦  «         Œzt          ||¦  «        D ]Y\  }}‰
                     ¦   «           ||¦  «        }	t          ‰
¦  «        d	k    sJ ‚‰
d
         j        dk    sJ ‚|	j        dk    sJ ‚ŒZd S )NÚintermediate_resultc                 ó2   •— ‰                      | ¦  «         d S ri   )r  ©rª  Úresultss    €r   Úmy_callback_optimresultz.test_callback.<locals>.my_callback_optimresultF  s   ø€ Ø�ŠÐ*Ñ+Ô+Ð+Ð+Ð+r   c                 ój   •— t          ¦   «         }d|_        | |_        ‰                     |¦  «         dS )Nr%   F)r   Únitr   r  ©r   Úrr­  s     €r   Úmy_callback_xz$test_callback.<locals>.my_callback_xI  s3   ø€ ÝÑÔˆØˆŒØˆŒØ�Š�qÑÔÐØˆur   c                 ó<   •— ‰                      | ¦  «         t          ‚ri   )r  ÚStopIterationr¬  s    €r   Ú&my_callback_optimresult_stop_exceptionz=test_callback.<locals>.my_callback_optimresult_stop_exceptionP  s   ø€ à�ŠÐ*Ñ+Ô+Ð+ÝÐr   c                 ót   •— t          ¦   «         }d|_        | |_        ‰                     |¦  «         t          ‚r:   )r   r°  r   r  rµ  r±  s     €r   Úmy_callback_x_stop_exceptionz3test_callback.<locals>.my_callback_x_stop_exceptionU  s4   ø€ ÝÑÔˆØˆŒØˆŒØ�Š�qÑÔÐÝÐr   c                 ó2   — t          t          dd| ¬¦  «        S )Nr   r�  ©r¥   r¦  ©r   r   ©r¦  s    r   rl   ztest_callback.<locals>.<lambda>c  s   € �¥{°CÀØ08ð:ñ :ô :€ r   c                 ó4   — t          t          ddd| ¬¦  «        S )Nr   r�  )g       Àç       @)r¥   r"  r¦  r»  r¼  s    r   rl   ztest_callback.<locals>.<lambda>e  s#   € �¥{°CÀØ.9ÀHðNñ Nô N€ r   c                 ó2   — t          t          dd| ¬¦  «        S )Nr   r�  rº  r»  r¼  s    r   rl   ztest_callback.<locals>.<lambda>g  s   € �¥{°CÀØ08ð:ñ :ô :€ r   r   rB   rR   r%   )r   r   ÚclearÚlenr°  râ   r   r   )r®  r³  r¶  r¸  Úcallbacks_nostopÚcallbacks_stopÚcallsÚ
mycallbackÚcallrª   r­  s             @r   Útest_callbackrÇ  A  sé  ø€ ð €Gð,µ^ð ,ð ,ð ,ð ,ð ,ð ,ðð ð ð ð ðÝ+ðð ð ð ð ð ð
ð ð ð ð ð 0°Ð?ÐØ<Ø2ð4€Nð
	:ð 	:ð	Nð 	Nð	:ð 	:ð€Eõ $Ð$4°eÑ<Ô<ð .ð .Ñˆ
�DØ�Š‰Œˆàˆd�:ÑÔˆå�7‰|Œ|˜aÒÐÐÐà�rŒ{Œ Ò"Ð"Ð"Ð"àŒz˜RÒÐÐÐå˜ œœ s¤uÑ-Ô-Ð-Ð-å# N°EÑ:Ô:ð 	 ð 	 Ñˆ
�DØ�Š‰Œˆàˆd�:ÑÔˆå�7‰|Œ|˜aÒÐÐÐà�rŒ{Œ !Ò#Ð#Ð#Ð#àŒz˜RÒÐÐÐÐð	 ð 	 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t           j        ¬¦  «        }|                      dt           j        ¬¦  «        }d„ Šˆfd„Šˆfd	„}t          ‰d
d
g||f¬¦  «        }|j        dk    sJ ‚t          |d
dgd||fddi¬¦  «        }t          |j	        |j	        d¬¦  «         d S )Niº  r   r%   r`   re   )r›   rf   c                 ód   — | d         | d         |z  z                         t          j        ¦  «        S r$   ©Úastyper'   Úfloat32)r–   r   s     r   Úfuncztest_fp32_gh12991.<locals>.func˜  s(   € Ø�!”�q˜”t˜a‘x‘×'Ò'­¬
Ñ3Ô3Ð3r   c                 ó\   •—  ‰| |¦  «        |z
                        t          j        ¦  «        S ri   rÍ  )r–   r   r\   rÐ  s      €r   Úerrztest_fp32_gh12991.<locals>.err›  s'   ø€ Ø��Q˜‘
”
˜Q‘×&Ò&¥r¤zÑ2Ô2Ð2r   c                 óH   •— t          j         ‰| ||¦  «        dz  ¦  «        S r!   )r'   Úsum)r–   r   r\   rÒ  s      €r   Úmseztest_fp32_gh12991.<locals>.msež  s#   ø€ ÝŒv�c�c˜!˜Q ‘l”l A‘oÑ&Ô&Ð&r   rÏ   )r²   r   rË   ÚcobyqaÚfinal_tr_radiusg�íµ ÷Æ°>)r¥   r²   r×   gÖÿ9Ì—?r§   )
r'   rp   rq   rt   rÏ  r   r5   r   r   r   )r|   r   r\   rÕ  rª   Úres2rÒ  rÐ  s         @@r   Útest_fp32_gh12991rÙ  Œ  s  øø€ õ Œ)×
Ò
 Ñ
%Ô
%€Cå
Œ�A�q˜#¥R¤ZÐ0Ñ0Ô0€AØ�
Š
˜¥2¤:ˆ
Ñ.Ô.€Að4ð 4ð 4ð3ð 3ð 3ð 3ð 3ð'ð 'ð 'ð 'ð 'õ ˜˜d D˜\°°A°Ð
7Ñ
7Ô
7€Cð Œ8�aŠ<ˆ<ˆ<ˆ<åØØ	ˆsˆØØ�ˆVØ" DÐ)ðñ ô €Dõ �C”E˜4œ6¨Ð-Ñ-Ô-Ð-Ð-Ð-r   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   rs  r   )rs   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ä  ´  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   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   rd   c                 óP   •— | \  }}}|t          j        |‰|z
  z  ¦  «        z  ‰z
  S ri   )r'   r‹   )ÚparamsÚAÚBrs   ÚxdataÚydatas       €€r   Úexponential_wrappedz*test_gh_19103.<locals>.exponential_wrappedà  s1   ø€ Ø‰ˆˆ1ˆbØ•2”6˜!˜u r™zÑ*Ñ+Ô+Ñ+¨eÑ3Ð3r   )rÛ   rË   r   )rÛ   r   r   r/   gfffffæ4@r�  )r¥   r"  )r'   r(   ry   r›   r;  r   rã   )rö  rs   r"  rª   rô  rõ  s       @@r   Útest_gh_19103r÷  Î  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   )@r¶   Ú	itertoolsr   Úmultiprocessingr   Únumpyr'   Únumpy.linalgr   Únumpy.testingr   r   r   r  r	   r»   Úscipy.sparser
   r   Úscipy.sparse.linalgr   Úscipy.optimizer   r   r   Ú!scipy.optimize._lsq.least_squaresr   Úscipy.optimize._lsq.commonr   r   r   r   r   r"   r*   r-   r0   r2   rC   rE   rG   rJ   rM   rP   r]   r_   r„   rŸ   ÚlistÚkeysru  r¡   r  rD  ro  rŒ  r�  r•  r«   rÇ  rÊ  rÙ  rä  r÷  r   r   r   ú<module>r     sd  ðØ €€€à Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  à Ð Ð Ð Ø Ð Ð Ð Ð Ð ð)ð )ð )ð )ð )ð )ð )ð )ð )ð )à €€€Ø *Ð *Ð *Ð *Ð *Ð *Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø 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¨?Ñ	:€ðh0ð h0ð h0ð h0ð h0ñ h0ô h0ð h0ðV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ð+Oð +Oð +Oð +Oð +OˆYñ +Oô +Oð +Oð\*ð *ð *ð@ ð @ ð @ ðF9ð 9ð 9ð%.ð %.ð %.ðPAð Að Að4ð ð ð ð r   