§
    ¢éUg¶ç ã            
       óD  — d Z ddlZddlZddlZddlmZmZmZm	Z	m
Z
mZmZ ddlZddlmZ ddlmZ ddlmZmZ ddlmZmZmZ ddlmZ dd	lmZ dd
lmZ ddlmZ ddl m!Z!m"Z" ddl#m$Z$m%Z%m&Z& ddl'm(Z(m)Z)m*Z* ddl+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1 d„ Z2 G d„ d¦  «        Z3 G d„ de3¦  «        Z4d„ Z5d„ Z6d„ Z7d„ Z8d„ Z9d„ Z:d„ Z;d„ Z<d„ Z=d„ Z> G d„ d e4¦  «        Z? G d!„ d"e4¦  «        Z@ G d#„ d$e4¦  «        ZA G d%„ d&e4¦  «        ZB G d'„ d(e3¦  «        ZCejD         E                    d)g d*¢¦  «        d+„ ¦   «         ZF G d,„ d-¦  «        ZG G d.„ d/¦  «        ZH G d0„ d1¦  «        ZId2„ ZJ G d3„ d4¦  «        ZKd5„ ZLd6„ ZMd7„ ZNd8„ ZO G d9„ d:¦  «        ZPd;„ ZQd<„ ZRd=„ ZSd>d?gZTd@dAgZUdBZVdC„ ZW G dD„ dE¦  «        ZXdF„ ZYdG„ ZZdH„ Z[dI„ Z\ G dJ„ dK¦  «        Z]ejD         ^                    dL¦  «        dM„ ¦   «         Z_ G dN„ dO¦  «        Z`dP„ Za G dQ„ dR¦  «        Zbejc        dS„ ¦   «         ZddT„ ZedU„ ZfdV„ ZgdW„ ZhdX„ Zi ei¦   «         ZjejD         k                    dY¦  «        ejD         E                    d)ejdZ         ¦  «        ejD         E                    d[ejd[         ¦  «        ejD         E                    d\ejd]         ¦  «        ejD         E                    d^ejd^         ¦  «        ejD         E                    d_ejd`         ¦  «        da„ ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         ZlejD         E                    d)ejdZ         ¦  «        db„ ¦   «         Zmdc„ Zndd„ Zode„ Zpdf„ Zq G dg„ dh¦  «        Zrdi„ Zsdj„ ZtejD         E                    d)dkdlg¦  «        ejD         E                    dme,e-e.e/e0e1g¦  «        dn„ ¦   «         ¦   «         ZudS )oz·
Unit tests for optimization routines from optimize.py

Authors:
   Ed Schofield, Nov 2005
   Andrew Straw, April 2008

To run it in its simplest form::
  nosetests test_optimize.py

é    N)Úassert_allcloseÚassert_equalÚassert_almost_equalÚassert_no_warningsÚassert_warnsÚassert_array_lessÚsuppress_warnings)Úraises)Úoptimize)ÚBoundsÚNonlinearConstraint)ÚMINIMIZE_METHODSÚMINIMIZE_METHODS_NEW_CBÚMINIMIZE_SCALAR_METHODS)ÚLINPROG_METHODS)ÚROOT_METHODS)ÚROOT_SCALAR_METHODS)ÚQUADRATIC_ASSIGNMENT_METHODS)ÚScalarFunctionÚ
FD_METHODS)Ú
MemoizeJacÚshow_optionsÚOptimizeResult)ÚrosenÚ	rosen_derÚ
rosen_hess)Ú
coo_matrixÚ
csc_matrixÚ
csr_matrixÚ	coo_arrayÚ	csr_arrayÚ	csc_arrayc            
      óv  — d„ } d„ }t          j        dg¦  «        }t          j        | ||¦  «        }t	          |d¦  «         t          j        | ||dd¬¦  «        }t	          |d¦  «         t          j        | ||d¬	¦  «        }t	          |d¦  «         t          j        | ||ddd¬
¦  «        }t	          |d¦  «         t          t          j        | ||d¬	¦  «        dz
  ¦  «        }|dk    sJ ‚t          t          j        | ||ddd¬
¦  «        dz
  ¦  «        }|dk    sJ ‚d„ }d„ }t          j        ddd¦  «        }t          j        |||dd¬¦  «        }t	          |d¦  «         t          t          t          j        |||dd¬¦  «         t          j        t          t          t          dd¬¦  «        }|dk     sJ ‚d S )Nc                 ó8   — ddt          j        |  ¦  «        z   z  S ©Né   ©ÚnpÚexp©Úxs    úa/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/scipy/optimize/tests/test_optimize.pyÚexpitztest_check_grad.<locals>.expit*   s   € Ø�A�œ ˜r™
œ
‘NÑ#Ð#ó    c                 ód   — t          j        |  ¦  «        dt          j        |  ¦  «        z   dz  z  S ©Nr&   é   r'   r*   s    r,   Ú	der_expitz"test_check_grad.<locals>.der_expit-   s*   € ÝŒv�q�b‰zŒz˜Q¥¤¨¨¡¤™^¨aÑ/Ñ/Ð/r.   ç      ø?r   ÚrandoméÒ  )Ú	directionÚseedç�íµ ÷Æ°>)Úepsilon)r9   r6   r7   çš™™™™™¹?çH¯¼šò×z>c                 óT   — | t          j        | ¦  «        z                       ¦   «         S ©N)r(   ÚsinÚsumr*   s    r,   Úx_sinxztest_check_grad.<locals>.x_sinxE   s    € Ø•"”&˜‘)”)‘× Ò Ñ"Ô"Ð"r.   c                 óZ   — t          j        | ¦  «        | t          j        | ¦  «        z  z   S r=   ©r(   r>   Úcosr*   s    r,   Ú
der_x_sinxz#test_check_grad.<locals>.der_x_sinxH   s!   € ÝŒv�a‰yŒy˜1�RœV A™YœY™;Ñ&Ð&r.   r1   çš™™™™™É?Úrandom_projectionÚallg�íµ ÷Æ >)r(   Úarrayr   Ú
check_gradr   ÚabsÚarangeÚassert_raisesÚ
ValueErrorÚhimmelblau_gradÚhimmelblau_hessÚhimmelblau_x0)r-   r2   Úx0Úrr@   rD   s         r,   Útest_check_gradrS   &   s%  € ð$ð $ð $ð0ð 0ð 0õ 
Œ�3�%‰Œ€BåÔ˜E 9¨bÑ1Ô1€AÝ˜˜1ÑÔÐÝÔ˜E 9¨bØ&.°Tð	;ñ 	;ô 	;€Aå˜˜1ÑÔÐåÔ˜E 9¨b¸$Ð?Ñ?Ô?€AÝ˜˜1ÑÔÐÝÔ˜E 9¨b¸$Ø&.°Tð	;ñ 	;ô 	;€Aå˜˜1ÑÔÐõ 	�HÔ  y°"¸dÐCÑCÔCÀaÑGÑHÔH€AØˆtŠ8ˆ8ˆ8ˆ8Ý�HÔ  y°"¸dØ*2¸ð?ñ ?ô ?ØABñCñ 	Dô 	D€AàˆtŠ8ˆ8ˆ8ˆ8ð#ð #ð #ð'ð 'ð 'õ 
Œ�1�a˜Ñ	Ô	€BåÔ˜F J°Ø&.°Tð	;ñ 	;ô 	;€Aå˜˜1ÑÔÐå•*�hÔ1Ø˜* bØ/°dð<ñ <ô <ð <õ
 	Ô�O­_½mØ&+°$ð	8ñ 	8ô 	8€AàˆtŠ8ˆ8ˆ8ˆ8ˆ8ˆ8r.   c                   ó0   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚCheckOptimizezÂ Base test case for a simple constrained entropy maximization problem
    (the machine translation example of Berger et al in
    Computational Linguistics, vol 22, num 1, pp 39--72, 1996.)
    c                 óB  — t          j        g d¢g d¢g d¢g d¢g d¢g¦  «        | _        t          j        g d¢¦  «        | _        t          j        dt           j        ¦  «        | _        t          j        g d¢¦  «        | _        d| _        d	| _	        d	| _
        g | _        d S )
N©r&   r&   r&   )r&   r&   r   )r&   r   r&   )r&   r   r   )ç      ð?ç333333Ó?ç      à?é   )ç        g¾š\¼ºËà¿g¢ß)ªŸ3ß?éè  r   )r(   rH   ÚFÚKÚzerosÚfloat64ÚstartparamsÚsolutionÚmaxiterÚ	funccallsÚ	gradcallsÚtrace©Úselfs    r,   Úsetup_methodzCheckOptimize.setup_methoda   s¡   € Ý”˜9˜9˜9Ø$˜9˜9Ø$˜9˜9Ø$˜9˜9Ø$˜9˜9ð	&ñ 'ô 'ˆŒõ
 ”˜.˜.˜.Ñ)Ô)ˆŒÝœ8 A¥r¤zÑ2Ô2ˆÔÝœÐ!@Ð!@Ð!@ÑAÔAˆŒØˆŒØˆŒØˆŒØˆŒ
ˆ
ˆ
r.   c                 ó†  — | xj         dz  c_         | j         dk    rt          d¦  «        ‚t          j        | j        |¦  «        }t          j        t          t          j        |¦  «        ¦  «        ¦  «        }|t          j        | j        |¦  «        z
  }| j	         
                    t          j        |¦  «        ¦  «         |S )Nr&   ip  z+too many iterations in optimization routine)re   ÚRuntimeErrorr(   Údotr^   Úlogr?   r)   r_   rg   ÚappendÚcopy)ri   r+   Úlog_pdotÚlogZÚfs        r,   ÚfunczCheckOptimize.funco   s�   € ØˆŒ˜!ÑˆŒØŒ>˜DÒ Ð ÝÐLÑMÔMÐMÝ”6˜$œ& !Ñ$Ô$ˆÝŒv•c�"œ& Ñ*Ô*Ñ+Ô+Ñ,Ô,ˆØ•2”6˜$œ& !Ñ$Ô$Ñ$ˆØŒ
×Ò�"œ' !™*œ*Ñ%Ô%Ð%Øˆr.   c                 óR  — | xj         dz  c_         t          j        | j        |¦  «        }t          j        t          t          j        |¦  «        ¦  «        ¦  «        }t          j        ||z
  ¦  «        }t          j        | j                             ¦   «         |¦  «        | j        z
  S r%   )	rf   r(   rm   r^   rn   r?   r)   Ú	transposer_   ©ri   r+   rq   rr   Úps        r,   ÚgradzCheckOptimize.grady   s€   € ØˆŒ˜!ÑˆŒÝ”6˜$œ& !Ñ$Ô$ˆÝŒv•c�"œ& Ñ*Ô*Ñ+Ô+Ñ,Ô,ˆÝŒF�8˜d‘?Ñ#Ô#ˆÝŒv�d”f×&Ò&Ñ(Ô(¨!Ñ,Ô,¨t¬vÑ5Ð5r.   c                 óœ  — t          j        | j        |¦  «        }t          j        t	          t          j        |¦  «        ¦  «        ¦  «        }t          j        ||z
  ¦  «        }t          j        | j        j        t          j        t          j        |¦  «        | j        t          j        | j        j        |¦  «        z
  ¦  «        ¦  «        S r=   )r(   rm   r^   rn   r?   r)   ÚTÚdiagrw   s        r,   ÚhesszCheckOptimize.hess€   s”   € Ý”6˜$œ& !Ñ$Ô$ˆÝŒv•c�"œ& Ñ*Ô*Ñ+Ô+Ñ,Ô,ˆÝŒF�8˜d‘?Ñ#Ô#ˆÝŒv�d”f”hÝ”f�RœW Q™ZœZ¨¬µ"´&¸¼¼À1Ñ2EÔ2EÑ)EÑFÔFñHô Hð 	Hr.   c                 óR   — t          j        |                      |¦  «        |¦  «        S r=   )r(   rm   r}   ©ri   r+   rx   s      r,   ÚhesspzCheckOptimize.hessp‡   s   € ÝŒv�d—i’i ‘l”l AÑ&Ô&Ð&r.   N)	Ú__name__Ú
__module__Ú__qualname__Ú__doc__rj   rt   ry   r}   r€   © r.   r,   rU   rU   [   sl   € € € € € ðð ð
ð ð ðð ð ð6ð 6ð 6ðHð Hð Hð'ð 'ð 'ð 'ð 'r.   rU   c                   óx  — 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e	j
                             ddgddgddgddgg¦  «        d„ ¦   «         Zd„ Ze	j
                             d¬¦  «        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 )$ÚCheckOptimizeParameterizedc           
      ó†  — | j         re| j        | j        ddœ}t          j        | j        | j        dd| j        |¬¦  «        }|d         |d         |d         |d	         |d
         f\  }}}}}n=t          j        | j        | j        | j        d| j        d| j        d¬¦  «        }|\  }}}}}t          |                      |¦  «        |                      | j
        ¦  «        d¬¦  «         | j        dk    sJ | j        ¦   «         ‚| j        dk    sJ | j        ¦   «         ‚t          | j        dd…         g d¢g d¢gdd¬¦  «         d S )NF©rd   ÚdispÚ
return_allr…   ÚCG)ÚargsÚmethodÚjacÚoptionsr+   ÚfunÚnfevÚnjevÚstatusT)rd   Úfull_outputrŠ   Úretallr8   ©Úatolé	   é   r1   é   )r   ç      à¿rZ   )r   gÃ;Ó±.à¿g)`$|;¾ß?ç›+¡†›„=r;   ©r˜   Úrtol)Úuse_wrapperrd   rŠ   r   Úminimizert   rb   ry   Úfmin_cgr   rc   re   rf   rg   )	ri   ÚoptsÚresÚparamsÚfoptÚ
func_callsÚ
grad_callsÚwarnflagÚretvals	            r,   Útest_cgz"CheckOptimizeParameterized.test_cg�   s�  € àÔð 	FØ#œ|°T´YØ"'ð)ð )ˆDåÔ# D¤I¨tÔ/?ÀbØ+/°T´YØ,0ð2ñ 2ô 2ˆCð �C”˜#˜eœ* c¨&¤k°3°v´;ÀÀHÄÐMñ ;ˆF�D˜* j°(°(õ Ô% d¤i°Ô1AØ&*¤i°¸T¼\Ø26¸T¼YØ-2ð4ñ 4ô 4ˆFð @FÑ<ˆV�T˜: z°8å˜Ÿ	š	 &Ñ)Ô)¨4¯9ª9°T´]Ñ+CÔ+CØ!ð	#ñ 	#ô 	#ð 	#ð
 Œ~ Ò"Ð"Ð" D¤NÑ"Ô"Ð"ØŒ~ Ò"Ð"Ð" D¤NÑ"Ô"Ð"õ 	˜œ
 1 Q 3œØ'˜˜Ø=Ð=Ð=ð?à"¨ð	/ñ 	/ô 	/ð 	/ð 	/ð 	/r.   c                 ó°   — d„ }t          j        ddd¦  «        D ];}t          j        ||gd¬¦  «        }|j        sJ ‚t          |j        dgd¬	¦  «         Œ<d S )
Nc                 óH   — ddt          j        d| dz
  z  ¦  «        z
  dz  z  S )Ng      @r&   ç      ø¿rZ   r1   r'   )rR   s    r,   rs   z8CheckOptimizeParameterized.test_cg_cornercase.<locals>.f­   s)   € Ø˜!�bœf T¨1¨s©7¡^Ñ4Ô4Ñ4°qÑ8Ñ8Ð8r.   g      è¿r[   éG   rŒ   ©rŽ   rZ   çñhãˆµøä>©rŸ   )r(   Úlinspacer   r¡   Úsuccessr   r+   )ri   rs   rQ   Úsols       r,   Útest_cg_cornercasez-CheckOptimizeParameterized.test_cg_cornercase¬   s}   € ð	9ð 	9ð 	9õ
 ”+˜e Q¨Ñ+Ô+ð 	5ð 	5ˆBÝÔ# A¨ t°DÐ9Ñ9Ô9ˆCØ”;ÐÐÐÝ˜CœE C 5¨tÐ4Ñ4Ô4Ð4Ð4ð	5ð 	5r.   c           
      óª  — | j         ru| j        | j        ddœ}t          j        | j        | j        | j        dd|¬¦  «        }|d         |d         |d         |d	         |d
         |d         |d         f\  }}}}}}}	n?t          j        | j        | j        | j        d| j        d| j        d¬¦  «        }
|
\  }}}}}}}	t          |                      |¦  «        |                      | j
        ¦  «        d¬¦  «         | j        dk    sJ | j        ¦   «         ‚| j        dk    sJ | j        ¦   «         ‚t          | j        dd…         g d¢g d¢gdd¬¦  «         d S )NFr‰   ÚBFGSr…   ©r�   rŽ   r�   r�   r+   r‘   r�   Úhess_invr’   r“   r”   T©r�   rd   r•   rŠ   r–   r8   r—   é
   é   é   )r   g˜&ó/LÍà¿gB__E7ß?)r   g$ŸÙÜËà¿gÂ
|²3ß?r�   r;   rž   )r    rd   rŠ   r   r¡   rt   rb   ry   Ú	fmin_bfgsr   rc   re   rf   rg   )ri   r£   r¤   r¥   r¦   ÚgoptÚHoptr§   r¨   r©   rª   s              r,   Ú	test_bfgsz$CheckOptimizeParameterized.test_bfgs·   s§  € àÔð 	8Ø#œ|°T´YØ"'ð)ð )ˆDåÔ# D¤I¨tÔ/?Ø(,¬	¸&ÀrØ,0ð2ñ 2ô 2ˆCð
 ˜”H˜c %œj¨#¨e¬*°c¸*´oØ˜”K  V¤¨c°(¬mðJ=ÑFˆF�D˜$  j°*¸h¸hõ Ô'¨¬	°4Ô3CÀTÄYØ-/¸¼Ø48¸t¼yØ/4ð6ñ 6ô 6ˆFð
 28ñ/ˆV�T˜4 Ø˜ Xå˜Ÿ	š	 &Ñ)Ô)¨4¯9ª9°T´]Ñ+CÔ+CØ!ð	#ñ 	#ô 	#ð 	#ð
 Œ~ Ò#Ð#Ð# T¤^Ñ#Ô#Ð#ØŒ~ Ò"Ð"Ð" D¤NÑ"Ô"Ð"õ 	˜œ
 1 Q 3œØ=Ð=Ð=Ø=Ð=Ð=ð?à"¨ð	/ñ 	/ô 	/ð 	/ð 	/ð 	/r.   c                 ó  — t          j        t          d¬¦  «        5  t          j        g d¢¦  «        }| j        t          j        d¦  «         dœ}t          j        t          j	        |dd|¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )	Nú+'hess_inv0' matrix isn't positive definite.©Úmatch©gÍÌÌÌÌÌô?çffffffæ?çš™™™™™é?çffffffþ?ç333333ó?é   ©rŠ   Ú	hess_inv0r¸   r…   ©rQ   rŽ   r�   r�   )
Úpytestr
   rM   r(   rH   rŠ   Úeyer   r¡   r   )ri   rQ   r£   s      r,   Útest_bfgs_hess_inv0_negz2CheckOptimizeParameterized.test_bfgs_hess_inv0_negÙ   sÜ   € õ Œ]�:ð .0ð 1ñ 1ô 1ð 	,ð 	,å”Ð3Ð3Ð3Ñ4Ô4ˆBØ œIµR´V¸A±Y´Y°JÐ?Ð?ˆDÝÔ�hœn°¸FÈØ&*ð,ñ ,ô ,ð ,ð		,ð 	,ð 	,ñ 	,ô 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,øøøð 	,ð 	,ð 	,ð 	,ð 	,ð 	,s   œAB Â BÂBc                 ó&  — t          j        t          d¬¦  «        5  t          j        g d¢¦  «        }t          j        d¦  «        }d|d<   | j        |dœ}t          j        t          j	        |dd	|¬
¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NrÄ   rÅ   rÇ   rÌ   r   ©r   r   rÍ   r¸   r…   rÏ   )
rÐ   r
   rM   r(   rH   rÑ   rŠ   r   r¡   r   )ri   rQ   rÎ   r£   s       r,   Útest_bfgs_hess_inv0_semiposz6CheckOptimizeParameterized.test_bfgs_hess_inv0_semiposã   sè   € õ Œ]�:ð .0ð 1ñ 1ô 1ð 	,ð 	,å”Ð3Ð3Ð3Ñ4Ô4ˆBÝœ˜q™	œ	ˆIØˆI�d‰OØ œI°IÐ>Ð>ˆDÝÔ�hœn°¸FÈØ&*ð,ñ ,ô ,ð ,ð	,ð 	,ð 	,ñ 	,ô 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,øøøð 	,ð 	,ð 	,ð 	,ð 	,ð 	,s   œABÂB
ÂB
c                 ó2  — t           j        }t          j        g d¢¦  «        }| j        dt          j        d¦  «        z  dœ}t          j        ||dd|¬¦  «        }t          j        ||ddd| j        i¬¦  «        }t          |j        |j        d	¬
¦  «         d S )NrÇ   ç{®Gáz„?rÌ   rÍ   r¸   r…   rÏ   rŠ   r8   r—   )	r   r   r(   rH   rŠ   rÑ   r¡   r   r‘   )ri   r‘   rQ   r£   r¤   Úres_trues         r,   Útest_bfgs_hess_inv0_sanityz5CheckOptimizeParameterized.test_bfgs_hess_inv0_sanityï   s¨   € åŒnˆÝŒXÐ/Ð/Ð/Ñ0Ô0ˆØœ	°µr´v¸a±y´yÑ0@ÐAÐAˆÝÔ ¨°6ÀØ(,ð.ñ .ô .ˆåÔ$ S¨R¸ÀRØ.4°d´iÐ-@ðBñ Bô Bˆå˜œ ¤°DÐ9Ñ9Ô9Ð9Ð9Ð9r.   úignore::UserWarningc           	      óV  ‡— d„ Šˆfd„}dg}t          j        d¬¦  «        5  | j        r*d| j        i}t	          j        ‰||dd|¬	¦  «        d
         }nt	          j        ‰||| j        ¬¦  «        }t          j         ‰|¦  «        ¦  «        rJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )Nc                 ó$   — t           j        |  z   S r=   )r(   Úer*   s    r,   rt   z;CheckOptimizeParameterized.test_bfgs_infinite.<locals>.funcý   s   € Ý”D˜a˜R‘L�=Ð r.   c                 ó   •—  ‰| ¦  «         S r=   r…   )r+   rt   s    €r,   Úfprimez=CheckOptimizeParameterized.test_bfgs_infinite.<locals>.fprimeÿ   s   ø€ Ø�D˜‘G”G�8ˆOr.   r   Úignore)ÚoverrŠ   r¸   r…   r¹   r+   ©rŠ   )r(   Úerrstater    rŠ   r   r¡   r¿   Úisfinite)ri   rß   rQ   r£   r+   rt   s        @r,   Útest_bfgs_infinitez-CheckOptimizeParameterized.test_bfgs_infiniteú   s.  ø€ ð	!ð 	!ð 	!ð	ð 	ð 	ð 	ð 	àˆSˆÝŒ[˜hÐ'Ñ'Ô'ð 	,ð 	,ØÔð IØ ¤	Ð*�ÝÔ% d¨B°FÀ6Ø+-°tð=ñ =ô =Ø=@ôB��õ Ô& t¨R°¸d¼iÐHÑHÔH�Ý”{ 4 4¨¡7¤7Ñ+Ô+Ð+Ð+Ð+Ð+ð	,ð 	,ð 	,ñ 	,ô 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,øøøð 	,ð 	,ð 	,ð 	,ð 	,ð 	,s   ¢A.BÂB"Â%B"c                 óÂ   — g d¢}t          j        t           j        |dddi¬¦  «        }t          j        t           j        |dddi¬¦  «        }|j        |j        k    sJ ‚d S )NrÇ   ÚbfgsÚxrtolçü©ñÒMbP?©rŽ   r�   Úgtol©r   r¡   r   Únit)ri   rQ   r¤   Úrefs       r,   Útest_bfgs_xrtolz*CheckOptimizeParameterized.test_bfgs_xrtol  sz   € à&Ð&Ð&ˆÝÔ¥¤Ø "¨6¸GÀT¸?ðLñ Lô LˆåÔ¥¤Ø "¨6¸FÀD¸>ðKñ Kô KˆàŒw˜#œ'Ò!Ð!Ð!Ð!Ð!Ð!r.   c                 óÂ   — g d¢}t          j        t           j        |dddi¬¦  «        }t          j        t           j        |dddi¬¦  «        }|j        |j        k    sJ ‚d S )N©gš™™™™™$@g33333³4@gš™™™™™%@rÊ   ç333333ó¿rç   Úc1ç:Œ0âŽyE>rê   r:   )r   r¡   r   r’   )ri   rQ   Úres_c1_smallÚ
res_c1_bigs       r,   Útest_bfgs_c1z'CheckOptimizeParameterized.test_bfgs_c1  s   € ð +Ð*Ð*ˆÝÔ(­¬Ø)+°FÀTÈ4ÀLðRñ Rô RˆåÔ&¥x¤~Ø')°&À4ÈÀ,ðPñ Pô Pˆ
ð Ô  :¤?Ò2Ð2Ð2Ð2Ð2Ð2r.   c                 óÂ   — g d¢}t          j        t           j        |dddi¬¦  «        }t          j        t           j        |dddi¬¦  «        }|j        |j        k    sJ ‚d S )NrÇ   rç   Úc2çÍÌÌÌÌÌì?rê   r×   rì   )ri   rQ   Úres_defaultÚres_mods       r,   Útest_bfgs_c2z'CheckOptimizeParameterized.test_bfgs_c2  s|   € ð 'Ð&Ð&ˆÝÔ'­¬Ø(*°6ÀDÈ"À:ðOñ Oô OˆåÔ#¥H¤NØ$&¨vÀÀd¸|ðMñ Mô MˆàŒ ¤Ò,Ð,Ð,Ð,Ð,Ð,r.   ró   rù   rZ   r1   çš™™™™™¹¿r:   rE   c           	      óÀ   — t          j        t          d¬¦  «        5  g d¢}t          j        t          j        |d||dœ¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nz'c1' and 'c2'rÅ   rñ   Úcg)ró   rù   rê   )rÐ   r
   rM   r   r¡   r   )ri   ró   rù   rQ   s       r,   Útest_invalid_c1_c2z-CheckOptimizeParameterized.test_invalid_c1_c2)  sµ   € õ Œ]�:¨_Ð=Ñ=Ô=ð 	<ð 	<Ø.Ð.Ð.ˆBÝÔ�hœn¨b¸Ø-/°rÐ&:Ð&:ð<ñ <ô <ð <ð	<ð 	<ð 	<ñ 	<ô 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<øøøð 	<ð 	<ð 	<ð 	<ð 	<ð 	<s   œ*AÁAÁAc           	      ó‚  — | j         rg| j        | j        ddœ}t          j        | j        | j        dd|¬¦  «        }|d         |d         |d         |d	         |d
         |d         f\  }}}}}}n8t          j        | j        | j        d| j        d| j        d¬¦  «        }	|	\  }}}}}}t          |                      |¦  «        |                      | j	        ¦  «        d¬¦  «         t          |dd …         | j	        dd …         d¬¦  «         | j
        dk    sJ | j
        ¦   «         ‚| j        dk    sJ | j        ¦   «         ‚d S )NFr‰   r…   ÚPowell©r�   rŽ   r�   r+   r‘   Údirecrí   r’   r”   Tr»   r8   r—   r&   çñhãˆµøÔ>éˆ   r   )r    rd   rŠ   r   r¡   rt   rb   Úfmin_powellr   rc   re   rf   ©
ri   r£   r¤   r¥   r¦   r  Únumiterr§   r©   rª   s
             r,   Útest_powellz&CheckOptimizeParameterized.test_powell2  s|  € àÔð 	JØ#œ|°T´YØ"'ð)ð )ˆDåÔ# D¤I¨tÔ/?ÀbØ+3¸TðCñ Cô CˆCð ˜”H˜c %œj¨#¨g¬,¸¸E¼
Ø˜”K  X¤ðB0Ñ>ˆF�D˜% ¨*°h°hõ Ô)¨$¬)°TÔ5EØ/1¸4¼<Ø6:ÀÄØ16ð8ñ 8ô 8ˆFð DJÑ@ˆV�T˜5 '¨:°xå˜Ÿ	š	 &Ñ)Ô)¨4¯9ª9°T´]Ñ+CÔ+CØ!ð	#ñ 	#ô 	#ð 	#õ 	˜˜q˜r˜rœ
 D¤M°!°"°"Ô$5¸DÐAÑAÔAÐAð Œ~ Ò)Ð)Ð)¨4¬>Ñ)Ô)Ð)ØŒ~ Ò"Ð"Ð" D¤NÑ"Ô"Ð"Ð"Ð"r.   zeThis part of test_powell fails on some platforms, but the solution returned by powell is still valid.)Úreasonc           	      ó°  — | j         rg| j        | j        ddœ}t          j        | j        | j        dd|¬¦  «        }|d         |d         |d         |d	         |d
         |d         f\  }}}}}}n8t          j        | j        | j        d| j        d| j        d¬¦  «        }	|	\  }}}}}}t          | j	        dd…         g d¢g d¢g d¢g d¢g d¢gdd¬¦  «         d S )NFr‰   r…   r  r  r+   r‘   r  rí   r’   r”   Tr»   é"   é'   )ç—…~¿ûWç?çÒf"¬BÜ¿g¼€ˆ%Þ?)r  r  g:&ÃëÀÞ?)g»SÏ¼ûW÷?gÒf"¬Bì¿g{žÃ¥ørî?)r  r  ç{žÃ¥ørÞ?)gÌB¿ßý«û?r  r  r�   r;   rž   )
r    rd   rŠ   r   r¡   rt   rb   r  r   rg   r	  s
             r,   Útest_powell_gh14014z.CheckOptimizeParameterized.test_powell_gh14014T  sD  € ð Ôð 	JØ#œ|°T´YØ"'ð)ð )ˆDåÔ# D¤I¨tÔ/?ÀbØ+3¸TðCñ Cô CˆCð ˜”H˜c %œj¨#¨g¬,¸¸E¼
Ø˜”K  X¤ðB0Ñ>ˆF�D˜% ¨*°h°hõ Ô)¨$¬)°TÔ5EØ/1¸4¼<Ø6:ÀÄØ16ð8ñ 8ô 8ˆFð DJÑ@ˆV�T˜5 '¨:°xõ 	˜œ
 2 b 5Ô)Ø>Ð>Ð>Ø>Ð>Ð>Ø>Ð>Ð>Ø>Ð>Ð>Ø>Ð>Ð>ð	@ð
 #¨ð	/ñ 	/ô 	/ð 	/ð 	/ð 	/r.   c                 óŒ  — d„ | j         D ¦   «         }| j        r©| j        | j        ddœ}t	          j        | j        | j         d|d|¬¦  «        }|d         |d         }}|| j        k    sJ ‚t          |                      |¦  «        |                      | j	        ¦  «        d	d
¬¦  «         | j        dk    sJ ‚| j
        dk    sJ ‚d S d S )Nc                 ó@   — g | ]}t           j         t           j        f‘ŒS r…   )r(   Úpi)Ú.0Ú_s     r,   ú
<listcomp>zBCheckOptimizeParameterized.test_powell_bounded.<locals>.<listcomp>z  s"   € Ð<Ð<Ð< a•B”E�6�2œ5�/Ð<Ð<Ð<r.   Fr‰   r…   r  )r�   ÚboundsrŽ   r�   r+   r’   r8   r±   rž   é¯   r   )rb   r    rd   rŠ   r   r¡   rt   re   r   rc   rf   )ri   r  r£   r¤   r¥   r§   s         r,   Útest_powell_boundedz.CheckOptimizeParameterized.test_powell_boundedw  s  € ð =Ð<¨4Ô+;Ð<Ñ<Ô<ˆØÔð 	'Ø#œ|°T´YØ"'ð)ð )ˆDåÔ# D¤I¨tÔ/?ÀbØ+1Ø+3¸TðCñ Cô CˆCð #& c¤(¨C°¬K�JˆFà ¤Ò/Ð/Ð/Ð/Ý˜DŸIšI fÑ-Ô-¨t¯yªy¸¼Ñ/GÔ/GØ!%¨Dð2ñ 2ô 2ð 2ð ”> XÒ-Ð-Ð-Ð-Ø”> QÒ&Ð&Ð&Ð&ð'	'ð 	'ð& 'Ð&r.   c           	      ón  — | j         r_| j        | j        ddœ}t          j        | j        | j        dd|¬¦  «        }|d         |d         |d         |d	         |d
         f\  }}}}}n7t          j        | j        | j        d| j        d| j        d¬¦  «        }|\  }}}}}t          |                      |¦  «        |                      | j	        ¦  «        d¬¦  «         | j
        dk    sJ | j
        ¦   «         ‚| j        dk    sJ | j        ¦   «         ‚t          | j        dd…         g d¢g d¢gdd¬¦  «         d S )NFr‰   r…   úNelder-meadr  r+   r‘   rí   r’   r”   Tr»   r8   r—   é§   r   éL   éN   )g	dÀ£×°È?g÷×]fùä¿gtÛ×ä��Ö?)gÓ™ �…É?gäÌ#=^ä¿gÝÃoT¸ïÖ?r�   r;   rž   )r    rd   rŠ   r   r¡   rt   rb   Úfminr   rc   re   rf   rg   )	ri   r£   r¤   r¥   r¦   r
  r§   r©   rª   s	            r,   Útest_neldermeadz*CheckOptimizeParameterized.test_neldermead�  sŒ  € àÔð 	CØ#œ|°T´YØ"'ð)ð )ˆDåÔ# D¤I¨tÔ/?ÀbØ+8À$ðHñ Hô HˆCð ˜”H˜c %œj¨#¨e¬*°c¸&´kØ˜”Mð;#Ñ7ˆF�D˜' :¨x¨xõ ”] 4¤9¨dÔ.>Ø(*°D´LØ/3¸$¼)Ø*/ð1ñ 1ô 1ˆFð =CÑ9ˆV�T˜7 J°å˜Ÿ	š	 &Ñ)Ô)¨4¯9ª9°T´]Ñ+CÔ+CØ!ð	#ñ 	#ô 	#ð 	#ð
 Œ~ Ò$Ð$Ð$ d¤nÑ$Ô$Ð$ØŒ~ Ò"Ð"Ð" D¤NÑ"Ô"Ð"õ 	˜œ
 2 b 5Ô)Ø=Ð=Ð=Ø>Ð>Ð>ð@à"¨ð	/ñ 	/ô 	/ð 	/ð 	/ð 	/r.   c           
      ó,  — t          j        d¦  «        }| j        |d<   t          d¦  «        D ]}||dz   |fxx         dz  cc<   Œ| j        r}| j        dd|dœ}t          j        | j        | j        d	d
|¬¦  «        }|d         |d         |d         |d         |d         f\  }}}}}	t          |d         d         |d         ¦  «         n3t          j
        | j        | j        d	| j        ddd|¬¦  «        }
|
\  }}}}}	t          |                      |¦  «        |                      | j        ¦  «        d¬¦  «         | j        dk    sJ | j        ¦   «         ‚| j        dk    sJ | j        ¦   «         ‚t          | j        dd…         g d¢g d¢gdd¬¦  «         d S )N)r›   r[   .r[   r&   r:   FT©rd   rŠ   r‹   Úinitial_simplexr…   r  r  r+   r‘   rí   r’   r”   Úallvecsr   ©r�   rd   r•   rŠ   r–   r&  r8   r—   éd   é2   é4   )gÔItžÊÌÂ?gà?'Î›Tà¿gxÅ8 áÞ?)gÓÒ¢_×†Â?gœoMçà¿gå›Ž|52ß?r�   r;   rž   )r(   r`   rb   Úranger    rd   r   r¡   rt   r   r"  rc   re   rf   rg   )ri   ÚsimplexÚjr£   r¤   r¥   r¦   r
  r§   r©   rª   s              r,   Útest_neldermead_initial_simplexz:CheckOptimizeParameterized.test_neldermead_initial_simplex¯  sý  € å”(˜6Ñ"Ô"ˆØÔ'ˆ�‰Ý�q‘”ð 	#ð 	#ˆAØ�A�a‘C˜�FˆOˆOŒO˜sÑ"ˆOˆO‰OˆOàÔð 	CØ#œ|°UØ"&¸7ðDð DˆDåÔ# D¤I¨tÔ/?ÀbØ+8À$ðHñ Hô HˆCà;>¸s¼8Ø;>¸u¼:Ø;>¸u¼:Ø;>¸v¼;Ø;>¸x¼=ð	;JÑ7ˆF�D˜' :¨xõ
 ˜C 	œN¨1Ô-¨w°q¬zÑ:Ô:Ð:Ð:å”] 4¤9¨dÔ.>Ø(*°D´LØ/3¸%ÈØ3:ð<ñ <ô <ˆFð
 =CÑ9ˆV�T˜7 J°å˜Ÿ	š	 &Ñ)Ô)¨4¯9ª9°T´]Ñ+CÔ+CØ!ð	#ñ 	#ô 	#ð 	#ð
 Œ~ Ò$Ð$Ð$ d¤nÑ$Ô$Ð$ØŒ~ Ò"Ð"Ð" D¤NÑ"Ô"Ð"õ 	˜œ
 2 b 5Ô)Ø=Ð=Ð=Ø=Ð=Ð=ð?à"¨ð	/ñ 	/ô 	/ð 	/ð 	/ð 	/r.   c                 ó  — g }t          j        d¦  «        }| j        d d…         |d<   t          d¦  «        D ]}||dz   |fxx         dz  cc<   Œ|                     |¦  «         t          j        d¦  «        }|                     |¦  «         |D ]|}| j        r<| j        dd|dœ}t          t          t          j
        | j        | j        d	d
|¬¦  «         ŒEt          t          t          j        | j        | j        d	| j        ddd|¬¦
  «
         Œ}d S )N)r[   r1   r1   .r&   r:   )r[   r[   Fr%  r…   r  r  Tr(  )r(   r`   rb   r,  ro   r    rd   rL   rM   r   r¡   rt   r"  )ri   Úbad_simplicesr-  r.  r£   s        r,   Ú#test_neldermead_initial_simplex_badz>CheckOptimizeParameterized.test_neldermead_initial_simplex_bad×  sL  € àˆå”(˜6Ñ"Ô"ˆØÔ'¨¨¨Ô+ˆ�‰Ý�q‘”ð 	#ð 	#ˆAØ�A�a‘C˜�FˆOˆOŒO˜sÑ"ˆOˆO‰OˆOØ×Ò˜WÑ%Ô%Ð%å”(˜6Ñ"Ô"ˆØ×Ò˜WÑ%Ô%Ð%à$ð 	7ð 	7ˆGØÔð 7Ø#'¤<¸Ø&+ÀðIð I�å�jÝ&Ô/Ø"œiØ"Ô.Ø#%Ø%2Ø&*ð,ñ ,ô ,ð ,ð ,õ �j­(¬-Ø"œi¨Ô)9Ø#%¨t¬|Ø*.°UÀ5Ø.5ð	7ñ 7ô 7ð 7ð 7ð	7ð 	7r.   c                 óÒ   — d„ }t          j        |dgdgd¬¦  «        }t          |j        dg¦  «         t          j        |ddgddgd¬¦  «        }t          |j        ddg¦  «         d S )	Nc                 ó0   — t          j        | dz  ¦  «        S ©Nr1   ©r(   r?   r*   s    r,   Úquadz>CheckOptimizeParameterized.test_neldermead_x0_ub.<locals>.quadú  ó   € Ý”6˜!˜Q™$‘<”<Ðr.   r&   )r   rX   únelder-mead©r  rŽ   r   r1   )r&   ç      @©r   r¡   r   r+   )ri   r7  r¤   s      r,   Útest_neldermead_x0_ubz0CheckOptimizeParameterized.test_neldermead_x0_ubö  sš   € ð	 ð 	 ð 	 õ ÔØØˆCØ�9Ø ð	
ñ 
ô 
ˆõ 	˜œ ˜sÑ#Ô#Ð#åÔØØ�ˆFØ˜WÐ%Ø ð	
ñ 
ô 
ˆõ 	˜œ  1˜vÑ&Ô&Ð&Ð&Ð&r.   c                 óz   — ddi}t          j        | j        | j        d| j        d|¬¦  «        }|j        dk    sJ ‚d S )Nrd   éÿÿÿÿú	Newton-CGr…   ©rŽ   r�   r�   r�   r&   )r   r¡   rt   rb   ry   r”   )ri   r£   Úresults      r,   Útest_ncg_negative_maxiterz4CheckOptimizeParameterized.test_ncg_negative_maxiter  sR   € à˜2ˆˆÝÔ" 4¤9¨dÔ.>Ø*5¸4¼9Ø(*°Dð:ñ :ô :ˆð Œ} Ò!Ð!Ð!Ð!Ð!Ð!r.   c           	      óÎ   — d„ }d„ }dg}d}t          j        |||dt          |¬¦  «        ¬¦  «        }|j        dk    sJ ‚t	          |j        d         t          j        ¦  «         d S )Nc                 ó6   — t          j        | d         ¦  «        S ©Nr   )r(   rC   r*   s    r,   Úcosinez=CheckOptimizeParameterized.test_ncg_zero_xtol.<locals>.cosine  s   € Ý”6˜!˜Aœ$‘<”<Ðr.   c                 ó8   — t          j        | d         ¦  «         S rF  )r(   r>   r*   s    r,   r�   z:CheckOptimizeParameterized.test_ncg_zero_xtol.<locals>.jac  s   € Ý”F˜1˜Qœ4‘L”L�=Ð r.   r:   r   ú	newton-cg)Úxtol)rQ   r�   rŽ   r�   )r   r¡   Údictr”   r   r+   r(   r  )ri   rG  r�   rQ   rJ  rB  s         r,   Útest_ncg_zero_xtolz-CheckOptimizeParameterized.test_ncg_zero_xtol  sŽ   € ð	 ð 	 ð 	 ð	!ð 	!ð 	!ð ˆUˆØˆÝÔ" 6Ø&(Ø'*Ø*5Ý+/°T¨?©?¬?ð	<ñ <ô <ˆð
 Œ} Ò!Ð!Ð!Ð!Ý˜FœH QœK­¬Ñ/Ô/Ð/Ð/Ð/r.   c           
      ó0  — | j         r@| j        | j        ddœ}t          j        | j        | j        d| j        d|¬¦  «        d         }n5t          j        | j        | j        | j        d| j        d| j        d¬¦  «        }|}t          |                      |¦  «        |                      | j
        ¦  «        d¬	¦  «         | j        d
k    sJ | j        ¦   «         ‚| j        dk    sJ | j        ¦   «         ‚t          | j        dd…         g d¢g d¢gdd¬¦  «         d S )NFr‰   r@  r…   rA  r+   r»   r8   r—   rš   é   r[   rÌ   ©ç(Æ6-H=�¾g×?üºËà¿g4 u¦3ß?©rP  g_êþéºËà¿gþ/N±§3ß?r;   rž   )r    rd   rŠ   r   r¡   rt   rb   ry   Úfmin_ncgr   rc   re   rf   rg   ©ri   r£   rª   r¥   s       r,   Útest_ncgz#CheckOptimizeParameterized.test_ncg'  sZ  € àÔð 
	5Ø#œ|°T´YØ"'ð)ð )ˆDåÔ& t¤y°$Ô2BØ.9¸t¼yØ,.¸ð>ñ >ô >à>AôCˆFˆFõ Ô& t¤y°$Ô2BÀDÄIØ,.¸¼Ø38¸t¼yØ.3ð5ñ 5ô 5ˆFð
 ˆå˜Ÿ	š	 &Ñ)Ô)¨4¯9ª9°T´]Ñ+CÔ+CØ!ð	#ñ 	#ô 	#ð 	#ð
 Œ~ Ò"Ð"Ð" D¤NÑ"Ô"Ð"ØŒ~ Ò#Ð#Ð# T¤^Ñ#Ô#Ð#õ 	˜œ
 1 Q 3œØKÐKÐKØKÐKÐKðMà!¨ð	.ñ 	.ô 	.ð 	.ð 	.ð 	.r.   c                 óH  — | j         rF| j        | j        ddœ}t          j        | j        | j        d| j        | j        d|¬¦  «        d         }n;t          j	        | j        | j        | j        | j        d| j        d| j        d¬¦	  «	        }|}t          |                      |¦  «        |                      | j        ¦  «        d¬	¦  «         | j        d
k    sJ | j        ¦   «         ‚| j        dk    sJ | j        ¦   «         ‚t          | j        dd…         g d¢g d¢gdd¬¦  «         d S )NFr‰   r@  r…   )rŽ   r�   r}   r�   r�   r+   )Úfhessr�   rd   r•   rŠ   r–   r8   r—   rš   é   r[   rÌ   rO  rQ  r;   rž   )r    rd   rŠ   r   r¡   rt   rb   ry   r}   rR  r   rc   re   rf   rg   rS  s       r,   Útest_ncg_hessz(CheckOptimizeParameterized.test_ncg_hessH  sg  € àÔð 	5Ø#œ|°T´YØ"'ð)ð )ˆDåÔ& t¤y°$Ô2BØ.9¸t¼yØ,0¬IØ,.¸ð>ñ >ô >ð ?BôCˆFˆFõ
 Ô& t¤y°$Ô2BÀDÄIØ-1¬YØ,.¸¼Ø38¸t¼yØ.3ð	5ñ 5ô 5ˆFð ˆå˜Ÿ	š	 &Ñ)Ô)¨4¯9ª9°T´]Ñ+CÔ+CØ!ð	#ñ 	#ô 	#ð 	#ð
 Œ~ Ò"Ð"Ð" D¤NÑ"Ô"Ð"ØŒ~ Ò#Ð#Ð# T¤^Ñ#Ô#Ð#õ
 	˜œ
 1 Q 3œØKÐKÐKØKÐKÐKðMà!¨ð	.ñ 	.ô 	.ð 	.ð 	.ð 	.r.   c                 óH  — | j         rF| j        | j        ddœ}t          j        | j        | j        d| j        | j        d|¬¦  «        d         }n;t          j	        | j        | j        | j        | j        d| j        d| j        d¬¦	  «	        }|}t          |                      |¦  «        |                      | j        ¦  «        d¬	¦  «         | j        d
k    sJ | j        ¦   «         ‚| j        dk    sJ | j        ¦   «         ‚t          | j        dd…         g d¢g d¢gdd¬¦  «         d S )NFr‰   r@  r…   )rŽ   r�   r€   r�   r�   r+   )Úfhess_pr�   rd   r•   rŠ   r–   r8   r—   rš   rW  r[   rÌ   rO  rQ  r;   rž   )r    rd   rŠ   r   r¡   rt   rb   ry   r€   rR  r   rc   re   rf   rg   rS  s       r,   Útest_ncg_hesspz)CheckOptimizeParameterized.test_ncg_hesspj  sg  € àÔð 	5Ø#œ|°T´YØ"'ð)ð )ˆDåÔ& t¤y°$Ô2BØ.9¸t¼yØ-1¬ZØ,.¸ð>ñ >ô >ð ?BôCˆFˆFõ
 Ô& t¤y°$Ô2BÀDÄIØ/3¬zØ,.¸¼Ø38¸t¼yØ.3ð	5ñ 5ô 5ˆFð ˆå˜Ÿ	š	 &Ñ)Ô)¨4¯9ª9°T´]Ñ+CÔ+CØ!ð	#ñ 	#ô 	#ð 	#ð
 Œ~ Ò"Ð"Ð" D¤NÑ"Ô"Ð"ØŒ~ Ò#Ð#Ð# T¤^Ñ#Ô#Ð#õ
 	˜œ
 1 Q 3œØKÐKÐKØKÐKÐKðMà!¨ð	.ñ 	.ô 	.ð 	.ð 	.ð 	.r.   c                 ó  — | j         rxt          j        | j        | j        d| j        | j        dœ¬¦  «        }t          |j        |                      | j	        ¦  «        d¬¦  «         | j
        dk    sJ | j
        ¦   «         ‚d S d S )NÚcobyqa©rd   rŠ   rê   r8   r—   éA   )r    r   r¡   rt   rb   rd   rŠ   r   r‘   rc   re   ©ri   r¤   s     r,   Útest_cobyqaz&CheckOptimizeParameterized.test_cobyqaŒ  s™   € àÔð 	=ÝÔ#Ø”	ØÔ ØØ$(¤L¸$¼)ÐDÐDð	ñ ô ˆCõ ˜CœG T§Y¢Y¨t¬}Ñ%=Ô%=ÀDÐIÑIÔIÐIð ”> WÒ,Ð,Ð,¨d¬nÑ,Ô,Ð,ð	=ð 	=ð -Ð,r.   N) r�   r‚   rƒ   r«   r¶   rÂ   rÒ   rÕ   rÙ   rÐ   ÚmarkÚfilterwarningsrå   rï   r÷   rý   Úparametrizer  r  Úxfailr  r  r#  r/  r2  r=  rC  rL  rT  rX  r[  ra  r…   r.   r,   r‡   r‡   ‹   s
  € € € € € ð/ð /ð /ð>	5ð 	5ð 	5ð /ð  /ð  /ðD,ð ,ð ,ð
,ð 
,ð 
,ð	:ð 	:ð 	:ð „[×ÒÐ 5Ñ6Ô6ð,ð ,ñ 7Ô6ð,ð "ð "ð "ð	3ð 	3ð 	3ð-ð -ð -ð „[×Ò˜d D˜\¨S°!¨HØ-1°3¨KØ-0°#¨Jð,8ñ 9ô 9ð<ð <ñ9ô 9ð<ð 3ð  3ð  3ðD „[×Òð &Ðñ 'ô 'ð/ð /ñ'ô 'ð/ð@'ð 'ð 'ð2/ð /ð /ð>&/ð &/ð &/ðP7ð 7ð 7ð>'ð 'ð 'ð."ð "ð "ð0ð 0ð 0ð$.ð .ð .ðB .ð  .ð  .ðD .ð  .ð  .ðD=ð =ð =ð =ð =r.   r‡   c            	      óÚ   ‡— t           j                             d¦  «        Šˆfd„} dD ]B}dD ]=}t          j        | ‰                     d¦  «        |d|i¬¦  «        }|d         |k    sJ ‚Œ>ŒCd S )	Nl	   û<vgðRàI*q4Ì c                 ó4   •— ‰                      d¦  «        dz  S ©Nr&   r]   ©r4   )r+   Úrngs    €r,   Úcostztest_maxfev_test.<locals>.cost£  s   ø€ Ø�zŠz˜!‰}Œ}˜tÑ#Ð#r.   )r&   r¼   r*  )r  úNelder-Meadr¼   Úmaxfevrê   r’   )r(   r4   Údefault_rngr   r¡   )rk  ÚimaxfevrŽ   rB  rj  s       @r,   Útest_maxfev_testrp     s°   ø€ Ý
Œ)×
Ò
Ð GÑ
HÔ
H€Cð$ð $ð $ð $ð $ð ð -ð -ˆð 0ð 	-ð 	-ˆFÝÔ& t¨S¯ZªZ¸©^¬^Ø.4Ø08¸'Ð/BðDñ Dô DˆFð ˜&”> WÒ,Ð,Ð,Ð,Ð,ð		-ð	-ð -r.   c                  ó²  — d„ } t           j                             | t          j        d¦  «        d¦  «        \  }}t          d¦  «        D ]0} |t          j        |¦  «        ¦  «         |d         |dz   k    sJ ‚Œ1d}t          t           j        j        |¬¦  «        5   |t          j        |¦  «        ¦  «         d d d ¦  «         n# 1 swxY w Y   t           j                             | t          j        d¦  «        d¦  «        \  }}d}t          t          |¬¦  «        5   |t          j	        ddg¦  «        ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nc                 ó   — | S r=   r…   r*   s    r,   Úfunc_z8test_wrap_scalar_function_with_validation.<locals>.func_³  s   € Øˆr.   r&   rÌ   r   zToo many function callsrÅ   ú@The user-provided objective function must return a scalar value.)
r   Ú	_optimizeÚ'_wrap_scalar_function_maxfun_validationr(   Úasarrayr,  rL   Ú_MaxFuncCallErrorrM   rH   )rs  Úfcallsrt   ÚiÚmsgs        r,   Ú)test_wrap_scalar_function_with_validationr|  ±  sÚ  € ðð ð õ Ô%ß/Ò/°µr´zÀ!±}´}ÀaÑHÔHñ €FˆDõ �1‰XŒXð  ð  ˆØˆ�RŒZ˜‰]Œ]ÑÔÐØ�aŒy˜A˜a™CÒÐÐÐÐà
#€CÝ	•xÔ)Ô;À3Ð	GÑ	GÔ	Gð ð Øˆ�RŒZ˜‰]Œ]ÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ Ô%ß/Ò/°µr´zÀ!±}´}ÀaÑHÔHñ €FˆDð M€CÝ	•z¨Ð	-Ñ	-Ô	-ð ð Øˆ�RŒX�q˜!�fÑÔÑÔÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s$   ÂCÃC
ÃC
Ä EÅEÅEc                  óÀ   — d} t          t          | ¬¦  «        5  t          j        d„ t	          j        ddg¦  «        d¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nrt  rÅ   c                 ó   — | S r=   r…   r*   s    r,   ú<lambda>z.test_obj_func_returns_scalar.<locals>.<lambda>Î  s   €  A€ r.   r&   r¸   r°   )rL   rM   r   r¡   r(   rH   rÅ   s    r,   Útest_obj_func_returns_scalarr€  É  s¾   € ð&€Eõ 
•z¨Ð	/Ñ	/Ô	/ð Hð HÝÔ˜+˜+¥r¤x°°A°Ñ'7Ô'7ÀÐGÑGÔGÐGðHð Hð Hñ Hô Hð Hð Hð Hð Hð Hð Hð Høøøð Hð Hð Hð Hð Hð Hs   ™-AÁAÁAc                  ó¤   — t          j        g d¢¦  «        } t          j                             t          j        | d¬¦  «        }|j        dk    sJ ‚d S )NrÇ   rô   )ÚxatoliS  )r(   rH   r   Ú	_minimizeÚ_minimize_neldermeadr   rí   )rQ   r¤   s     r,   Útest_neldermead_iteration_numr…  Ñ  sQ   € Ý	ŒÐ+Ð+Ð+Ñ	,Ô	,€BÝ
Ô
×
1Ò
1µ(´.À"Ø8<ð 2ñ >ô >€CàŒ7�cŠ>ˆ>ˆ>ˆ>ˆ>ˆ>r.   c                  ó    — t          j        ddg¦  «                             t           j        ¦  «        } d„ }t	          j        || d¬¦  «         d S )Nç      @ç      @c                 óX   — | j         t          j        k    sJ ‚t          j        | ¦  «        S r=   )Údtyper(   Úfloat32r   r   r*   s    r,   Úrosen_z*test_neldermead_respect_fp.<locals>.rosen_Û  s'   € ØŒw�"œ*Ò$Ð$Ð$Ð$ÝŒ~˜aÑ Ô Ð r.   rl  r°   )r(   rH   Úastyper‹  r   r¡   )rQ   rŒ  s     r,   Útest_neldermead_respect_fprŽ  Ø  sT   € å	Œ�3˜�*Ñ	Ô	×	$Ò	$¥R¤ZÑ	0Ô	0€Bð!ð !ð !õ Ô�f˜b¨Ð7Ñ7Ô7Ð7Ð7Ð7r.   c                  óX   — d„ } t           j                             | ddgddd¬¦  «         d S )Nc                 ó0   — | d         dz  | d         dz  z   S ©Nr   r1   r&   r…   r*   s    r,   rt   z)test_neldermead_xatol_fatol.<locals>.funcå  s   € Ø�Œt�q‰y˜1˜Qœ4 1™9Ñ$Ð$r.   r&   r1   ré   )rd   r‚  Úfatol)r   rƒ  r„  )rt   s    r,   Útest_neldermead_xatol_fatolr“  â  sQ   € ð%ð %ð %õ Ô×+Ò+¨D°1°a°&À!Ø26¸dð ,ñ Dô Dð Dð Dð Dr.   c                  óÊ   — d„ } g d¢}t          j        | |d¬¦  «        }t          |j        d¦  «         t          j        | |dddi¬¦  «        }t          |j        d¦  «         d S )	Nc                 ó0   — t          j        | dz  ¦  «        S r5  r6  r*   s    r,   rt   z&test_neldermead_adaptive.<locals>.funcí  ó   € ÝŒv�a˜1‘f‰~Œ~Ðr.   )géÍM@¸'Ä?güOÄC”ÆÞ?gµ§¢€~Ü?gê -Û?g¾ã¬€®ã?g#¹ÂÜj­Ô?gûù îï?g~ê³^gžÜ?gÜ r#—Åè?g^c¸¶Ç½é?g)þÖëi	×?g±Ùô÷'è?g‚Ž™Òýï?g1…›Òä?g[ÕVÎ¤¸?rl  r°   FÚadaptiveTrê   )r   r¡   r   r´   )rt   Úp0r¤   s      r,   Útest_neldermead_adaptiver™  ì  s�   € ðð ð ð
Fð 
Fð 
F€Bõ Ô
˜D "¨]Ð
;Ñ
;Ô
;€CÝ�”˜eÑ$Ô$Ð$å
Ô
˜D "¨]Ø%/°Ð$6ð8ñ 8ô 8€Cå�”˜dÑ#Ô#Ð#Ð#Ð#r.   c            	      óÊ  — d„ } d}g d¢}t          t          j        ¦  «        5  t          j        | ||d¬¦  «        }d d d ¦  «         n# 1 swxY w Y   t	          |j        t          j        dgt          |¦  «        z  ¦  «        d¬¦  «         t          |j
        d	¦  «         t          |j        d
¦  «         g d¢g d¢g d¢g}t          t          j        ¦  «        5  t          j        | ||dd|i¬¦  «        }d d d ¦  «         n# 1 swxY w Y   t	          |j        t          j        g d¢¦  «        d¬¦  «         t          |j
        d¦  «         t          |j        d¦  «         d S )Nc                 ó0   — t          j        | dz  ¦  «        S r5  r6  r*   s    r,   rt   z/test_bounded_powell_outsidebounds.<locals>.funcÿ  r–  r.   )©r?  r&   rœ  rœ  )éüÿÿÿrZ   gš™™™™™é¿r  r:  r\   r8   r—   Tr   ©r   r   r   )r   r&   r   )r   r   r&   r  )r  rŽ   r�   )g      Àr   r   Fr›   )r   r   ÚOptimizeWarningr¡   r   r+   r(   rH   Úlenr   r´   r”   )rt   r  rQ   r¤   r  s        r,   Ú!test_bounded_powell_outsideboundsr¡  û  sû  € ðð ð à&€FØ	ˆˆ€Bõ 
•hÔ.Ñ	/Ô	/ð Jð JÝÔ  b°ÀÐIÑIÔIˆðJð Jð Jñ Jô Jð Jð Jð Jð Jð Jð Jøøøð Jð Jð Jð Jå�C”E�2œ8 R D­3¨r©7¬7¡NÑ3Ô3¸$Ð?Ñ?Ô?Ð?Ý�”˜dÑ#Ô#Ð#Ý�”˜QÑÔÐð ˆYˆY˜	˜	˜	 9 9 9Ð-€Eå	•hÔ.Ñ	/Ô	/ð :ð :ÝÔ  bØ'-°hØ)0°%Ð(8ð:ñ :ô :ˆð:ð :ð :ñ :ô :ð :ð :ð :ð :ð :ð :øøøð :ð :ð :ð :õ �C”E�2œ8 K K KÑ0Ô0°tÐ<Ñ<Ô<Ð<Ý�”˜eÑ$Ô$Ð$Ý�”˜QÑÔÐÐÐs#   £AÁAÁAÃDÄDÄ
Dc                  ó@  — d„ } d}g d¢}dddœ}t          j        | |d|¬¦  «        }t          |j        dd	¬
¦  «         t          |j        dd	¬
¦  «         t          j        | |||d¬¦  «        }t          j        g d¢¦  «        }t          |j        |d	¬
¦  «         t          |j         | |¦  «        d	¬
¦  «         dt
          j         dfdt
          j        fddf}t          j        | |||d¬¦  «        }t          j        g d¢¦  «        }t          |j        |d	¬
¦  «         t          |j         | |¦  «        d	¬
¦  «         d„ } dgdz  }g d¢}t          j        | |d¬¦  «        }t          j        | ||d¬¦  «        }t          |j        dd	¬
¦  «         t          |j        dd	¬
¦  «         t
          j         t
          j        fgdz  }t          j        | ||d¬¦  «        }t          |j        |j        d	¬
¦  «         t          |j        |j        d	¬
¦  «         t          |j        |j        d	¬
¦  «         g d¢}dgdz  }t          t           j
        ¦  «        5  t          j        | ||d¬¦  «        }d d d ¦  «         n# 1 swxY w Y   t          |j        dd	¬
¦  «         d S )Nc                 ó0   — t          j        | dz  ¦  «        S r5  r6  r*   s    r,   rt   z+test_bounded_powell_vs_powell.<locals>.func"  r–  r.   ))éûÿÿÿr?  )éöÿÿÿrþ   )r&   gffffff"@)r�  gffffff@©gÍÌÌÌÌÌ/Àéþÿÿÿ)gÍÌÌÌÌÌ ÀgÍÌÌÌÌÌÀrÊ   r   r§  ç»½×Ùß|Û=©ÚftolrJ  r  rê   r\   r8   r—   )r�   r  rŽ   )r?  rþ   r&   r   r§  )Nr?  rþ   r&   )r�  Nr¦  c                 óž  — t          j        | d          ¦  «        t          j        | d         ¦  «        z  t          j        | d          | d         z  ¦  «        z  t          j        | d         ¦  «        z  }|t          j        t          j        | d         | d         z  ¦  «        t          j        | d         ¦  «        z  ¦  «        z  }|dz  S ©Nr   r&   r1   rB   ©r+   Úts     r,   rt   z+test_bounded_powell_vs_powell.<locals>.func@  s˜   € ÝŒF�A�a”D�5‰MŒM�BœF 1 Q¤4™LœLÑ(­2¬6°1°Q´4°%¸!¸A¼$±,Ñ+?Ô+?Ñ?Å"Ä&ÈÈ1ÌÁ,Ä,ÑNˆØ	�RŒV•B”F˜1˜Qœ4 ! A¤$™;Ñ'Ô'­"¬&°°1´©,¬,Ñ6Ñ7Ô7Ñ7ˆØ�!‰tˆr.   )r§  rÌ   r[   )rœ   rœ   rœ   r°   r:  g´£8“ç:}?r   )gbšŽ¥4»F@gìæ†:ÀgžWÀ�¿?@)r   r¡   r   r+   r‘   r(   rH   Úinfr’   r   rŸ  )rt   r  rQ   r�   Ú
res_powellÚres_bounded_powellrx   s          r,   Útest_bounded_powell_vs_powellr²    sx  € ðð ð àD€FØ	!Ð	!Ð	!€Bà eÐ,Ð,€GåÔ" 4¨°HÀgÐNÑNÔN€JÝ�J”L "¨4Ð0Ñ0Ô0Ð0Ý�J”N B¨TÐ2Ñ2Ô2Ð2å!Ô*¨4°¸WØ28Ø2:ð<ñ <ô <Ðõ 	ŒÐ%Ð%Ð%Ñ&Ô&€AÝÐ&Ô(¨!°$Ð7Ñ7Ô7Ð7ÝÐ&Ô*¨D¨D°©G¬G¸$Ð?Ñ?Ô?Ð?ð �2œ6˜' 3˜¨!­R¬V¨°jÀ+ÐM€FÝ!Ô*¨4°¸WØ28Ø2:ð<ñ <ô <Ðõ 	ŒÐ%Ð%Ð%Ñ&Ô&€AÝÐ&Ô(¨!°$Ð7Ñ7Ô7Ð7ÝÐ&Ô*¨D¨D°©G¬G¸$Ð?Ñ?Ô?Ð?ð
ð ð ð
 ˆY˜‰]€FØ	Ð	Ð	€BåÔ" 4¨°HÐ=Ñ=Ô=€JÝ!Ô*¨4°Ø28Ø2:ð<ñ <ô <Ðõ �J”NÐ$8¸tÐDÑDÔDÐDÝÐ&Ô*¨A°DÐ9Ñ9Ô9Ð9õ
 ”ˆw�œÐÐ  1Ñ$€Få!Ô*¨4°Ø28Ø2:ð<ñ <ô <Ðõ �J”NÐ$6Ô$:ÀÐFÑFÔFÐFÝ�J”OÐ%7Ô%<À4ÐHÑHÔHÐHÝ�J”LÐ"4Ô"6¸TÐBÑBÔBÐBð 
2Ð	1Ð	1€BØˆY˜‰]€Få	•hÔ.Ñ	/Ô	/ð @ð @Ý%Ô.¨t°RØ6<Ø6>ð@ñ @ô @Ðð@ð @ð @ñ @ô @ð @ð @ð @ð @ð @ð @øøøð @ð @ð @ð @õ Ð&Ô*¨A°DÐ9Ñ9Ô9Ð9Ð9Ð9s   ÉI<É<J ÊJ c                  óÒ  — dt           j         dfgdz  dddœdœ} g d¢}d„ }t          j        ||fi | ¤Ž}t	          |j        d	d
¬¦  «         d„ }t          j        ||fi | ¤Ž}t	          |j        d¦  «         d„ }t          j        ||fi | ¤Ž}t	          |j        dd¬¦  «         d„ }t           j         dfgdz  | d<   t          j        ||fi | ¤Ž}t	          |j        dd¬¦  «         d S )Nr  g    €„.Ar[   rô   r©  )rŽ   r  r�   rW   c                 ó,   — t          j        | ¦  «         S r=   r6  r*   s    r,   rs   z1test_onesided_bounded_powell_stability.<locals>.fr  s   € Ý”�q‘	”	ˆzÐr.   g    `ãFÁç-Cëâ6?r—   c                 ó�   — t          j        t          j        | ¦  «        ¦  «        dz   t          j        | dk    ¦  «        rdndz  S )Nr:   r   r&   r?  ©r(   rJ   r?   rG   r*   s    r,   rs   z1test_onesided_bounded_powell_stability.<locals>.fx  s<   € Ý”•r”v˜a‘y”yÑ!Ô! cÑ*Ð*µ2´6¸!¸aº%±=´=Ð.H¨a¨aÀbÑIÐIr.   gw£ÖÆÀc                 ó�   — t          j        t          j        | ¦  «        ¦  «        dz   t          j        | dk    ¦  «        rdndz  S )Nr¼   r   r&   r?  r·  r*   s    r,   rs   z1test_onesided_bounded_powell_stability.<locals>.f  s<   € Ý”•r”v˜a‘y”yÑ!Ô! RÑ'Ð'µ´°q¸1²u±´Ð+E¨1¨1À2ÑFÐFr.   gB+¢IñaÍr;   r²   c                 ó  — t          j        t          j        | d d…         ¦  «        ¦  «        dz   t          j        t          j        | dd …         ¦  «        ¦  «        dz  z
  }|t          j        | dk    ¦  «        rdndz  }|S )Nr1   rÌ   r:   r   r&   r?  r·  r­  s     r,   rs   z1test_onesided_bounded_powell_stability.<locals>.f†  sq   € ÝŒV•B”F˜1˜R˜a˜Rœ5‘M”MÑ"Ô" aÑ'Ð'­"¬&µ´¸¸!¸"¸"¼±´Ñ*?Ô*?ÀCÑ*HÑHˆØ	•2”6˜!˜aš%‘=”=Ð(ˆaˆa bÑ)ˆØˆr.   g     @�@r  g 4&õk\Ã)r(   r¯  r   r¡   r   r‘   )ÚkwargsrQ   rs   r¤   s       r,   Ú&test_onesided_bounded_powell_stabilityr»  f  sd  € ð !Ýœ6˜' 3˜Ð(¨1Ñ,Ø"&°Ð5Ð5ð7ð 7€Fð 
ˆˆ€Bðð ð å
Ô
˜A˜rÐ
,Ð
, VÐ
,Ð
,€CÝ�C”G˜T¨Ð-Ñ-Ô-Ð-ðJð Jð Jõ Ô
˜A˜rÐ
,Ð
, VÐ
,Ð
,€CÝ�C”G˜_Ñ-Ô-Ð-ðGð Gð Gõ Ô
˜A˜rÐ
,Ð
, VÐ
,Ð
,€CÝ�C”G˜\°Ð5Ñ5Ô5Ð5ðð ð õ
 œ&˜ #˜Ð'¨!Ñ+€Fˆ8ÑÝ
Ô
˜A˜rÐ
,Ð
, VÐ
,Ð
,€CÝ�C”GÐ9ÀÐEÑEÔEÐEÐEÐEr.   c                   ó   — e Zd ZdZdZdS )ÚTestOptimizeWrapperDispTN©r�   r‚   rƒ   r    rŠ   r…   r.   r,   r½  r½  �  s   € € € € € Ø€KØ€D€D€Dr.   r½  c                   ó   — e Zd ZdZdZdS )ÚTestOptimizeWrapperNoDispTFNr¾  r…   r.   r,   rÀ  rÀ  •  s   € € € € € Ø€KØ€D€D€Dr.   rÀ  c                   ó   — e Zd ZdZdZdS )ÚTestOptimizeNoWrapperDispFTNr¾  r…   r.   r,   rÂ  rÂ  š  s   € € € € € Ø€KØ€D€D€Dr.   rÂ  c                   ó   — e Zd ZdZdZdS )ÚTestOptimizeNoWrapperNoDispFNr¾  r…   r.   r,   rÄ  rÄ  Ÿ  s   € € € € € Ø€KØ€D€D€Dr.   rÄ  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ej                             d¦  «        ej                             d¦  «        ej                             d¦  «        ej                             dg d¢ez   ¦  «        d„ ¦   «         ¦   «         ¦   «         ¦   «         Zej                             dg d¢¦  «        d„ ¦   «         Zd„ Zej                             dg d¢¦  «        d„ ¦   «         Zej                             dg d¢¦  «        d„ ¦   «         Zd „ Z d!„ Z!d"„ Z"d#„ Z#ej                             dg d$¢¦  «        d%„ ¦   «         Z$ej                             dg d&¢¦  «        d'„ ¦   «         Z%ej                             d¦  «        ej                             de&¦  «        ej                             d(g d)¢¦  «        d*„ ¦   «         ¦   «         ¦   «         Z'd+„ Z(ej                             dd,¦  «        d-„ ¦   «         Z)ej                             dg d.¢¦  «        d/„ ¦   «         Z*d0S )1ÚTestOptimizeSimplec                 óú   — d„ }d„ }t           j        g}t          j        dd¬¦  «        5  t          j        |||d¬¦  «        }t          j         ||¦  «        ¦  «        sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )Nc                 ó   — | S r=   r…   r*   s    r,   rt   z.TestOptimizeSimple.test_bfgs_nan.<locals>.func¨  s   € ØˆHr.   c                 ó*   — t          j        | ¦  «        S r=   ©r(   Ú	ones_liker*   s    r,   rß   z0TestOptimizeSimple.test_bfgs_nan.<locals>.fprimeª  ó   € Ý”< ‘?”?Ð"r.   rà   )rá   ÚinvalidFrâ   )r(   Únanrã   r   r¿   Úisnan)ri   rt   rß   rQ   r+   s        r,   Útest_bfgs_nanz TestOptimizeSimple.test_bfgs_nan¦  sÜ   € ð	ð 	ð 	ð	#ð 	#ð 	#åŒfˆXˆÝŒ[˜h°Ð9Ñ9Ô9ð 	%ð 	%ÝÔ" 4¨¨V¸%Ð@Ñ@Ô@ˆAÝ”8˜D˜D ™GœGÑ$Ô$Ð$Ð$Ð$Ð$ð	%ð 	%ð 	%ñ 	%ô 	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	%øøøð 	%ð 	%ð 	%ð 	%ð 	%ð 	%s   ª8A0Á0A4Á7A4c                 óÄ  — d„ }t          j        d¬¦  «        5  t          j        |d¦  «        }d d d ¦  «         n# 1 swxY w Y   t          j        |d         ¦  «        sJ ‚|d         du sJ ‚d„ }d	„ }t          j        d¬¦  «        5  t          j        |d|¬
¦  «        }d d d ¦  «         n# 1 swxY w Y   t          j        |d         ¦  «        sJ ‚|d         du sJ ‚d S )Nc                 ó   — t           j        S r=   ©r(   rÎ  r*   s    r,   rt   z5TestOptimizeSimple.test_bfgs_nan_return.<locals>.funcµ  ó	   € Ý”6ˆMr.   rà   ©rÍ  r   r‘   r´   Fc                 ó*   — | dk    rdnt           j        S rF  rÓ  r*   s    r,   rt   z5TestOptimizeSimple.test_bfgs_nan_return.<locals>.func¾  s   € Ø˜Qš˜�1�1¥B¤FÐ*r.   c                 ó*   — t          j        | ¦  «        S r=   rÊ  r*   s    r,   rß   z7TestOptimizeSimple.test_bfgs_nan_return.<locals>.fprimeÀ  rÌ  r.   )r�   )r(   rã   r   r¡   rÏ  )ri   rt   rB  rß   s       r,   Útest_bfgs_nan_returnz'TestOptimizeSimple.test_bfgs_nan_return±  s’  € ð	ð 	ð 	åŒ[ Ð*Ñ*Ô*ð 	0ð 	0ÝÔ& t¨QÑ/Ô/ˆFð	0ð 	0ð 	0ñ 	0ô 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0øøøð 	0ð 	0ð 	0ð 	0õ Œx˜˜uœÑ&Ô&Ð&Ð&Ð&Ø�iÔ  EÐ)Ð)Ð)Ð)ð	+ð 	+ð 	+ð	#ð 	#ð 	#åŒ[ Ð*Ñ*Ô*ð 	<ð 	<ÝÔ& t¨Q°FÐ;Ñ;Ô;ˆFð	<ð 	<ð 	<ñ 	<ô 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<øøøð 	<ð 	<ð 	<ð 	<õ Œx˜˜uœÑ&Ô&Ð&Ð&Ð&Ø�iÔ  EÐ)Ð)Ð)Ð)Ð)Ð)s   ™;»?Á?Â	B-Â-B1Â4B1c                 ó‚  — t          j        t          j        d¦  «        ¦  «        t           j                             t          | j        ¦  «        ¦  «        z  }t          j        | j	        | j
        |d| j        d¬¦  «        }t          |  	                    |¦  «        |  	                    | j        ¦  «        d¬¦  «         d S )NrX   r…   F)r9   r�   rd   rŠ   r8   r—   )r(   ÚsqrtÚspacingr4   Úrandr   rc   r   r¿   rt   rb   rd   r   )ri   r9   r¥   s      r,   Útest_bfgs_numerical_jacobianz/TestOptimizeSimple.test_bfgs_numerical_jacobianÈ  s«   € õ ”'�"œ* R™.œ.Ñ)Ô)­B¬I¯NªN½3¸t¼}Ñ;MÔ;MÑ,NÔ,NÑNˆåÔ# D¤I¨tÔ/?Ø,3¸"Ø,0¬L¸uðFñ Fô Fˆõ 	˜Ÿ	š	 &Ñ)Ô)¨4¯9ª9°T´]Ñ+CÔ+CØ!ð	#ñ 	#ô 	#ð 	#ð 	#ð 	#r.   c                 ó  — g d¢}g d¢}t          j        ||¦  «        D ]i\  }}t          j        | j        | j        ||¬¦  «        }t          |                      |j        ¦  «        |                      | j        ¦  «        d¬¦  «         Œjd S )N)r¸   rŒ   ÚTNC©ú2-pointú3-pointN)rŽ   r�   r8   r—   )	Ú	itertoolsÚproductr   r¡   rt   rb   r   r+   rc   )ri   ÚmethodsÚjacsrŽ   r�   rB  s         r,   Útest_finite_differences_jacz.TestOptimizeSimple.test_finite_differences_jacÔ  s¦   € Ø'Ð'Ð'ˆØ+Ð+Ð+ˆÝ$Ô,¨W°dÑ;Ô;ð 	'ð 	'‰KˆF�CÝÔ& t¤y°$Ô2BØ.4¸#ð?ñ ?ô ?ˆFå˜DŸIšI f¤hÑ/Ô/°·²¸4¼=Ñ1IÔ1IØ!%ð'ñ 'ô 'ð 'ð 'ð	'ð 	'r.   c           	      óÄ  — g d¢}t           t          j        fz   }t          j        ||¦  «        D ]N\  }}|t          j        u r
 |¦   «         }t          j        | j        | j        || j        |¬¦  «        }|j	        sJ ‚ŒOg d¢}|D ][}t          j        t          ¦  «        5  t          j        | j        | j        || j        d ¬¦  «         d d d ¦  «         n# 1 swxY w Y   Œ\d S )N)útrust-constrr@  ú	trust-ncgútrust-krylov©rŽ   r�   r}   )rê  rë  Údoglegútrust-exact)r   r   r¸   rã  rä  r¡   rt   rb   ry   r´   rÐ   r
   rM   )ri   rå  ÚhessesrŽ   r}   rB  s         r,   Útest_finite_differences_hessz/TestOptimizeSimple.test_finite_differences_hessÝ  sN  € ð MÐLÐLˆÝ�xœ}Ð.Ñ.ˆÝ%Ô-¨g°vÑ>Ô>ð 	"ð 	"‰LˆF�DØ•x”}Ð$Ð$Ø�t‘v”v�ÝÔ& t¤y°$Ô2BØ.4¸$¼)Ø,0ð2ñ 2ô 2ˆFð ”>Ð!Ð!Ð!Ð!ð
 IÐHÐHˆØð 	-ð 	-ˆFÝ”�zÑ*Ô*ð -ð -ÝÔ! $¤)¨TÔ-=Ø)/°T´YØ'+ð-ñ -ô -ð -ð-ð -ð -ñ -ô -ð -ð -ð -ð -ð -ð -øøøð -ð -ð -ð -øð	-ð 	-s   Â)CÃC	ÃC	c                 ób   — d„ }t          j        |dgd¬¦  «        }t          |ddd¬¦  «         d S )Nc                 ó"   — | dk     rdS | d| z  z   S )Nr   g÷BŒþÿÿïrX   r…   r*   s    r,   rs   z/TestOptimizeSimple.test_bfgs_gh_2169.<locals>.fø  s   € Ø�1ŠuˆuØ&�à˜2˜a™4‘x�r.   ç      $@Frâ   rX   rµ  ©rŸ   r˜   )r   r¿   r   )ri   rs   Úxss      r,   Útest_bfgs_gh_2169z$TestOptimizeSimple.test_bfgs_gh_2169÷  sI   € ð	 ð 	 ð 	 õ
 Ô  C 5¨uÐ5Ñ5Ô5ˆÝ˜˜C d°Ð6Ñ6Ô6Ð6Ð6Ð6r.   c                 ó`   ‡— ˆfd„}t          ¦   «         Št          j        |dddd¬¦  «         d S )Nc                 ód   •— | d         }|‰vsJ ‚‰                      |¦  «         d| dz  z  d| z  fS )Nr   r¼   r1   é   )Úadd)r+   ÚxpÚseens     €r,   rs   z:TestOptimizeSimple.test_bfgs_double_evaluations.<locals>.f  s>   ø€ Ø�1”ˆBØ˜T�>�>�>�>Ø�HŠH�R‰LŒLˆLØ�a˜‘d‘7˜B˜q™D�=Ð r.   éœÿÿÿrç   Tr;   )rŽ   r�   Útol)Úsetr   r¡   )ri   rs   rü  s     @r,   Útest_bfgs_double_evaluationsz/TestOptimizeSimple.test_bfgs_double_evaluations   sI   ø€ ð	!ð 	!ð 	!ð 	!ð 	!õ ‰uŒuˆÝÔ˜!˜T¨&°dÀÐEÑEÔEÐEÐEÐEr.   c                 óš  — t          j        | j        | j        | j        d| j        ¬¦  «        }|\  }}}t          |                      |¦  «        |                      | j        ¦  «        d¬¦  «         | j        dk    sJ | j        ¦   «         ‚| j	        dk    sJ | j	        ¦   «         ‚t          | j
        dd…         g d¢g d	¢gd
d¬¦  «         d S )Nr…   )r�   rd   r8   r—   rš   rÌ   r[   )gžÈî°>Í<gwTë³¹ à¿gÓUuAXß?)r\   g¿‹ŒHóËà¿g!mÊ²3ß?r�   r;   rž   )r   Úfmin_l_bfgs_brt   rb   ry   rd   r   rc   re   rf   rg   ©ri   rª   r¥   r¦   Úds        r,   Útest_l_bfgs_bz TestOptimizeSimple.test_l_bfgs_b  sû   € åÔ'¨¬	°4Ô3CØ(,¬	¸Ø04´ð>ñ >ô >ˆð #Ñˆ��qå˜Ÿ	š	 &Ñ)Ô)¨4¯9ª9°T´]Ñ+CÔ+CØ!ð	#ñ 	#ô 	#ð 	#ð
 Œ~ Ò"Ð"Ð" D¤NÑ"Ô"Ð"ØŒ~ Ò"Ð"Ð" D¤NÑ"Ô"Ð"õ 	˜œ
 1 Q 3œØDÐDÐDØ6Ð6Ð6ð8à"¨ð	/ñ 	/ô 	/ð 	/ð 	/ð 	/r.   c                 óÚ   — t          j        | j        | j        d| j        ¬¦  «        }|\  }}}t          |                      |¦  «        |                      | j        ¦  «        d¬¦  «         d S )NT)Úapprox_gradrd   r8   r—   )r   r  rt   rb   rd   r   rc   r  s        r,   Útest_l_bfgs_b_numjacz'TestOptimizeSimple.test_l_bfgs_b_numjac"  sz   € åÔ'¨¬	°4Ô3CØ48Ø04´ð>ñ >ô >ˆð #Ñˆ��qå˜Ÿ	š	 &Ñ)Ô)¨4¯9ª9°T´]Ñ+CÔ+CØ!ð	#ñ 	#ô 	#ð 	#ð 	#ð 	#r.   c                 óÚ   ‡ — ˆ fd„}t          j        |‰ j        ‰ j        ¬¦  «        }|\  }}}t	          ‰                      |¦  «        ‰                      ‰ j        ¦  «        d¬¦  «         d S )Nc                 óX   •— ‰                      | ¦  «        ‰                     | ¦  «        fS r=   )rt   ry   )r+   ri   s    €r,   r‘   z4TestOptimizeSimple.test_l_bfgs_b_funjac.<locals>.fun/  s"   ø€ Ø—9’9˜Q‘<”< §¢¨1¡¤Ð-Ð-r.   ©rd   r8   r—   )r   r  rb   rd   r   rt   rc   )ri   r‘   rª   r¥   r¦   r  s   `     r,   Útest_l_bfgs_b_funjacz'TestOptimizeSimple.test_l_bfgs_b_funjac-  s‘   ø€ ð	.ð 	.ð 	.ð 	.ð 	.õ Ô'¨¨TÔ-=Ø04´ð>ñ >ô >ˆð #Ñˆ��qå˜Ÿ	š	 &Ñ)Ô)¨4¯9ª9°T´]Ñ+CÔ+CØ!ð	#ñ 	#ô 	#ð 	#ð 	#ð 	#r.   c                 ó~  —  G d„ d¦  «        } |¦   «         }t          j        t           j        ddgd|ddi¬¦  «        }t          |j        d¦  «         t          |j        |j        ¦  «         t          |j        |j        ¦  «         t          |j        d¦  «         |j	        d	u sJ ‚t          |j
        d
¦  «         d S )Nc                   ó   — e Zd Zd„ Zd„ ZdS )ú:TestOptimizeSimple.test_l_bfgs_b_maxiter.<locals>.Callbackc                 ó0   — d| _         d | _        d | _        d S rF  )rí   r‘   r+   rh   s    r,   Ú__init__zCTestOptimizeSimple.test_l_bfgs_b_maxiter.<locals>.Callback.__init__>  s   € Ø�”Ø�”Ø�”��r.   c                 óf   — || _         t          j        |¦  «        | _        | xj        dz  c_        d S r%   )r+   r   r   r‘   rí   ©ri   r+   s     r,   Ú__call__zCTestOptimizeSimple.test_l_bfgs_b_maxiter.<locals>.Callback.__call__C  s-   € Ø�”Ý#œ>¨!Ñ,Ô,�”Ø�”˜A‘�”��r.   N©r�   r‚   rƒ   r  r  r…   r.   r,   ÚCallbackr  =  s2   € € € € € ðð ð ð
ð ð ð ð r.   r  r\   úl-bfgs-brd   rÌ   )rŽ   Úcallbackr�   r&   Fz+STOP: TOTAL NO. of ITERATIONS REACHED LIMIT)r   r¡   r   r   rí   r   r+   r‘   r”   r´   Úmessage)ri   r  Úcr¤   s       r,   Útest_l_bfgs_b_maxiterz(TestOptimizeSimple.test_l_bfgs_b_maxiter:  sï   € ð		ð 		ð 		ð 		ð 		ñ 		ô 		ð 		ð ˆH‰JŒJˆÝÔ¥¤°°R°ÀØ)*°YÀ°NðDñ Dô Dˆõ 	�S”W˜aÑ Ô Ð Ý˜CœE 1¤3Ñ'Ô'Ð'Ý˜CœG Q¤UÑ+Ô+Ð+Ý�S”Z Ñ#Ô#Ð#ØŒ{˜eÐ#Ð#Ð#Ð#Ý�S”[ØBñ	Dô 	Dð 	Dð 	Dð 	Dr.   c                 ó$  — d| j         dœ}t          j        | j        | j        d| j        |¬¦  «        }t          |                      |j        ¦  «        |                      | j        ¦  «        d¬¦  «         | j	        |j
        k    sJ ‚dx| _        | _	        t          j        | j        | j        d|¬¦  «        }| j        |j        k    sJ ‚t          |                      |j        ¦  «        |                      | j        ¦  «        d¬¦  «         dx| _        | _	        t          j        | j        | j        d	d|¬
¦  «        }| j        |j        k    sJ ‚t          |                      |j        ¦  «        |                      | j        ¦  «        d¬¦  «         d S )NF©rŠ   rd   úL-BFGS-B©rŽ   r�   r�   r8   r—   r   rê   râ  ©r�   rŽ   r�   )rd   r   r¡   rt   rb   ry   r   r+   rc   rf   r“   re   r’   )ri   r£   rR   Úras       r,   Útest_minimize_l_bfgs_bz)TestOptimizeSimple.test_minimize_l_bfgs_bT  s   € à¨$¬,Ð7Ð7ˆÝÔ˜dœi¨Ô)9Ø%/°T´YØ&*ð,ñ ,ô ,ˆõ 	˜Ÿ	š	 !¤#™œ¨¯	ª	°$´-Ñ(@Ô(@Ø!ð	#ñ 	#ô 	#ð 	#àŒ~ ¤Ò'Ð'Ð'Ð'à*+Ð+ˆŒ˜œåÔ˜tœy¨$Ô*:Ø&0¸$ð@ñ @ô @ˆð Œ~ ¤Ò(Ð(Ð(Ð(Ý˜Ÿ	š	 "¤$™œ¨¯ª°4´=Ñ)AÔ)AØ!ð	#ñ 	#ô 	#ð 	#ð +,Ð+ˆŒ˜œåÔ˜tœy¨$Ô*:À	Ø&0¸$ð@ñ @ô @ˆàŒ~ ¤Ò(Ð(Ð(Ð(Ý˜Ÿ	š	 "¤$™œ¨¯ª°4´=Ñ)AÔ)AØ!ð	#ñ 	#ô 	#ð 	#ð 	#ð 	#r.   c                 ó  — d }dD ]†}d| j         |dœ}t          j        | j        | j        d| j        |¬¦  «        }|                      |j        ¦  «        }|€|}n||k     sJ ‚t          ||                      | j        ¦  «        |¬¦  «         Œ‡d S )N)r:   rµ  r;   r¨  F)rŠ   rd   rª  r  r  r²   )	rd   r   r¡   rt   rb   ry   r+   r   rc   )ri   Úv0rþ  r£   rµ   Úvs         r,   Útest_minimize_l_bfgs_b_ftolz.TestOptimizeSimple.test_minimize_l_bfgs_b_ftolp  s³   € àˆØ,ð 	Cð 	CˆCØ!¨d¬lÀCÐHÐHˆDÝÔ# D¤I¨tÔ/?Ø+5¸4¼9Ø,0ð2ñ 2ô 2ˆCð —	’	˜#œ%Ñ Ô ˆAàˆzØ��à˜2’v�v�v�vå˜A˜tŸyšy¨¬Ñ7Ô7¸cÐBÑBÔBÐBÐBð	Cð 	Cr.   c           	      ó    — t          j        t           j        t          j        ddg¦  «        dt           j        dddœ¬¦  «        }|j        rJ ‚d S )Nrò   rX   r  Fr&   )rŠ   Úmaxlsr  )r   r¡   r   r(   rH   r   r´   )ri   rµ   s     r,   Útest_minimize_l_bfgs_maxlsz-TestOptimizeSimple.test_minimize_l_bfgs_maxls�  sY   € åÔ¥¤µ´¸$À¸Ñ0EÔ0EØ'1µxÔ7IØ16ÀÐ(CÐ(CðEñ Eô Eˆð ”;ÐÐÐÐÐr.   c                 ó¢  ‡‡— t           j        Št           j        }g Št          j        dd¦  «        }ˆˆfd„}d\  }}}t          j        ||||¬¦  «         t          d„ t          ‰|d …         ¦  «        D ¦   «         ¦  «        \  }}||z   }	t          ‰d |…         ¦  «        }
t          j        ‰|||	¬¦  «        \  }}}t          ||
¦  «         d S )Nrš   r]   c                 óH   •—  ‰| ¦  «        }‰                      |¦  «         |S r=   )ro   )r+   Úvaluers   Úvaluess     €€r,   ÚobjfunzMTestOptimizeSimple.test_minimize_l_bfgs_b_maxfun_interruption.<locals>.objfun�  s'   ø€ Ø�A�a‘D”DˆEØ�MŠM˜%Ñ Ô Ð ØˆLr.   )é   r)  i,  )rß   Úmaxfunc              3   ó$   K  — | ]\  }}||fV — Œd S r=   r…   )r  rz  Úys      r,   ú	<genexpr>zPTestOptimizeSimple.test_minimize_l_bfgs_b_maxfun_interruption.<locals>.<genexpr>™  s*   è è € ÐAÐA™d˜a �A�q�6ÐAÐAÐAÐAÐAÐAr.   )
r   r   r   r(   Úfullr  ÚmaxÚ	enumerateÚminr   )ri   ÚgrQ   r.  ÚlowÚmediumÚhighr%  Úkr0  ÚtargetÚxminr"  r  rs   r-  s                 @@r,   Ú*test_minimize_l_bfgs_b_maxfun_interruptionz=TestOptimizeSimple.test_minimize_l_bfgs_b_maxfun_interruptionˆ  sô   øø€ åŒNˆÝÔˆØˆÝŒW�Q˜ÑÔˆð	ð 	ð 	ð 	ð 	ð 	ð )ÑˆˆV�TÝÔ˜v r°!¸DÐAÑAÔAÐAÝÐAÐA¥i°°v°w°w´Ñ&@Ô&@ÐAÑAÔAÑAÔA‰ˆˆ1Ø˜!‘ˆõ �V˜D˜S˜D”\Ñ"Ô"ˆÝ Ô.¨q°"¸QÀvÐNÑNÔN‰ˆˆd�AÝ˜$ Ñ'Ô'Ð'Ð'Ð'r.   c                 óª   — 	 	 dd„}g d¢}t          j        t           j        ||t          d¬¦  «        ¬¦  «        }t	          |j        d	d
d
¬¦  «         d S )Nr…   r:   r)  c                 ó®  — |} | |¦  «        }	d}
d}d}d}|r¢|s ||k     ršd}|dz  }t          t          j        |¦  «        ¦  «        D ]g}||         |z
  ||         |z   fD ]5}t          j        |¦  «        }|||<    | |g|¢R Ž }|
dz  }
||	k     r|}	|}d}Œ6|� ||¦  «         |�
|
|k    rd} nŒh|r|s||k     °št	          j        |	|||
|dk    ¬¦  «        S )Nr&   r   TF©r‘   r+   rí   r’   r´   )r,  r(   Úsizerp   r   r   )r‘   rQ   r�   rm  Ústepsizerd   r  r�   ÚbestxÚbestyÚfuncallsÚniterÚimprovedÚstopÚdimÚsÚtestxÚtestys                     r,   Úcustminz/TestOptimizeSimple.test_custom.<locals>.custmin¤  sW  € àˆEØ�C˜‘G”GˆEØˆHØˆEØˆHØˆDàð  4ð ¨E°GªO¨OØ �Ø˜‘
�Ý ¥¤¨¡¤Ñ-Ô-ð ð �CØ# Cœj¨8Ñ3°U¸3´ZÀ(Ñ5JÐKð ,ð ,˜Ý "¤¨¡¤˜Ø%&˜˜c™
Ø #  EÐ 1¨DÐ 1Ð 1Ð 1˜Ø  A™˜Ø  5š=˜=Ø$)˜EØ$)˜EØ'+˜HøØÐ+Ø ˜ ™œ˜ØÐ)¨h¸&Ò.@Ð.@Ø#˜Ø˜øð# ð  4ð ¨E°GªO¨Oõ& Ô*¨u¸À5Ø08À5È1Â9ðOñ Oô Oð Or.   )gš™™™™™õ?rú   rÉ   çš™™™™™ñ?rË   çš™™™™™©?©rD  rê   rX   rµ  rô  ©r…   Nr:   r)  N)r   r¡   r   rK  r   r+   )ri   rO  rQ   r¤   s       r,   Útest_customzTestOptimizeSimple.test_custom¢  sy   € à<?Ø*.ð	Oð 	Oð 	Oð 	Oð> (Ð'Ð'ˆÝÔ¥¤°¸7Ý(,°dÐ(;Ñ(;Ô(;ð=ñ =ô =ˆå˜œ˜s¨°DÐ9Ñ9Ô9Ð9Ð9Ð9r.   c                 óp   ‡‡— ddgŠdŠˆˆfd„}ddg}t          j        t           j        ||‰‰¬¦  «         d S )N)r§  r1   )r   r[   Úconstraintsc                 óZ   •— |d         ‰u sJ ‚|d         ‰u sJ ‚t          j        ¦   «         S )Nr  rV  ©r   r   )r‘   rQ   r�   r  rV  s      €€r,   rO  z0TestOptimizeSimple.test_gh10771.<locals>.custminÎ  s>   ø€ Ø˜8Ô$¨Ð.Ð.Ð.Ð.Ø˜=Ô)¨[Ð8Ð8Ð8Ð8ÝÔ*Ñ,Ô,Ð,r.   r&   )rŽ   r  rV  )r   r¡   r   )ri   rO  rQ   r  rV  s      @@r,   Útest_gh10771zTestOptimizeSimple.test_gh10771È  su   øø€ ð ˜6Ð"ˆØ#ˆð	-ð 	-ð 	-ð 	-ð 	-ð 	-ð
 �ˆVˆÝÔ�(œ.¨"°WØ!'°[ð	Bñ 	Bô 	Bð 	Bð 	Bð 	Br.   c           	      ó:  — d„ }d„ }dD ]‘}|dv rd }n|}t          j        |ddg|d|¬¦  «        }t          j        |ddg|d|¬¦  «        } ||j        ¦  «         ||j        ¦  «        k     s.J |› d	 ||j        ¦  «        › d
 ||j        ¦  «        › �¦   «         ‚Œ’d S )Nc                 ó4   — | \  }}|dz  |dz  z  |dz  z   dz   S )Nr1   r›   r&   r…   ©Úzr+   r2  s      r,   rt   z<TestOptimizeSimple.test_minimize_tol_parameter.<locals>.funcÙ  s+   € Ø‰DˆAˆqØ�a‘4˜˜1™‘9˜q !™tÑ# aÑ'Ð'r.   c                 ón   — | \  }}t          j        d|z  |dz  z  d|dz  z  z   d|dz  z  |z  g¦  «        S )Nr1   r›   r[   ©r(   rH   r\  s      r,   Údfuncz=TestOptimizeSimple.test_minimize_tol_parameter.<locals>.dfuncÝ  sE   € Ø‰DˆAˆqÝ”8˜Q˜q™S  A¡™X¨¨!¨Q©$©Ñ.°°!°Q±$±°q±Ð9Ñ:Ô:Ð:r.   ©
r9  Úpowellr   rç   rI  r  ÚtncÚcobylar]  Úslsqp©r9  rb  rd  r]  r1   r¨  )r�   rþ  rŽ   rX   ú: z vs. )r   r¡   r+   )ri   rt   r`  rŽ   r�   Úsol1Úsol2s          r,   Útest_minimize_tol_parameterz.TestOptimizeSimple.test_minimize_tol_parameter×  s  € ð	(ð 	(ð 	(ð	;ð 	;ð 	;ð4ð 	Bð 	BˆFð ÐFÐFÐFØ��à�åÔ$ T¨A¨q¨6°sÀØ,2ð4ñ 4ô 4ˆDåÔ$ T¨A¨q¨6°sÀØ,2ð4ñ 4ô 4ˆDà�4˜œ‘<”< $ $ t¤v¡,¤,Ò.Ð.Ð.ØÐAÐA   T¤V¡¤ÐAÐA°4°4¸¼±<´<ÐAÐAñ /Ô.Ð.Ð.ð	Bð 	Br.   rÌ   rÚ   úignore::RuntimeWarningrŽ   )r"  r  r¢   r¿   rR  r  Úfmin_tncÚ
fmin_slsqpc                 óÀ  ‡‡
— ‰dv rd„ }n$t           j        }t           j        }t           j        }t	          j        d¦  «        }i }‰                     d¦  «        r=t          t           ‰¦  «        }‰dk    rd|d<   nN‰dk    rd	|d
<   nB‰dv rd|d<   n8d|d<   n2ˆfd„}‰dk    rt          d	¬¦  «        |d<   nt          d¬¦  «        |d<   ‰dv r||d<   n‰dv r||d<   n‰dv r
||d<   ||d<   g Š
ˆ
fd„} |||fd|i|¤Ž t          ‰
¦  «        dk    sJ ‚t          d„ ‰
D ¦   «         ¦  «        sJ ‚t          j        ‰
d¦  «        }	t          d„ |	D ¦   «         ¦  «        rJ ‚d S )N)rl  r  c                 óR   — t          j        | ¦  «        t          j        | ¦  «        fS r=   )r   r   r   r*   s    r,   rt   zDTestOptimizeSimple.test_minimize_callback_copies_array.<locals>.funcü  s"   € Ý”~ aÑ(Ô(­(Ô*<¸QÑ*?Ô*?Ð?Ð?r.   r¼   r"  rm  rÌ   Úiterrl  r)  r0  )r"  r  i¬  rd   c                  ó0   •— ‰|d<   t          j        | i |¤ŽS )NrŽ   ©r   r¡   )ÚaÚkwrŽ   s     €r,   ÚroutinezGTestOptimizeSimple.test_minimize_callback_copies_array.<locals>.routine  s"   ø€ Ø%��8‘ÝÔ(¨!Ð2¨rÐ2Ð2Ð2r.   rc  ©r0  r�   r  )rR  rß   )rI  r�   ©rë  rî  rê  rí  ré  r}   c                 ó’   •— t          | t          j        ¦  «        rJ ‚‰                     | t	          j        | ¦  «        f¦  «         d S r=   )Ú
isinstancer   r   ro   r(   rp   )r+   r�   rº  Úresultss      €r,   r  zHTestOptimizeSimple.test_minimize_callback_copies_array.<locals>.callback'  s@   ø€ Ý! !¥XÔ%<Ñ=Ô=Ð=Ð=Ð=Ø�NŠN˜A�rœw q™zœz˜?Ñ+Ô+Ð+Ð+Ð+r.   r  r1   c              3   óL   K  — | ]\  }}t          j        ||k    ¦  «        V — Œ d S r=   )r(   rG   ©r  r+   r2  s      r,   r3  zITestOptimizeSimple.test_minimize_callback_copies_array.<locals>.<genexpr>0  s2   è è € Ð6Ð6¡d a¨•2”6˜!˜qš&‘>”>Ð6Ð6Ð6Ð6Ð6Ð6r.   c              3   ó^   K  — | ](\  }}t          j        |d          |d          ¦  «        V — Œ)dS )r   N)r(   Úmay_share_memoryr|  s      r,   r3  zITestOptimizeSimple.test_minimize_callback_copies_array.<locals>.<genexpr>2  s;   è è € ÐPÐP¹4¸1¸a•rÔ*¨1¨Q¬4°°1´Ñ6Ô6ÐPÐPÐPÐPÐPÐPr.   )r   r   r   r   r(   r`   Ú
startswithÚgetattrrK  r   rG   rã  ÚcombinationsÚany)ri   rŽ   rt   r�   r}   rQ   rº  ru  r  r�  rz  s    `        @r,   Ú#test_minimize_callback_copies_arrayz6TestOptimizeSimple.test_minimize_callback_copies_arrayð  s(  øø€ ð Ð2Ð2Ð2ð@ð @ð @ð @õ ”>ˆDÝÔ$ˆCÝÔ&ˆDåŒX�b‰\Œ\ˆð ˆØ×Ò˜VÑ$Ô$ð 	4Ý�h¨Ñ/Ô/ˆGØ˜Ò%Ð%Ø!"��v‘�Ø˜:Ò%Ð%Ø#&��xÑ Ð ØÐ2Ð2Ð2Ø$(��yÑ!Ð!à$%��yÑ!Ð!ð3ð 3ð 3ð 3ð 3ð ˜ŠˆÝ$(°Ð$4Ñ$4Ô$4��yÑ!Ð!å$(° O¡O¤O��yÑ!à�]Ð"Ð"Ø"ˆF�8ÑÐØ�~Ð%Ð%ØˆF�5‰MˆMØð (ð (ð (àˆF�5‰MØ!ˆF�6‰Nð ˆð	,ð 	,ð 	,ð 	,ð 	,ð 	ˆ��bÐ6Ð6 8Ð6¨vÐ6Ð6Ð6õ �7‰|Œ|˜aÒÐÐÐÝÐ6Ð6¨gÐ6Ñ6Ô6Ñ6Ô6Ð6Ð6Ð6Ý Ô-¨g°qÑ9Ô9ˆÝÐPÐPÀ<ÐPÑPÔPÑPÔPÐPÐPÐPÐPÐPr.   ra  c                 ó†  — d„ }d„ }t          j        dg¦  «        } ||¦  «        }|}|dk    rt          d¬¦  «        nt          d¬¦  «        }|dv rd }t          j        |||||¬	¦  «        }t           ||j        ¦  «        |j        ¦  «         |d
k    rt          j	        d¦  «          ||j        ¦  «        |k    sJ ‚d S )Nc                 ó   — | dz
  dz  S r0   r…   r*   s    r,   rt   z1TestOptimizeSimple.test_no_increase.<locals>.func;  ó   € Ø˜‘E˜A‘:Ðr.   c                 ó   — d| dz
  z  dz  dz
  S )Nr1   r&   r?  r…   r*   s    r,   Úbad_gradz5TestOptimizeSimple.test_no_increase.<locals>.bad_grad>  s   € ð �a˜!‘e‘9 Ñ# aÑ'Ð'r.   ç       @rc  rù  rv  r  rf  r   re  zSLSQP returns slightly worse)
r(   rH   rK  r   r¡   r   r+   r‘   rÐ   re  )	ri   rŽ   rt   rˆ  rQ   Úf0r�   r�   rµ   s	            r,   Útest_no_increasez#TestOptimizeSimple.test_no_increase4  só   € ð	ð 	ð 	ð	(ð 	(ð 	(õ
 ŒX�s�e‰_Œ_ˆØˆT�"‰XŒXˆØˆØ%+¨u¢_ _•$˜b�/‘/”/�/½$ÀrÐ:JÑ:JÔ:JˆØÐBÐBÐBØˆCÝÔ  b¨c¸&Ø(/ð1ñ 1ô 1ˆå�T�T˜#œ%‘[”[ #¤'Ñ*Ô*Ð*à�WÒÐÝŒLÐ7Ñ8Ô8Ð8Øˆt�C”E‰{Œ{˜bÒ Ð Ð Ð Ð Ð r.   c                 óÐ   — d„ }d„ }t          j        g d¢¦  «        }t          j        ||dd|dœ¬¦  «        }t	          |j        t          j        g d¢¦  «        d	z  d
¬¦  «         d S )Nc                 óT   — t          | t          j        g d¢¦  «        z
  dz  ¦  «        S )N)rX   r‰  r;  rˆ  r1   )r?   r(   rH   r*   s    r,   rs   z7TestOptimizeSimple.test_slsqp_respect_bounds.<locals>.fS  s+   € Ý˜�BœHÐ%5Ð%5Ð%5Ñ6Ô6Ñ6¸Ñ:Ñ;Ô;Ð;r.   c                 ó¶   — t          j        g d¢g d¢g¦  «        }t          j        t          j        || ¦  «        t          j        ddg¦  «        z   | g¦  «        S )N)r?  r?  r?  r?  )éýÿÿÿr�  r§  r?  rÌ   r¼   )r(   rH   Úconcatenaterm   ©r+   rs  s     r,   Úconsz:TestOptimizeSimple.test_slsqp_respect_bounds.<locals>.consV  sV   € Ý”Ð*Ð*Ð*Ð,<Ð,<Ð,<Ð=Ñ>Ô>ˆAÝ”>¥2¤6¨!¨Q¡<¤<µ"´(¸A¸r¸7Ñ2CÔ2CÑ#CÀQÐ"GÑHÔHÐHr.   )rZ   rX   r3   r‰  re  Úineq©Útyper‘   ©rŽ   rV  )r\   r1   rÌ   r½   r[   gê-�™—q=r—   )r(   rH   r   r¡   r   r+   )ri   rs   r’  rQ   r¤   s        r,   Útest_slsqp_respect_boundsz,TestOptimizeSimple.test_slsqp_respect_boundsQ  s–   € ð	<ð 	<ð 	<ð	Ið 	Ið 	Iõ ŒXÐ(Ð(Ð(Ñ)Ô)ˆÝÔ  2¨gØ5;ÀDÐ,IÐ,IðKñ Kô Kˆå˜œ�rœx¨¨¨Ñ6Ô6°qÑ8¸uÐEÑEÔEÐEÐEÐEr.   )rl  r  rŒ   r¸   r@  r  ÚSLSQPré  rí  rê  rî  rë  r]  c           	      ó  — d}t          j        d¦  «        }t          t          j        |dt          j        t          j        d d ¦  «        }|t          |¬¦  «        dœ}|dv r|j        |d<   n|dv r|j        |d<   |j	        |d	<   t          j
        |j        |fi |¤Ž}|j        |k    sJ ‚|j        |j        k    sJ ‚t          |d
¦  «        r|j        |j        k    sJ ‚|dk    r|j        dk    sJ ‚d S |dk    r|j        dk    sJ ‚d S d S )Nr›   r¼   r…   r  rê   )r@  r�   rw  r}   r“   r˜  r™   r]  r¾   )r(   r`   r   r   r   r   r   rK  ry   r}   r¡   r‘   rí   r’   Úhasattrr“   Úngevr”   )ri   rŽ   ÚMAXITERrQ   Úsfrº  rµ   s          r,   Útest_respect_maxiterz'TestOptimizeSimple.test_respect_maxiter_  sH  € ð ˆåŒX�b‰\Œ\ˆå�HœN¨B°µHÔ4FÝ$Ô/°°tñ=ô =ˆð #­t¸GÐ/DÑ/DÔ/DÐEÐEˆà�^Ð#Ð#ØœGˆF�5‰MˆMØð (ð (ð (àœGˆF�5‰MØœWˆF�6‰NåÔ ¤¨Ð5Ð5¨fÐ5Ð5ˆØŒw˜'Ò!Ð!Ð!Ð!ØŒx˜2œ7Ò"Ð"Ð"Ð"Ý�3˜ÑÔð 	'Ø”8˜rœwÒ&Ð&Ð&Ð&ð �WÒÐØ”: ’?�?�?�?�?�?Ø�xÒÐØ”: ’?�?�?�?ð  ÐØ"�?r.   )rl  r  r"  r  c           	      ó´  — t          j        d¦  «        }t          t          j        |dt          j        t          j        d d ¦  «        }dddœ}t          j        t          d¬¦  «        5  | 
                    d¦  «        r%t          t          |¦  «        } ||j        |fi |¤Ž nt          j        |j        |||¬	¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )
Nr¼   r…   r&   Tr^  zMaximum number of iterationsrÅ   r"  rê   )r(   r`   r   r   r   r   r   rÐ   ÚwarnsÚRuntimeWarningr  r€  r‘   r¡   )ri   rŽ   rQ   r�  r�   ru  s         r,   Útest_runtime_warningz'TestOptimizeSimple.test_runtime_warning„  s<  € õ ŒX�b‰\Œ\ˆÝ�HœN¨B°µHÔ4FÝ$Ô/°°tñ=ô =ˆà¨Ð.Ð.ˆÝŒ\�.Ø ?ðAñ Aô Að 	Nð 	Nà× Ò  Ñ(Ô(ð NÝ!¥(¨FÑ3Ô3�Ø�˜œ Ð.Ð. gÐ.Ð.Ð.Ð.åÔ! "¤&¨"°VÀWÐMÑMÔMÐMð	Nð 	Nð 	Nñ 	Nô 	Nð 	Nð 	Nð 	Nð 	Nð 	Nð 	Nð 	Nøøøð 	Nð 	Nð 	Nð 	Nð 	Nð 	Ns   Á(ACÃCÃCc                 óø   — d}t           j        }t           j        }t           j        }d„ }d|dœf}t	          j        d¦  «        }t          j        |||||dt          |¬¦  «        ¬¦  «        }|j        |k    sJ ‚d S )	Nr›   c                 ón   — t          j        d| d         z  d| d         z  z
  d| d         z  z
  g¦  «        S )NrE   r   çš™™™™™Ù?r&   ç…ëQ¸Õ?r1   r_  r*   s    r,   r‘   zRTestOptimizeSimple.test_respect_maxiter_trust_constr_ineq_constraints.<locals>.funœ  s7   € Ý”8˜S 1 Q¤4™Z¨#°°!´©*Ñ4°t¸aÀ¼d±{ÑBÐCÑDÔDÐDr.   r“  r”  r¼   ré  r  )rV  r�   r}   rŽ   r�   )	r   r   r   r   r(   r`   r¡   rK  rí   )	ri   rœ  rs   r�   r}   r‘   r’  rQ   rµ   s	            r,   Ú2test_respect_maxiter_trust_constr_ineq_constraintszETestOptimizeSimple.test_respect_maxiter_trust_constr_ineq_constraints“  s¥   € ð ˆÝŒNˆÝÔ ˆÝÔ"ˆð	Eð 	Eð 	EàØðð ð ˆõ ŒX�b‰\Œ\ˆÝÔ  2°4¸SÀtØ'5Ý(,°WÐ(=Ñ(=Ô(=ð?ñ ?ô ?ˆð Œw˜'Ò!Ð!Ð!Ð!Ð!Ð!r.   c                 óL  — d„ }d„ }t          j        dg¦  «        }t          j        ||¦  «        }t          j        ||d|dœg¬¦  «        }t          j        ||dg¬¦  «        }t          j        ||d|dœgdg¬	¦  «        }t          j        ||d|dœgd
g¬	¦  «        }|||||fD ]}	|	j        sJ ‚Œt          |j        dd¬¦  «         t          |j        dd¬¦  «         t          |j        dd¬¦  «         t          |j        dd¬¦  «         t          |j        dd¬¦  «         d S )Nc                 ó   — | dz  S r5  r…   r*   s    r,   rs   z6TestOptimizeSimple.test_minimize_automethod.<locals>.f¨  ó   € Ø�a‘4ˆKr.   c                 ó   — | dz
  S r5  r…   r*   s    r,   r’  z9TestOptimizeSimple.test_minimize_automethod.<locals>.cons«  s   € Ø�q‘5ˆLr.   ró  r“  r”  )rV  )rÌ   r¼   ©r  )rV  r  ©r&   r¼   r   r;   r—   r1   rÌ   )r(   rH   r   r¡   r´   r   r+   )
ri   rs   r’  rQ   Úsol_0Úsol_1Úsol_2Úsol_3Úsol_4rµ   s
             r,   Útest_minimize_automethodz+TestOptimizeSimple.test_minimize_automethod§  s•  € ð	ð 	ð 	ð	ð 	ð 	õ ŒX�s�e‰_Œ_ˆÝÔ! ! RÑ(Ô(ˆÝÔ! ! R¸vØ>Bð7Dð 7Dð 6Eð Fñ Fô FˆåÔ! ! R°°	Ð:Ñ:Ô:ˆÝÔ! ! RØ8>ÀtÐ/LÐ/LÐ.MØ*1¨ð4ñ 4ô 4ˆõ Ô! ! RØ8>ÀtÐ/LÐ/LÐ.MØ*1¨ð4ñ 4ô 4ˆð ˜5 %¨°Ð6ð 	ð 	ˆCØ”;ÐÐÐÐÝ˜œ ¨Ð.Ñ.Ô.Ð.Ý˜œ ¨Ð.Ñ.Ô.Ð.Ý˜œ ¨Ð.Ñ.Ô.Ð.Ý˜œ ¨Ð.Ñ.Ô.Ð.Ý˜œ ¨Ð.Ñ.Ô.Ð.Ð.Ð.r.   c                 óÊ   — d„ }dd„}t          j        g d¢¦  «        }t           j                             t	          |¦  «        ¦  «        }t          j        ||||d¬¦  «         d S )Nc                 ó6   — t          j        | |z
  dz  ¦  «        S r5  r6  ©r+   r  s     r,   ÚYz=TestOptimizeSimple.test_minimize_coerce_args_param.<locals>.YÃ  s   € Ý”6˜1˜Q™3 ™(Ñ#Ô#Ð#r.   c                 ó   — d| |z
  z  S r5  r…   r¶  s     r,   ÚdY_dxzATestOptimizeSimple.test_minimize_coerce_args_param.<locals>.dY_dxÆ  s   € Ø�a˜‘c‘7ˆNr.   )r[   r&   r›   r&   rÌ   r™   r1   r¾   rÌ   r[   rÌ   r¸   )r�   r�   rŽ   r=   )r(   rH   r4   Úrandnr   r   r¡   )ri   r·  r¹  r  Úxinits        r,   Útest_minimize_coerce_args_paramz2TestOptimizeSimple.test_minimize_coerce_args_paramÁ  sx   € ð	$ð 	$ð 	$ð	ð 	ð 	ð 	õ ŒHÐ6Ð6Ð6Ñ7Ô7ˆÝ”	—’¥ A¡¤Ñ'Ô'ˆÝÔ˜!˜U¨°QÀÐGÑGÔGÐGÐGÐGr.   c                 ó,  ‡	‡
‡— g d¢}g d¢}ˆ	ˆ
ˆfd„}ˆ
fd„}t          j        ||¦  «        D ]æ\  Š
}|dv rt          ‰
dz  ¬¦  «        }nt          ¦   «         }‰
dk     r|d	v rŒ6d
gŠd gŠ	t          j        |‰|||¬¦  «        }|› d‰
› d‰	› d|› �}|j        s
J |¦   «         ‚t          |j        dg|¬¦  «         |j        dk    s
J |¦   «         ‚‰
dk    r@|dv rt          ‰	d         d|¬¦  «         ŒÃ‰	d         dk    r‰	d         dk     s
J |¦   «         ‚ŒæŒçd S )N)g¸ÔJzî�5r&   gšd~ÅQJ)rŒ   r¸   r  r@  c                 ó  •— ‰d         €3| d         ‰d         k    r!t          | d         ‰d         z
  ¦  «        ‰d<   t          | ¦  «                             ¦   «         dk    rt          d¦  «        ‚‰| d         dz
  dz  z  S )Nr   g     ˆÃ@zOptimization stepped far away!r&   r1   )rJ   r5  ÚAssertionError)r+   Úfirst_step_sizeÚscalerQ   s    €€€r,   rs   z7TestOptimizeSimple.test_initial_step_scaling.<locals>.fÔ  s{   ø€ Ø˜qÔ!Ð)¨a°¬d°b¸´eªm¨mÝ%(¨¨1¬°°1´©Ñ%6Ô%6� Ñ"Ý�1‰vŒv�zŠz‰|Œ|˜cÒ!Ð!Ý$Ð%EÑFÔFÐFØ˜!˜Aœ$ ™( Q™Ñ&Ð&r.   c                 óF   •— t          j        ‰| d         dz
  z  g¦  «        S ©Nr   r&   r_  )r+   rÁ  s    €r,   r8  z7TestOptimizeSimple.test_initial_step_scaling.<locals>.gÛ  s#   ø€ Ý”8˜U A a¤D¨1¡HÑ-Ð.Ñ/Ô/Ð/r.   )rŒ   r¸   rô   )rë   r¨  )r  r@  ç      ð¿r   ú rg  rX   ©Úerr_msgr[   r   g)\�Âõ(ð?rZ   )	rã  rä  rK  r   r¡   r´   r   r+   rí   )ri   Úscalesrå  rs   r8  rŽ   r�   r¤   rÇ  rÀ  rÁ  rQ   s            @@@r,   Útest_initial_step_scalingz,TestOptimizeSimple.test_initial_step_scalingÍ  sÈ  øøø€ ð "Ð!Ð!ˆØ9Ð9Ð9ˆð	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð	0ð 	0ð 	0ð 	0ð 	0õ 'Ô.¨v°wÑ?Ô?ð 	ð 	‰MˆE�6Ø˜Ð'Ð'Ý E¨$¡JÐ/Ñ/Ô/��å™&œ&�à�uŠ}ˆ} Ð+DÐ!DÐ!Dàà�ˆBØ#˜fˆOÝÔ# A r¨q¸Ø,3ð5ñ 5ô 5ˆCð  ÐCÐC %ÐCÐC¨?ÐCÐC¸cÐCÐCˆGà”;Ð'Ð' Ñ'Ô'Ð'Ý˜CœE C 5°'Ð:Ñ:Ô:Ð:Ø”7˜a’<�<�< ‘<”<�<à�uŠ}ˆ}Ø˜^Ð+Ð+Ý# O°AÔ$6¸ÀgÐNÑNÔNÐNÐNð +¨1Ô-°Ò3Ð3¸ÈÔ8JÈQÒ8NÐ8NÐ8NÐPWÑ8NÔ8NÐ8NÐ8Nð ð?	ð 	r.   )r9  rb  r   rç   rI  r  rc  rd  r]  re  ré  rí  rê  rî  rë  c                 ó  ‡— t           j                             d¦  «         dgŠd„ }ˆfd„}d„ }d„ }t          j        dg¦  «        }|dv }|d	v }||g}	|r|gn|d g}
|r|gn|d g}|d
k    rt	          d¬¦  «        nt	          d¬¦  «        }t          j        d¬¦  «        5  t          ¦   «         5 }|                     t          d¦  «         |                     t          d¦  «         |                     t          d¦  «         t          j        |	|
|¦  «        D ]8\  }}}dgŠt          j        ||||||¬¦  «        }t          |j        d¦  «         Œ9	 d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )Nr5   r   c                 ó   — t           j        S r=   rÓ  r*   s    r,   rt   z0TestOptimizeSimple.test_nan_values.<locals>.func
  rÔ  r.   c                 ó�   •— ‰dxx         dz  cc<   ‰d         dk    rt           j        S t           j                             ¦   «         S r¬  )r(   rÎ  r4   rÜ  ©r+   Úcounts    €r,   Úfunc2z1TestOptimizeSimple.test_nan_values.<locals>.func2  s>   ø€ Ø�!ˆHˆHŒH˜‰MˆHˆH‰HØ�QŒx˜!Š|ˆ|Ý”v�å”y—~’~Ñ'Ô'Ð'r.   c                 ó,   — t          j        dg¦  «        S ©NrX   r_  r*   s    r,   ry   z0TestOptimizeSimple.test_nan_values.<locals>.grad  s   € Ý”8˜S˜E‘?”?Ð"r.   c                 ó.   — t          j        dgg¦  «        S rÑ  r_  r*   s    r,   r}   z0TestOptimizeSimple.test_nan_values.<locals>.hess  s   € Ý”8˜c˜U˜GÑ$Ô$Ð$r.   rX   ©rI  rë  rî  rê  rí  ©rë  rî  rê  rí  rc  rù  rv  r  rà   rÕ  údelta_grad == 0.*ú.*does not use Hessian.*ú.*does not use gradient.*)r�   r}   rŽ   r�   F)r(   r4   r7   rH   rK  rã   r	   ÚfilterÚUserWarningr¡  rã  rä  r   r¡   r   r´   )ri   rŽ   rt   rÏ  ry   r}   rQ   Ú
needs_gradÚ
needs_hessÚfuncsÚgradsÚhesssr�   Úsuprs   r8  Úhrµ   rÎ  s                     @r,   Útest_nan_valuesz"TestOptimizeSimple.test_nan_valuesÿ  si  ø€ õ 	Œ	�Š�tÑÔÐà�ˆð	ð 	ð 	ð	(ð 	(ð 	(ð 	(ð 	(ð	#ð 	#ð 	#ð	%ð 	%ð 	%õ ŒX�s�e‰_Œ_ˆàð  7ð 7ˆ
àð  *ð *ˆ
ð �u�ˆØ$Ð6���¨4°¨,ˆØ$Ð6���¨4°¨,ˆØ%+¨u¢_ _•$˜b�/‘/”/�/½$ÀrÐ:JÑ:JÔ:JˆåŒ[ Ð*Ñ*Ô*ð 		1ð 		1Õ,=Ñ,?Ô,?ð 		1À3Ø�JŠJ•{Ð$7Ñ8Ô8Ð8Ø�JŠJ•~Ð'AÑBÔBÐBØ�JŠJ•~Ð'BÑCÔCÐCå$Ô,¨U°E¸5ÑAÔAð 1ð 1‘��1�aØ˜�ÝÔ'¨¨2°1¸1ÀVØ07ð9ñ 9ô 9�å˜Sœ[¨%Ñ0Ô0Ð0Ð0ð	1ð		1ð 		1ð 		1ñ 		1ô 		1ð 		1ð 		1ð 		1ð 		1ð 		1ð 		1øøøð 		1ð 		1ð 		1ð 		1ð 		1ð 		1ð 		1ñ 		1ô 		1ð 		1ð 		1ð 		1ð 		1ð 		1ð 		1ð 		1øøøð 		1ð 		1ð 		1ð 		1ð 		1ð 		1s7   Â E5Â/B!EÅE5ÅE!	Å!E5Å$E!	Å%E5Å5E9Å<E9)r9  r   rç   r  rc  rd  r]  re  ré  rí  rê  rî  rë  c           	      ó&  — d x}}|dv r| j         }|dv r| j        }t          j        d¬¦  «        5  t	          ¦   «         5 }|                     t          d¦  «         t          j        | j	        | j
        |||¬¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   t          dt          | j        ¦  «        ¦  «        D ]B}t          j        | j        |dz
           | j        |         ¦  «        rt          d|› �¦  «        ‚ŒCd S )	NrÓ  rÔ  rà   rÕ  rÕ  rì  r&   zDuplicate evaluations made by )ry   r}   r(   rã   r	   rØ  rÙ  r   r¡   rt   rb   r,  r   rg   Úarray_equalrl   )ri   rŽ   r�   r}   rß  rz  s         r,   Útest_duplicate_evaluationsz-TestOptimizeSimple.test_duplicate_evaluations1  sÞ  € ð ÐˆˆdØð -ð -ð -à”)ˆCØð  ð  ð  à”9ˆDåŒ[ Ð*Ñ*Ô*ð 	Að 	AÕ,=Ñ,?Ô,?ð 	AÀ3à�JŠJ•{Ð$7Ñ8Ô8Ð8ÝÔ˜dœi¨Ô)9Ø%+°¸4ðAñ Aô Að Að	Að 	Að 	Añ 	Aô 	Að 	Að 	Að 	Að 	Að 	Að 	Aøøøð 	Að 	Að 	Að 	Að 	Að 	Að 	Añ 	Aô 	Að 	Að 	Að 	Að 	Að 	Að 	Aøøøð 	Að 	Að 	Að 	Aõ �q�#˜dœj™/œ/Ñ*Ô*ð 	?ð 	?ˆAÝŒ~˜dœj¨¨Q©Ô/°´¸A´Ñ?Ô?ð ?Ý"Ø=°VÐ=Ð=ñ?ô ?ð ?ð?ð	?ð 	?s4   °B!¿?B
Á>B!Â
B	ÂB!ÂB	ÂB!Â!B%Â(B%Únew_cb_interface)r   r&   r1   c                 óv  ‡
‡‡— ˆfd„Šd‰_         ˆfd„}ˆfd„}dŠ|dk    rˆ
ˆfd„}n&|dk    r G ˆ
ˆfd	„d
¦  «        } |¦   «         }nˆ
fd„}ˆ
ˆfd„Š
d‰
_        d‰
_         dgdz  |‰||dœ}t          j        di |¤d|i¤Ž}|dk    r‰dz   Š|dk    r3t          j        di |¤dd‰ii¤Ž}	|j        |	j        cxk    r‰k    sn J ‚n2t          j        di |¤dd‰ii¤Ž}	|j        |	j        cxk    r‰k    sn J ‚|j        |	j        k    sJ ‚t          |j        |	j        ¦  «         |j	        |dv rdndk    sJ ‚d S )Nc                 ó:   •— d‰_         t          j        | ¦  «        S ©NF)Úflagr   r   ©r+   rs   s    €r,   rs   z9TestOptimizeSimple.test_callback_stopiteration.<locals>.fR  s   ø€ ØˆAŒFÝ”> !Ñ$Ô$Ð$r.   Fc                 ó:   •— d‰_         t          j        | ¦  «        S rè  )ré  r   r   rê  s    €r,   r8  z9TestOptimizeSimple.test_callback_stopiteration.<locals>.gW  s   ø€ ØˆAŒFÝÔ% aÑ(Ô(Ð(r.   c                 ó:   •— d‰_         t          j        | ¦  «        S rè  )ré  r   r   rê  s    €r,   rà  z9TestOptimizeSimple.test_callback_stopiteration.<locals>.h[  s   ø€ ØˆAŒFÝÔ& qÑ)Ô)Ð)r.   rÌ   r&   c                 óR   •— | j          ‰| j        ¦  «        k    sJ ‚ ‰¦   «          d S r=   ©r‘   r+   )Úintermediate_resultr  rs   s    €€r,   Úcallback_interfacezJTestOptimizeSimple.test_callback_stopiteration.<locals>.callback_interfaceb  s4   ø€ Ø*Ô.°!°!Ð4GÔ4IÑ2JÔ2JÒJÐJÐJÐJØ�‘
”
�
�
�
r.   r1   c                   ó"   •— e Zd Zdefˆ ˆfd„ZdS )ú@TestOptimizeSimple.test_callback_stopiteration.<locals>.Callbackrï  c                 óR   •— |j          ‰|j        ¦  «        k    sJ ‚ ‰¦   «          d S r=   rî  )ri   rï  r  rs   s     €€r,   r  zITestOptimizeSimple.test_callback_stopiteration.<locals>.Callback.__call__g  s4   ø€ Ø.Ô2°a°aÐ8KÔ8MÑ6NÔ6NÒNÐNÐNÐNØ�H‘J”J�J�J�Jr.   N)r�   r‚   rƒ   r   r  )r  rs   s   €€r,   r  rò  f  s?   ø€ € € € € ð¸ð ð ð ð ð ð ð ð ð r.   r  c                 ó   •—  ‰¦   «          d S r=   r…   )Úxkr�   r  s     €r,   rð  zJTestOptimizeSimple.test_callback_stopiteration.<locals>.callback_interfacel  s   ø€ Ø�‘
”
�
�
�
r.   c                  óv   •— ‰ xj         dz  c_         d‰ _        ‰ j         ‰k    rd‰ _        t          ¦   «         ‚d S )Nr&   FT)rz  ré  ÚStopIteration)r  rd   s   €€r,   r  z@TestOptimizeSimple.test_callback_stopiteration.<locals>.callbacko  s?   ø€ ØˆJŒJ˜!‰OˆJŒJØ!ˆHŒMØŒz˜WÒ$Ð$Ø $�”Ý#‘o”oÐ%ð %Ð$r.   r   rP  )rQ   rŽ   r‘   r�   r}   r  r9  r]  r�   rm  rd   )ré  r]  r[   éc   r…   )
ré  rz  r   r¡   r’   rí   r‘   r   r+   r”   )ri   rŽ   rå  r8  rà  rð  r  rº  r¤   rî   r  rs   rd   s             @@@r,   Útest_callback_stopiterationz.TestOptimizeSimple.test_callback_stopiterationK  s’  øøø€ ð	%ð 	%ð 	%ð 	%ð 	%ð ˆŒð	)ð 	)ð 	)ð 	)ð 	)ð	*ð 	*ð 	*ð 	*ð 	*ð ˆà˜qÒ Ð ðð ð ð ð ð ð ð  Ò"Ð"ðð ð ð ð ð ð ð ñ ô ð ð "* ¡¤ÐÐðð ð ð ð ð	&ð 	&ð 	&ð 	&ð 	&ð 	&ð ˆŒ
ØˆŒà˜˜a™¨6Ø 1¨að1ð 1ˆõ ÔÐFÐF &ÐFÐFÐ3EÐFÐFÐFˆØ�]Ò"Ð"Ø ‘kˆGØ�XÒÐÝÔ#ÐJÐJ fÐJÐJ°xÀÐ6IÐJÐJÐJˆCØ”8˜sœxÐ2Ð2Ò2Ð2¨7Ò2Ð2Ð2Ð2Ð2Ð2Ð2åÔ#ÐKÐK fÐKÐK°yÀ'Ð6JÐKÐKÐKˆCØ”7˜cœgÐ0Ð0Ò0Ð0¨Ò0Ð0Ð0Ð0Ð0Ð0ØŒw˜#œ'Ò!Ð!Ð!Ð!Ý�S”U˜CœEÑ"Ô"Ð"ØŒz 6ð .
ð $
ð $
˜a˜að òð ð ð ð ð r.   c                 ó¸   — d}t          t          |¬¦  «        5  t          j        d„ t	          j        d¦  «        ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nz"'x0' must only have one dimension.rÅ   c                 ó   — | S r=   r…   r*   s    r,   r  z4TestOptimizeSimple.test_ndim_error.<locals>.<lambda>Ž  s   € ¨€ r.   )r1   r&   )rL   rM   r   r¡   r(   Úones©ri   r{  s     r,   Útest_ndim_errorz"TestOptimizeSimple.test_ndim_error‹  s›   € Ø2ˆÝ�:¨SÐ1Ñ1Ô1ð 	<ð 	<ÝÔ˜k˜k­2¬7°6©?¬?Ñ;Ô;Ð;ð	<ð 	<ð 	<ñ 	<ô 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<øøøð 	<ð 	<ð 	<ð 	<ð 	<ð 	<s   ™)AÁAÁA)r9  r  rc  rb  rd  r]  ré  c                 óš  — d„ }t          ddgddg¦  «        }d}t          j        t          |¬¦  «        5  t	          j        |g d¢||¬	¦  «         d d d ¦  «         n# 1 swxY w Y   t          g d
¢g d¢¦  «        }d}t          j        t          |¬¦  «        5  t	          j        |g d¢||¬	¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nc                 ó0   — t          j        | dz  ¦  «        S r5  r6  r*   s    r,   rs   z:TestOptimizeSimple.test_minimize_invalid_bounds.<locals>.f”  r8  r.   r&   r1   r[   r›   z?The number of bounds is not compatible with the length of `x0`.rÅ   )r&   r1   r[   ©rQ   rŽ   r  )r&   r¾   r&   )r[   r›   r1   z:An upper bound is less than the corresponding lower bound.)r   rÐ   r
   rM   r   r¡   )ri   rŽ   rs   r  r{  s        r,   Útest_minimize_invalid_boundsz/TestOptimizeSimple.test_minimize_invalid_bounds�  s‘  € ð	 ð 	 ð 	 õ ˜˜A˜  A Ñ'Ô'ˆØOˆÝŒ]�:¨SÐ1Ñ1Ô1ð 	Mð 	MÝÔ˜a I I I°fÀVÐLÑLÔLÐLð	Mð 	Mð 	Mñ 	Mô 	Mð 	Mð 	Mð 	Mð 	Mð 	Mð 	Møøøð 	Mð 	Mð 	Mð 	Mõ ˜	˜	˜	 9 9 9Ñ-Ô-ˆØJˆÝŒ]�:¨SÐ1Ñ1Ô1ð 	Mð 	MÝÔ˜a I I I°fÀVÐLÑLÔLÐLð	Mð 	Mð 	Mñ 	Mô 	Mð 	Mð 	Mð 	Mð 	Mð 	Mð 	Mð 	Møøøð 	Mð 	Mð 	Mð 	Mð 	Mð 	Ms#   µAÁA Á#A ÂC Ã CÃC)rç   r   rI  rb  c                 ó8  — |dk    ri ndt           j        i}|dk    rt          nt           j        }dddœ}t	          j        |d¬¦  «        5  t          j        d„ d	d	gf||d
œ|¤Ž d d d ¦  «         n# 1 swxY w Y   d|d<   t          j        d„ d	d	gf||d
œ|¤Ž d S )Nrb  r�   Tr¼   r  úMaximum numberrÅ   c                 ó*   — t          j        | ¦  «        S r=   ©r   r   r*   s    r,   r  zBTestOptimizeSimple.test_minimize_warnings_gh1953.<locals>.<lambda>«  s   € ­¬°qÑ(9Ô(9€ r.   r   rê   FrŠ   c                 ó*   — t          j        | ¦  «        S r=   r  r*   s    r,   r  zBTestOptimizeSimple.test_minimize_warnings_gh1953.<locals>.<lambda>¯  s   € ¥H¤N°1Ñ$5Ô$5€ r.   )r   r   r¡  rŸ  rÐ   r   r¡   )ri   rŽ   rº  Úwarning_typer�   s        r,   Útest_minimize_warnings_gh1953z0TestOptimizeSimple.test_minimize_warnings_gh1953¡  sW  € ð ˜xÒ'Ð'��¨eµXÔ5GÐ-HˆØ*0°(Ò*:Ð*:�˜Ý%Ô5ð 	ð  ¨BÐ/Ð/ˆÝŒ\˜,Ð.>Ð?Ñ?Ô?ð 	Hð 	HÝÔÐ9Ð9¸A¸q¸6ð HØ%+°WðHð HØ@FðHð Hð Hð	Hð 	Hð 	Hñ 	Hô 	Hð 	Hð 	Hð 	Hð 	Hð 	Hð 	Høøøð 	Hð 	Hð 	Hð 	Hð  ˆ�‰ÝÔÐ5Ð5¸¸1°vð 	DØ!'°ð	Dð 	DØ<Bð	Dð 	Dð 	Dð 	Dð 	Ds   ÁA1Á1A5Á8A5N)+r�   r‚   rƒ   rÐ  rØ  rÝ  rç  rð  rö  r   r  r  r  r  r"  r&  r)  r?  rT  rY  rj  rÐ   rb  Ú	fail_slowrc  rd  r   rƒ  r‹  r—  rž  r¢  r§  r³  r¼  rÉ  rá  rä  r   rù  rþ  r  r	  r…   r.   r,   rÆ  rÆ  ¤  s~  € € € € € ð	%ð 	%ð 	%ð*ð *ð *ð.
#ð 
#ð 
#ð'ð 'ð 'ð-ð -ð -ð47ð 7ð 7ð	Fð 	Fð 	Fð/ð /ð /ð.	#ð 	#ð 	#ð#ð #ð #ðDð Dð Dð4#ð #ð #ð8Cð Cð Cð"ð ð ð(ð (ð (ð4$:ð $:ð $:ðLBð Bð BðBð Bð Bð2 „[×Ò˜1ÑÔØ„[×ÒÐ 5Ñ6Ô6Ø„[×ÒÐ 8Ñ9Ô9Ø„[×Ò˜Xð,ð ,ð ,à.>ñ?ñ@ô @ð;Qð ;Qñ	@ô @ñ :Ô9ñ 7Ô6ñ Ôð;Qðz „[×Ò˜Xð (Lð (Lð (Lñ Mô Mð!ð !ñMô Mð!ð4Fð Fð Fð „[×Ò˜Xð (2ð (2ð (2ñ 3ô 3ð
#ð #ñ3ô 3ð
#ð@ „[×Ò˜Xð (?ð (?ð (?ñ @ô @ðNð Nñ@ô @ðNð"ð "ð "ð(/ð /ð /ð4
Hð 
Hð 
Hð0ð 0ð 0ðd „[×Ò˜Xð (Gð (Gð (Gñ Hô Hð
+1ð +1ñHô Hð
+1ðZ „[×Ò˜Xð (Gð (Gð (Gñ Hô Hð
?ð ?ñHô Hð
?ð* „[×ÒÐ 8Ñ9Ô9Ø„[×Ò˜XÐ'>Ñ?Ô?Ø„[×ÒÐ/°°°Ñ;Ô;ð;ð ;ñ <Ô;ñ @Ô?ñ :Ô9ð;ðz<ð <ð <ð
 „[×Ò˜Xð (8ñ 9ô 9ðMð Mñ9ô 9ðMð „[×Ò˜XÐ'LÐ'LÐ'LÑMÔMðDð Dñ NÔMðDð Dð Dr.   rÆ  rŽ   )r  rc  r  rl  r]  c                 ó€   — d„ }t          j        |ddg| ¬¦  «        }|j        sJ ‚t          |j        dgd¬¦  «         d S )Nc                 ó0   — t          j        | dz  ¦  «        S r5  r6  r*   s    r,   rs   z$test_minimize_with_scalar.<locals>.f¹  r–  r.   é   )rý  r)  r:  r\   r±   r—   )r   r¡   r´   r   r+   )rŽ   rs   r¤   s      r,   Útest_minimize_with_scalarr  ³  s[   € ðð ð õ Ô
˜A˜r¨;¨-ÀÐ
GÑ
GÔ
G€CØŒ;ÐÐÐÝ�C”E˜C˜5 tÐ,Ñ,Ô,Ð,Ð,Ð,r.   c                   óž   — e Zd Zd„ Zdd„Zdd„Zdd„Zd„ Zd„ Zd„ Z	e
j                             d	d
dgdd
gd
d
gg¦  «        d„ ¦   «         Zd„ ZdS )ÚTestLBFGSBBoundsc                 ó"   — d| _         d| _        d S )N))r&   N©NN)r&   r   )r  rc   rh   s    r,   rj   zTestLBFGSBBounds.setup_methodÂ  s   € Ø/ˆŒØˆŒˆˆr.   r‰  c                 ó<   — d|z  |d         |z  |d         |z  z   z  S )NrX   r   r&   r…   r   s      r,   r‘   zTestLBFGSBBounds.funÆ  s&   € Ø�Q‰w˜!˜Aœ$ ™' A a¤D¨!¡GÑ+Ñ,Ð,r.   c                 ó   — ||dz
  z  S r%   r…   r   s      r,   r�   zTestLBFGSBBounds.jacÉ  s   € Ø�1�q‘5‰zÐr.   c                 óZ   — |                       ||¦  «        |                      ||¦  «        fS r=   ©r‘   r�   r   s      r,   ÚfjzTestLBFGSBBounds.fjÌ  s%   € Ø�xŠx˜˜1‰~Œ~˜tŸxšx¨¨1™~œ~Ð-Ð-r.   c                 óÆ   — t          j        | j        ddg| j        | j        ¬¦  «        \  }}}|d         dk    sJ |d         ¦   «         ‚t          || j        d¬¦  «         d S )Nr   r?  )rß   r  r©   Útaskr8   r—   )r   r  r‘   r�   r  r   rc   ©ri   r+   rs   r  s       r,   Útest_l_bfgs_b_boundsz%TestLBFGSBBounds.test_l_bfgs_b_boundsÏ  ss   € ÝÔ(¨¬°A°r°7Ø04´Ø04´ð=ñ =ô =‰ˆˆ1ˆað �Œ} Ò!Ð!Ð! 1 V¤9Ñ!Ô!Ð!Ý˜˜4œ=¨tÐ4Ñ4Ô4Ð4Ð4Ð4r.   c                 ó¼   — t          j        | j        ddgd| j        ¬¦  «        \  }}}|d         dk    sJ |d         ¦   «         ‚t	          || j        d¬¦  «         d S )	Nr   r?  ©r‰  )r�   r  r©   r  r8   r—   )r   r  r  r  r   rc   r  s       r,   r  z%TestLBFGSBBounds.test_l_bfgs_b_funjacÖ  sn   € åÔ(¨¬°1°b°'ÀØ04´ð=ñ =ô =‰ˆˆ1ˆaà�Œ} Ò!Ð!Ð! 1 V¤9Ñ!Ô!Ð!Ý˜˜4œ=¨tÐ4Ñ4Ô4Ð4Ð4Ð4r.   c                 óÂ   — t          j        | j        ddgd| j        | j        ¬¦  «        }|d         sJ |d         ¦   «         ‚t          |j        | j        d¬¦  «         d S )	Nr   r?  r  ©rŽ   r�   r  r´   r  r8   r—   )r   r¡   r‘   r�   r  r   r+   rc   r`  s     r,   Útest_minimize_l_bfgs_b_boundsz.TestLBFGSBBounds.test_minimize_l_bfgs_b_boundsÝ  sl   € åÔ ¤¨1¨b¨'¸*Ø$(¤H°T´[ðBñ Bô Bˆà�9Œ~Ð-Ð-˜s 9œ~Ñ-Ô-Ð-Ý˜œ˜tœ}°4Ð8Ñ8Ô8Ð8Ð8Ð8r.   r  )r¼   r&   r­  c                 ó¸   — t          j        t          d¬¦  «        5  t          j        | j        ddgd| j        |¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nz	.*bound.*rÅ   r   r?  r  r  )rÐ   r
   rM   r   r¡   r‘   r�   )ri   r  s     r,   Ú'test_minimize_l_bfgs_b_incorrect_boundsz8TestLBFGSBBounds.test_minimize_l_bfgs_b_incorrect_boundsä  sª   € õ Œ]�:¨[Ð9Ñ9Ô9ð 	;ð 	;ÝÔ˜dœh¨¨B¨¸
Ø"&¤(°6ð;ñ ;ô ;ð ;ð	;ð 	;ð 	;ñ 	;ô 	;ð 	;ð 	;ð 	;ð 	;ð 	;ð 	;ð 	;øøøð 	;ð 	;ð 	;ð 	;ð 	;ð 	;s   œ&AÁAÁAc                 ó  — g d¢}ddg}t          j        ||¦  «        D ]b\  }}t          j        | j        ddg|d|| j        dd i¬¦  «        }|d	         sJ |d
         ¦   «         ‚t          |j        | j        d¬¦  «         Œcd S )Nrà  r  r…   r   r?  r  Úfinite_diff_rel_step)r�   rŽ   r�   r  r�   r´   r  r8   r—   )	rã  rä  r   r¡   r‘   r  r   r+   rc   )ri   ræ  Úargssr�   r�   r¤   s         r,   Ú test_minimize_l_bfgs_b_bounds_FDz1TestLBFGSBBounds.test_minimize_l_bfgs_b_bounds_FDî  s´   € ð
 ,Ð+Ð+ˆØ˜�ˆÝ"Ô*¨4°Ñ7Ô7ð 	=ð 	=‰IˆC�ÝÔ# D¤H¨q°"¨g¸DØ+5Ø(+°D´KØ-CÀTÐ,JðLñ Lô LˆCð �y”>Ð1Ð1 3 y¤>Ñ1Ô1Ð1Ý˜CœE 4¤=°tÐ<Ñ<Ô<Ð<Ð<ð	=ð 	=r.   Nr  )r�   r‚   rƒ   rj   r‘   r�   r  r  r  r   rÐ   rb  rd  r"  r&  r…   r.   r,   r  r  Á  sê   € € € € € ðð ð ð-ð -ð -ð -ðð ð ð ð.ð .ð .ð .ð5ð 5ð 5ð5ð 5ð 5ð9ð 9ð 9ð „[×Ò˜XØ
�7Ð	Ø
�7Ð	Ø
�7Ð	ð(ñ ô ð
;ð ;ñô ð
;ð
=ð =ð =ð =ð =r.   r  c                   óh  — e Zd Zd„ Zd!d„Zd„ Zej                             d¦  «        d„ ¦   «         Z	d„ Z
d„ Zd	„ Zd
„ Zd„ Zd„ Zej                             dg d¢¦  «        d„ ¦   «         Zej                             dg d¢¦  «        d„ ¦   «         Zej                             d¦  «        ej                             dg d¢¦  «        d„ ¦   «         ¦   «         Zd„ Zd„ Zej                             dddg¦  «        d„ ¦   «         Zej                             d¦  «        ej                             de¦  «        ej                             dddg¦  «        ej                             dg d¢¦  «        d„ ¦   «         ¦   «         ¦   «         ¦   «         Zej                             dg d¢¦  «        d„ ¦   «         Zd S )"ÚTestOptimizeScalarc                 ó   — d| _         d S )Nr3   )rc   rh   s    r,   rj   zTestOptimizeScalar.setup_methodÿ  s   € ØˆŒˆˆr.   r3   c                 ó   — ||z
  dz  dz
  S )zObjective functionr1   rÉ   r…   )ri   r+   rs  s      r,   r‘   zTestOptimizeScalar.fun  s   € à�A‘˜‰z˜CÑÐr.   c                 óà  — t          j        | j        ¦  «        }t          || j        d¬¦  «         t          j        | j        d¬¦  «        }t          || j        d¬¦  «         t          j        | j        d¬¦  «        }t          |d         | j        d¬¦  «         t          j        | j        d¬¦  «        }t          || j        d¬¦  «         d	}t          j        t          |¬
¦  «        5  t          j        | j        d¬¦  «         d d d ¦  «         n# 1 swxY w Y   d}t          j        t          |¬
¦  «        5  t          j        | j        d¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr8   r—   ©r�  r§  ©ÚbrackT©r•   r   ©iñÿÿÿr?  é   ú/\(f\(xb\) < f\(xa\)\) and \(f\(xb\) < f\(xc\)\)rÅ   ©r?  r   r&   ú\(xa < xb\) and \(xb < xc\)©r   r?  r&   )r   Úbrentr‘   r   rc   rÐ   r
   rM   )ri   r+   r  s      r,   Ú
test_brentzTestOptimizeScalar.test_brent  sÒ  € ÝŒN˜4œ8Ñ$Ô$ˆÝ˜˜4œ=¨tÐ4Ñ4Ô4Ð4åŒN˜4œ8¨8Ð4Ñ4Ô4ˆÝ˜˜4œ=¨tÐ4Ñ4Ô4Ð4åŒN˜4œ8°Ð6Ñ6Ô6ˆÝ˜˜!œ˜dœm°$Ð7Ñ7Ô7Ð7åŒN˜4œ8¨=Ð9Ñ9Ô9ˆÝ˜˜4œ=¨tÐ4Ñ4Ô4Ð4àDˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	7ð 	7ÝŒN˜4œ8¨:Ð6Ñ6Ô6Ð6ð	7ð 	7ð 	7ñ 	7ô 	7ð 	7ð 	7ð 	7ð 	7ð 	7ð 	7øøøð 	7ð 	7ð 	7ð 	7ð 1ˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	7ð 	7ÝŒN˜4œ8¨:Ð6Ñ6Ô6Ð6ð	7ð 	7ð 	7ñ 	7ô 	7ð 	7ð 	7ð 	7ð 	7ð 	7ð 	7ð 	7øøøð 	7ð 	7ð 	7ð 	7ð 	7ð 	7s$   Ã*DÄDÄDÄ:E#Å#E'Å*E'rÚ   c                 ó  — t          j        | j        ¦  «        }t          || j        d¬¦  «         t          j        | j        d¬¦  «        }t          || j        d¬¦  «         t          j        | j        d¬¦  «        }t          |d         | j        d¬¦  «         t          j        | j        d¬¦  «        }t          || j        d¬¦  «         t          j        | j        d¬	¦  «        }t          || j        ¦  «         g d
¢}|D ]]}t          j        | j        dd¬¦  «        }t          j        | j        |d¬¦  «        }|d         |d         }}t          ||z
  |¦  «         Œ^d}t          j        t          |¬¦  «        5  t          j        | j        d¬¦  «         d d d ¦  «         n# 1 swxY w Y   d}t          j        t          |¬¦  «        5  t          j        | j        d¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr8   r—   r,  r-  Tr/  r   r0  ©rþ  )r   r&   rÌ   )rd   r•   r1   r2  rÅ   r3  r4  r5  )	r   Úgoldenr‘   r   rc   r   rÐ   r
   rM   )ri   r+   Úmaxiter_test_casesrd   rQ   Únfev0r’   r  s           r,   Útest_goldenzTestOptimizeScalar.test_golden  sk  € åŒO˜DœHÑ%Ô%ˆÝ˜˜4œ=¨tÐ4Ñ4Ô4Ð4åŒO˜DœH¨HÐ5Ñ5Ô5ˆÝ˜˜4œ=¨tÐ4Ñ4Ô4Ð4åŒO˜DœH°$Ð7Ñ7Ô7ˆÝ˜˜!œ˜dœm°$Ð7Ñ7Ô7Ð7åŒO˜DœH¨MÐ:Ñ:Ô:ˆÝ˜˜4œ=¨tÐ4Ñ4Ô4Ð4åŒO˜DœH¨!Ð,Ñ,Ô,ˆÝ˜˜4œ=Ñ)Ô)Ð)à&˜Y˜YÐØ)ð 	0ð 	0ˆGÝ” ¤°1À$ÐGÑGÔGˆBÝ” ¤°'ÀtÐLÑLÔLˆAØ˜Qœ%  1¤�4ˆEÝ˜ ™ wÑ/Ô/Ð/Ð/àDˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	8ð 	8ÝŒO˜DœH¨JÐ7Ñ7Ô7Ð7ð	8ð 	8ð 	8ñ 	8ô 	8ð 	8ð 	8ð 	8ð 	8ð 	8ð 	8øøøð 	8ð 	8ð 	8ð 	8ð 1ˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	8ð 	8ÝŒO˜DœH¨JÐ7Ñ7Ô7Ð7ð	8ð 	8ð 	8ñ 	8ô 	8ð 	8ð 	8ð 	8ð 	8ð 	8ð 	8ð 	8øøøð 	8ð 	8ð 	8ð 	8ð 	8ð 	8s$   Å>F&Æ&F*Æ-F*ÇG7Ç7G;Ç>G;c                 óÂ  — t          j        | j        dd¦  «        }t          |dd¬¦  «         t          j        | j        dd¦  «        }t          || j        d¬¦  «         t          j        | j        t          j        dg¦  «        t          j        dg¦  «        ¦  «        }t          || j        d¬¦  «         t          t          t           j        | j        dd¦  «         d S )Nr   r&   rµ  r—   rÌ   r8   )	r   Ú	fminboundr‘   r   rc   r(   rH   rL   rM   r  s     r,   Útest_fminboundz!TestOptimizeScalar.test_fminbound;  s¼   € ÝÔ˜tœx¨¨AÑ.Ô.ˆÝ˜˜1 4Ð(Ñ(Ô(Ð(åÔ˜tœx¨¨AÑ.Ô.ˆÝ˜˜4œ=¨tÐ4Ñ4Ô4Ð4åÔ˜tœx­¬°1°#©¬½¼À!À¹¼ÑFÔFˆÝ˜˜4œ=¨tÐ4Ñ4Ô4Ð4Ý•j¥(Ô"4°d´hÀÀ1ÑEÔEÐEÐEÐEr.   c                 óN  — t          j        t          d¬¦  «        5  t          j        | j        t          j        d¦  «        d¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        | j        dt          j        d¦  «        ¦  «        }t          || j
        d¬¦  «         d S )Nz.*must be finite scalars.*rÅ   ©r&   r1   r&   rÌ   r8   r—   )rÐ   r
   rM   r   r?  r‘   r(   r`   rH   r   rc   r  s     r,   Útest_fminbound_scalarz(TestOptimizeScalar.test_fminbound_scalarF  sË   € ÝŒ]�:Ð-IÐJÑJÔJð 	>ð 	>ÝÔ˜tœx­¬°&Ñ)9Ô)9¸1Ñ=Ô=Ð=ð	>ð 	>ð 	>ñ 	>ô 	>ð 	>ð 	>ð 	>ð 	>ð 	>ð 	>øøøð 	>ð 	>ð 	>ð 	>õ Ô˜tœx¨­B¬H°Q©K¬KÑ8Ô8ˆÝ˜˜4œ=¨tÐ4Ñ4Ô4Ð4Ð4Ð4s   œ.AÁAÁAc                 ó8   — d„ }t          j        |dd¦  «         d S )Nc                 ó   — | dz  S r5  r…   r*   s    r,   r‘   z,TestOptimizeScalar.test_gh11207.<locals>.funN  rª  r.   r   )r   r?  )ri   r‘   s     r,   Útest_gh11207zTestOptimizeScalar.test_gh11207M  s,   € ð	ð 	ð 	åÔ˜3  1Ñ%Ô%Ð%Ð%Ð%r.   c                 óî  — t          j        | j        ¦  «        j        }t	          || j        d¬¦  «         t          j        | j        d¬¦  «        }|j        sJ ‚t          j        | j        dt          d¬¦  «        ¬¦  «        }|j        rJ ‚t          j        | j        dd	d¬
¦  «        j        }t	          || j        d¬¦  «         t          j        | j        dd	¬¦  «        j        }t	          || j        d¬¦  «         t          j        | j        dd	d¬
¦  «        j        }t	          || j        d¬¦  «         t          j        | j        dd	d¬
¦  «        j        }t	          || j        d¬¦  «         t          j        | j        dd	¬¦  «        j        }t	          || j        d¬¦  «         t          j        | j        dd	d¬
¦  «        j        }t	          || j        d¬¦  «         t          j        | j        dd	d¬¦  «        j        }t	          |dd¬¦  «         t          j        | j        dd	d¬¦  «        j        }t	          || j        d¬¦  «         t          j        | j        t          j	        dg¦  «        t          j	        dg¦  «        ft          j	        dg¦  «        fd¬¦  «        j        }t	          || j        d¬¦  «         t          t          t           j        | j        ddd	¬¦  «         t          t          t           j        | j        t          j        d¦  «        dfdd	¬¦  «         t          j        | j        dt          j	        d¦  «        fd¬¦  «        j        }t	          || j        d¬¦  «         d S )Nr8   r—   ÚBrentr°   r[   r  rê   r,  ©r3   )Úbracketr�   rŽ   )rŽ   r�   r0  r:  )r   r&   ÚBounded)r  r�   rŽ   r&   rµ  )r&   rÌ   ÚboundedrÌ   r3   )rÌ   r&   ©r  rŽ   r�   r1   r:  )r   Úminimize_scalarr‘   r+   r   rc   r´   rK  r(   rH   rL   rM   r`   r  s     r,   Útest_minimize_scalarz'TestOptimizeScalar.test_minimize_scalarR  s°  € åÔ$ T¤XÑ.Ô.Ô0ˆÝ˜˜4œ=¨tÐ4Ñ4Ô4Ð4åÔ$ T¤X°gÐ>Ñ>Ô>ˆØŒyÐÐÐåÔ$ T¤X°gÝ-1¸!¨_©_¬_ð>ñ >ô >ˆà”9ÐÐÐåÔ$ T¤X°xØ*1¸'ðCñ Cô CÜCDð 	
å˜˜4œ=¨tÐ4Ñ4Ô4Ð4åÔ$ T¤X°gØ*0ð2ñ 2ô 2Ü23ð 	
å˜˜4œ=¨tÐ4Ñ4Ô4Ð4åÔ$ T¤X°}Ø*1¸'ðCñ Cô CÜCDð 	
å˜˜4œ=¨tÐ4Ñ4Ô4Ð4åÔ$ T¤X°xØ*1¸(ðDñ Dô DÜDEð 	
å˜˜4œ=¨tÐ4Ñ4Ô4Ð4åÔ$ T¤X°hØ*0ð2ñ 2ô 2Ü23ð 	
å˜˜4œ=¨tÐ4Ñ4Ô4Ð4åÔ$ T¤X°}Ø*1¸(ðDñ Dô DÜDEð 	
å˜˜4œ=¨tÐ4Ñ4Ô4Ð4åÔ$ T¤X°fÀ6Ø,5ð7ñ 7ô 7Ü78ð 	
å˜˜1 4Ð(Ñ(Ô(Ð(åÔ$ T¤X°fÀ7Ø,5ð7ñ 7ô 7Ü78ð 	
å˜˜4œ=¨tÐ4Ñ4Ô4Ð4åÔ$ T¤Xµr´xÀÀ±}´}Ý79´xÀÀ±}´}ð7Få+-¬8°S°E©?¬?Ð*=Ø,5ð7ñ 7ô 7ô 89ð 	
õ 	˜˜4œ=¨tÐ4Ñ4Ô4Ð4å•j¥(Ô":¸D¼HØ#¨I¸Gð	Eñ 	Eô 	Eð 	Eõ 	•j¥(Ô":¸D¼HÝ œh q™kœk¨1Ð-°iÀgð	Oñ 	Oô 	Oð 	Oõ Ô$ T¤X°q½"¼(À1¹+¼+Ð6FØ,5ð7ñ 7ô 7Ü78ð 	
å˜˜4œ=¨tÐ4Ñ4Ô4Ð4Ð4Ð4r.   c                 ó    — 	 	 dd„}t          j        | j        d|t          d¬¦  «        ¬¦  «        }t	          |j        | j        d	¬
¦  «         d S )Nr…   r:   r)  c                 ó>  — |d         |d         z   dz  } | |¦  «        }	d}
d}d}d}|rX|sV||k     rPd}|dz  }||z
  ||z   fD ]} | |g|¢R Ž }|
dz  }
||	k     r|}	|}d}Œ|� ||¦  «         |�	|
|k    rd}n
|r|s||k     °Pt          j        |	|||
|dk    ¬¦  «        S )Nr&   r   r‰  TFrB  rX  )r‘   rJ  r�   rm  rD  rd   r  r�   rE  rF  rG  rH  rI  rJ  rM  rN  s                   r,   rO  z?TestOptimizeScalar.test_minimize_scalar_custom.<locals>.custmin�  s)  € à˜Q”Z '¨!¤*Ñ,°Ñ3ˆEØ�C˜‘J”JˆEØˆHØˆEØˆHØˆDàð  4ð ¨E°GªO¨OØ �Ø˜‘
�Ø# hÑ.°¸Ñ0@ÐAð (ð (�EØ˜C Ð-¨Ð-Ð-Ð-�EØ ‘M�HØ˜u’}�}Ø %˜Ø %˜Ø#'˜øØÐ'Ø�H˜U‘O”O�OØÐ%¨(°fÒ*<Ð*<Ø�DØð ð  4ð ¨E°GªO¨Oõ  Ô*¨u¸À5Ø08À5È1Â9ðOñ Oô Oð Or.   )r   r›   rQ  rR  )rJ  rŽ   r�   r8   r—   rS  )r   rN  r‘   rK  r   r+   rc   )ri   rO  r¤   s      r,   Útest_minimize_scalar_customz.TestOptimizeScalar.test_minimize_scalar_customŽ  st   € àADØ*.ð	Oð 	Oð 	Oð 	Oõ8 Ô& t¤x¸Ø.5Ý/3¸TÐ/BÑ/BÔ/BðDñ Dô Dˆõ 	˜œ˜tœ}°4Ð8Ñ8Ô8Ð8Ð8Ð8r.   c                 ó<   — t          j        | j        d¬¦  «         d S )Nr3   ©r�   ©r   rN  r‘   rh   s    r,   Ú&test_minimize_scalar_coerce_args_paramz9TestOptimizeScalar.test_minimize_scalar_coerce_args_param±  s    € åÔ  ¤°Ð4Ñ4Ô4Ð4Ð4Ð4r.   rŽ   )r6  rL  r:  c                 óJ   — dD ]}t          j        | j        d|i¬¦  «         Œ d S )N)r   r&   r1   r[   rŠ   )r�   rU  )ri   rŽ   rŠ   s      r,   Ú	test_dispzTestOptimizeScalar.test_dispµ  s@   € ð !ð 	Gð 	GˆDÝÔ$ T¤X¸À°~ÐFÑFÔFÐFÐFð	Gð 	Gr.   c                 ó,  — |dk    rdddgini }t          j        | j        fd|i|¤Ž}t          |d¦  «        sJ ‚t          |d¦  «        sJ ‚t          |d¦  «        sJ ‚t          |d	¦  «        sJ ‚t          |d
¦  «        sJ ‚t          |d¦  «        sJ ‚d S )NrL  r  r¥  r¼   rŽ   r+   r´   r  r‘   r’   rí   )r   rN  r‘   rš  )ri   rŽ   rº  rB  s       r,   Útest_result_attributesz)TestOptimizeScalar.test_result_attributes»  sÈ   € à*0°IÒ*=Ð*=�(˜S "˜IÐ&Ð&À2ˆÝÔ)¨$¬(ÐLÐL¸6ÐLÀVÐLÐLˆÝ�v˜sÑ#Ô#Ð#Ð#Ð#Ý�v˜yÑ)Ô)Ð)Ð)Ð)Ý�v˜yÑ)Ô)Ð)Ð)Ð)Ý�v˜uÑ%Ô%Ð%Ð%Ð%Ý�v˜vÑ&Ô&Ð&Ð&Ð&Ý�v˜uÑ%Ô%Ð%Ð%Ð%Ð%Ð%r.   c           
      ó>  ‡— t           j                             d¦  «         dgŠˆfd„}d}d}t          j        d¬¦  «        5  t	          ¦   «         5 }|                     t          d¦  «         |                     t          d	¦  «         |                     t          d
¦  «         dgŠ|dk    rd|ini }t          j	        |fd|i|¤|t          d¬¦  «        dœ¤Ž}t          |j        d¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )Nr5   r   c                 óŽ   •— ‰dxx         dz  cc<   ‰d         dk    rt           j        S | dz  dt          j        | ¦  «        z  z   S )Nr   r&   r›   r1   r:   )r(   rÎ  r>   rÍ  s    €r,   rt   z0TestOptimizeScalar.test_nan_values.<locals>.funcÎ  sG   ø€ Ø�!ˆHˆHŒH˜‰MˆHˆH‰HØ�QŒx˜!Š|ˆ|Ý”v�à˜!‘t˜c¥B¤F¨1¡I¤I™oÑ-Ð-r.   r3  rœ  rà   rÕ  rÕ  rÖ  r×  rL  r  rJ  rù  r  rê   F)r(   r4   r7   rã   r	   rØ  rÙ  r¡  r   rN  rK  r   r´   )	ri   rŽ   rt   rJ  r  rß  rº  rµ   rÎ  s	           @r,   rá  z"TestOptimizeScalar.test_nan_valuesÆ  sÝ  ø€ õ 	Œ	�Š�tÑÔÐà�ˆð	.ð 	.ð 	.ð 	.ð 	.ð ˆØˆåŒ[ Ð*Ñ*Ô*ð 	-ð 	-Õ,=Ñ,?Ô,?ð 	-À3Ø�JŠJ•{Ð$7Ñ8Ô8Ð8Ø�JŠJ•~Ð'AÑBÔBÐBØ�JŠJ•~Ð'BÑCÔCÐCà�CˆEà+1°YÒ+>Ð+>�h Ð'Ð'ÀBˆFÝÔ*¨4ð Eð E¸ð EØ-3ðEØ<BÝ37ÀÐ3CÑ3CÔ3CðEð Eð Eð EˆCõ ˜œ eÑ,Ô,Ð,ð	-ð 	-ð 	-ñ 	-ô 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-øøøð 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-ñ 	-ô 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-øøøð 	-ð 	-ð 	-ð 	-ð 	-ð 	-s7   ÁDÁBC:Ã.DÃ:C>	Ã>DÄC>	ÄDÄDÄDc                 ó¾   — d„ }t          j        |¦  «        }t          |j        dd¬¦  «         t          j        |dddi¬¦  «        }t          |j        d	¦  «         d S )
Nc                 ó   — | dz  S r5  r…   r*   s    r,   rs   zCTestOptimizeScalar.test_minimize_scalar_defaults_gh10911.<locals>.fè  rª  r.   r   rô   r—   )r&   r)  r‚  r¨  )r  r�   r&   )r   rN  r   r+   )ri   rs   r¤   s      r,   Ú%test_minimize_scalar_defaults_gh10911z8TestOptimizeScalar.test_minimize_scalar_defaults_gh10911å  sx   € ð	ð 	ð 	õ Ô& qÑ)Ô)ˆÝ˜œ˜q tÐ,Ñ,Ô,Ð,åÔ& q°Ø07¸Ð/?ðAñ Aô Aˆå˜œ˜qÑ!Ô!Ð!Ð!Ð!r.   c                 óˆ  — d}t          j        t          |¬¦  «        5  t          j        t
          j        dt
          j        f¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          |¬¦  «        5  t          j        t
          j        t
          j        df¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nz+Optimization bounds must be finite scalars.rÅ   r&   r¬  )	rÐ   r
   rM   r   rN  r(   r>   r¯  rÎ  rý  s     r,   Ú'test_minimize_non_finite_bounds_gh10911z:TestOptimizeScalar.test_minimize_non_finite_bounds_gh10911ò  sM  € ð <ˆÝŒ]�:¨SÐ1Ñ1Ô1ð 	Að 	AÝÔ$¥R¤V°Q½¼°KÐ@Ñ@Ô@Ð@ð	Að 	Að 	Añ 	Aô 	Að 	Að 	Að 	Að 	Að 	Að 	Aøøøð 	Að 	Að 	Að 	AåŒ]�:¨SÐ1Ñ1Ô1ð 	Að 	AÝÔ$¥R¤VµR´V¸Q°KÐ@Ñ@Ô@Ð@ð	Að 	Að 	Añ 	Aô 	Að 	Að 	Að 	Að 	Að 	Að 	Að 	Aøøøð 	Að 	Að 	Að 	Að 	Að 	As#   ž-AÁAÁAÁ=-B7Â7B;Â>B;r6  r:  c                 ó´   — d}t          j        t          |¬¦  «        5  t          j        t
          j        |d¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nz'Use of `bounds` is incompatible with...rÅ   rB  ©rŽ   r  )rÐ   r
   rM   r   rN  r(   r>   )ri   rŽ   r{  s      r,   Ú2test_minimize_unbounded_method_with_bounds_gh10911zETestOptimizeScalar.test_minimize_unbounded_method_with_bounds_gh10911û  s°   € ð 8ˆÝŒ]�:¨SÐ1Ñ1Ô1ð 	Kð 	KÝÔ$¥R¤V°FÀ6ÐJÑJÔJÐJð	Kð 	Kð 	Kñ 	Kô 	Kð 	Kð 	Kð 	Kð 	Kð 	Kð 	Kð 	Køøøð 	Kð 	Kð 	Kð 	Kð 	Kð 	Ks   ž"AÁAÁArk  rþ  r&   r8   Úfshape)r…   ©r&   ©r&   r&   c                 óZ  ‡— ˆfd„}d\  }}|dk    rt          ||f¬¦  «        nt          ||f¬¦  «        }|                     t          ||¬¦  «        ¦  «         t          j        |fi |¤Ž}|j        j        |j        j        cxk    r  ||j        ¦  «        j        cxk    r‰k    sn J ‚d S )Nc                 óX   •— t          j        | dz  ¦  «                             ‰¦  «        S ©Nr›   )r(   rH   Úreshape)r+   re  s    €r,   rs   zITestOptimizeScalar.test_minimize_scalar_dimensionality_gh16196.<locals>.f  s#   ø€ Ý”8˜A˜q™D‘>”>×)Ò)¨&Ñ1Ô1Ð1r.   )rþ   rE   rL  )rJ  r¬  )rŽ   rþ  )rK  Úupdater   rN  r+   Úshaper‘   )	ri   rŽ   rþ  re  rs   rs  Úbrº  r¤   s	      `     r,   Ú+test_minimize_scalar_dimensionality_gh16196z>TestOptimizeScalar.test_minimize_scalar_dimensionality_gh16196  sá   ø€ ð	2ð 	2ð 	2ð 	2ð 	2ð ‰ˆˆ1Ø*0°IÒ*=Ð*=•$  1˜vÐ&Ñ&Ô&Ð&Ý A q 6Ð*Ñ*Ô*ð 	à�Š•d &¨cÐ2Ñ2Ô2Ñ3Ô3Ð3åÔ& qÐ3Ð3¨FÐ3Ð3ˆØŒuŒ{˜cœgœmÐGÐGÒGÐG¨q¨q°´©x¬x¬~ÐGÐGÒGÐGÀÒGÐGÐGÐGÐGÐGÐGÐGr.   )rL  r6  r:  c                 ó
  — d„ }i }|dk    rdnd}ddg||<   ddd	œ}t          j        t          j        d
¬¦  «        5  t          j        |f||dœ|¤Ž d d d ¦  «         n# 1 swxY w Y   d|d<   t          j        |f||dœ|¤Ž d S )Nc                 ó   — | dz
  dz  S r0   r…   r*   s    r,   rs   zBTestOptimizeScalar.test_minimize_scalar_warnings_gh1953.<locals>.f  r†  r.   rL  r  rJ  r§  r¼   Tr[   r  r  rÅ   rê   FrŠ   )rÐ   r   r   rŸ  rN  )ri   rŽ   rs   rº  Úkwdr�   s         r,   Ú$test_minimize_scalar_warnings_gh1953z7TestOptimizeScalar.test_minimize_scalar_warnings_gh1953  s  € ð	ð 	ð 	ð ˆØ  IÒ-Ð-ˆhˆh°9ˆØ˜2�hˆˆs‰à¨AÐ.Ð.ˆÝŒ\�(Ô2Ð:JÐKÑKÔKð 	/ð 	/ÝÔ$ Qð /¨v¸wð /ð /Ø'-ð/ð /ð /ð	/ð 	/ð 	/ñ 	/ô 	/ð 	/ð 	/ð 	/ð 	/ð 	/ð 	/øøøð 	/ð 	/ð 	/ð 	/ð  ˆ�‰ÝÔ  ÐM¨6¸7ÐMÐMÀfÐMÐMÐMÐMÐMs   ¼AÁA"Á%A"NrI  )r�   r‚   rƒ   rj   r‘   r7  rÐ   rb  rc  r=  r@  rC  rF  rO  rR  rV  rd  rX  rZ  rá  r_  ra  rd  r   ro  rs  r…   r.   r,   r(  r(  þ  s¹  € € € € € ðð ð ð ð  ð  ð  ð7ð 7ð 7ð* „[×ÒÐ 5Ñ6Ô6ð8ð 8ñ 7Ô6ð8ð>	Fð 	Fð 	Fð5ð 5ð 5ð&ð &ð &ð
:5ð :5ð :5ðx!9ð !9ð !9ðF5ð 5ð 5ð „[×Ò˜XÐ'EÐ'EÐ'EÑFÔFðGð Gñ GÔFðGð
 „[×Ò˜XÐ'EÐ'EÐ'EÑFÔFð&ð &ñ GÔFð&ð „[×ÒÐ 5Ñ6Ô6Ø„[×Ò˜XÐ'EÐ'EÐ'EÑFÔFð-ð -ñ GÔFñ 7Ô6ð-ð:"ð "ð "ðAð Að Að „[×Ò˜X¨°Ð':Ñ;Ô;ðKð Kñ <Ô;ðKð „[×ÒÐ 8Ñ9Ô9Ø„[×Ò˜XÐ'>Ñ?Ô?Ø„[×Ò˜U Q¨ IÑ.Ô.Ø„[×Ò˜XÐ'9Ð'9Ð'9Ñ:Ô:ðHð Hñ ;Ô:ñ /Ô.ñ @Ô?ñ :Ô9ðHð „[×Ò˜XÐ'EÐ'EÐ'EÑFÔFðNð Nñ GÔFðNð Nð Nr.   r(  c                   óœ   — e Zd Zej                             d¦  «        d„ ¦   «         Zej                             dd¦  «        d„ ¦   «         ZdS )ÚTestBracketrk  c                 ó  — d„ }d}t          j        t          |¬¦  «        5  t          j        |dd¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          |¬¦  «        5  t          j        |dt
          j        ¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          |¬¦  «        5  t          j        |d¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          |¬¦  «        5  t          j        |d¬¦  «         d d d ¦  «         n# 1 swxY w Y   d„ }d	}t          j        t          |¬¦  «        5  t          j        |d
dd¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nc                 ó*   — d| k     | dk     z  r| dz  ndS ©Nr?  r&   r1   g      Y@r…   r*   s    r,   rs   z3TestBracket.test_errors_and_status_false.<locals>.f/  ó"   € Ø !šV¨¨AªÑ.Ð:�1�a‘4�4°UÐ:r.   ú9The algorithm terminated without finding a valid bracket.rÅ   r?  r&   rœ  r-  c                 óZ   — d| dz  z  d| dz  z  z   d| dz  z  z
  d| dz  z  z   d| z  z
  dz   S )	Nr¤  rÌ   r›   é   r[   é   r1   r&   r…   r*   s    r,   rs   z3TestBracket.test_errors_and_status_false.<locals>.f<  sE   € Ø˜˜1™‘9˜q 1 a¡4™xÑ'¨"¨q°!©t©)Ñ3°b¸1¸a¹4±iÑ?À!ÀaÁ%ÑGÈ!ÑKÐKr.   z8No valid bracket was found before the iteration limit...rœ   rZ   r¼   r  )	rÐ   r
   rl   r   rJ  r(   r¯  r6  r:  )ri   rs   r  s      r,   Útest_errors_and_status_falsez(TestBracket.test_errors_and_status_false,  sÄ  € ð	;ð 	;ð 	;ð NˆÝŒ]�<¨wÐ7Ñ7Ô7ð 	'ð 	'ÝÔ˜Q  AÑ&Ô&Ð&ð	'ð 	'ð 	'ñ 	'ô 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'øøøð 	'ð 	'ð 	'ð 	'åŒ]�<¨wÐ7Ñ7Ô7ð 	,ð 	,ÝÔ˜Q ¥B¤FÑ+Ô+Ð+ð	,ð 	,ð 	,ñ 	,ô 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,øøøð 	,ð 	,ð 	,ð 	,åŒ]�<¨wÐ7Ñ7Ô7ð 	-ð 	-ÝŒN˜1 GÐ,Ñ,Ô,Ð,ð	-ð 	-ð 	-ñ 	-ô 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-øøøð 	-ð 	-ð 	-ð 	-åŒ]�<¨wÐ7Ñ7Ô7ð 	.ð 	.ÝŒO˜A WÐ-Ñ-Ô-Ð-ð	.ð 	.ð 	.ñ 	.ô 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.øøøð 	.ð 	.ð 	.ð 	.ð	Lð 	Lð 	Lð MˆÝŒ]�<¨wÐ7Ñ7Ô7ð 	7ð 	7ÝÔ˜Q  c°2Ð6Ñ6Ô6Ð6ð	7ð 	7ð 	7ñ 	7ô 	7ð 	7ð 	7ð 	7ð 	7ð 	7ð 	7ð 	7øøøð 	7ð 	7ð 	7ð 	7ð 	7ð 	7sY   ¡AÁAÁAÁ*!BÂBÂBÂ=C Ã C$Ã'C$ÄD)Ä)D-Ä0D-ÅE:Å:E>ÆE>rŽ   )r6  r:  c                 ó´   — d„ }d}t          j        |d|¬¦  «        }|j        rJ ‚||j        v sJ ‚|j        dk    sJ ‚|j        dk    sJ ‚|j        dk    sJ ‚d S )Nc                 ó*   — d| k     | dk     z  r| dz  ndS rx  r…   r*   s    r,   rs   z9TestBracket.test_minimize_scalar_success_false.<locals>.fF  ry  r.   rz  rœ  )rJ  rŽ   r[   r   r)  )r   rN  r´   r  r’   rí   r‘   )ri   rŽ   rs   r  r¤   s        r,   Ú"test_minimize_scalar_success_falsez.TestBracket.test_minimize_scalar_success_falseC  s‚   € ð	;ð 	;ð 	;ð NˆåÔ& q°'À&ÐIÑIÔIˆØ”;ÐÐÐØ˜#œ+Ð%Ð%Ð%Ð%ØŒx˜1Š}ˆ}ˆ}ˆ}ØŒw˜!Š|ˆ|ˆ|ˆ|ØŒw˜#Š~ˆ~ˆ~ˆ~ˆ~ˆ~r.   N)	r�   r‚   rƒ   rÐ   rb  rc  r~  rd  r�  r…   r.   r,   ru  ru  *  sn   € € € € € à„[×ÒÐ 8Ñ9Ô9ð7ð 7ñ :Ô9ð7ð, „[×Ò˜XÐ':Ñ;Ô;ðð ñ <Ô;ðð ð r.   ru  c                  ó^   — t          t          t          j        t          j        d¬¦  «         d S )Ng{®Gáz„¿r9  )rL   rM   r   r6  r(   rC   r…   r.   r,   Útest_brent_negative_tolerancerƒ  S  s#   € Ý•*�hœn­b¬f¸$Ð?Ñ?Ô?Ð?Ð?Ð?r.   c                   ó&   — e Zd Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestNewtonCgc                 ó$  — t          j        ddg¦  «        }t          j        t          j        |t          j        t          j        dd¬¦  «        }|j        sJ |j        ¦   «         ‚t          |j
        t          j        ddg¦  «        d¬¦  «         d S ©	Nrò   rX   r±   r@  ©r�   r}   rþ  rŽ   r&   rµ  r²   )r(   rH   r   r¡   r   r   r   r´   r  r   r+   ©ri   rQ   rµ   s      r,   Útest_rosenbrockzTestNewtonCg.test_rosenbrockX  s‰   € ÝŒX�t˜S�kÑ"Ô"ˆÝÔ¥¤°Ý$,Ô$6Ý%-Ô%8Ø$(Ø'2ð	4ñ 4ô 4ˆð
 Œ{Ð'Ð'˜CœKÑ'Ô'Ð'Ý˜œ�rœx¨¨A¨Ñ/Ô/°dÐ;Ñ;Ô;Ð;Ð;Ð;r.   c                 ó&  — t          j        t          ¦  «        }t          j        t
          |t          t          dd¬¦  «        }|j        sJ |j	        ¦   «         ‚t          |j        t          d¬¦  «         t          |j        t          d¬¦  «         d S )Nr@  r8   )r�   r}   rŽ   rþ  rµ  r²   r—   )r(   rH   rP   r   r¡   Ú
himmelblaurN   rO   r´   r  r   r+   Úhimmelblau_xoptr‘   Úhimmelblau_minr‰  s      r,   Útest_himmelblauzTestNewtonCg.test_himmelblaub  s‡   € ÝŒX•mÑ$Ô$ˆÝÔ¥
Ø "Ý$3Ý%4Ø'2Ø$(ð*ñ *ô *ˆð Œ{Ð'Ð'˜CœKÑ'Ô'Ð'Ý˜œ�°TÐ:Ñ:Ô:Ð:Ý˜œ¥°dÐ;Ñ;Ô;Ð;Ð;Ð;r.   c                 ó  — t          j        ddg¦  «        }t          j        t          j        |t          j        ddd¬¦  «        }|j        sJ |j        ¦   «         ‚t          |j	        t          j        ddg¦  «        d¬	¦  «         d S )
Nrò   rX   rá  r±   r@  rˆ  r&   rµ  r²   )
r(   rH   r   r¡   r   r   r´   r  r   r+   r‰  s      r,   Útest_finite_differencez#TestNewtonCg.test_finite_differencen  s†   € ÝŒX�t˜S�kÑ"Ô"ˆÝÔ¥¤°Ý$,Ô$6Ø%.Ø$(Ø'2ð	4ñ 4ô 4ˆð
 Œ{Ð'Ð'˜CœKÑ'Ô'Ð'Ý˜œ�rœx¨¨A¨Ñ/Ô/°dÐ;Ñ;Ô;Ð;Ð;Ð;r.   c                 ó2  — t          j        ddg¦  «        }t          j        t          j        |t          j        t          j        ¦   «         dd¬¦  «        }|j        sJ |j        ¦   «         ‚t          |j
        t          j        ddg¦  «        d¬¦  «         d S r‡  )r(   rH   r   r¡   r   r   r¸   r´   r  r   r+   r‰  s      r,   Útest_hessian_update_strategyz)TestNewtonCg.test_hessian_update_strategyx  sŒ   € ÝŒX�t˜S�kÑ"Ô"ˆÝÔ¥¤°Ý$,Ô$6Ý%-¤]¡_¤_Ø$(Ø'2ð	4ñ 4ô 4ˆð
 Œ{Ð'Ð'˜CœKÑ'Ô'Ð'Ý˜œ�rœx¨¨A¨Ñ/Ô/°dÐ;Ñ;Ô;Ð;Ð;Ð;r.   N)r�   r‚   rƒ   rŠ  r�  r‘  r“  r…   r.   r,   r…  r…  W  sP   € € € € € ð<ð <ð <ð
<ð 
<ð 
<ð<ð <ð <ð<ð <ð <ð <ð <r.   r…  c                  óB  — t           j        j        } t          j        g d¢¦  «        }t          j        g d¢¦  «        }t          j        g d¢¦  «        }t          j        g d¢¦  «        }|t          j        g d¢¦  «        ddf|t          j        g d¢¦  «        d	d
f|t          j        g d¢¦  «        ddf|t          j        g d¢¦  «        ddf|t          j        g d¢¦  «        d	d
f|t          j        g d¢¦  «        ddf|t          j        g d¢¦  «        ddf|t          j        g d¢¦  «        ddf|t          j        g d¢¦  «        dd	f|t          j        g d¢¦  «        ddf|t          j        g d¢¦  «        ddf|t          j        g d¢¦  «        dd	f|t          j        g d¢¦  «        ddff}|D ]<\  }}}}	 | ||||¦  «        \  }
}t          |
|d¬¦  «         t          ||	d¬¦  «         Œ=t          j        t          j         d	t          j         dg¦  «        }t          j        t          j        d
dt          j        g¦  «        }|t          j        g d¢¦  «        t          j         t          j        f|t          j        g d¢¦  «        d	d
f|t          j        g d¢¦  «        t          j         df|t          j        g d¢¦  «        dt          j        f|t          j        g d¢¦  «        d	d
f|t          j        g d¢¦  «        dt          j        f|t          j        g d¢¦  «        t          j         t          j        f|t          j        g d¢¦  «        dd	f|t          j        g d¢¦  «        t          j         df|t          j        g d¢¦  «        dt          j        f|t          j        g d¢¦  «        dd	f|t          j        g d¢¦  «        dt          j        ff}|D ]<\  }}}}	 | ||||¦  «        \  }
}t          |
|d¬¦  «         t          ||	d¬¦  «         Œ=d S )N)ç333333Àr?  r®   r�  )rÊ   r&   çffffff@r[   ©r\   r   r   r   )r\   r1   r�  r   ©rX   r   r   r   r•  rÊ   ©r\   r&   r   r   r?  r&   ©r\   r   r&   r   r®   r–  ©r\   r   r   r&   r�  r[   )rX   r&   r   r   )rX   r   r?  r1   r3   )r‰  r   r?  r1   gffffffî?g333333@)rX   r   r?  r   r8   r—   g333333À)r   ru  Ú_line_for_searchr(   rH   r   r¯  )Úline_for_searchÚlower_boundÚupper_boundrQ   Úx1Ú	all_testsr+   ÚalphaÚlminÚlmaxÚmiÚmas               r,   Útest_line_for_searchr§  ƒ  s%  € õ
 Ô(Ô9€Oõ ”(Ð/Ð/Ð/Ñ0Ô0€KÝ”(Ð+Ð+Ð+Ñ,Ô,€Kõ 
Œ�-�-�-Ñ	 Ô	 €Bå	Œ�.�.�.Ñ	!Ô	!€Bð 
�RŒX�m�m�mÑ$Ô$ d¨CÐ0Ø	�RŒX�m�m�mÑ$Ô$ b¨!Ð,Ø	�RŒX�m�m�mÑ$Ô$ d¨CÐ0Ø	�RŒX�m�m�mÑ$Ô$ b¨!Ð,Ø	�RŒX�m�m�mÑ$Ô$ b¨!Ð,Ø	�RŒX�n�n�nÑ%Ô% t¨SÐ1Ø	�RŒX�n�n�nÑ%Ô% t¨TÐ2Ø	�RŒX�m�m�mÑ$Ô$ d¨CÐ0Ø	�RŒX�m�m�mÑ$Ô$ b¨"Ð-Ø	�RŒX�m�m�mÑ$Ô$ c¨3Ð/Ø	�RŒX�m�m�mÑ$Ô$ b¨!Ð,Ø	�RŒX�m�m�mÑ$Ô$ b¨"Ð-Ø	�RŒX�n�n�nÑ%Ô% t¨TÐ2ð€Ið  !*ð -ð -Ñˆˆ5�$˜Ø �  E¨;¸ÑDÔD‰ˆˆBÝ˜˜D tÐ,Ñ,Ô,Ð,Ý˜˜D tÐ,Ñ,Ô,Ð,Ð,õ ”(�RœV˜G R­"¬&¨°"Ð5Ñ6Ô6€KÝ”(�BœF A s­B¬FÐ3Ñ4Ô4€Kð 
�RŒX�m�m�mÑ$Ô$¥r¤v g­r¬vÐ6Ø	�RŒX�m�m�mÑ$Ô$ b¨!Ð,Ø	�RŒX�m�m�mÑ$Ô$¥r¤v g¨sÐ3Ø	�RŒX�m�m�mÑ$Ô$ b­"¬&Ð1Ø	�RŒX�m�m�mÑ$Ô$ b¨!Ð,Ø	�RŒX�n�n�nÑ%Ô% t­R¬VÐ4Ø	�RŒX�m�m�mÑ$Ô$¥r¤v g­r¬vÐ6Ø	�RŒX�m�m�mÑ$Ô$ b¨"Ð-Ø	�RŒX�m�m�mÑ$Ô$¥r¤v g¨sÐ3Ø	�RŒX�m�m�mÑ$Ô$ b­"¬&Ð1Ø	�RŒX�m�m�mÑ$Ô$ b¨"Ð-Ø	�RŒX�n�n�nÑ%Ô% t­R¬VÐ4ð€Ið !*ð -ð -Ñˆˆ5�$˜Ø �  E¨;¸ÑDÔD‰ˆˆBÝ˜˜D tÐ,Ñ,Ô,Ð,Ý˜˜D tÐ,Ñ,Ô,Ð,Ð,ð-ð -r.   c            
      óÄ  — t           j        j        } d„ }t          j        g d¢¦  «        } ||¦  «        }t          j        t          j         gdz  ¦  «        }t          j        t          j        gdz  ¦  «        }t          j        g d¢¦  «        dft          j        g d¢¦  «        dft          j        g d¢¦  «        d	ft          j        g d
¢¦  «        dft          j        g d¢¦  «        dft          j        g d¢¦  «        dft          j        g d¢¦  «        dff}|D ]¿\  }} | ||||d¬¦  «        \  }	}
}t          |	 |||z  ¦  «        d¬¦  «         t          |
||z  d¬¦  «         t          |||z  d¬¦  «          | |||d|||¬¦  «        \  }	}
}t          |	 |||z  ¦  «        d¬¦  «         t          |
||z  d¬¦  «         t          |||z  d¬¦  «         ŒÀd S )Nc                 ó^   — t          j        | t          j        g d¢¦  «        z
  dz  ¦  «        S ©N)rÄ  r‰  r3   çš™™™™™Ù¿r1   ©r(   r?   rH   r*   s    r,   rt   z$test_linesearch_powell.<locals>.funcÇ  ó-   € ÝŒv�q�2œ8Ð$:Ð$:Ð$:Ñ;Ô;Ñ;ÀÑAÑBÔBÐBr.   r—  r›   r˜  r?  r™  r1   rš  r3   r›  r«  ©rÄ  r   r&   r   ç      ô?©r\   r   r&   r&   çš™™™™™á?©r‰  r   r?  r&   çÍÌÌÌÌÌä¿r±   )Úfvalrþ  r8   r—   ©rþ  rž  rŸ  r´  )r   ru  Ú_linesearch_powellr(   rH   r¯  r   ©Úlinesearch_powellrt   r˜  r´  rž  rŸ  r¡  ÚxiÚlrs   rx   r6   s               r,   Útest_linesearch_powellr»  Â  s6  € å Ô*Ô=ÐðCð Cð Cå	Œ�-�-�-Ñ	 Ô	 €BØˆ4�‰8Œ8€DÝ”(�RœV˜G˜9 q™=Ñ)Ô)€KÝ”(�BœF˜8 a™<Ñ(Ô(€Kõ 
Œ�-�-�-Ñ	 Ô	  "Ð%Ý	Œ�-�-�-Ñ	 Ô	  !Ð$Ý	Œ�-�-�-Ñ	 Ô	  #Ð&Ý	Œ�-�-�-Ñ	 Ô	  #Ð&Ý	Œ�.�.�.Ñ	!Ô	! 4Ð(Ý	Œ�-�-�-Ñ	 Ô	  #Ð&Ý	Œ�.�.�.Ñ	!Ô	! 4Ð(ð€Ið ð 6ð 6‰ˆˆAØ+Ð+¨D°"°bØ15¸4ðAñ Aô A‰ˆˆ1ˆiå˜˜4˜4  B¡™<œ<¨dÐ3Ñ3Ô3Ð3Ý˜˜1˜r™6¨Ð-Ñ-Ô-Ð-Ý˜	 1 r¡6°Ð5Ñ5Ô5Ð5à+Ð+¨D°"°b¸dØ8CØ8CØ15ð7ñ 7ô 7‰ˆˆ1ˆiõ 	˜˜4˜4  B¡™<œ<¨dÐ3Ñ3Ô3Ð3Ý˜˜1˜r™6¨Ð-Ñ-Ô-Ð-Ý˜	 1 r¡6°Ð5Ñ5Ô5Ð5Ð5ð6ð 6r.   c            
      ó  — t           j        j        } d„ }t          j        g d¢¦  «        } ||¦  «        }t          j        dgdz  ¦  «        }t          j        dgdz  ¦  «        }t          j        g d¢¦  «        dft          j        g d¢¦  «        d	ft          j        g d
¢¦  «        dft          j        g d¢¦  «        dft          j        g d¢¦  «        dft          j        g d¢¦  «        dft          j        g d¢¦  «        dff}|D ]c\  }} | |||d|||¬¦  «        \  }	}
}t          |	 |||z  ¦  «        d¬¦  «         t          |
||z  d¬¦  «         t          |||z  d¬¦  «         Œdt          j        dgdz  dgz   ¦  «        }t          j        dgdz  dgz   ¦  «        }t          j        g d¢¦  «        dft          j        g d¢¦  «        dft          j        g d
¢¦  «        dft          j        g d¢¦  «        dft          j        g d¢¦  «        dft          j        g d¢¦  «        dft          j        g d¢¦  «        dff}|D ]c\  }} | |||d|||¬¦  «        \  }	}
}t          |	 |||z  ¦  «        d¬¦  «         t          |
||z  d¬¦  «         t          |||z  d¬¦  «         Œdt          j        g d¢¦  «        } ||¦  «        }t          j        g d¢¦  «        dft          j        g d¢¦  «        dft          j        g d
¢¦  «        dft          j        g d¢¦  «        d ff}|D ]i\  }} | |||d|||¬¦  «        \  }	}
}t          |	 ||||z  z   ¦  «        d¬¦  «         t          |
|||z  z   d¬¦  «         t          |||z  d¬¦  «         Œjt          j        g d¢¦  «        } ||¦  «        }t          j        dt          j         t          j         dg¦  «        }t          j        t          j        dt          j        dg¦  «        }t          j        g d¢¦  «        dft          j        g d¢¦  «        dft          j        g d
¢¦  «        dft          j        g d¢¦  «        dft          j        g d¢¦  «        dft          j        g d¢¦  «        dft          j        g d¢¦  «        dff}|D ]c\  }} | |||d|||¬¦  «        \  }	}
}t          |	 |||z  ¦  «        d¬¦  «         t          |
||z  d¬¦  «         t          |||z  d¬¦  «         Œdt          j        g d¢¦  «        } ||¦  «        }t          j        g d¢¦  «        dft          j        g d¢¦  «        dft          j        g d
¢¦  «        dft          j        g d¢¦  «        d ff}|D ]i\  }} | |||d|||¬¦  «        \  }	}
}t          |	 ||||z  z   ¦  «        d¬¦  «         t          |
|||z  z   d¬¦  «         t          |||z  d¬¦  «         Œjd S )!Nc                 ó^   — t          j        | t          j        g d¢¦  «        z
  dz  ¦  «        S rª  r¬  r*   s    r,   rt   z,test_linesearch_powell_bounded.<locals>.funcí  r­  r.   r—  g       Àr›   r‰  r˜  r?  r™  r1   rš  r3   r›  r«  r®  r¯  r°  r±  r²  r³  r±   rµ  r8   r—   g333333Ó¿r[   gÍÌÌÌÌÌÜ?rú   rY   g333333Ã¿)rÄ  r   r   r1   rÈ   g333333À)r   ru  r¶  r(   rH   r   r¯  r·  s               r,   Útest_linesearch_powell_boundedr¾  è  s  € å Ô*Ô=ÐðCð Cð Cå	Œ�-�-�-Ñ	 Ô	 €BØˆ4�‰8Œ8€Dõ ”(˜C˜5 ™7Ñ#Ô#€KÝ”(˜B˜4 ™6Ñ"Ô"€Kõ 
Œ�-�-�-Ñ	 Ô	  "Ð%Ý	Œ�-�-�-Ñ	 Ô	  !Ð$Ý	Œ�-�-�-Ñ	 Ô	  #Ð&Ý	Œ�-�-�-Ñ	 Ô	  #Ð&Ý	Œ�.�.�.Ñ	!Ô	! 4Ð(Ý	Œ�-�-�-Ñ	 Ô	  #Ð&Ý	Œ�.�.�.Ñ	!Ô	! 4Ð(ð€Ið ð 6ð 6‰ˆˆAØ+Ð+¨D°"°b¸dØ8CØ8CØ15ð7ñ 7ô 7‰ˆˆ1ˆiõ 	˜˜4˜4  B¡™<œ<¨dÐ3Ñ3Ô3Ð3Ý˜˜1˜r™6¨Ð-Ñ-Ô-Ð-Ý˜	 1 r¡6°Ð5Ñ5Ô5Ð5Ð5õ ”(˜C˜5 ™7 b T™>Ñ*Ô*€KÝ”(˜C˜5 ™7 b T™>Ñ*Ô*€Kõ 
Œ�-�-�-Ñ	 Ô	  #Ð&Ý	Œ�-�-�-Ñ	 Ô	  #Ð&Ý	Œ�-�-�-Ñ	 Ô	  #Ð&Ý	Œ�-�-�-Ñ	 Ô	  #Ð&Ý	Œ�.�.�.Ñ	!Ô	! 2Ð&Ý	Œ�-�-�-Ñ	 Ô	  #Ð&Ý	Œ�.�.�.Ñ	!Ô	! 4Ð(ð€Ið ð 6ð 6‰ˆˆAØ+Ð+¨D°"°b¸dØ8CØ8CØ15ð7ñ 7ô 7‰ˆˆ1ˆiõ 	˜˜4˜4  B¡™<œ<¨dÐ3Ñ3Ô3Ð3Ý˜˜1˜r™6¨Ð-Ñ-Ô-Ð-Ý˜	 1 r¡6°Ð5Ñ5Ô5Ð5Ð5õ 
Œ�.�.�.Ñ	!Ô	!€BØˆ4�‰8Œ8€Dõ 
Œ�-�-�-Ñ	 Ô	  "Ð%Ý	Œ�-�-�-Ñ	 Ô	  #Ð&Ý	Œ�-�-�-Ñ	 Ô	  #Ð&Ý	Œ�-�-�-Ñ	 Ô	  $Ð'ð	€Ið ð 6ð 6‰ˆˆAØ+Ð+¨D°"°b¸dØ8CØ8CØ15ð7ñ 7ô 7‰ˆˆ1ˆiõ 	˜˜4˜4  Q¨¡V¡Ñ,Ô,°4Ð8Ñ8Ô8Ð8Ý˜˜2  B¡™;¨TÐ2Ñ2Ô2Ð2Ý˜	 1 r¡6°Ð5Ñ5Ô5Ð5Ð5õ 
Œ�-�-�-Ñ	 Ô	 €BØˆ4�‰8Œ8€Dõ ”(˜C¥"¤& ­2¬6¨'°2Ð6Ñ7Ô7€KÝ”(�BœF C­¬°Ð4Ñ5Ô5€Kõ 
Œ�-�-�-Ñ	 Ô	  #Ð&Ý	Œ�-�-�-Ñ	 Ô	  #Ð&Ý	Œ�-�-�-Ñ	 Ô	  #Ð&Ý	Œ�-�-�-Ñ	 Ô	  #Ð&Ý	Œ�.�.�.Ñ	!Ô	! 2Ð&Ý	Œ�-�-�-Ñ	 Ô	  #Ð&Ý	Œ�.�.�.Ñ	!Ô	! 4Ð(ð€Ið ð 6ð 6‰ˆˆAØ+Ð+¨D°"°b¸dØ8CØ8CØ15ð7ñ 7ô 7‰ˆˆ1ˆiõ 	˜˜4˜4  B¡™<œ<¨dÐ3Ñ3Ô3Ð3Ý˜˜1˜r™6¨Ð-Ñ-Ô-Ð-Ý˜	 1 r¡6°Ð5Ñ5Ô5Ð5Ð5õ 
Œ�.�.�.Ñ	!Ô	!€BØˆ4�‰8Œ8€Dõ 
Œ�-�-�-Ñ	 Ô	  "Ð%Ý	Œ�-�-�-Ñ	 Ô	  #Ð&Ý	Œ�-�-�-Ñ	 Ô	  #Ð&Ý	Œ�-�-�-Ñ	 Ô	  $Ð'ð	€Ið ð 6ð 6‰ˆˆAØ+Ð+¨D°"°b¸dØ8CØ8CØ15ð7ñ 7ô 7‰ˆˆ1ˆiõ 	˜˜4˜4  Q¨¡V¡Ñ,Ô,°4Ð8Ñ8Ô8Ð8Ý˜˜2  B¡™;¨TÐ2Ñ2Ô2Ð2Ý˜	 1 r¡6°Ð5Ñ5Ô5Ð5Ð5ð6ð 6r.   c                  óä   ‡— t          j        ddgddg¦  «        Šˆfd„} t          j        | ddgd‰¬¦  «         t          j        dgdgdg¬	¦  «        Šd
„ }t          j        |dgd‰¬¦  «         d S )Nr   g333333ã?rù  c                 óœ   •— | \  }}| ‰j         k                         ¦   «         r| ‰j        k                         ¦   «         sJ ‚|dz  |dz  z   S r5  )ÚlbrG   Úub)r+   rs  rn  r  s      €r,   r‘   ztest_powell_limits.<locals>.funi	  sS   ø€ Ø‰ˆˆ1Ø�V”Y’×#Ò#Ñ%Ô%Ð@¨1°´	ª>×*>Ò*>Ñ*@Ô*@Ð@Ð@Ð@Ø�A‰v˜˜Q™‰Ðr.   r  r  r&   T)rÁ  rÂ  Úkeep_feasiblec                 óF   — | dk    r| dk    sJ ‚t          j        | ¦  «        S rÃ  r'   r*   s    r,   rt   z test_powell_limits.<locals>.funcs	  s%   € Ø�AŠvˆv˜!˜qš&˜&˜&˜&ÝŒv�a‰yŒyÐr.   rZ   rb  )r‘   rQ   rŽ   r  )r   r   r¡   )r‘   rt   r  s     @r,   Útest_powell_limitsrÅ  e	  s¦   ø€ åŒ_˜a ˜V c¨2 YÑ/Ô/€Fðð ð ð ð õ
 Ô�c˜s B˜i°ÀÐHÑHÔHÐHõ Œ_  ¨!¨¸d¸WÐEÑEÔE€Fðð ð õ Ô˜$ C 5°À&ÐIÑIÔIÐIÐIÐIr.   c                   ó   — e Zd Zd„ ZdS )Ú	TestRosenc                 óö   — t          j        g d¢¦  «        }t          j        g d¢¦  «        }t          j        ||¦  «        }t          j        t          j        |¦  «        |¦  «        }t          ||¦  «         d S )N)r[   r›   rÌ   )r1   r1   r1   )r(   rH   r   Úrosen_hess_prodrm   r   r   )ri   r+   rx   ÚhpÚdothps        r,   Ú	test_hesszTestRosen.test_hess|	  sl   € åŒH�Y�Y�YÑÔˆÝŒH�Y�Y�YÑÔˆÝÔ% a¨Ñ+Ô+ˆÝ”•xÔ*¨1Ñ-Ô-¨qÑ1Ô1ˆÝ�R˜ÑÔÐÐÐr.   N)r�   r‚   rƒ   rÌ  r…   r.   r,   rÇ  rÇ  z	  s#   € € € € € ð ð  ð  ð  ð  r.   rÇ  c                 óN   — | \  }}||z  |z   dz
  }|||z  z   dz
  }||z  ||z  z   S )zx
    R^2 -> R^1 test function for optimization. The function has four local
    minima where himmelblau(xopt) == 0.
    r}  rš   r…   )rx   r+   r2  rs  rn  s        r,   rŒ  rŒ  …	  sA   € ð
 �D€A€qØ	ˆ!‰ˆa‰�"‰€AØ	ˆAˆa‰C‰�!‰€AØˆQ‰3��1‘‰9Ðr.   c                 ó¼   — | \  }}t          j        d|dz  z  d|z  |z  z   d|z  z
  d|dz  z  z   dz
  d|dz  z  d|z  |z  z   d|dz  z  z   d|z  z
  dz
  g¦  «        S )Nr›   r[   é*   r1   é   é   rN  r_  ©rx   r+   r2  s      r,   rN   rN   �	  s‡   € Ø�D€A€qÝŒ8�Q�q˜!‘t‘V˜a ™c !™e‘^ b¨¡dÑ*¨Q¨q°!©t©VÑ3°bÑ8Ø�q˜!‘t‘V˜a ™c !™e‘^ a¨¨1©¡fÑ,¨r°!©tÑ3°bÑ8ð:ñ ;ô ;ð ;r.   c                 ó    — | \  }}t          j        d|dz  z  d|z  z   dz
  d|z  d|z  z   gd|z  d|z  z   d|z  d|dz  z  z   dz
  gg¦  «        S )Nr|  r1   r›   rÏ  rÑ  r_  rÒ  s      r,   rO   rO   –	  su   € Ø�D€A€qÝŒ8�b˜˜A™‘g  !¡‘m bÑ(¨!¨A©#°°!±©)Ð4Ø˜‘c˜A˜a™C‘i  1¡ r¨!¨Q©$¡w¡°Ñ!3Ð4ð6ñ 7ô 7ð 7r.   gHáz®GÑ¿gÍÌÌÌÌÌì¿r[   r1   r\   c                  ó    — d„ } d„ }d„ }d| dœd|dœd|dœf}d„ }t          j        |g d¢d|¬	¦  «        }t          |j        g d
¢d¬¦  «         d S )Nc                 ót   — t          j        dd| d         z  z
  d| d         z  z
  d| d         z  z
  g¦  «        S )Né   rE   r   r¥  r&   r¦  r1   r_  r*   s    r,   rt   z0test_minimize_multiple_constraints.<locals>.func£	  s;   € ÝŒx˜˜c A a¤D™j™¨3°°1´©:Ñ5¸¸qÀ¼t¹ÑCÐDÑEÔEÐEr.   c                 ó8   — t          j        | d         g¦  «        S r%   r_  r*   s    r,   Úfunc1z1test_minimize_multiple_constraints.<locals>.func1¦	  ó   € ÝŒx˜˜1œ˜ÑÔÐr.   c                 ó8   — t          j        | d         g¦  «        S r5  r_  r*   s    r,   rÏ  z1test_minimize_multiple_constraints.<locals>.func2©	  rÙ  r.   r“  r”  c                 ó<   — d| d         | d         z   | d         z   z  S )Nr?  r   r&   r1   r…   r*   s    r,   rs   z-test_minimize_multiple_constraints.<locals>.f°	  s"   € Ø�Q�q”T˜A˜aœD‘[ 1 Q¤4Ñ'Ñ(Ð(r.   rž  r˜  r–  )é}   r   r   r¨  r—   r<  )rt   rØ  rÏ  r’  rs   r¤   s         r,   Ú"test_minimize_multiple_constraintsrÝ  ¡	  s«   € ðFð Fð Fð ð  ð  ð ð  ð  ð  DÐ)Ð)Ø EÐ*Ð*Ø EÐ*Ð*ð,€Dð)ð )ð )õ Ô
˜A˜y˜y˜y°ÀdÐ
KÑ
KÔ
K€CÝ�C”E˜;˜;˜;¨UÐ3Ñ3Ô3Ð3Ð3Ð3r.   c                   ó   — e Zd Zd„ Zd„ ZdS )ÚTestOptimizeResultAttributesc                 ó²   — ddg| _         t          j        | _        t          j        | _        t          j        | _        t          j        | _	        ddg| _
        d S )NrÌ   )r\   ró  )rQ   r   r   rt   r   r�   r   r}   rÉ  r€   r  rh   s    r,   rj   z)TestOptimizeResultAttributes.setup_methodº	  sD   € Ø�a�&ˆŒÝ”NˆŒ	ÝÔ%ˆŒÝÔ'ˆŒ	ÝÔ-ˆŒ
Ø  )Ð,ˆŒˆˆr.   c           
      ó¾  — g d¢}ddgi}t           D ]Ë}t          ¦   «         5 }|                     t          d¦  «         t	          j        | j        | j        || j        | j	        | j
        ¬¦  «        }d d d ¦  «         n# 1 swxY w Y   |D ]6}||v r|||         v rŒt          ||¦  «        sJ ‚|t          |¦  «        v sJ ‚Œ7t          |j        t          ¦  «        sJ ‚ŒÌd S )N)rí   r’   r+   r´   r”   r‘   r  rd  rí   z7Method .+ does not use (gradient|Hessian.*) information)rŽ   r�   r}   r€   )r   r	   rØ  r¡  r   r¡   rt   rQ   r�   r}   r€   rš  Údirry  r  Ústr)ri   Ú
attributesÚskiprŽ   rß  r¤   Ú	attributes          r,   Útest_attributes_presentz4TestOptimizeResultAttributes.test_attributes_presentÂ	  s\  € ð!ð !ð !ˆ
à˜5˜'Ð"ˆÝ&ð 	0ð 	0ˆFÝ"Ñ$Ô$ð :¨Ø—
’
�>ð+ñ-ô -ð -õ Ô'¨¬	°4´7À6Ø,0¬H¸4¼9Ø.2¬jð:ñ :ô :�ð	:ð :ð :ñ :ô :ð :ð :ð :ð :ð :ð :øøøð :ð :ð :ð :ð (ð -ð -�	Ø˜T�>�> i°4¸´<Ð&?Ð&?Øå˜s IÑ.Ô.Ð.Ð.Ð.Ø ¥C¨¡H¤HÐ,Ð,Ð,Ð,Ð,õ ˜cœk­3Ñ/Ô/Ð/Ð/Ð/Ð/ð!	0ð 	0s   ¡AA<Á<B 	ÂB 	N)r�   r‚   rƒ   rj   rç  r…   r.   r,   rß  rß  ·	  s2   € € € € € ð-ð -ð -ð0ð 0ð 0ð 0ð 0r.   rß  c                 ó~   — | \  }}|\  }}}}}}	}
}}}}}}||dz  z  ||z  |z  z   ||dz  z  z   ||z  z   ||z  z   |	z   S r5  r…   ©r]  r¥   r+   r2  rs  rn  r  r  rÝ   rs   r8  rà  rz  r.  r<  rº  rÁ  s                    r,   Úf1rê  Ù	  sj   € Ø�D€A€qØ06Ñ-€A€qˆ!ˆQ��1�a˜˜A˜q ! Q¨Ø��1‘‰H�q˜1‘u˜q‘yÑ  1 q¨!¡t¡8Ñ+¨a°©cÑ1°A°a±CÑ7¸!Ñ;Ð<r.   c                 ó‚   — | \  }}|\  }}}}}}	}
}}}}}}|
 t          j        ||z
  dz  ||z
  dz  z    |z  ¦  «        z  S r5  r'   ré  s                    r,   Úf2rì  ß	  ó_   € Ø�D€A€qØ06Ñ-€A€qˆ!ˆQ��1�a˜˜A˜q ! Q¨ØˆB�rŒv˜˜1™˜q™ A a¡C¨!¡8Ñ+Ð,¨uÑ4Ñ5Ô5Ñ5Ð6r.   c                 ó‚   — | \  }}|\  }}}}}}	}
}}}}}}| t          j        ||z
  dz  ||z
  dz  z    |z  ¦  «        z  S r5  r'   ré  s                    r,   Úf3rï  å	  rí  r.   c                 óT   — t          | g|¢R Ž t          | g|¢R Ž z   t          | g|¢R Ž z   S r=   )rê  rì  rï  )r]  r¥   s     r,   Ú
brute_funcrñ  ë	  s6   € Ýˆaˆ>�&ˆ>ˆ>ˆ>�B˜q˜N 6˜N˜N˜NÑ*­R°¨^°F¨^¨^¨^Ñ;Ð;r.   c                   óx   — e Zd Zd„ Zd„ Zd„ Zd„ Zej         	                    d¦  «        d„ ¦   «         Z
d„ Zd„ Zd	S )
Ú	TestBrutec                 ó˜   — d| _         t          ddd¦  «        t          ddd¦  «        f| _        t          j        ddg¦  «        | _        d S )N)r1   r[   rš   r½   r™   r¼   é,   r?  r1   rÑ  r&   r§  rZ   r�  r›   ç      Ð?g_}ú×èð¿g•÷iÃþîü?)r¥   ÚsliceÚrrangesr(   rH   rc   rh   s    r,   rj   zTestBrute.setup_methodñ	  sG   € ØDˆŒÝ˜b ! TÑ*Ô*­E°"°a¸Ñ,>Ô,>Ð?ˆŒÝœ +¨zÐ!:Ñ;Ô;ˆŒˆˆr.   c                 ó   — t          |g|¢R Ž S r=   )rñ  )ri   r]  r¥   s      r,   rñ  zTestBrute.brute_funcö	  s   € å˜!Ð%˜fÐ%Ð%Ð%Ð%r.   c                 ó”  — t          j        t          | j        | j        dt           j        ¬¦  «        }t          |d         | j        d¬¦  «         t          |d         t          | j        g| j        ¢R Ž d¬¦  «         t          j        t          | j        | j        dt           j        ¬¦  «        }t          |d         | j        d¬¦  «         t          |d         t          | j        g| j        ¢R Ž d¬¦  «         t          j        | j        | j        | j        dt           j        ¬¦  «        }t          |d         | j        d¬¦  «         d S )NT©r�   r•   Úfinishr   ré   r—   r&   )	r   Úbruterñ  rø  r¥   r"  r   rc   r¡   )ri   Úresbrutes     r,   Ú
test_brutezTestBrute.test_bruteú	  sK  € å”>¥*¨d¬lÀÄØ.2½8¼=ðJñ Jô Jˆå˜ œ T¤]¸Ð>Ñ>Ô>Ð>Ý˜ œ¥Z°´Ð%LÀÄÐ%LÐ%LÐ%LØ!ð	#ñ 	#ô 	#ð 	#õ ”>¥*¨d¬lÀÄØ.2Ý)1Ô):ð<ñ <ô <ˆõ 	˜ œ T¤]¸Ð>Ñ>Ô>Ð>Ý˜ œ¥Z°´Ð%LÀÄÐ%LÐ%LÐ%LØ!ð	#ñ 	#ô 	#ð 	#õ
 ”> $¤/°4´<Ø'+¤{ÀÝ)1Ô):ð<ñ <ô <ˆõ 	˜ œ T¤]¸Ð>Ñ>Ô>Ð>Ð>Ð>r.   c                 ó>   — d„ }t          j        |dgdd ¬¦  «         d S )Nc                 óf   — t          | j        ¦  «        dk    sJ ‚| j        d         dk    sJ ‚| dz  S )Nr&   r   r1   )r   rm  r*   s    r,   rs   zTestBrute.test_1D.<locals>.f
  s7   € Ý�q”w‘<”< 1Ò$Ð$Ð$Ð$Ø”7˜1”: ’?�?�?�?Ø˜‘6ˆMr.   rœ  r[   )ÚNsrü  )r   rý  )ri   rs   s     r,   Útest_1DzTestBrute.test_1D
  s4   € ð	ð 	ð 	õ
 	Œ�q˜7˜)¨°$Ð7Ñ7Ô7Ð7Ð7Ð7r.   rÌ   c                 ó  — t          j        t          | j        | j        dd ¬¦  «        }t          j        t          | j        | j        dd d¬¦  «        }t          |d         |d         ¦  «         t          |d         |d         ¦  «         d S )NTrû  r1   )r�   r•   rü  Úworkersr?  r   )r   rý  rñ  rø  r¥   r   )ri   rþ  Ú	resbrute1s      r,   Útest_workerszTestBrute.test_workers
  s�   € õ ”>¥*¨d¬lÀÄØ.2¸4ðAñ Aô Aˆõ ”N¥:¨t¬|À$Ä+Ø/3¸DÈ!ðMñ Mô Mˆ	õ 	˜	 "œ x°¤|Ñ4Ô4Ð4Ý˜	 !œ h¨q¤kÑ2Ô2Ð2Ð2Ð2r.   c                 ó   ‡— t           j                             d¦  «        Šˆfd„}d}t          j        t
          |¬¦  «        5  t          j        || j        | j	        d¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr5   c                 ó4   •— ‰                      d¦  «        dz  S rh  ri  )r]  r¥   rj  s     €r,   rt   z,TestBrute.test_runtime_warning.<locals>.func*
  s   ø€ Ø—:’:˜a‘=”= 4Ñ'Ð'r.   zFfinal optimization did not succeed.*|Maximum number of function eval.*rÅ   T)r�   rŠ   )
r(   r4   rn  rÐ   r   r¡  r   rý  rø  r¥   )ri   Úcapsysrt   r{  rj  s       @r,   r¢  zTestBrute.test_runtime_warning'
  sã   ø€ ÝŒi×#Ò# DÑ)Ô)ˆð	(ð 	(ð 	(ð 	(ð 	(ð WˆÝŒ\�.°Ð4Ñ4Ô4ð 	Lð 	LÝŒN˜4 ¤°D´KÀdÐKÑKÔKÐKð	Lð 	Lð 	Lñ 	Lô 	Lð 	Lð 	Lð 	Lð 	Lð 	Lð 	Lð 	Løøøð 	Lð 	Lð 	Lð 	Lð 	Lð 	Ls   Á#A3Á3A7Á:A7c                 óz   — d„ }t          j        |t          ddd¦  «        fd¬¦  «        }t          |d¦  «         d S )Nc                 ó   — | |d         z  S rF  r…   )r+   r�   s     r,   rs   z+TestBrute.test_coerce_args_param.<locals>.f3
  s   € Ø˜˜Qœ‘<Ðr.   r�  r›   rö  r1   rT  r   )r   rý  r÷  r   )ri   rs   rþ  s      r,   Útest_coerce_args_paramz TestBrute.test_coerce_args_param1
  sN   € ð	 ð 	 ð 	 õ ”> !¥e¨B°°3Ñ&7Ô&7Ð%9ÀÐBÑBÔBˆÝ˜ !Ñ$Ô$Ð$Ð$Ð$r.   N)r�   r‚   rƒ   rj   rñ  rÿ  r  rÐ   rb  r
  r  r¢  r  r…   r.   r,   ró  ró  ï	  s�   € € € € € ð<ð <ð <ð
&ð &ð &ð?ð ?ð ?ð.8ð 8ð 8ð „[×Ò˜1ÑÔð	3ð 	3ñ Ôð	3ðLð Lð Lð%ð %ð %ð %ð %r.   ró  r¼   c                  óŠ  ‡‡‡‡	— dd l } dd lŠ	ˆ	fd„Šˆ	fd„ŠdŠˆˆfd„}ˆˆfd„}| j                             ¦   «         5 }g }|                     |                     |¦  «        ¦  «         |                     |                     |¦  «        ¦  «         |D ]}|                     ¦   «          Œ	 d d d ¦  «         d S # 1 swxY w Y   d S )Nr   c                 óD   •— ‰                      d¦  «         | d         dz  S )Nr:   r   r1   ©Úsleep©r+   Útimes    €r,   Ú
objective1z*test_cobyla_threadsafe.<locals>.objective1B
  s   ø€ Ø�
Š
�3‰ŒˆØ�Œt�Q‰wˆr.   c                 óJ   •— ‰                      d¦  «         | d         dz
  dz  S )Nr:   r   r&   r1   r  r  s    €r,   Ú
objective2z*test_cobyla_threadsafe.<locals>.objective2F
  s$   ø€ Ø�
Š
�3‰ŒˆØ�!”�Q‘˜‰{Ðr.   ÚCOBYLAc                  ó4   •— t          j        ‰dg‰ ¬¦  «        S ©Nr\   r°   rr  )Ú
min_methodr  s   €€r,   Ú
minimizer1z*test_cobyla_threadsafe.<locals>.minimizer1L
  ó'   ø€ ÝÔ  Ø'* eØ-7ð9ñ 9ô 9ð 	9r.   c                  ó4   •— t          j        ‰dg‰ ¬¦  «        S r  rr  )r  r  s   €€r,   Ú
minimizer2z*test_cobyla_threadsafe.<locals>.minimizer2Q
  r  r.   )Úconcurrent.futuresr  ÚfuturesÚThreadPoolExecutorro   ÚsubmitrB  )
Ú
concurrentr  r  ÚpoolÚtasksr®  r  r  r  r  s
         @@@@r,   Útest_cobyla_threadsafer&  :
  sn  øøøø€ ð
 ÐÐÐØ€K€K€Kðð ð ð ð ðð ð ð ð ð €Jð9ð 9ð 9ð 9ð 9ð 9ð
9ð 9ð 9ð 9ð 9ð 9ð
 
Ô	×	.Ò	.Ñ	0Ô	0ð °DØˆØ�Š�T—[’[ Ñ,Ô,Ñ-Ô-Ð-Ø�Š�T—[’[ Ñ,Ô,Ñ-Ô-Ð-Øð 	ð 	ˆAØ�HŠH‰JŒJˆJˆJð	ð	ð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   ¾A,B8Â8B<Â?B<c                   ól   — e Zd Zd„ Zd„ Zej                             d¦  «        d„ ¦   «         Zd„ Z	d„ Z
dS )ÚTestIterationLimitsc                 ó   — d| _         d S rF  )rG  rh   s    r,   rj   z TestIterationLimits.setup_methodb
  s   € ØˆŒˆˆr.   c                 óö   — | xj         dz  c_         t          j        |d         dz  |d         dz  z   ¦  «        t          j        |d         |d         ¦  «        }}t          j        |dz  |z   ¦  «        |dz  z   S )Nr&   r   r1   rù  rZ   )rG  r(   rÚ  Úarctan2r>   )ri   r%  rR   r®  s       r,   Ú	slow_funczTestIterationLimits.slow_funce
  sn   € ØˆŒ˜ÑˆŒÝŒw�q˜”t˜Q‘w˜q œt Q™w‘Ñ'Ô'­¬°A°a´D¸!¸A¼$Ñ)?Ô)?ˆ1ˆÝŒv�a˜‘d˜Q‘hÑÔ  #¡Ñ%Ð%r.   rÌ   c                 ó2   — |                       dd¦  «         d S )Nrl  éÈ   ©Úcheck_limitsrh   s    r,   Útest_neldermead_limitz)TestIterationLimits.test_neldermead_limitj
  s   € à×Ò˜-¨Ñ-Ô-Ð-Ð-Ð-r.   c                 ó2   — |                       dd¦  «         d S )Nrb  r]   r/  rh   s    r,   Útest_powell_limitz%TestIterationLimits.test_powell_limitn
  s   € Ø×Ò˜( DÑ)Ô)Ð)Ð)Ð)r.   c           
      óö  — ddgddgddgfD �]ë}dD ]`}d| _         t          j        | j        ||d|i¬¦  «        }| j         |d         k    sJ ‚|d	         r|d         |k     sJ ‚ŒR|d         |k    sJ ‚ŒadD ]F}t          j        | j        ||d
|i¬¦  «        }|d	         r|d         |k    sJ ‚Œ8|d         |k    sJ ‚ŒGddgddgdt          j        gfD ]|\  }}d| _         t          j        | j        ||||dœ¬¦  «        }| j         |d         k    sJ ‚|d	         r|d         |k     r|d         |k    sJ ‚Œb|d         |k    s|d         |k    sJ ‚Œ}t          j        d gd t          j        gfD ]�\  }}d| _         t          j        | j        ||||dœ¬¦  «        }| j         |d         k    sJ ‚|d	         r&|€|d         |dz  k     sJ ‚Œ[|d         |dz  k    sJ ‚Œm|d         |dz  k    s|d         |dz  k    sJ ‚ŒŽ�Œíd S )Nr:   r&   r1   )r*  iô  éˆ  r   rm  rê   r’   r´   rd   rí   r*  r5  )rd   rm  )rG  r   r¡   r,  r(   r¯  )ri   rŽ   Údefault_itersÚstart_vÚmfevr¤   Úmits          r,   r0  z TestIterationLimits.check_limitsq
  s  € Ø˜c˜
 Q¨ F¨Q°¨FÐ3ð ,	>ñ ,	>ˆGØ'ð 	/ð 	/�Ø !�”ÝÔ'¨¬¸Ø/5Ø19¸4Ð0@ðBñ Bô B�ð ”}¨¨F¬Ò3Ð3Ð3Ð3Ø�y”>ð /Ø˜vœ;¨Ò-Ð-Ð-Ð-Ð-à˜vœ;¨$Ò.Ð.Ð.Ð.Ð.Ø&ð -ð -�ÝÔ'¨¬¸Ø/5Ø1:¸CÐ0@ðBñ Bô B�ð �y”>ð -Ø˜uœ:¨Ò,Ð,Ð,Ð,Ð,à˜uœ:¨Ò,Ð,Ð,Ð,Ð,Ø! 2˜h¨¨t¨°t½R¼V°nÐEð 
Dð 
D‘	��cØ !�”ÝÔ'¨¬¸Ø/5Ø<?Ø;?ð1Að 1AðBñ Bô B�ð ”}¨¨F¬Ò3Ð3Ð3Ð3Ø�y”>ð DØ˜vœ;¨Ò-Ð-°#°e´*ÀÒ2CÐ2CÐ2CÐ2CÐ2Cà˜vœ;¨$Ò.Ð.°#°e´*ÀÒ2CÐ2CÐ2CÐ2CøÝ!œv t˜n¨tµR´V¨nÐ=ð >ð >‘	��cØ !�”ÝÔ'¨¬¸Ø/5Ø<?Ø;?ð1Að 1AðBñ Bô B�ð ”}¨¨F¬Ò3Ð3Ð3Ð3Ø�y”>ð >Ø�|Ø" 6œ{¨]¸1©_Ò<Ð<Ð<Ð<Ð<à" 5œz¨]¸1©_Ò<Ð<Ð<Ð<Ð<à œK¨=¸©?Ò:Ð:Ø" 5œz¨]¸1©_Ò<Ð<Ð<Ð<øñ>ð=,	>ð ,	>r.   N)r�   r‚   rƒ   rj   r,  rÐ   rb  r
  r1  r3  r0  r…   r.   r,   r(  r(  ^
  s|   € € € € € ðð ð ð&ð &ð &ð
 „[×Ò˜1ÑÔð.ð .ñ Ôð.ð*ð *ð *ð->ð ->ð ->ð ->ð ->r.   r(  c                  ó0  — d„ } d„ }d„ }g d¢}|D ]>}t          j        | t          j        dg¦  «        |¬¦  «        }|j        j        dk    sJ ‚Œ?g d¢}|D ]@}t          j        | t          j        dg¦  «        |||¬	¦  «        }|j        j        dk    sJ ‚ŒAd S )
Nc                 ó   — | | z  S r=   r…   r*   s    r,   r‘   z2test_result_x_shape_when_len_x_is_one.<locals>.fun¢
  s   € Ø�1‰uˆr.   c                 ó   — d| z  S ©Nr‰  r…   r*   s    r,   r�   z2test_result_x_shape_when_len_x_is_one.<locals>.jac¥
  s   € Ø�A‰vˆr.   c                 ó.   — t          j        dgg¦  «        S r=  r_  r*   s    r,   r}   z3test_result_x_shape_when_len_x_is_one.<locals>.hess¨
  s   € ÝŒx˜"˜˜ÑÔÐr.   )	rl  r  rŒ   r¸   r  rß  r  ÚCOBYQAr˜  r:   r°   rf  )ré  rí  rê  rî  rë  r@  rì  )r   r¡   r(   rH   r+   rm  )r‘   r�   r}   rå  rŽ   r¤   s         r,   Ú%test_result_x_shape_when_len_x_is_oner@  ¡
  sö   € ðð ð ðð ð ð ð  ð  ð,ð ,ð ,€Gàð #ð #ˆÝÔ ¥R¤X¨s¨e¡_¤_¸VÐDÑDÔDˆØŒuŒ{˜dÒ"Ð"Ð"Ð"Ð"ð,ð ,ð ,€Gàð #ð #ˆÝÔ ¥R¤X¨s¨e¡_¤_¸VÈØ%)ð+ñ +ô +ˆàŒuŒ{˜dÒ"Ð"Ð"Ð"Ð"ð#ð #r.   c                   ó   — e Zd Zd„ Zd„ ZdS )ÚFunctionWithGradientc                 ó   — d| _         d S rF  )Únumber_of_callsrh   s    r,   r  zFunctionWithGradient.__init__»
  s   € Ø ˆÔÐÐr.   c                 óZ   — | xj         dz  c_         t          j        |dz  ¦  «        d|z  fS r0   )rD  r(   r?   r  s     r,   r  zFunctionWithGradient.__call__¾
  s1   € ØÐÔ Ñ!ÐÔÝŒv�a˜‘d‰|Œ|˜Q ™UÐ"Ð"r.   Nr  r…   r.   r,   rB  rB  º
  s2   € € € € € ð!ð !ð !ð#ð #ð #ð #ð #r.   rB  c                  ó   — t          ¦   «         S r=   )rB  r…   r.   r,   Úfunction_with_gradientrG  Ã
  s   € åÑ!Ô!Ð!r.   c                 óx  — t          | ¦  «        }t          j        ddg¦  «        }t           ||¦  «        d¦  «         | j        dk    sJ ‚t          |                     |¦  «        d|z  ¦  «         | j        dk    s
J d¦   «         ‚t           |d|z  ¦  «        dd¬	¦  «         | j        dk    s
J d¦   «         ‚d S )
NrX   r‰  r‡  r&   r1   zHfunction is not recomputed if gradient is requested after function valueg      4@ú(different input triggers new computationrÆ  )r   r(   rH   r   rD  Ú
derivative©rG  Úmemoized_functionrQ   s      r,   Ú)test_memoize_jac_function_before_gradientrM  È
  sï   € Ý"Ð#9Ñ:Ô:Ðå	Œ�3˜�*Ñ	Ô	€BÝÐ%Ð% bÑ)Ô)¨3Ñ/Ô/Ð/Ø!Ô1°QÒ6Ð6Ð6Ð6åÐ%×0Ò0°Ñ4Ô4°a¸"±fÑ=Ô=Ð=Ø!Ô1°QÒ6Ð6Ð6ð	8ñ 7Ô6Ð6õ ØÐ˜!˜b™&Ñ!Ô! 4Ø:ð<ñ <ô <ð <ð "Ô1°QÒ6Ð6Ð6Ø2ñ 7Ô6Ð6Ð6Ð6r.   c                 ó’  — t          | ¦  «        }t          j        ddg¦  «        }t          |                     |¦  «        d|z  ¦  «         | j        dk    sJ ‚t           ||¦  «        d¦  «         | j        dk    s
J d¦   «         ‚t          |                     d|z  ¦  «        d|z  d¬	¦  «         | j        dk    s
J d¦   «         ‚d S )
NrX   r‰  r1   r&   r‡  zHfunction is not recomputed if function value is requested after gradientr›   rI  rÆ  )r   r(   rH   r   rJ  rD  rK  s      r,   Ú)test_memoize_jac_gradient_before_functionrO  Û
  sö   € Ý"Ð#9Ñ:Ô:Ðå	Œ�3˜�*Ñ	Ô	€BÝÐ%×0Ò0°Ñ4Ô4°a¸"±fÑ=Ô=Ð=Ø!Ô1°QÒ6Ð6Ð6Ð6åÐ%Ð% bÑ)Ô)¨3Ñ/Ô/Ð/Ø!Ô1°QÒ6Ð6Ð6ð	8ñ 7Ô6Ð6õ Ø×$Ò$ Q¨¡VÑ,Ô,¨a°"©fØ:ð<ñ <ô <ð <ð "Ô1°QÒ6Ð6Ð6Ø2ñ 7Ô6Ð6Ð6Ð6r.   c           	      ó\  — t          | ¦  «        }|j        }t          j        ¦   «         }t	          j        ddg¦  «        }t          ||d||dd¦  «        }| j        dk    sJ ‚|                     |dz   ¦  «         | j        dk    sJ ‚|                     |dz   ¦  «         | j        d	k    sJ ‚dS )
z¹ Tests that using MemoizedJac in combination with ScalarFunction
        and BFGS does not lead to repeated function evaluations.
        Tests changes made in response to GH11868.
    rX   rZ   r…   Nr&   r:   r1   rE   r[   )	r   rJ  r   r¸   r(   rH   r   rD  r‘   )rG  rL  r�   r}   rQ   Úscalar_functions         r,   Útest_memoize_jac_with_bfgsrR  î
  sÉ   € õ
 #Ð#9Ñ:Ô:ÐØ
Ô
&€CÝŒ=‰?Œ?€Då	Œ�3˜�*Ñ	Ô	€BÝ$Ø˜2˜r 3¨¨d°Dñ:ô :€Oà!Ô1°QÒ6Ð6Ð6Ð6à×Ò˜˜S™Ñ!Ô!Ð!Ø!Ô1°QÒ6Ð6Ð6Ð6à×Ò˜˜S™Ñ!Ô!Ð!Ø!Ô1°QÒ6Ð6Ð6Ð6Ð6Ð6r.   c                  ó°   — t          ¦   «         5  t          j        d„ t          j         t          j        d¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nc                 ó2   — t          j        | dz  g¦  «        S r5  r_  r*   s    r,   r  ztest_gh12696.<locals>.<lambda>  s   € •b”h  1¡˜vÑ&Ô&€ r.   Frâ   )r   r   r?  r(   r  r…   r.   r,   Útest_gh12696rU    s¶   € å	Ñ	Ô	ð Cð CÝÔØ&Ð&­¬¨µ´¸Eð	Cñ 	Cô 	Cð 	CðCð Cð Cñ Cô Cð Cð Cð Cð Cð Cð Cð Cøøøð Cð Cð Cð Cð Cð Cs   �/AÁAÁAc                  óÚ  ‡‡‡‡‡— t           j                             d¦  «         t           j                             d¦  «        } t          j        g d¢¦  «        Št          j        g d¢¦  «        }‰|k    Šdˆˆfd„	Šˆfd„Šˆfd„Šˆfd	„}ˆfd
„}ˆfd„}ˆfd„}ˆfd„}t          |t           j         d¦  «        }t          |t           j         d|¦  «        }t          |t           j         d¦  «        }	t          |t           j         d|¦  «        }
d}‰ddœ‰‰dœˆˆfd„ddœf}d„ t          f}dg g f||f|
|
f|g|gf|	g|
gf||	g||
gf||
g||
gf||
g||
gff	}d |f}|||||‰|| ‰dœ	}|S )Nr   r›   )r   r1   r?  rÄ  )r[   r1   r1   rÄ  Tc                 óf   •— |r| j         dk    sJ ‚|rt          | ‰         ‰‰         ¦  «         d S d S rj  )rC  r   )r+   Ú
check_sizeÚcheck_valuesÚi_ebrÁ  s      €€r,   Úcheck_xz(setup_test_equal_bounds.<locals>.check_x  sJ   ø€ Øð 	Ø”6˜Q’;�;�;�;Øð 	/Ý˜A˜dœG R¨¤XÑ.Ô.Ð.Ð.Ð.ð	/ð 	/r.   c                 óB   •—  ‰| ¦  «         t          j        | ¦  «        S r=   r  ©r+   r[  s    €r,   rt   z%setup_test_equal_bounds.<locals>.func  s    ø€ Øˆ�‰
Œ
ˆ
ÝŒ~˜aÑ Ô Ð r.   c                 óB   •—  ‰| ¦  «         t          j        | ¦  «        S r=   )r   r   r]  s    €r,   ry   z%setup_test_equal_bounds.<locals>.grad  s!   ø€ Øˆ�‰
Œ
ˆ
ÝÔ! !Ñ$Ô$Ð$r.   c                 ó   •—  ‰| ¦  «         d S r=   r…   )r+   r�   r[  s     €r,   r  z)setup_test_equal_bounds.<locals>.callback"  s   ø€ Øˆ�‰
Œ
ˆ
ˆ
ˆ
r.   c                 ó8   •—  ‰| d¬¦  «         | dd…         dz
  S )NF©rY  r   r&   r…   r]  s    €r,   Úconstraint1z,setup_test_equal_bounds.<locals>.constraint1%  s*   ø€ Øˆ� Ð&Ñ&Ô&Ð&Ø��1�Œv˜‰zÐr.   c                 óT   •—  ‰| d¬¦  «         t          j        | ¦  «        }d|d<   |S )NFra  r&   r   ©r(   Ú
zeros_like©r+   Údcr[  s     €r,   Ú	jacobian1z*setup_test_equal_bounds.<locals>.jacobian1)  ó5   ø€ Øˆ� Ð&Ñ&Ô&Ð&ÝŒ]˜1ÑÔˆØˆˆ1‰Øˆ	r.   c                 ó8   •—  ‰| d¬¦  «         | dd…         dz
  S )NFra  r1   r[   rZ   r…   r]  s    €r,   Úconstraint2z,setup_test_equal_bounds.<locals>.constraint2/  s*   ø€ Øˆ� Ð&Ñ&Ô&Ð&Ø��1�Œv˜‰|Ðr.   c                 óT   •—  ‰| d¬¦  «         t          j        | ¦  «        }d|d<   |S )NFra  r&   r1   rd  rf  s     €r,   Ú	jacobian2z*setup_test_equal_bounds.<locals>.jacobian23  ri  r.   )r  r˜  rß  Fr  c                 ó0   •—  ‰| ¦  «         ‰| ¦  «        fS r=   r…   )r+   rt   ry   s    €€r,   r  z)setup_test_equal_bounds.<locals>.<lambda>E  s   ø€    Q¡¤¨¨¨a©¬Ð1€ r.   c                 ó<   — t          t          | |¦  «        ¦  «        S r=   )ÚlistÚzip©rÁ  rÂ  s     r,   r  z)setup_test_equal_bounds.<locals>.<lambda>I  s   € ¥$¥s¨2¨r¡{¤{Ñ"3Ô"3€ r.   r  )	rå  ÚkwdsÚbound_typesrV  Ú	callbacksrÁ  rÂ  rQ   rZ  )TT)r(   r4   r7   rÜ  rH   r   r¯  r   )rQ   rÂ  r  rb  rh  rk  rm  Úc1aÚc1bÚc2aÚc2brå  rs  rt  rV  ru  Údatar[  rt   ry   rZ  rÁ  s                    @@@@@r,   Úsetup_test_equal_boundsr{    sx  øøøøø€ å„I‡N‚N�1ÑÔÐÝ	Œ�Š˜Ñ	Ô	€BÝ	ŒÐ"Ð"Ð"Ñ	#Ô	#€BÝ	Œ�/�/�/Ñ	"Ô	"€BØ�"ŠH€Dð/ð /ð /ð /ð /ð /ð /ð!ð !ð !ð !ð !ð%ð %ð %ð %ð %ðð ð ð ð ðð ð ð ð ðð ð ð ð ðð ð ð ð ðð ð ð ð õ ˜k­B¬F¨7°AÑ
6Ô
6€CÝ
˜k­B¬F¨7°A°yÑ
AÔ
A€CÝ
˜k­B¬F¨7°AÑ
6Ô
6€CÝ
˜k­B¬F¨7°A°yÑ
AÔ
A€Cð +€Gð  Ð'Ð'Ø Ð&Ð&Ø1Ð1Ð1Ð1Ð1Øðð ð€Dð 4Ð3Ýð€Kð   " b Ø˜�:  S˜zØ�E˜C˜5�> S E¨C¨5 >Ø˜#�J  c 
Ð+Ø˜#�J  c 
Ð+Ø˜#�J  c 
Ð+ð-€Kð �xÐ €Ià¨¸[Ø&°YØ˜B b°$ð8ð 8€Dð €Kr.   z0Failures due to floating point issues, not logicrå  rs  Ú
bound_typert  rV  r  ru  c           	      ób  — t          j        ¦   «         dk    r&| dk    r |d         du r|�t          j        d¦  «         t          d         t          d         }}t          d	         t          d
         }}|\  }	}
|	r| dk    st          j        d¦  «         |	|
k    } |||¦  «        }|                     || ||	|dœ¦  «         t          j        di |¤Ž}t          j        t          j        || t          j	        ||
¬¦  «        }|j
        sJ ‚t          |j        |j        d¬¦  «         t          |j        |j        d¬¦  «         |s
|d         du rt          j        |j        |<   |j        j        d         dk    sJ ‚t          |j        |         |j        |         d¬¦  «         |d         sƒ|	sƒt%          |t&          ¦  «        spd„ }t          j        ||ddg         | |ddd…         ¬¦  «        }t          |j        |j        ¦  «         t          |j        ddg         |j        d¬¦  «         dS dS dS dS )z½
    Tests that minimizers still work if (bounds.lb == bounds.ub).any()
    gh12502 - Divide by zero in Jacobian numerical differentiation when
    equality bounds constraints are used
    Úaarch64rß  r�   FNzTolerance violation on aarchrÁ  rÂ  rQ   rZ  r˜  z)Only SLSQP supports nonlinear constraints)rQ   rŽ   r  rV  r  )rŽ   r�   r  rV  gTäqs*¹>r²   gü©ñÒMb@?r   r›   r8   c                 ó�   — t          j        t           j        dt           j        dg¦  «        }| |ddg<   t          j        |¦  «        S )Nr1   r?  r   )r(   rH   rÎ  r   r   )r+   Únew_xs     r,   r‘   ztest_equal_bounds.<locals>.fun–  s;   € Ý”H�bœf a­¬°Ð4Ñ5Ô5ˆEØˆE�1�a�&‰MÝ”> %Ñ(Ô(Ð(r.   r1   rc  g�íµ ÷ÆÀ>r…   )ÚplatformÚmachinerÐ   rå  Úeb_datarl  r   r¡   r   r   r´   r   r‘   r+   r(   rÎ  r�   rm  ry  r   )rŽ   rs  r|  rV  r  rÁ  rÂ  rQ   rZ  Útest_constraintsÚreference_constraintsÚ	fd_neededr  r¤   Úexpectedr‘   Úfd_ress                    r,   Útest_equal_boundsr‰  d  s‘  € õ 	ÔÑÔ˜iÒ'Ð'¨F°eªO¨OØ�U”˜uÐ$Ð$¨Ð)=ÝŒÐ2Ñ3Ô3Ð3å�TŒ]�G DœMˆ€BÝ�tŒ}�g fœoˆ€Bà.9Ñ+ÐÐ+Øð A ¨'Ò 1Ð 1ÝŒÐ?Ñ@Ô@Ð@ð "Ð%:Ò:€IàˆZ˜˜BÑÔ€Fà‡K‚K�r V°vØ 0¸hðHð Hñ Iô Ið Iå
Ô
Ð
#Ð
#˜dÐ
#Ð
#€CåÔ ¥¤°¸FÝ%-Ô%7ÀØ-BðDñ Dô D€Hð
 Œ;ÐÐÐÝ�C”G˜Xœ\°Ð7Ñ7Ô7Ð7Ý�C”E˜8œ:¨DÐ1Ñ1Ô1Ð1àð $�D˜”K 5Ð(Ð(ÝœVˆŒ�TÑØŒ7Œ=˜Ô˜qÒ Ð Ð Ð Ý�C”G˜D”M 8¤<°Ô#5¸DÐAÑAÔAÐAà�ŒKð <Ð+ð <­z¸&Å&Ñ/IÔ/Ið <ð	)ð 	)ð 	)õ
 Ô" 3Ø#% q¨! f¤:Ø*0Ø*0°°°1°¬+ð7ñ 7ô 7ˆõ 	˜œ ¤Ñ,Ô,Ð,õ 	˜œ˜q !˜fœ v¤x°dÐ;Ñ;Ô;Ð;Ð;Ð;ð%<ð <ð <ð <ð <ð <r.   c                 óÆ  — dd„}ddg}d}t          j        |||| ¬¦  «        }|j        sJ ‚t          |j         |ddg¦  «        ¦  «         |j        dk    sJ ‚|j        d	k    sJ ‚d
}t          j        |||| |¬¦  «        }|j        sJ ‚t          |j         |ddgd¦  «        ¦  «         |                      ¦   «         dk    �rd„ }t          |t          j
         d¦  «        }t          j        |||| |g¬¦  «        }|j        du sJ ‚t          |j         |ddg¦  «        ¦  «         |j        dk    sJ ‚d}|j                             |¦  «        sJ ‚t          |t          j
         d¦  «        }t          j        |||| |g¬¦  «        }|j        du sJ ‚t          |j         |ddg¦  «        ¦  «         |j        dk    sJ ‚d}|j                             |¦  «        sJ ‚d S d S )Nr&   c                 óF   — t           j                             | ¦  «        |z   S r=   )r(   ÚlinalgÚnorm)r+   Úp1s     r,   rs   z test_all_bounds_equal.<locals>.f¬  s   € ÝŒy�~Š~˜aÑ Ô  2Ñ%Ð%r.   rg  )r1   r1   )rX   r;  r:  rX   r‰  z/All independent variables were fixed by bounds.)r1   rM  r1   r˜  c                 ó*   — t          j        | ¦  «        S r=   r6  r*   s    r,   Úconz"test_all_bounds_equal.<locals>.con½  s   € Ý”6˜!‘9”9Ðr.   r\   )r  rŽ   rV  Fz3All independent variables were fixed by bounds, butr›   Tz8All independent variables were fixed by bounds at valuesrf  )r   r¡   r´   r   r‘   r’   r  Úupperr   r(   r¯  r  )	rŽ   rs   r  rQ   r¤   r�   r�  Únlcr  s	            r,   Útest_all_bounds_equalr“  ¨  sI  € ð&ð &ð &ð &ð �fÐ€FØ	€BÝ
Ô
˜A˜r¨&¸Ð
@Ñ
@Ô
@€CØŒ;ÐÐÐÝ�C”G˜Q˜Q  S˜z™]œ]Ñ+Ô+Ð+ØŒ8�qŠ=ˆ=ˆ=ˆ=ØŒ;ÐKÒKÐKÐKÐKà€DÝ
Ô
˜A˜r¨&¸ÀdÐ
KÑ
KÔ
K€CØŒ;ÐÐÐÝ�C”G˜Q˜Q  S˜z¨1Ñ-Ô-Ñ.Ô.Ð.à‡|‚|�~„~˜Ò Ñ ð	ð 	ð 	å! #­¬ w°Ñ4Ô4ˆÝÔØˆr˜&¨¸c¸Uð
ñ 
ô 
ˆð Œ{˜eÐ#Ð#Ð#Ð#Ý˜œ   C¨ :¡¤Ñ/Ô/Ð/ØŒx˜1Š}ˆ}ˆ}ˆ}ØGˆØŒ{×%Ò% gÑ.Ô.Ð.Ð.Ð.å! #­¬ w°Ñ2Ô2ˆÝÔØˆr˜&¨¸c¸Uð
ñ 
ô 
ˆð Œ{˜dÐ"Ð"Ð"Ð"Ý˜œ   C¨ :¡¤Ñ/Ô/Ð/ØŒx˜1Š}ˆ}ˆ}ˆ}ØLˆØŒ{×%Ò% gÑ.Ô.Ð.Ð.Ð.ð+ !Ð ð* 	/Ð.r.   c                  ó’   — d„ } d„ }d|dœg}dgdz  }d|d<   t          j        | g d	¢d
||¬¦  «         |d         d         |k    sJ ‚d S )Nc                 óT   — | d         dz  | d         dz  z   | d         | d         z  z   S )Nr   r[   r&   r1   r…   r*   s    r,   rs   ztest_eb_constraints.<locals>.f×  s.   € Ø�Œt�Q‰w˜˜1œ˜q™Ñ  1 Q¤4¨¨!¬¡9Ñ,Ð,r.   c                 óN   — | d         | d         z   | d         z   | d         z   dz
  S )Nr   r&   r1   r[   é(   r…   r*   s    r,   Úcfunz!test_eb_constraints.<locals>.cfunÚ  s+   € Ø�Œt�a˜”d‰{˜Q˜qœTÑ! A a¤DÑ(¨2Ñ-Ð-r.   r“  r”  )r   rù  r›   )rÌ   rÌ   r&   )r&   r1   r[   r›   r˜  )rQ   rŽ   r  rV  r   r‘   rr  )rs   r˜  rV  r  s       r,   Útest_eb_constraintsr™  Ô  s•   € ð-ð -ð -ð.ð .ð .ð #¨4Ð0Ð0Ð1€KàˆY˜‰]€FØ€Fˆ1�IÝÔØ	Øˆ<ˆ<ØØØðñ ô ð ð �qŒ>˜%Ô  DÒ(Ð(Ð(Ð(Ð(Ð(r.   c                  ó*  — t           t          t          t          t          t
          dœ} |                      ¦   «         D ]\  }}|D ]}t          ||¦  «         ŒŒddddœ}|                     ¦   «         D ]!\  }}t          t          t          ||¦  «         Œ"d S )N)r¡   rN  ÚrootÚroot_scalarÚlinprogÚquadratic_assignmentÚekkir   )r¡   ÚmaximizeÚmaximize_scalar)
r   r   r   r   r   r   Úitemsr   rL   rM   )Úsolver_methodsÚsolverrå  rŽ   Úunknown_solver_methods        r,   Útest_show_optionsr¦  ë  sÆ   € å$Ý2ÝÝ*Ý"Ý <ðð €Nð *×/Ò/Ñ1Ô1ð )ð )‰ˆ�Øð 	)ð 	)ˆFå˜ Ñ(Ô(Ð(Ð(ð	)ð
 ØØ!ðð Ðð
 0×5Ò5Ñ7Ô7ð @ð @‰ˆ�å•j¥,°¸Ñ?Ô?Ð?Ð?ð@ð @r.   c                  ó¦   — t          j        ddgddg¬¦  «        } t          j        t           j        t	          j        ddg¦  «        d| ¬¦  «         d S )Nr‡  ró  rr  r™   r  r  )r   r   r¡   r   r(   rH   r¬  s    r,   Útest_bounds_with_listr¨    s[   € åŒ_  R ¨c°3¨ZÐ8Ñ8Ô8€FÝÔÝŒ�2œ8 Q¨ FÑ+Ô+°HÀVðñ ô ð ð ð r.   c            	      ó2  — d„ } d„ }d„ }g d¢}g d¢}t          j        d¦  «        dz  }t          D ]f}d }d }||v r|}||v r|}t          j        | ||||¬¦  «        }	t          |	j        t          j        t          j        |¦  «        ¦  «        d	¬
¦  «         Œgd S )Nc                 óŠ   — t          j        t          j        | ¦  «        ¦  «        }| |z  } | | z  } t          j        | ¦  «        S r=   )r(   rK   rC  r?   r‘  s     r,   Úfquadz/test_x_overwritten_user_function.<locals>.fquad  s9   € ÝŒI•b”g˜a‘j”jÑ!Ô!ˆØ	ˆQ‰ˆØ	ˆQ‰ˆÝŒv�a‰yŒyÐr.   c                 ól   — t          j        t          j        | ¦  «        ¦  «        }| dz  } | d|z  z  } | S r5  )r(   rK   rC  r‘  s     r,   Ú	fquad_jacz3test_x_overwritten_user_function.<locals>.fquad_jac  s4   € ÝŒI•b”g˜a‘j”jÑ!Ô!ˆØ	ˆQ‰ˆØ	ˆQ�‰U‰
ˆØˆr.   c                 óT   — t          j        t          j        | ¦  «        ¦  «        dz  S r=  )r(   rÑ   rC  r*   s    r,   Ú
fquad_hessz4test_x_overwritten_user_function.<locals>.fquad_hess  s   € ÝŒv•b”g˜a‘j”jÑ!Ô! CÑ'Ð'r.   )rI  rí  rê  rî  rë  ré  )rí  rê  rî  rë  ré  rÌ   r3   rì  g-Cëâ6*?r—   )	r(   rü  r   r   r¡   r   r+   rK   rC  )
r«  r­  r¯  Úmeth_jacÚ	meth_hessrQ   Úmethr�   r}   r¤   s
             r,   Ú test_x_overwritten_user_functionr³    só   € ðð ð ðð ð ð(ð (ð (ðð ð €Hðð ð €Iõ 
Œ�‰Œ�cÑ	€Bå ð Bð BˆØˆØˆØ�8ÐÐØˆCØ�9ÐÐØˆDÝÔ  r°$¸CÀdÐKÑKÔKˆÝ˜œ�rœy­¬°©¬Ñ5Ô5¸DÐAÑAÔAÐAÐAðBð Br.   c                   ó   — e Zd Zd„ ZdS )ÚTestGlobalOptimizationc                 óü  — d„ }t          j        |d¬¦  «        t          j        |dg¦  «        t          j        |dg¦  «        t          j        |dg¦  «        t          j        |dg¦  «        g}|D ]Š}t          |t           j        ¦  «        sJ ‚t          |d¦  «        sJ ‚t          |d¦  «        sJ ‚t          |d¦  «        sJ ‚t          |d¦  «        sJ ‚t          |d	¦  «        sJ ‚t          |d
¦  «        sJ ‚Œ‹d S )Nc                 ó   — | dz  S r5  r…   r*   s    r,   rt   zDTestGlobalOptimization.test_optimize_result_attributes.<locals>.func6  s   € Ø˜‘6ˆMr.   r&   )rQ   )r�  r›   r+   r´   r  r‘   r’   rí   )	r   ÚbasinhoppingÚdifferential_evolutionÚshgoÚdual_annealingÚdirectry  r   rš  )ri   rt   rz  rB  s       r,   Útest_optimize_result_attributesz6TestGlobalOptimization.test_optimize_result_attributes5  s.  € ð	ð 	ð 	õ Ô(¨°!Ð4Ñ4Ô4ÝÔ2°4¸'¸ÑCÔCÝ”= ¨ yÑ1Ô1ÝÔ*¨4°'°Ñ;Ô;Ý”? 4¨'¨Ñ3Ô3ð	ˆð ð 	*ð 	*ˆFÝ˜f¥hÔ&=Ñ>Ô>Ð>Ð>Ð>Ý˜6 3Ñ'Ô'Ð'Ð'Ð'Ý˜6 9Ñ-Ô-Ð-Ð-Ð-Ý˜6 9Ñ-Ô-Ð-Ð-Ð-Ý˜6 5Ñ)Ô)Ð)Ð)Ð)Ý˜6 6Ñ*Ô*Ð*Ð*Ð*Ý˜6 5Ñ)Ô)Ð)Ð)Ð)Ð)ð	*ð 	*r.   N)r�   r‚   rƒ   r½  r…   r.   r,   rµ  rµ  3  s#   € € € € € ð*ð *ð *ð *ð *r.   rµ  c                  ó  — t          j        t          t          ¦  «        } t	          | t          t          ¦  «        d¬¦  «         t          j        t          t
          ¦  «        }t	          |t          t          ¦  «        d¬¦  «         d S )Nr  r²   )r   Úapprox_fprimerP   rŒ  r   rN   rO   )r8  rà  s     r,   Útest_approx_fprimerÀ  K  sh   € õ 	Ô�}­jÑ9Ô9€AÝ�A•¥}Ñ5Ô5¸DÐAÑAÔAÐAåÔ�}­oÑ>Ô>€AÝ�A•¥}Ñ5Ô5¸DÐAÑAÔAÐAÐAÐAr.   c                  óp  — d„ } t          ddgddg¬¦  «        }t          j        | dd|¬¦  «        }t          t          j        ddg¦  «        t          j        ddg¦  «        ¬¦  «        }t          j        | dd|¬¦  «        }t          |j        |j        ¦  «         t          |j        |j        ¦  «         d S )Nc                 ó6   — | d         dz  | d         dz
  dz  z   S r‘  r…   r*   s    r,   rs   ztest_gh12594.<locals>.fZ  s!   € Ø�Œt�Q‰w˜!˜Aœ$ ™( Q™Ñ&Ð&r.   r¥  r¼   rr  rÔ   r  r  )r   r   r¡   r(   rH   r   r‘   r+   )rs   r  r¤   rî   s       r,   Útest_gh12594rÃ  U  s»   € ð
'ð 'ð 'õ ˜˜S�z r¨2 hÐ/Ñ/Ô/€FÝ
Ô
˜A &°À&Ð
IÑ
IÔ
I€CÝ•r”x  c 
Ñ+Ô+µ´¸"¸b¸Ñ0BÔ0BÐCÑCÔC€FÝ
Ô
˜A &°À&Ð
IÑ
IÔ
I€Cå�C”G˜SœWÑ%Ô%Ð%Ý�C”E˜3œ5Ñ!Ô!Ð!Ð!Ð!r.   r@  ré  Úsparse_typec                 ó„  ‡— ˆfd„}ddg}t          j        t          || t          |¬¦  «        }t          j        t          || t          t          ¬¦  «        }t          |j        |j        ¦  «         t          |j        |j        ¦  «         |j        |j        k    sJ ‚|j	        |j	        k    sJ ‚|j
        |j
        k    sJ ‚d S )Nc                 ó4   •—  ‰t          | ¦  «        ¦  «        S r=   )r   )r+   rÄ  s    €r,   Úsparse_rosen_hessz.test_sparse_hessian.<locals>.sparse_rosen_hesso  s   ø€ Øˆ{�: a™=œ=Ñ)Ô)Ð)r.   r‰  rì  )r   r¡   r   r   r   r   r‘   r+   r’   r“   Únhev)rŽ   rÄ  rÇ  rQ   Ú
res_sparseÚ	res_denses    `    r,   Útest_sparse_hessianrË  f  sá   ø€ ð*ð *ð *ð *ð *ð ˆbˆ€BåÔ"¥5¨"°VÝ'0Ð7HðJñ Jô J€JåÔ!¥%¨°FÝ&/µjðBñ Bô B€Iõ �I”M :¤>Ñ2Ô2Ð2Ý�I”K ¤Ñ.Ô.Ð.ØŒ>˜Zœ_Ò,Ð,Ð,Ð,ØŒ>˜Zœ_Ò,Ð,Ð,Ð,ØŒ>˜Zœ_Ò,Ð,Ð,Ð,Ð,Ð,r.   )vr„   rã  r�  Únumpyr(   Únumpy.testingr   r   r   r   r   r   r	   rÐ   r
   rL   Úscipyr   Úscipy.optimize._minimizer   r   r   r   r   Úscipy.optimize._linprogr   Úscipy.optimize._rootr   Úscipy.optimize._root_scalarr   Úscipy.optimize._qapr   Ú(scipy.optimize._differentiable_functionsr   r   Úscipy.optimize._optimizer   r   r   Úscipy.optimizer   r   r   Úscipy.sparser   r   r   r    r!   r"   rS   rU   r‡   rp  r|  r€  r…  rŽ  r“  r™  r¡  r²  r»  r½  rÀ  rÂ  rÄ  rÆ  rb  rd  r  r  r(  ru  rƒ  r…  r§  r»  r¾  rÅ  rÇ  rŒ  rN   rO   rP   r�  rŽ  rÝ  rß  rê  rì  rï  rñ  ró  r
  r&  r(  r@  rB  ÚfixturerG  rM  rO  rR  rU  r{  rƒ  Úxfail_on_32bitr‰  r“  r™  r¦  r¨  r³  rµ  rÀ  rÃ  rË  r…   r.   r,   ú<module>rÚ     sy	  ðð
ð 
ð Ð Ð Ð Ø €€€Ø Ð Ð Ð ðAð Að Að Að Að Að Að Að Að Að Að Að Að Að Að Að Að Að €€€Ø *Ð *Ð *Ð *Ð *Ð *à Ð Ð Ð Ð Ð Ø @Ð @Ð @Ð @Ð @Ð @Ð @Ð @ð?ð ?ð ?ð ?ð ?ð ?ð ?ð ?ð ?ð ?ð 4Ð 3Ð 3Ð 3Ð 3Ð 3Ø -Ð -Ð -Ð -Ð -Ð -Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;Ø <Ð <Ð <Ð <Ð <Ð <Ø OÐ OÐ OÐ OÐ OÐ OÐ OÐ OØ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MØ 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7ð0ð 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0ð2ð 2ð 2ðj-'ð -'ð -'ð -'ð -'ñ -'ô -'ð -'ð`R=ð R=ð R=ð R=ð R= ñ R=ô R=ð R=ðj-ð -ð -ð"ð ð ð0Hð Hð Hðð ð ð8ð 8ð 8ðDð Dð Dð$ð $ð $ð ð  ð  ð>I:ð I:ð I:ðX'Fð 'Fð 'FðTð ð ð ð Ð8ñ ô ð ð
ð ð ð ð Ð :ñ ô ð ð
ð ð ð ð Ð :ñ ô ð ð
ð ð ð ð Ð"<ñ ô ð ð
LDð LDð LDð LDð LD˜ñ LDô LDð LDð^ „×ÒØØ:Ð:Ð:ñô ð-ð -ñ	ô ð-ð:=ð :=ð :=ð :=ð :=ñ :=ô :=ð :=ðziNð iNð iNð iNð iNñ iNô iNð iNðX	&ð &ð &ð &ð &ñ &ô &ð &ðR@ð @ð @ð)<ð )<ð )<ð )<ð )<ñ )<ô )<ð )<ðX<-ð <-ð <-ð~#6ð #6ð #6ðLz6ð z6ð z6ðzJð Jð Jð* ð  ð  ð  ð  ñ  ô  ð  ðð ð ð;ð ;ð ;ð7ð 7ð 7ð ˜�€Ø�a�&€Ø€ð4ð 4ð 4ð,0ð 0ð 0ð 0ð 0ñ 0ô 0ð 0ðD=ð =ð =ð7ð 7ð 7ð7ð 7ð 7ð<ð <ð <ðH%ð H%ð H%ð H%ð H%ñ H%ô H%ð H%ðV „×Ò�rÑÔð ð  ñ Ôð ðF@>ð @>ð @>ð @>ð @>ñ @>ô @>ð @>ðF#ð #ð #ð2#ð #ð #ð #ð #ñ #ô #ð #ð „ð"ð "ñ „ð"ð3ð 3ð 3ð&3ð 3ð 3ð&7ð 7ð 7ð*Cð Cð CðQð Qð Qðh "Ð
!Ñ
#Ô
#€ð „×ÒÐNÑOÔOØ„×Ò˜ 7¨9Ô#5Ñ6Ô6Ø„×Ò˜ ¨¤Ñ1Ô1Ø„×Ò˜ w¨}Ô'=Ñ>Ô>Ø„×Ò˜¨°Ô(>Ñ?Ô?Ø„×Ò˜ W¨[Ô%9Ñ:Ô:ð;<ð ;<ñ ;Ô:ñ @Ô?ñ ?Ô>ñ 2Ô1ñ 7Ô6ñ PÔOð;<ð| „×Ò˜ 7¨9Ô#5Ñ6Ô6ð(/ð (/ñ 7Ô6ð(/ðV)ð )ð )ð.@ð @ð @ð0ð ð ð%Bð %Bð %BðP*ð *ð *ð *ð *ñ *ô *ð *ð0Bð Bð Bð"ð "ð "ð" „×Ò˜ K°Ð#@ÑAÔAØ„×Ò˜¨°ZÀØ)2°I¸yð)Jñ Kô Kð-ð -ñKô Kñ BÔAð-ð -ð -r.   