Ë
    âQ(hïñ ã                   ó  — d Z ddl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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/m0Z0m1Z1m2Z2 ddl3m4Z4 ddl5m6Z6m7Z7 ejp                  jr                  Z9d„ Z: G d„ d«      Z; G d„ de;«      Z<d„ Z=d„ Z>d„ Z?d„ Z@d„ ZAd„ ZBd„ ZCejp                  jˆ                  d„ «       ZEejp                  jˆ                  d„ «       ZFd „ ZG G d!„ d"e<«      ZH G d#„ d$e<«      ZI G d%„ d&e<«      ZJ G d'„ d(e<«      ZK G d)„ d*e;«      ZLejp                  j›                  d+g d,¢«      d-„ «       ZN G d.„ d/«      ZO G d0„ d1«      ZP G d2„ d3«      ZQd4„ ZR G d5„ d6«      ZSd7„ ZTd8„ ZUd9„ ZVd:„ ZWd;„ ZXe4 G d<„ d=«      «       ZYd>„ ZZd?„ Z[d@„ Z\dAdBgZ]dCdDgZ^dEZ_dF„ Z` G dG„ dH«      ZadI„ ZbdJ„ ZcdK„ ZddL„ Ze G dM„ dN«      Zfejp                  jˆ                  ejp                  jÏ                  dO«      dP„ «       «       Zh G dQ„ dR«      ZidS„ Zj G dT„ dU«      ZkejØ                  dV„ «       ZmdW„ ZndX„ ZodY„ ZpdZ„ Zqd[„ Zr er«       Zsejp                  jé                  d\«      ejp                  jë                   ejì                  d]¬^«      d_   d`   da   dbk(  d\¬c«      ejp                  j›                  d+esdd   «      ejp                  j›                  deesde   «      ejp                  j›                  dfesdg   «      ejp                  j›                  dhesdh   «      ejp                  j›                  diesdj   «      dk„ «       «       «       «       «       «       «       Zwejp                  j›                  d+esdd   «      dl„ «       Zxdm„ Zydn„ Zzdo„ Z{dp„ Z| G dq„ dr«      Z}ds„ Z~dt„ Zejp                  j›                  d+dudvg«      ejp                  j›                  dwe-e.e/e0e1e2g«      dx„ «       «       Z€y)yzx
Unit tests for optimization routines from optimize.py

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

é    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_array)Úarray_api_compatible)Úxp_assert_equalÚarray_namespacec            
      óB  — 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kD  sJ ‚t        t        j                  | ||ddd¬
«      dz
  «      }|dkD  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 ‚y )Nc                 ó:   — ddt        j                  |  «      z   z  S ©Né   ©ÚnpÚexp©Úxs    ú`/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/scipy/optimize/tests/test_optimize.pyÚexpitztest_check_grad.<locals>.expit.   s   € Ø�AœŸ™ ˜r›
‘NÑ#Ð#ó    c                 óh   — t        j                  |  «      dt        j                  |  «      z   dz  z  S ©Nr)   é   r*   r-   s    r/   Ú	der_expitz"test_check_grad.<locals>.der_expit1   s*   € Ü�v‰v�q�b‹z˜Q¤§¡¨¨£™^¨aÑ/Ñ/Ð/r1   ç      ø?r   ÚrandoméÒ  )Ú	directionÚseedç�íµ ÷Æ°>)Úepsilon)r<   r9   Úrngçš™™™™™¹?çH¯¼šò×z>c                 óN   — | t        j                  | «      z  j                  «       S ©N)r+   ÚsinÚsumr-   s    r/   Úx_sinxztest_check_grad.<locals>.x_sinxJ   s   € Ø”"—&‘&˜“)‘× Ñ Ó"Ð"r1   c                 ó^   — t        j                  | «      | t        j                  | «      z  z   S rA   ©r+   rB   Úcosr-   s    r/   Ú
der_x_sinxz#test_check_grad.<locals>.der_x_sinxM   s!   € Ü�v‰v�a‹y˜1œRŸV™V A›Y™;Ñ&Ð&r1   r4   çš™™™™™É?)r9   r=   Úrandom_projectionÚallg�íµ ÷Æ >)r+   Úarrayr   Ú
check_gradr   ÚabsÚarangeÚassert_raisesÚ
ValueErrorÚhimmelblau_gradÚhimmelblau_hessÚhimmelblau_x0)r0   r5   Úx0ÚrrD   rH   s         r/   Útest_check_gradrW   *   s–  € ò$ò0ô 
�‰�3�%‹€Bä×Ñ˜E 9¨bÓ1€AÜ˜˜1Ôä×Ñ˜E 9¨bØ&.°Tô	;€Aä˜˜1Ôä×Ñ˜E 9¨b¸$Ô?€AÜ˜˜1ÔÜ×Ñ˜E 9¨b¸$Ø&.°Dô	:€Aä˜˜1Ôô 	ŒH×Ñ  y°"¸dÔCÀaÑGÓH€AØˆtŠ8€Oˆ8ÜŒH×Ñ  y°"¸dØ*2¸ô>Ø@AñBó 	C€AàˆtŠ8€Oˆ8ò#ò'ô 
�‰�1�a˜Ó	€Bä×Ñ˜F J°Ø&.°Dô	:€Aä˜˜1Ôä”*œh×1Ñ1Ø˜* bØ/°Tõ;ô
 	×ÑœO¬_¼mØ&+°ô	7€AàˆtŠ8€O‰8r1   c                   ó.   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zy)Ú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                 ó¼  — 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| _        t        j                  «       | _        t        j                  «       | _        t        j                  «       | _        y )	N©r)   r)   r)   )r)   r)   r   )r)   r   r)   )r)   r   r   )ç      ð?ç333333Ó?ç      à?é   )ç        g¾š\¼ºËà¿g¢ß)ªŸ3ß?éè  )r+   rL   ÚFÚKÚzerosÚfloat64ÚstartparamsÚsolutionÚmaxiterÚ	threadingÚlocalÚ	funccallsÚ	gradcallsÚtrace©Úselfs    r/   Úsetup_methodzCheckOptimize.setup_methodf   s�   € Ü—‘š9Ú$Ú$Ú$Ú$ð	&ó 'ˆŒô
 —‘š.Ó)ˆŒÜŸ8™8 A¤r§z¡zÓ2ˆÔÜŸ™Ò!@ÓAˆŒØˆŒÜ"Ÿ™Ó*ˆŒÜ"Ÿ™Ó*ˆŒÜ—_‘_Ó&ˆ�
r1   c                 óÎ  — t        | j                  d«      sd| j                  _        t        | j                  d«      sd| j                  _        | j                  xj                  dz  c_        | j                  j                  dkD  rt	        d«      ‚t        j                  | j                  |«      }t        j                  t        t        j                  |«      «      «      }|t        j                  | j                  |«      z
  }t        | j                  d«      sg | j                  _        | j                  j                  j                  t        j                  |«      «       |S )NÚcr   r)   ip  z+too many iterations in optimization routineÚt)Úhasattrrk   rr   rl   ÚRuntimeErrorr+   Údotrb   ÚlogrC   r,   rc   rm   rs   ÚappendÚcopy)ro   r.   Úlog_pdotÚlogZÚfs        r/   ÚfunczCheckOptimize.funct   sî   € Ü�t—~‘~ sÔ+Ø ˆD�N‰NÔä�t—~‘~ sÔ+Ø ˆD�N‰NÔà�‰×Ò˜AÑÕØ�>‰>×Ñ˜dÒ"ÜÐLÓMÐMÜ—6‘6˜$Ÿ&™& !Ó$ˆÜ�v‰v”cœ"Ÿ&™& Ó*Ó+Ó,ˆØ”2—6‘6˜$Ÿ&™& !Ó$Ñ$ˆÜ�t—z‘z 3Ô'ØˆD�J‰JŒLØ�
‰
�‰×ÑœBŸG™G A›JÔ'Øˆr1   c                 óÖ  — t        | j                  d«      sd| j                  _        | j                  xj                  dz  c_        t        j                  | j
                  |«      }t        j                  t        t        j                  |«      «      «      }t        j                  ||z
  «      }t        j                  | j
                  j                  «       |«      | j                  z
  S )Nrr   r   r)   )rt   rl   rr   r+   rv   rb   rw   rC   r,   Ú	transposerc   ©ro   r.   rz   r{   Úps        r/   ÚgradzCheckOptimize.grad†   sš   € Ü�t—~‘~ sÔ+Ø ˆD�N‰NÔØ�‰×Ò˜AÑÕÜ—6‘6˜$Ÿ&™& !Ó$ˆÜ�v‰v”cœ"Ÿ&™& Ó*Ó+Ó,ˆÜ�F‰F�8˜d‘?Ó#ˆÜ�v‰v�d—f‘f×&Ñ&Ó(¨!Ó,¨t¯v©vÑ5Ð5r1   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 rA   )r+   rv   rb   rw   rC   r,   ÚTÚdiagr€   s        r/   ÚhesszCheckOptimize.hess�   s“   € Ü—6‘6˜$Ÿ&™& !Ó$ˆÜ�v‰v”cœ"Ÿ&™& Ó*Ó+Ó,ˆÜ�F‰F�8˜d‘?Ó#ˆÜ�v‰v�d—f‘f—h‘hÜ—f‘fœRŸW™W Q›Z¨¯©´"·&±&¸¿¹¿¹À1Ó2EÑ)EÓFóHð 	Hr1   c                 óL   — t        j                  | j                  |«      |«      S rA   )r+   rv   r†   ©ro   r.   r�   s      r/   ÚhesspzCheckOptimize.hessp–   s   € Ü�v‰v�d—i‘i “l AÓ&Ð&r1   N)	Ú__name__Ú
__module__Ú__qualname__Ú__doc__rp   r}   r‚   r†   r‰   © r1   r/   rY   rY   `   s!   „ ñò
'òò$6òHó'r1   rY   c                   ój  — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Ze	j                  j                  d«      d„ «       Zd	„ Zd
„ Zd„ Ze	j                  j!                  ddgddgddgddgg«      d„ «       Zd„ Ze	j                  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y#)$ÚCheckOptimizeParameterizedc           
      ó>  — | j                   rp| j                  | j                  ddœ}t        j                  | j
                  | j                  dd| j                  |¬«      }|d   |d   |d   |d	   |d
   f\  }}}}}nWt        j                  | j
                  | j                  | j                  d| j                  d| j                  d¬«      }|\  }}}}}t        | j                  |«      | j                  | j                  «      d¬«       | j                  j                  dk(  sJ | j                  j                  «       ‚| j                  j                  dk(  sJ | j                  j                  «       ‚t        | j                  j                  dd g d¢g d¢gdd¬«       y )NF©rh   ÚdispÚ
return_allrŽ   ÚCG)ÚargsÚmethodÚjacÚoptionsr.   ÚfunÚnfevÚnjevÚstatusT)rh   Úfull_outputr“   Úretallr;   ©Úatolé	   é   r4   é   )r   ç      à¿r^   )r   gÃ;Ó±.à¿g)`$|;¾ß?ç›+¡†›„=r?   ©r¡   Úrtol)Úuse_wrapperrh   r“   r   Úminimizer}   rf   r‚   Úfmin_cgr   rg   rk   rr   rl   rm   rs   )	ro   ÚoptsÚresÚparamsÚfoptÚ
func_callsÚ
grad_callsÚwarnflagÚretvals	            r/   Útest_cgz"CheckOptimizeParameterized.test_cgœ   sp  € à×ÒØ#Ÿ|™|°T·Y±YØ"'ñ)ˆDä×#Ñ# D§I¡I¨t×/?Ñ/?ÀbØ+/°T·Y±YØ,0ô2ˆCð �C‘˜#˜e™* c¨&¡k°3°v±;ÀÀHÁÐMñ ;ˆF�D˜* j±(ô ×%Ñ% d§i¡i°×1AÑ1AØ&*§i¡i°¸T¿\¹\Ø26¸T¿Y¹YØ-2ô4ˆFð @FÑ<ˆV�T˜: z°8ä˜Ÿ	™	 &Ó)¨4¯9©9°T·]±]Ó+CØ!õ	#ð
 �~‰~×Ñ 1Ò$Ð6 d§n¡n×&6Ñ&6Ó6Ð$Ø�~‰~×Ñ 1Ò$Ð6 d§n¡n×&6Ñ&6Ó6Ð$ô 	˜Ÿ
™
Ÿ™ Q qÐ)Ú'Ú=ð?à"¨ö	/r1   c                 óÂ   — d„ }t        j                  ddd«      D ]B  }t        j                  ||gd¬«      }|j                  sJ ‚t        |j                  dgd¬	«       ŒD y )
Nc                 óJ   — ddt        j                  d| dz
  z  «      z
  dz  z  S )Ng      @r)   ç      ø¿r^   r4   r*   )rV   s    r/   r|   z8CheckOptimizeParameterized.test_cg_cornercase.<locals>.f¼   s(   € Ø˜!œbŸf™f T¨1¨s©7¡^Ó4Ñ4°qÑ8Ñ8Ð8r1   g      è¿r_   éG   r•   ©r—   r^   çñhãˆµøä>©r¨   )r+   Úlinspacer   rª   Úsuccessr   r.   )ro   r|   rU   Úsols       r/   Útest_cg_cornercasez-CheckOptimizeParameterized.test_cg_cornercase»   sY   € ò	9ô
 —+‘+˜e Q¨Ó+ò 	5ˆBÜ×#Ñ# A¨ t°DÔ9ˆCØ—;’;Ð�;Ü˜CŸE™E C 5¨tÖ4ñ	5r1   c           
      óV  — | j                   rz| j                  | j                  ddœ}t        j                  | j
                  | j                  | j                  dd|¬«      }|d   |d   |d   |d	   |d
   |d   |d   f\  }}}}}}}	nYt        j                  | j
                  | j                  | j                  d| j                  d| j                  d¬«      }
|
\  }}}}}}}	t        | j                  |«      | j                  | j                  «      d¬«       | j                  j                  dk(  sJ | j                  j                  «       ‚| j                  j                  dk(  sJ | j                  j                  «       ‚t        | j                  j                  dd g d¢g d¢gdd¬«       y )NFr’   ÚBFGSrŽ   ©r˜   r—   r–   r™   r.   rš   r˜   Úhess_invr›   rœ   r�   T©r–   rh   rž   r“   rŸ   r;   r    é
   é   é   )r   g˜&ó/LÍà¿gB__E7ß?)r   g$ŸÙÜËà¿gÂ
|²3ß?r¦   r?   r§   )r©   rh   r“   r   rª   r}   rf   r‚   Ú	fmin_bfgsr   rg   rk   rr   rl   rm   rs   )ro   r¬   r­   r®   r¯   ÚgoptÚHoptr°   r±   r²   r³   s              r/   Ú	test_bfgsz$CheckOptimizeParameterized.test_bfgsÆ   s‡  € à×ÒØ#Ÿ|™|°T·Y±YØ"'ñ)ˆDä×#Ñ# D§I¡I¨t×/?Ñ/?Ø(,¯	©	¸&ÀrØ,0ô2ˆCð
 ˜‘H˜c %™j¨#¨e©*°c¸*±oØ˜‘K  V¡¨c°(©mðJ=ÑFˆF�D˜$  j°*¹hô ×'Ñ'¨¯	©	°4×3CÑ3CÀTÇYÁYØ-/¸¿¹Ø48¸t¿y¹yØ/4ô6ˆFð
 28ñ/ˆV�T˜4 Ø˜ Xä˜Ÿ	™	 &Ó)¨4¯9©9°T·]±]Ó+CØ!õ	#ð
 �~‰~×Ñ 2Ò%Ð7 t§~¡~×'7Ñ'7Ó7Ð%Ø�~‰~×Ñ 1Ò$Ð6 d§n¡n×&6Ñ&6Ó6Ð$ô 	˜Ÿ
™
Ÿ™ Q qÐ)Ú=Ú=ð?à"¨ö	/r1   c                 ó(  — t        j                  t        d¬«      5  t        j                  g d¢«      }| j
                  t        j                  d«       dœ}t        j                  t        j                  |dd|¬«       d d d «       y # 1 sw Y   y xY w)	Nú+'hess_inv0' matrix isn't positive definite.©Úmatch©gÍÌÌÌÌÌô?çffffffæ?çš™™™™™é?çffffffþ?ç333333ó?é   ©r“   Ú	hess_inv0rÁ   rŽ   ©rU   r—   r–   r™   )
Úpytestr
   rQ   r+   rL   r“   Úeyer   rª   r   )ro   rU   r¬   s      r/   Útest_bfgs_hess_inv0_negz2CheckOptimizeParameterized.test_bfgs_hess_inv0_negè   sp   € ô �]‰]œ:ð .0ô 1ñ 	,ä—‘Ò3Ó4ˆBØ ŸI™I´R·V±V¸A³Y°JÑ?ˆDÜ×ÑœhŸn™n°¸FÈØ&*õ,÷		,÷ 	,ñ 	,ús   œA#BÂBc                 ó4  — 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 «       y # 1 sw Y   y xY w)NrÍ   rÎ   rÐ   rÕ   r   ©r   r   rÖ   rÁ   rŽ   rØ   )
rÙ   r
   rQ   r+   rL   rÚ   r“   r   rª   r   )ro   rU   r×   r¬   s       r/   Útest_bfgs_hess_inv0_semiposz6CheckOptimizeParameterized.test_bfgs_hess_inv0_semiposò   s|   € ô �]‰]œ:ð .0ô 1ñ 	,ä—‘Ò3Ó4ˆBÜŸ™˜q›	ˆIØˆI�d‰OØ ŸI™I°IÑ>ˆDÜ×ÑœhŸn™n°¸FÈØ&*õ,÷	,÷ 	,ñ 	,ús   œA)BÂBc                 ó`  — 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	¬
«       y )NrÐ   ç{®Gáz„?rÕ   rÖ   rÁ   rŽ   rØ   r“   r;   r    )	r   r   r+   rL   r“   rÚ   rª   r   rš   )ro   rš   rU   r¬   r­   Úres_trues         r/   Útest_bfgs_hess_inv0_sanityz5CheckOptimizeParameterized.test_bfgs_hess_inv0_sanityþ   s‰   € ä�n‰nˆÜ�X‰XÒ/Ó0ˆØŸ	™	°´r·v±v¸a³yÑ0@ÑAˆÜ×Ñ ¨°6ÀØ(,ô.ˆä×$Ñ$ S¨R¸ÀRØ.4°d·i±iÐ-@ôBˆä˜Ÿ™ §¡°DÖ9r1   úignore::UserWarningc           	      óf  ‡— 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 «       y # 1 sw Y   y xY w)Nc                 ó,   — t         j                  |  z   S rA   )r+   Úer-   s    r/   r}   z;CheckOptimizeParameterized.test_bfgs_infinite.<locals>.func  s   € Ü—D‘D˜a˜R‘L�=Ð r1   c                 ó   •—  ‰| «       S rA   rŽ   )r.   r}   s    €r/   Úfprimez=CheckOptimizeParameterized.test_bfgs_infinite.<locals>.fprime  s   ø€ Ù˜“G�8ˆOr1   r   Úignore)Úoverr“   rÁ   rŽ   rÂ   r.   ©r“   )r+   Úerrstater©   r“   r   rª   rÈ   Úisfinite)ro   rè   rU   r¬   r.   r}   s        @r/   Útest_bfgs_infinitez-CheckOptimizeParameterized.test_bfgs_infinite	  s§   ø€ ò	!ô	àˆSˆÜ�[‰[˜hÔ'ñ 	,Ø×ÒØ §	¡	Ð*�Ü×%Ñ% d¨B°FÀ6Ø+-°tô=Ø=@ñB‘ô ×&Ñ& t¨R°¸d¿i¹iÔH�Ü—{‘{¡4¨£7Ô+Ð+Ð+Ð+÷	,÷ 	,ñ 	,ús   £A:B'Â'B0c                 óæ   — g d¢}t        j                  t         j                  |dddi¬«      }t        j                  t         j                  |dddi¬«      }|j                  |j                  k7  sJ ‚y )NrÐ   ÚbfgsÚxrtolçü©ñÒMbP?©r—   r™   Úgtol©r   rª   r   Únit)ro   rU   r­   Úrefs       r/   Útest_bfgs_xrtolz*CheckOptimizeParameterized.test_bfgs_xrtol  sa   € â&ˆÜ×Ñ¤§¡Ø "¨6¸GÀT¸?ôLˆä×Ñ¤§¡Ø "¨6¸FÀD¸>ôKˆà�w‰w˜#Ÿ'™'Ò!Ð!Ñ!r1   c                 óæ   — g d¢}t        j                  t         j                  |dddi¬«      }t        j                  t         j                  |dddi¬«      }|j                  |j                  kD  sJ ‚y )N©gš™™™™™$@g33333³4@gš™™™™™%@rÓ   ç333333ó¿rð   Úc1ç:Œ0âŽyE>ró   r>   )r   rª   r   r›   )ro   rU   Úres_c1_smallÚ
res_c1_bigs       r/   Útest_bfgs_c1z'CheckOptimizeParameterized.test_bfgs_c1#  sg   € ò +ˆÜ×(Ñ(¬¯©Ø)+°FÀTÈ4ÀLôRˆä×&Ñ&¤x§~¡~Ø')°&À4ÈÀ,ôPˆ
ð × Ñ  :§?¡?Ò2Ð2Ñ2r1   c                 óæ   — g d¢}t        j                  t         j                  |dddi¬«      }t        j                  t         j                  |dddi¬«      }|j                  |j                  kD  sJ ‚y )NrÐ   rð   Úc2çÍÌÌÌÌÌì?ró   rà   rõ   )ro   rU   Úres_defaultÚres_mods       r/   Útest_bfgs_c2z'CheckOptimizeParameterized.test_bfgs_c2.  sc   € ò 'ˆÜ×'Ñ'¬¯©Ø(*°6ÀDÈ"À:ôOˆä×#Ñ#¤H§N¡NØ$&¨vÀÀd¸|ôMˆà�‰ §¡Ò,Ð,Ñ,r1   rü   r  r^   r4   çš™™™™™¹¿r>   rI   c           	      óÀ   — t        j                  t        d¬«      5  g d¢}t        j                  t        j
                  |d||dœ¬«       d d d «       y # 1 sw Y   y xY w)Nz'c1' and 'c2'rÎ   rú   Úcg)rü   r  ró   )rÙ   r
   rQ   r   rª   r   )ro   rü   r  rU   s       r/   Útest_invalid_c1_c2z-CheckOptimizeParameterized.test_invalid_c1_c28  sL   € ô �]‰]œ:¨_Ô=ñ 	<Ú.ˆBÜ×ÑœhŸn™n¨b¸Ø-/°rÑ&:õ<÷	<÷ 	<ñ 	<ús   œ/AÁAc           	      ó  — | j                   rj| j                  | j                  ddœ}t        j                  | j
                  | j                  dd|¬«      }|d   |d   |d   |d	   |d
   |d   f\  }}}}}}nMt        j                  | j
                  | j                  d| j                  d| j                  d¬«      }	|	\  }}}}}}t        | j                  |«      | j                  | j                  «      d¬«       t        |dd  | j                  dd  d¬«       | j                  j                  dk  sJ | j                  j                  «       ‚| j                  j                  dk(  sJ | j                  j                  «       ‚y )NFr’   rŽ   ÚPowell©r–   r—   r™   r.   rš   Údirecrö   r›   r�   TrÄ   r;   r    r)   çñhãˆµøÔ>éˆ   r   )r©   rh   r“   r   rª   r}   rf   Úfmin_powellr   rg   rk   rr   rl   ©
ro   r¬   r­   r®   r¯   r  Únumiterr°   r²   r³   s
             r/   Útest_powellz&CheckOptimizeParameterized.test_powellA  sd  € à×ÒØ#Ÿ|™|°T·Y±YØ"'ñ)ˆDä×#Ñ# D§I¡I¨t×/?Ñ/?ÀbØ+3¸TôCˆCð ˜‘H˜c %™j¨#¨g©,¸¸E¹
Ø˜‘K  X¡ðB0Ñ>ˆF�D˜% ¨*±hô ×)Ñ)¨$¯)©)°T×5EÑ5EØ/1¸4¿<¹<Ø6:ÀÇÁØ16ô8ˆFð DJÑ@ˆV�T˜5 '¨:°xä˜Ÿ	™	 &Ó)¨4¯9©9°T·]±]Ó+CØ!õ	#ô 	˜˜q˜r˜
 D§M¡M°!°"Ð$5¸DÕAð �~‰~×Ñ 8Ò+Ð=¨T¯^©^×-=Ñ-=Ó=Ð+Ø�~‰~×Ñ 1Ò$Ð6 d§n¡n×&6Ñ&6Ó6Ñ$r1   zeThis part of test_powell fails on some platforms, but the solution returned by powell is still valid.©Úreasonc           	      óà  — | j                   rj| j                  | j                  ddœ}t        j                  | j
                  | j                  dd|¬«      }|d   |d   |d   |d	   |d
   |d   f\  }}}}}}nMt        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¬«       y )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©   rh   r“   r   rª   r}   rf   r  r   rm   r  s
             r/   Útest_powell_gh14014z.CheckOptimizeParameterized.test_powell_gh14014c  s  € ð ×ÒØ#Ÿ|™|°T·Y±YØ"'ñ)ˆDä×#Ñ# D§I¡I¨t×/?Ñ/?ÀbØ+3¸TôCˆCð ˜‘H˜c %™j¨#¨g©,¸¸E¹
Ø˜‘K  X¡ðB0Ñ>ˆF�D˜% ¨*±hô ×)Ñ)¨$¯)©)°T×5EÑ5EØ/1¸4¿<¹<Ø6:ÀÇÁØ16ô8ˆFð DJÑ@ˆV�T˜5 '¨:°xô 	˜Ÿ
™
 2 bÐ)Ú>Ú>Ú>Ú>Ú>ð	@ð
 #¨ö	/r1   c                 óN  — | j                   D �cg c]#  }t        j                   t        j                  f‘Œ% }}| j                  rÜ| j                  | j
                  ddœ}t        j                  | j                  | j                   d|d|¬«      }|d   |d   }}|| j                  j                  k(  sJ ‚t        | j                  |«      | j                  | j                  «      dd	¬
«       | j                  j                  dk  sJ ‚| j                  j                  dk(  sJ ‚y y c c}w )NFr’   rŽ   r  )r–   Úboundsr—   r™   r.   r›   r;   rº   r§   é¯   r   )rf   r+   Úpir©   rh   r“   r   rª   r}   rk   rr   r   rg   rl   )ro   Ú_r  r¬   r­   r®   r°   s          r/   Útest_powell_boundedz.CheckOptimizeParameterized.test_powell_bounded†  s  € ð ,0×+;Ñ+;Ö< a”B—E‘E�6œ2Ÿ5™5’/Ð<ˆÐ<Ø×ÒØ#Ÿ|™|°T·Y±YØ"'ñ)ˆDä×#Ñ# D§I¡I¨t×/?Ñ/?ÀbØ+1Ø+3¸TôCˆCð #& c¡(¨C°©K�JˆFà §¡×!1Ñ!1Ò1Ð1Ð1Ü˜DŸI™I fÓ-¨t¯y©y¸¿¹Ó/GØ!%¨Dõ2ð —>‘>×#Ñ# xÒ/Ð/Ð/Ø—>‘>×#Ñ# qÒ(Ð(Ñ(ð' ùò =s   �(D"c           	      ó  — | j                   re| j                  | j                  ddœ}t        j                  | j
                  | j                  dd|¬«      }|d   |d   |d   |d	   |d
   f\  }}}}}nLt        j                  | j
                  | j                  d| j                  d| j                  d¬«      }|\  }}}}}t        | j                  |«      | j                  | j                  «      d¬«       | j                  j                  dk(  sJ | j                  j                  «       ‚| j                  j                  dk(  sJ | j                  j                  «       ‚t        | j                  j                  dd g d¢g d¢gdd¬«       y )NFr’   rŽ   úNelder-meadr  r.   rš   rö   r›   r�   TrÄ   r;   r    é§   r   éL   éN   )g	dÀ£×°È?g÷×]fùä¿gtÛ×ä��Ö?)gÓ™ �…É?gäÌ#=^ä¿gÝÃoT¸ïÖ?r¦   r?   r§   )r©   rh   r“   r   rª   r}   rf   Úfminr   rg   rk   rr   rl   rm   rs   )	ro   r¬   r­   r®   r¯   r  r°   r²   r³   s	            r/   Útest_neldermeadz*CheckOptimizeParameterized.test_neldermeadŸ  sc  € à×ÒØ#Ÿ|™|°T·Y±YØ"'ñ)ˆDä×#Ñ# D§I¡I¨t×/?Ñ/?ÀbØ+8À$ôHˆCð ˜‘H˜c %™j¨#¨e©*°c¸&±kØ˜‘Mð;#Ñ7ˆF�D˜' :©xô —]‘] 4§9¡9¨d×.>Ñ.>Ø(*°D·L±LØ/3¸$¿)¹)Ø*/ô1ˆFð =CÑ9ˆV�T˜7 J°ä˜Ÿ	™	 &Ó)¨4¯9©9°T·]±]Ó+CØ!õ	#ð
 �~‰~×Ñ 3Ò&Ð8¨¯©×(8Ñ(8Ó8Ð&Ø�~‰~×Ñ 1Ò$Ð6 d§n¡n×&6Ñ&6Ó6Ð$ô 	˜Ÿ
™
Ÿ™ R¨Ð+Ú=Ú>ð@à"¨ö	/r1   c           
      ó¤  — t        j                  d«      }| j                  |d<   t        d«      D ]  }||dz   |fxx   dz  cc<   Œ | j                  rq| j
                  dd|dœ}t        j                  | j                  | j                  d	d
|¬«      }|d   |d   |d   |d   |d   f\  }}}}}	t        |d   d   |d   «       nCt        j                  | j                  | j                  d	| j
                  ddd|¬«      }
|
\  }}}}}	t        | j                  |«      | j                  | j                  «      d¬«       | j                  j                  dk(  sJ | j                  j                  «       ‚| j                  j                  dk(  sJ | j                  j                  «       ‚t        | j                  j                   dd g d¢g d¢gdd¬«       y )N)r¤   r_   .r_   r)   r>   FT©rh   r“   r”   Úinitial_simplexrŽ   r%  r  r.   rš   rö   r›   r�   Úallvecsr   ©r–   rh   rž   r“   rŸ   r-  r;   r    éd   é2   é4   )gÔItžÊÌÂ?gà?'Î›Tà¿gxÅ8 áÞ?)gÓÒ¢_×†Â?gœoMçà¿gå›Ž|52ß?r¦   r?   r§   )r+   rd   rf   Úranger©   rh   r   rª   r}   r   r)  rg   rk   rr   rl   rm   rs   )ro   Ú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˜sÑ"ŒOð	#ð ×ÒØ#Ÿ|™|°UØ"&¸7ñDˆDä×#Ñ# D§I¡I¨t×/?Ñ/?ÀbØ+8À$ôHˆCà;>¸s¹8Ø;>¸u¹:Ø;>¸u¹:Ø;>¸v¹;Ø;>¸x¹=ð	;JÑ7ˆF�D˜' :¨xô
 ˜C 	™N¨1Ñ-¨w°q©zÕ:ä—]‘] 4§9¡9¨d×.>Ñ.>Ø(*°D·L±LØ/3¸%ÈØ3:ô<ˆFð
 =CÑ9ˆV�T˜7 J°ä˜Ÿ	™	 &Ó)¨4¯9©9°T·]±]Ó+CØ!õ	#ð
 �~‰~×Ñ 3Ò&Ð8¨¯©×(8Ñ(8Ó8Ð&Ø�~‰~×Ñ 1Ò$Ð6 d§n¡n×&6Ñ&6Ó6Ð$ô 	˜Ÿ
™
Ÿ™ R¨Ð+Ú=Ú=ð?à"¨ö	/r1   c                 óL  — g }t        j                  d«      }| j                  d d |d<   t        d«      D ]  }||dz   |fxx   dz  cc<   Œ |j	                  |«       t        j                  d«      }|j	                  |«       |D ]�  }| j
                  rJ| j                  dd|dœ}t        t        t        j                  | j                  | j                  d	d
|¬«       ŒYt        t        t        j                  | j                  | j                  d	| j                  ddd|¬«
       ŒŸ y )N)r_   r4   r4   .r)   r>   )r_   r_   Fr,  rŽ   r%  r  Tr/  )r+   rd   rf   r3  rx   r©   rh   rP   rQ   r   rª   r}   r)  )ro   Úbad_simplicesr4  r5  r¬   s        r/   Ú#test_neldermead_initial_simplex_badz>CheckOptimizeParameterized.test_neldermead_initial_simplex_badæ  s  € àˆä—(‘(˜6Ó"ˆØ×'Ñ'¨¨Ð+ˆ�‰Ü�q“ò 	#ˆAØ�A�a‘C˜�F‹O˜sÑ"ŒOð	#à×Ñ˜WÔ%ä—(‘(˜6Ó"ˆØ×Ñ˜WÔ%à$ò 	7ˆGØ×ÒØ#'§<¡<¸Ø&+ÀñI�äœjÜ&×/Ñ/Ø"Ÿi™iØ"×.Ñ.Ø#%Ø%2Ø&*ö,ô œj¬(¯-©-Ø"Ÿi™i¨×)9Ñ)9Ø#%¨t¯|©|Ø*.°UÀ5Ø.5ö	7ñ	7r1   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«       y )	Nc                 ó2   — t        j                  | dz  «      S ©Nr4   ©r+   rC   r-   s    r/   Úquadz>CheckOptimizeParameterized.test_neldermead_x0_ub.<locals>.quad	  ó   € Ü—6‘6˜!˜Q™$“<Ðr1   r)   )r   r\   únelder-mead©r  r—   r   r4   )r)   ç      @©r   rª   r   r.   )ro   r>  r­   s      r/   Útest_neldermead_x0_ubz0CheckOptimizeParameterized.test_neldermead_x0_ub  st   € ò	 ô ×ÑØØˆCØ�9Ø ô	
ˆô 	˜Ÿ™ ˜sÔ#ä×ÑØØ�ˆFØ˜WÐ%Ø ô	
ˆô 	˜Ÿ™  1˜vÕ&r1   c                 ó    — ddi}t        j                  | j                  | j                  d| j                  d|¬«      }|j
                  dk(  sJ ‚y )Nrh   éÿÿÿÿú	Newton-CGrŽ   ©r—   r˜   r–   r™   r)   )r   rª   r}   rf   r‚   r�   )ro   r¬   Úresults      r/   Útest_ncg_negative_maxiterz4CheckOptimizeParameterized.test_ncg_negative_maxiter  sK   € à˜2ˆˆÜ×"Ñ" 4§9¡9¨d×.>Ñ.>Ø*5¸4¿9¹9Ø(*°Dô:ˆð �}‰} Ò!Ð!Ñ!r1   c           	      óÒ   — d„ }d„ }dg}d}t        j                  |||dt        |¬«      ¬«      }|j                  dk(  sJ ‚t	        |j
                  d   t        j                  «       y )Nc                 ó2   — t        j                  | d   «      S ©Nr   )r+   rG   r-   s    r/   Úcosinez=CheckOptimizeParameterized.test_ncg_zero_xtol.<locals>.cosine&  s   € Ü—6‘6˜!˜A™$“<Ðr1   c                 ó4   — t        j                  | d   «       S rM  )r+   rB   r-   s    r/   r˜   z:CheckOptimizeParameterized.test_ncg_zero_xtol.<locals>.jac)  s   € Ü—F‘F˜1˜Q™4“L�=Ð r1   r>   r   ú	newton-cg)Úxtol)rU   r˜   r—   r™   )r   rª   Údictr�   r   r.   r+   r!  )ro   rN  r˜   rU   rQ  rI  s         r/   Útest_ncg_zero_xtolz-CheckOptimizeParameterized.test_ncg_zero_xtol$  sf   € ò	 ò	!ð ˆUˆØˆÜ×"Ñ" 6Ø&(Ø'*Ø*5Ü+/°T¬?ô	<ˆð
 �}‰} Ò!Ð!Ð!Ü˜FŸH™H Q™K¬¯©Õ/r1   c           
      ó   — | j                   rW| j                  | j                  ddœ}t        j                  | j
                  | j                  d| j                  d|¬«      d   }nOt        j                  | j
                  | j                  | j                  d| j                  d| j                  d¬«      }|}t        | j                  |«      | j                  | j                  «      d¬	«       | j                  j                  d
k(  sJ | j                  j                  «       ‚| j                  j                  dk  sJ | j                  j                  «       ‚t        | j                  j                  dd g d¢g d¢gdd¬«       y )NFr’   rG  rŽ   rH  r.   rÄ   r;   r    r£   é   r_   rÕ   ©ç(Æ6-H=�¾g×?üºËà¿g4 u¦3ß?©rW  g_êþéºËà¿gþ/N±§3ß?r?   r§   )r©   rh   r“   r   rª   r}   rf   r‚   Úfmin_ncgr   rg   rk   rr   rl   rm   rs   ©ro   r¬   r³   r®   s       r/   Útest_ncgz#CheckOptimizeParameterized.test_ncg6  s:  € à×ÒØ#Ÿ|™|°T·Y±YØ"'ñ)ˆDä×&Ñ& t§y¡y°$×2BÑ2BØ.9¸t¿y¹yØ,.¸ô>à>AñC‰Fô ×&Ñ& t§y¡y°$×2BÑ2BÀDÇIÁIØ,.¸¿¹Ø38¸t¿y¹yØ.3ô5ˆFð
 ˆä˜Ÿ	™	 &Ó)¨4¯9©9°T·]±]Ó+CØ!õ	#ð
 �~‰~×Ñ 1Ò$Ð6 d§n¡n×&6Ñ&6Ó6Ð$Ø�~‰~×Ñ 2Ò%Ð7 t§~¡~×'7Ñ'7Ó7Ð%ô 	˜Ÿ
™
Ÿ™ Q qÐ)ÚKÚKðMà!¨ö	.r1   c                 ó,  — | j                   rb| j                  | j                  ddœ}t        j                  | j
                  | j                  d| j                  | j                  d|¬«      d   }nZt        j                  | j
                  | j                  | j                  | j                  d| j                  d| j                  d¬«	      }|}t        | j                  |«      | j                  | j                  «      d¬	«       | j                  j                  d
k  sJ | j                  j                  «       ‚| j                  j                  dk  sJ | j                  j                  «       ‚t        | j                  j                   dd g d¢g d¢gdd¬«       y )NFr’   rG  rŽ   )r—   r˜   r†   r–   r™   r.   )Úfhessr–   rh   rž   r“   rŸ   r;   r    r£   é   r_   rÕ   rV  rX  r?   r§   )r©   rh   r“   r   rª   r}   rf   r‚   r†   rY  r   rg   rk   rr   rl   rm   rs   rZ  s       r/   Útest_ncg_hessz(CheckOptimizeParameterized.test_ncg_hessW  sK  € à×ÒØ#Ÿ|™|°T·Y±YØ"'ñ)ˆDä×&Ñ& t§y¡y°$×2BÑ2BØ.9¸t¿y¹yØ,0¯I©IØ,.¸ô>ð ?BñC‰Fô
 ×&Ñ& t§y¡y°$×2BÑ2BÀDÇIÁIØ-1¯Y©YØ,.¸¿¹Ø38¸t¿y¹yØ.3ô	5ˆFð ˆä˜Ÿ	™	 &Ó)¨4¯9©9°T·]±]Ó+CØ!õ	#ð
 �~‰~×Ñ 1Ò$Ð6 d§n¡n×&6Ñ&6Ó6Ð$Ø�~‰~×Ñ 2Ò%Ð7 t§~¡~×'7Ñ'7Ó7Ð%ô
 	˜Ÿ
™
Ÿ™ Q qÐ)ÚKÚKðMà!¨ö	.r1   c                 ó,  — | j                   rb| j                  | j                  ddœ}t        j                  | j
                  | j                  d| j                  | j                  d|¬«      d   }nZt        j                  | j
                  | j                  | j                  | j                  d| j                  d| j                  d¬«	      }|}t        | j                  |«      | j                  | j                  «      d¬	«       | j                  j                  d
k  sJ | j                  j                  «       ‚| j                  j                  dk  sJ | j                  j                  «       ‚t        | j                  j                   dd g d¢g d¢gdd¬«       y )NFr’   rG  rŽ   )r—   r˜   r‰   r–   r™   r.   )Úfhess_pr–   rh   rž   r“   rŸ   r;   r    r£   r^  r_   rÕ   rV  rX  r?   r§   )r©   rh   r“   r   rª   r}   rf   r‚   r‰   rY  r   rg   rk   rr   rl   rm   rs   rZ  s       r/   Útest_ncg_hesspz)CheckOptimizeParameterized.test_ncg_hesspy  sK  € à×ÒØ#Ÿ|™|°T·Y±YØ"'ñ)ˆDä×&Ñ& t§y¡y°$×2BÑ2BØ.9¸t¿y¹yØ-1¯Z©ZØ,.¸ô>ð ?BñC‰Fô
 ×&Ñ& t§y¡y°$×2BÑ2BÀDÇIÁIØ/3¯z©zØ,.¸¿¹Ø38¸t¿y¹yØ.3ô	5ˆFð ˆä˜Ÿ	™	 &Ó)¨4¯9©9°T·]±]Ó+CØ!õ	#ð
 �~‰~×Ñ 1Ò$Ð6 d§n¡n×&6Ñ&6Ó6Ð$Ø�~‰~×Ñ 2Ò%Ð7 t§~¡~×'7Ñ'7Ó7Ð%ô
 	˜Ÿ
™
Ÿ™ Q qÐ)ÚKÚKðMà!¨ö	.r1   c                 óp  — | j                   rªt        j                  | j                  | j                  d| j
                  | j                  dœ¬«      }t        |j                  | j                  | j                  «      d¬«       | j                  j                  dk  sJ | j                  j                  «       ‚y y )NÚcobyqa©rh   r“   ró   r;   r    éA   )r©   r   rª   r}   rf   rh   r“   r   rš   rg   rk   rr   ©ro   r­   s     r/   Útest_cobyqaz&CheckOptimizeParameterized.test_cobyqa›  s‹   € à×ÒÜ×#Ñ#Ø—	‘	Ø× Ñ ØØ$(§L¡L¸$¿)¹)ÑDô	ˆCô ˜CŸG™G T§Y¡Y¨t¯}©}Ó%=ÀDÕIð —>‘>×#Ñ# wÒ.Ð@°·±×0@Ñ0@Ó@Ñ.ð r1   N) rŠ   r‹   rŒ   r´   r¿   rË   rÛ   rÞ   râ   rÙ   ÚmarkÚfilterwarningsrî   rø   r   r  Úparametrizer
  r  Úxfailr  r#  r*  r6  r9  rD  rJ  rS  r[  r_  rb  rh  rŽ   r1   r/   r�   r�   š   s  „ ò/ò>	5ò /òD,ò
,ò	:ð ‡[�[×ÑÐ 5Ó6ñ,ó 7ð,ò "ò	3ò-ð ‡[�[×Ñ˜d D˜\¨S°!¨HØ-1°3¨KØ-0°#¨Jð,8ó 9ñ<ó9ð<ò 7ðD ‡[�[×Ñð &Ðó 'ñ/ó'ð/ò@)ò2/ò>&/òP7ò>'ò."ò0ò$.òB .òD .óDAr1   r�   c            	      óÒ   ‡— t         j                  j                  d«      Šˆfd„} dD ]=  }dD ]6  }t        j                  | ‰j                  d«      |d|i¬«      }|d   |k(  rŒ6J ‚ Œ? y )	Nl	   û<vgðRàI*q4Ì c                 ó,   •— ‰j                  d«      dz  S ©Nr)   ra   ©r7   )r.   r=   s    €r/   Úcostztest_maxfev_test.<locals>.cost²  s   ø€ Ø�z‰z˜!‹}˜tÑ#Ð#r1   )r)   rÅ   r1  )r  úNelder-MeadrÅ   Úmaxfevró   r›   )r+   r7   Údefault_rngr   rª   )rq  Úimaxfevr—   rI  r=   s       @r/   Útest_maxfev_testrv  ¯  s{   ø€ Ü
�)‰)×
Ñ
Ð GÓ
H€Cô$ð ò -ˆð 0ò 	-ˆFÜ×&Ñ& t¨S¯Z©Z¸«^Ø.4Ø08¸'Ð/BôDˆFð ˜&‘> WÓ,Ð,Ð,ñ		-ñ	-r1   c                  óŽ  — d„ } t         j                  j                  | t        j                  d«      d«      \  }}t        d«      D ]*  } |t        j                  |«      «       |d   |dz   k(  rŒ*J ‚ d}t        t         j                  j                  |¬«      5   |t        j                  «      «       d d d «       t         j                  j                  | t        j                  d«      d«      \  }}d}t        t        |¬«      5   |t        j                  ddg«      «       d d d «       y # 1 sw Y   ŒzxY w# 1 sw Y   y xY w)Nc                 ó   — | S rA   rŽ   r-   s    r/   Úfunc_z8test_wrap_scalar_function_with_validation.<locals>.func_Â  s   € Øˆr1   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+   Úasarrayr3  rP   Ú_MaxFuncCallErrorrQ   rL   )ry  Úfcallsr}   ÚiÚmsgs        r/   Ú)test_wrap_scalar_function_with_validationr‚  À  s  € òô ×%Ñ%ß/Ñ/°´r·z±zÀ!³}ÀaÓHñ €FˆDô �1‹Xò  ˆÙŒR�Z‰Z˜‹]ÔØ�a‰y˜A˜a™CÓÐÐð ð $€CÜ	”x×)Ñ)×;Ñ;À3Ô	Gñ ÙŒR�Z‰Z˜‹]Ô÷ô ×%Ñ%ß/Ñ/°´r·z±zÀ!³}ÀaÓHñ €FˆDð M€CÜ	”z¨Ô	-ñ ÙŒR�X‰X�q˜!�fÓÔ÷ð ÷ð ú÷ð ús   ÂD/ÄD;Ä/D8Ä;Ec                  ó°   — d} t        t        | ¬«      5  t        j                  d„ t	        j
                  ddg«      d¬«       d d d «       y # 1 sw Y   y xY w)Nrz  rÎ   c                 ó   — | S rA   rŽ   r-   s    r/   ú<lambda>z.test_obj_func_returns_scalar.<locals>.<lambda>Ý  s   €  A€ r1   r)   rÁ   r¹   )rP   rQ   r   rª   r+   rL   rÎ   s    r/   Útest_obj_func_returns_scalarr†  Ø  sM   € ð&€Eô 
”z¨Ô	/ñ HÜ×Ñ™+¤r§x¡x°°A°Ó'7ÀÕG÷H÷ Hñ Hús   ”/AÁAc                  ó´   — t        j                  g d¢«      } t        j                  j	                  t        j
                  | d¬«      }|j                  dk  sJ ‚y )NrÐ   rý   )ÚxatoliS  )r+   rL   r   Ú	_minimizeÚ_minimize_neldermeadr   rö   )rU   r­   s     r/   Útest_neldermead_iteration_numr‹  à  sG   € Ü	�‰Ò+Ó	,€BÜ
×
Ñ
×
1Ñ
1´(·.±.À"Ø8<ð 2ó >€Cà�7‰7�cŠ>Ð‰>r1   c                  ó¢   — t        j                  ddg«      j                  t         j                  «      } d„ }t	        j
                  || d¬«       y )Nç      @ç      @c                 ój   — | j                   t        j                  k(  sJ ‚t        j                  | «      S rA   )Údtyper+   Úfloat32r   r   r-   s    r/   Úrosen_z*test_neldermead_respect_fp.<locals>.rosen_ê  s'   € Ø�w‰wœ"Ÿ*™*Ò$Ð$Ð$Ü�~‰~˜aÓ Ð r1   rr  r¹   )r+   rL   Úastyper‘  r   rª   )rU   r’  s     r/   Útest_neldermead_respect_fpr”  ç  s<   € ä	�‰�3˜�*Ó	×	$Ñ	$¤R§Z¡ZÓ	0€Bò!ô ×Ñ�f˜b¨Ö7r1   c                  óV   — d„ } t         j                  j                  | ddgddd¬«       y )Nc                 ó$   — | d   dz  | d   dz  z   S ©Nr   r4   r)   rŽ   r-   s    r/   r}   z)test_neldermead_xatol_fatol.<locals>.funcô  s   € Ø�‰t�q‰y˜1˜Q™4 1™9Ñ$Ð$r1   r)   r4   rò   )rh   rˆ  Úfatol)r   r‰  rŠ  )r}   s    r/   Útest_neldermead_xatol_fatolr™  ñ  s2   € ò%ô ×Ñ×+Ñ+¨D°1°a°&À!Ø26¸dð ,õ Dr1   c                  óÐ   — d„ } g d¢}t        j                  | |d¬«      }t        |j                  d«       t        j                  | |dddi¬«      }t        |j                  d«       y )	Nc                 ó2   — t        j                  | dz  «      S r<  r=  r-   s    r/   r}   z&test_neldermead_adaptive.<locals>.funcü  ó   € Ü�v‰v�a˜1‘f‹~Ðr1   )géÍM@¸'Ä?güOÄC”ÆÞ?gµ§¢€~Ü?gê -Û?g¾ã¬€®ã?g#¹ÂÜj­Ô?gûù îï?g~ê³^gžÜ?gÜ r#—Åè?g^c¸¶Ç½é?g)þÖëi	×?g±Ùô÷'è?g‚Ž™Òýï?g1…›Òä?g[ÕVÎ¤¸?rr  r¹   FÚadaptiveTró   )r   rª   r   r½   )r}   Úp0r­   s      r/   Útest_neldermead_adaptiverŸ  û  s_   € òò
F€Bô ×
Ñ
˜D "¨]Ô
;€CÜ�—‘˜eÔ$ä
×
Ñ
˜D "¨]Ø%/°Ð$6ô8€Cä�—‘˜dÕ#r1   c            	      óÊ  — d„ } d}g d¢}t        t        j                  «      5  t        j                  | ||d¬«      }d d d «       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 «       t	        |j
                  t        j                  g d¢«      d¬«       t        |j                  d«       t        |j                  d«       y # 1 sw Y   �ŒxY w# 1 sw Y   ŒpxY w)Nc                 ó2   — t        j                  | dz  «      S r<  r=  r-   s    r/   r}   z/test_bounded_powell_outsidebounds.<locals>.func  rœ  r1   )©rF  r)   r¢  r¢  )éüÿÿÿr^   gš™™™™™é¿r  rA  r`   r;   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+   rL   Úlenr   r½   r�   )r}   r  rU   r­   r  s        r/   Ú!test_bounded_powell_outsideboundsr§  
  s  € ò
à&€FÚ	€Bô 
”h×.Ñ.Ó	/ñ JÜ×Ñ  b°ÀÔIˆ÷Jä�C—E‘Eœ2Ÿ8™8 R D¬3¨r«7¡NÓ3¸$Õ?Ü�—‘˜dÔ#Ü�—‘˜QÔò š	¢9Ð-€Eä	”h×.Ñ.Ó	/ñ :Ü×Ñ  bØ'-°hØ)0°%Ð(8ô:ˆ÷:ô �C—E‘Eœ2Ÿ8™8¢KÓ0°tÕ<Ü�—‘˜eÔ$Ü�—‘˜QÕ÷%Jñ Jú÷:ð :ús   £EÃEÅEÅE"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 «       t        |j                  dd	¬
«       y # 1 sw Y   Œ"xY w)Nc                 ó2   — t        j                  | dz  «      S r<  r=  r-   s    r/   r}   z+test_bounded_powell_vs_powell.<locals>.func3  rœ  r1   ))éûÿÿÿrF  )éöÿÿÿr  )r)   gffffff"@)r£  gffffff@©gÍÌÌÌÌÌ/Àéþÿÿÿ)gÍÌÌÌÌÌ ÀgÍÌÌÌÌÌÀrÓ   r   r­  ç»½×Ùß|Û=©ÚftolrQ  r  ró   r`   r;   r    )r™   r  r—   )rF  r  r)   r   r­  )NrF  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)   r4   rF   ©r.   rs   s     r/   r}   z+test_bounded_powell_vs_powell.<locals>.funcQ  s•   € Ü�F‰F�A�a‘D�5‹MœBŸF™F 1 Q¡4›LÑ(¬2¯6©6°1°Q±4°%¸!¸A¹$±,Ó+?Ñ?Ä"Ç&Á&ÈÈ1ÉÃ,ÑNˆØ	ŒR�V‰V”B—F‘F˜1˜Q™4 ! A¡$™;Ó'¬"¯&©&°°1±«,Ñ6Ó7Ñ7ˆØ�!‰tˆr1   )r­  rÕ   r_   )r¥   r¥   r¥   r¹   rA  g´£8“ç:}?r   )gbšŽ¥4»F@gìæ†:ÀgžWÀ�¿?@)r   rª   r   r.   rš   r+   rL   Úinfr›   r   r¥  )r}   r  rU   r™   Ú
res_powellÚres_bounded_powellr�   s          r/   Útest_bounded_powell_vs_powellr·  *  s{  € òàD€FÚ	!€Bà eÑ,€Gä×"Ñ" 4¨°HÀgÔN€JÜ�J—L‘L "¨4Õ0Ü�J—N‘N B¨TÕ2ä!×*Ñ*¨4°¸WØ28Ø2:ô<Ðô 	�‰Ò%Ó&€AÜÐ&×(Ñ(¨!°$Õ7ÜÐ&×*Ñ*©D°«G¸$Õ?ð œ2Ÿ6™6˜' 3˜¨!¬R¯V©V¨°jÀ+ÐM€FÜ!×*Ñ*¨4°¸WØ28Ø2:ô<Ðô 	�‰Ò%Ó&€AÜÐ&×(Ñ(¨!°$Õ7ÜÐ&×*Ñ*©D°«G¸$Õ?ò
ð
 ˆY˜‰]€FÚ	€Bä×"Ñ" 4¨°HÔ=€JÜ!×*Ñ*¨4°Ø28Ø2:ô<Ðô �J—N‘NÐ$8¸tÕDÜÐ&×*Ñ*¨A°DÕ9ô
 —‘ˆwœŸ™ÐÐ  1Ñ$€Fä!×*Ñ*¨4°Ø28Ø2:ô<Ðô �J—N‘NÐ$6×$:Ñ$:ÀÕFÜ�J—O‘OÐ%7×%<Ñ%<À4ÕHÜ�J—L‘LÐ"4×"6Ñ"6¸TÕBò 
2€BØˆY˜‰]€Fä	”h×.Ñ.Ó	/ñ @Ü%×.Ñ.¨t°RØ6<Ø6>ô@Ð÷@ô Ð&×*Ñ*¨A°DÖ9÷	@ð @ús   ÊJ>Ê>K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¬«       y )Nr  g    €„.Ar_   rý   r¯  )r—   r  r™   r[   c                 ó.   — t        j                  | «       S rA   r=  r-   s    r/   r|   z1test_onesided_bounded_powell_stability.<locals>.fƒ  s   € Ü—‘�q“	ˆzÐr1   g    `ãFÁç-Cëâ6?r    c                 ó˜   — t        j                  t        j                  | «      «      dz   t        j                  | dkD  «      rdz  S dz  S )Nr>   r   r)   rF  ©r+   rN   rC   rK   r-   s    r/   r|   z1test_onesided_bounded_powell_stability.<locals>.f‰  s<   € Ü—‘”r—v‘v˜a“yÓ! cÑ*Ð*´2·6±6¸!¸a¹%´=¨aÑIÐIÀbÑIÐIr1   gw£ÖÆÀc                 ó˜   — t        j                  t        j                  | «      «      dz   t        j                  | dkD  «      rdz  S dz  S )NrÅ   r   r)   rF  r¼  r-   s    r/   r|   z1test_onesided_bounded_powell_stability.<locals>.f�  s<   € Ü—‘”r—v‘v˜a“yÓ! RÑ'Ð'´·±°q¸1±u´¨1ÑFÐFÀ2ÑFÐFr1   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kD  «      rdz  }|S dz  }|S )Nr4   rÕ   r>   r   r)   rF  r¼  r³  s     r/   r|   z1test_onesided_bounded_powell_stability.<locals>.f—  ss   € Ü�V‰V”B—F‘F˜1˜R˜a˜5“MÓ" aÑ'Ð'¬"¯&©&´·±¸¸!¸"¸³Ó*?ÀCÑ*HÑHˆØ	”2—6‘6˜!˜a™%”=ˆaÑ)ˆØˆð ')Ñ)ˆØˆr1   g     @�@r  g 4&õk\Ã)r+   r´  r   rª   r   rš   )ÚkwargsrU   r|   r­   s       r/   Ú&test_onesided_bounded_powell_stabilityrÀ  w  s  € ð !ÜŸ6™6˜' 3˜Ð(¨1Ñ,Ø"&°Ñ5ñ7€Fò 
€Bòä
×
Ñ
˜A˜rÑ
, VÑ
,€CÜ�C—G‘G˜T¨Õ-òJô ×
Ñ
˜A˜rÑ
, VÑ
,€CÜ�C—G‘G˜_Ô-òGô ×
Ñ
˜A˜rÑ
, VÑ
,€CÜ�C—G‘G˜\°Õ5òô
 Ÿ&™&˜ #˜Ð'¨!Ñ+€Fˆ8ÑÜ
×
Ñ
˜A˜rÑ
, VÑ
,€CÜ�C—G‘GÐ9ÀÖEr1   c                   ó   — e Zd ZdZdZy)ÚTestOptimizeWrapperDispTN©rŠ   r‹   rŒ   r©   r“   rŽ   r1   r/   rÂ  rÂ  ¡  s   „ Ø€KØ�Dr1   rÂ  c                   ó   — e Zd ZdZdZy)ÚTestOptimizeWrapperNoDispTFNrÃ  rŽ   r1   r/   rÅ  rÅ  ¦  s   „ Ø€KØ�Dr1   rÅ  c                   ó   — e Zd ZdZdZy)ÚTestOptimizeNoWrapperDispFTNrÃ  rŽ   r1   r/   rÇ  rÇ  «  s   „ Ø€KØ�Dr1   rÇ  c                   ó   — e Zd ZdZdZy)ÚTestOptimizeNoWrapperNoDispFNrÃ  rŽ   r1   r/   rÉ  rÉ  °  s   „ Ø€KØ�Dr1   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,                  j/                  d«      ej,                  j1                  d«      ej,                  j1                  d«      ej,                  j3                  dg d¢ez   «      d„ «       «       «       «       Zej,                  j3                  dg d¢«      d„ «       Zd„ Zej,                  j3                  dg d¢«      d„ «       Zej,                  j>                  ej,                  j3                  dg d¢«      d„ «       «       Z d „ Z!d!„ Z"d"„ Z#d#„ Z$ej,                  j3                  dg d$¢«      d%„ «       Z%ej,                  j3                  dg d&¢«      d'„ «       Z&ej,                  j1                  d«      ej,                  j3                  de'«      ej,                  j3                  d(g d)¢«      d*„ «       «       «       Z(d+„ Z)ej,                  j3                  dd,«      d-„ «       Z*ej,                  j>                  ej,                  j3                  dg d.¢«      d/„ «       «       Z+y0)1ÚTestOptimizeSimplec                 óø   — d„ }d„ }t         j                  g}t        j                  dd¬«      5  t        j                  |||d¬«      }t        j
                   ||«      «      sJ ‚	 d d d «       y # 1 sw Y   y xY w)Nc                 ó   — | S rA   rŽ   r-   s    r/   r}   z.TestOptimizeSimple.test_bfgs_nan.<locals>.func¹  s   € ØˆHr1   c                 ó,   — t        j                  | «      S rA   ©r+   Ú	ones_liker-   s    r/   rè   z0TestOptimizeSimple.test_bfgs_nan.<locals>.fprime»  ó   € Ü—<‘< “?Ð"r1   ré   )rê   ÚinvalidFrë   )r+   Únanrì   r   rÈ   Úisnan)ro   r}   rè   rU   r.   s        r/   Útest_bfgs_nanz TestOptimizeSimple.test_bfgs_nan·  sf   € ò	ò	#ä�f‰fˆXˆÜ�[‰[˜h°Ô9ñ 	%Ü×"Ñ" 4¨¨V¸%Ô@ˆAÜ—8‘8™D ›GÔ$Ð$Ñ$÷	%÷ 	%ñ 	%ús   ¯7A0Á0A9c                 óª  — d„ }t        j                  d¬«      5  t        j                  |d«      }d d d «       t        j                  d   «      sJ ‚|d   du sJ ‚d„ }d	„ }t        j                  d¬«      5  t        j                  |d|¬
«      }d d d «       t        j                  |d   «      sJ ‚|d   du sJ ‚y # 1 sw Y   Œ�xY w# 1 sw Y   Œ9xY w)Nc                 ó"   — t         j                  S rA   ©r+   rÓ  r-   s    r/   r}   z5TestOptimizeSimple.test_bfgs_nan_return.<locals>.funcÆ  ó   € Ü—6‘6ˆMr1   ré   ©rÒ  r   rš   r½   Fc                 ó0   — | dk(  rdS t         j                  S rM  rØ  r-   s    r/   r}   z5TestOptimizeSimple.test_bfgs_nan_return.<locals>.funcÏ  s   € Ø˜Qš�1Ð*¤B§F¡FÐ*r1   c                 ó,   — t        j                  | «      S rA   rÏ  r-   s    r/   rè   z7TestOptimizeSimple.test_bfgs_nan_return.<locals>.fprimeÑ  rÑ  r1   )r˜   )r+   rì   r   rª   rÔ  )ro   r}   rI  rè   s       r/   Útest_bfgs_nan_returnz'TestOptimizeSimple.test_bfgs_nan_returnÂ  sÏ   € ò	ä�[‰[ Ô*ñ 	0Ü×&Ñ& t¨QÓ/ˆF÷	0ô �x‰x˜˜u™Ô&Ð&Ð&Ø�iÑ  EÑ)Ð)Ð)ò	+ò	#ä�[‰[ Ô*ñ 	<Ü×&Ñ& t¨Q°FÔ;ˆF÷	<ô �x‰x˜˜u™Ô&Ð&Ð&Ø�iÑ  EÑ)Ð)Ñ)÷	0ð 	0ú÷	<ð 	<ús   šB=Á8C	Â=CÃ	Cc                 ó˜  — t        j                  t        j                  d«      «      t         j                  j	                  t        | j                  «      «      z  }t        j                  | j                  | j                  |d| j                  d¬«      }t        | j                  |«      | j                  | j                  «      d¬«       y )Nr\   rŽ   F)r<   r–   rh   r“   r;   r    )r+   ÚsqrtÚspacingr7   Úrandr¦  rg   r   rÈ   r}   rf   rh   r   )ro   r<   r®   s      r/   Útest_bfgs_numerical_jacobianz/TestOptimizeSimple.test_bfgs_numerical_jacobianÙ  s‰   € ô —'‘'œ"Ÿ*™* R›.Ó)¬B¯I©I¯N©N¼3¸t¿}¹}Ó;MÓ,NÑNˆä×#Ñ# D§I¡I¨t×/?Ñ/?Ø,3¸"Ø,0¯L©L¸uôFˆô 	˜Ÿ	™	 &Ó)¨4¯9©9°T·]±]Ó+CØ!ö	#r1   c                 ó*  — g d¢}g d¢}t        j                  ||«      D ]r  \  }}t        j                  | j                  | j
                  ||¬«      }t        | j	                  |j                  «      | j	                  | j                  «      d¬«       Œt y )N)rÁ   r•   ÚTNC©ú2-pointú3-pointN)r—   r˜   r;   r    )	Ú	itertoolsÚproductr   rª   r}   rf   r   r.   rg   )ro   ÚmethodsÚjacsr—   r˜   rI  s         r/   Útest_finite_differences_jacz.TestOptimizeSimple.test_finite_differences_jacå  sx   € Ú'ˆÚ+ˆÜ$×,Ñ,¨W°dÓ;ò 	'‰KˆF�CÜ×&Ñ& t§y¡y°$×2BÑ2BØ.4¸#ô?ˆFä˜DŸI™I f§h¡hÓ/°·±¸4¿=¹=Ó1IØ!%ö'ñ	'r1   c           	      ó  — g d¢}t         t        j                  fz   }t        j                  ||«      D ]d  \  }}|t        j                  u r |«       }t        j
                  | j                  | j                  || j                  |¬«      }|j                  rŒdJ ‚ g d¢}|D ]\  }t        j                  t        «      5  t        j
                  | j                  | j                  || j                  d ¬«       d d d «       Œ^ y # 1 sw Y   ŒixY w)N)útrust-constrrG  ú	trust-ncgútrust-krylov©r—   r˜   r†   )rï  rð  Údoglegútrust-exact)r   r   rÁ   rè  ré  rª   r}   rf   r‚   r½   rÙ   r
   rQ   )ro   rê  Úhessesr—   r†   rI  s         r/   Útest_finite_differences_hessz/TestOptimizeSimple.test_finite_differences_hessî  së   € ò MˆÜœxŸ}™}Ð.Ñ.ˆÜ%×-Ñ-¨g°vÓ>ò 	"‰LˆF�DØ”x—}‘}Ñ$Ù“v�Ü×&Ñ& t§y¡y°$×2BÑ2BØ.4¸$¿)¹)Ø,0ô2ˆFð —>“>Ð!�>ð	"ò IˆØò 	-ˆFÜ—‘œzÓ*ñ -Ü×!Ñ! $§)¡)¨T×-=Ñ-=Ø)/°T·Y±YØ'+õ-÷-ð -ñ	-÷-ð -ús   Â<9D Ä D		c                 óZ   — d„ }t        j                  |dgd¬«      }t        |ddd¬«       y )Nc                 ó   — | dk  ry| d| z  z   S )Nr   g÷BŒþÿÿïr\   rŽ   r-   s    r/   r|   z/TestOptimizeSimple.test_bfgs_gh_2169.<locals>.f	  s   € Ø�1ŠuØ&à˜2˜a™4‘x�r1   ç      $@Frë   r\   rº  ©r¨   r¡   )r   rÈ   r   )ro   r|   Úxss      r/   Útest_bfgs_gh_2169z$TestOptimizeSimple.test_bfgs_gh_2169  s-   € ò	 ô
 ×Ñ  C 5¨uÔ5ˆÜ˜˜C d°Ö6r1   c                 óX   ‡— ˆfd„}t        «       Št        j                  |dddd¬«       y )Nc                 óV   •— | d   }|‰vsJ ‚‰j                  |«       d| dz  z  d| z  fS )Nr   rÅ   r4   é   )Úadd)r.   ÚxpÚseens     €r/   r|   z:TestOptimizeSimple.test_bfgs_double_evaluations.<locals>.f  s9   ø€ Ø�1‘ˆBØ˜T‘>Ð!�>Ø�H‰H�RŒLØ�a˜‘d‘7˜B˜q™D�=Ð r1   éœÿÿÿrð   Tr?   )r—   r˜   Útol)Úsetr   rª   )ro   r|   r  s     @r/   Útest_bfgs_double_evaluationsz/TestOptimizeSimple.test_bfgs_double_evaluations  s'   ø€ ô	!ô ‹uˆÜ×Ñ˜!˜T¨&°dÀÖEr1   c                 ó(  — t        j                  | j                  | j                  | j                  d| j
                  ¬«      }|\  }}}t        | j                  |«      | j                  | j                  «      d¬«       | j                  j                  dk(  sJ | j                  j                  «       ‚| j                  j                  dk(  sJ | j                  j                  «       ‚t        | j                  j                  dd g d¢g d	¢gd
d¬«       y )NrŽ   )r–   rh   r;   r    r£   rÕ   r_   )gžÈî°>Í<gwTë³¹ à¿gÓUuAXß?)r`   g¿‹ŒHóËà¿g!mÊ²3ß?r¦   r?   r§   )r   Úfmin_l_bfgs_br}   rf   r‚   rh   r   rg   rk   rr   rl   rm   rs   ©ro   r³   r®   r¯   Úds        r/   Útest_l_bfgs_bz TestOptimizeSimple.test_l_bfgs_b  sÞ   € ä×'Ñ'¨¯	©	°4×3CÑ3CØ(,¯	©	¸Ø04·±ô>ˆð #Ñˆ��qä˜Ÿ	™	 &Ó)¨4¯9©9°T·]±]Ó+CØ!õ	#ð
 �~‰~×Ñ 1Ò$Ð6 d§n¡n×&6Ñ&6Ó6Ð$Ø�~‰~×Ñ 1Ò$Ð6 d§n¡n×&6Ñ&6Ó6Ð$ô 	˜Ÿ
™
Ÿ™ Q qÐ)ÚDÚ6ð8à"¨ö	/r1   c                 óê   — t        j                  | j                  | j                  d| j                  ¬«      }|\  }}}t        | j                  |«      | j                  | j                  «      d¬«       y )NT)Úapprox_gradrh   r;   r    )r   r  r}   rf   rh   r   rg   r  s        r/   Útest_l_bfgs_b_numjacz'TestOptimizeSimple.test_l_bfgs_b_numjac3  s]   € ä×'Ñ'¨¯	©	°4×3CÑ3CØ48Ø04·±ô>ˆð #Ñˆ��qä˜Ÿ	™	 &Ó)¨4¯9©9°T·]±]Ó+CØ!ö	#r1   c                 óà   ‡ — ˆ fd„}t        j                  |‰ j                  ‰ j                  ¬«      }|\  }}}t	        ‰ j                  |«      ‰ j                  ‰ j                  «      d¬«       y )Nc                 óH   •— ‰j                  | «      ‰j                  | «      fS rA   )r}   r‚   )r.   ro   s    €r/   rš   z4TestOptimizeSimple.test_l_bfgs_b_funjac.<locals>.fun@  s   ø€ Ø—9‘9˜Q“< §¡¨1£Ð-Ð-r1   ©rh   r;   r    )r   r  rf   rh   r   r}   rg   )ro   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Ø!ö	#r1   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
«       y )Nc                   ó   — e Zd Zd„ Zd„ Zy)ú:TestOptimizeSimple.test_l_bfgs_b_maxiter.<locals>.Callbackc                 ó.   — d| _         d | _        d | _        y rM  )rö   rš   r.   rn   s    r/   Ú__init__zCTestOptimizeSimple.test_l_bfgs_b_maxiter.<locals>.Callback.__init__O  s   € Ø�”Ø�”Ø�•r1   c                 óp   — || _         t        j                  |«      | _        | xj                  dz  c_        y r(   )r.   r   r   rš   rö   ©ro   r.   s     r/   Ú__call__zCTestOptimizeSimple.test_l_bfgs_b_maxiter.<locals>.Callback.__call__T  s&   € Ø�”Ü#Ÿ>™>¨!Ó,�”Ø—’˜A‘–r1   N©rŠ   r‹   rŒ   r  r  rŽ   r1   r/   ÚCallbackr  N  s   „ òó
r1   r  r`   úl-bfgs-brh   rÕ   )r—   Úcallbackr™   r)   Fz+STOP: TOTAL NO. OF ITERATIONS REACHED LIMIT)r   rª   r   r   rö   r   r.   rš   r�   r½   Úmessage)ro   r  rr   r­   s       r/   Útest_l_bfgs_b_maxiterz(TestOptimizeSimple.test_l_bfgs_b_maxiterK  s£   € ÷		ñ 		ñ ‹JˆÜ×Ñ¤§¡°°R°ÀØ)*°YÀ°NôDˆô 	�S—W‘W˜aÔ Ü˜CŸE™E 1§3¡3Ô'Ü˜CŸG™G Q§U¡UÔ+Ü�S—Z‘Z Ô#Ø�{‰{˜eÑ#Ð#Ð#Ü�S—[‘[ØBõ	Dr1   c                 ó.  — d| j                   dœ}t        j                  | j                  | j                  d| j
                  |¬«      }t        | j                  |j                  «      | j                  | j                  «      d¬«       | j                  j                  |j                  k(  sJ ‚dx| j                  _
        | j                  _
        t        j                  | j                  | j                  d|¬«      }| j                  j                  |j                  k(  sJ ‚t        | j                  |j                  «      | j                  | j                  «      d¬«       dx| j                  _
        | j                  _
        t        j                  | j                  | j                  d	d|¬
«      }| j                  j                  |j                  k(  sJ ‚t        | j                  |j                  «      | j                  | j                  «      d¬«       y )NF©r“   rh   úL-BFGS-B©r—   r˜   r™   r;   r    r   ró   rç  ©r˜   r—   r™   )rh   r   rª   r}   rf   r‚   r   r.   rg   rl   rr   rœ   rk   r›   )ro   r¬   rV   Úras       r/   Útest_minimize_l_bfgs_bz)TestOptimizeSimple.test_minimize_l_bfgs_be  s†  € à¨$¯,©,Ñ7ˆÜ×Ñ˜dŸi™i¨×)9Ñ)9Ø%/°T·Y±YØ&*ô,ˆô 	˜Ÿ	™	 !§#¡#›¨¯	©	°$·-±-Ó(@Ø!õ	#à�~‰~×Ñ 1§6¡6Ò)Ð)Ð)à./Ð/ˆ�‰Ô˜4Ÿ>™>Ô+ä×Ñ˜tŸy™y¨$×*:Ñ*:Ø&0¸$ô@ˆð �~‰~×Ñ 2§7¡7Ò*Ð*Ð*Ü˜Ÿ	™	 "§$¡$›¨¯©°4·=±=Ó)AØ!õ	#ð /0Ð/ˆ�‰Ô˜4Ÿ>™>Ô+ä×Ñ˜tŸy™y¨$×*:Ñ*:À	Ø&0¸$ô@ˆà�~‰~×Ñ 2§7¡7Ò*Ð*Ð*Ü˜Ÿ	™	 "§$¡$›¨¯©°4·=±=Ó)AØ!ö	#r1   c                 óB  — d }dD ]˜  }d| j                   |dœ}t        j                  | j                  | j                  d| j
                  |¬«      }| j                  |j                  «      }|€|}n||k  sJ ‚t        || j                  | j                  «      |¬«       Œš y )N)r>   rº  r?   r®  F)r“   rh   r°  r"  r#  r»   )	rh   r   rª   r}   rf   r‚   r.   r   rg   )ro   Úv0r  r¬   r¾   Úvs         r/   Útest_minimize_l_bfgs_b_ftolz.TestOptimizeSimple.test_minimize_l_bfgs_b_ftol�  s”   € àˆØ,ò 	CˆCØ!¨d¯l©lÀCÑHˆDÜ×#Ñ# D§I¡I¨t×/?Ñ/?Ø+5¸4¿9¹9Ø,0ô2ˆCð —	‘	˜#Ÿ%™%Ó ˆAàˆzØ‘à˜2’v��vä˜A˜tŸy™y¨¯©Ó7¸cÖBñ	Cr1   c           	      ó¼   — t        j                  t         j                  t        j                  ddg«      dt         j
                  dddœ¬«      }|j                  rJ ‚y )Nrû   r\   r"  Fr)   )r“   Úmaxlsr#  )r   rª   r   r+   rL   r   r½   )ro   r¾   s     r/   Útest_minimize_l_bfgs_maxlsz-TestOptimizeSimple.test_minimize_l_bfgs_maxls’  sK   € ä×Ñ¤§¡´·±¸$À¸Ó0EØ'1´x×7IÑ7IØ16ÀÑ(CôEˆð —;’;Ðˆ�;r1   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        ||
«       y )Nr£   ra   c                 ó:   •—  ‰| «      }‰j                  |«       |S rA   )rx   )r.   Úvaluer|   Úvaluess     €€r/   ÚobjfunzMTestOptimizeSimple.test_minimize_l_bfgs_b_maxfun_interruption.<locals>.objfun   s   ø€ Ù�a“DˆEØ�M‰M˜%Ô ØˆLr1   )é   r0  i,  )rè   Úmaxfunc              3   ó*   K  — | ]  \  }}||f–— Œ y ­wrA   rŽ   )Ú.0r€  Úys      r/   ú	<genexpr>zPTestOptimizeSimple.test_minimize_l_bfgs_b_maxfun_interruption.<locals>.<genexpr>ª  s   è ø€ ÒA™d˜a �A�q”6ÑAùs   ‚)
r   r   r   r+   Úfullr  ÚmaxÚ	enumerateÚminr   )ro   ÚgrU   r2  ÚlowÚmediumÚhighr)  Úkr4  ÚtargetÚxminr)  r	  r|   r1  s                 @@r/   Ú*test_minimize_l_bfgs_b_maxfun_interruptionz=TestOptimizeSimple.test_minimize_l_bfgs_b_maxfun_interruption™  s³   ù€ ä�N‰NˆÜ×ÑˆØˆÜ�W‰W�Q˜Óˆõ	ð )ÑˆˆV�TÜ×Ñ˜v r°!¸DÕAÜÑA¤i°°v°w°Ó&@ÔAÓA‰ˆˆ1Ø˜!‘ˆô �V˜D˜S�\Ó"ˆÜ ×.Ñ.¨q°"¸QÀvÔN‰ˆˆd�AÜ˜$ Õ'r1   c                 ó¬   — 	 	 d	d„}g d¢}t        j                  t         j                  ||t        d¬«      ¬«      }t	        |j
                  ddd¬«       y )
Nc                 ó˜  — |} | |«      }	d}
d}d}d}|rš|s˜||k  r“d}|dz  }t        t        j                  |«      «      D ]a  }||   |z
  ||   |z   fD ]6  }t        j                  |«      }|||<    | |g|¢­Ž }|
dz  }
||	k  sŒ1|}	|}d}Œ8 |� ||«       |€ŒY|
|k\  sŒ_d} n |r|s||k  rŒ“t	        j
                  |	|||
|dkD  ¬«      S )Nr)   r   TF©rš   r.   rö   r›   r½   )r3  r+   Úsizery   r   r   )rš   rU   r–   rs  Ústepsizerh   r  r™   ÚbestxÚbestyÚfuncallsÚniterÚimprovedÚstopÚdimÚsÚtestxÚtestys                     r/   Úcustminz/TestOptimizeSimple.test_custom.<locals>.custminµ  s  € àˆEÙ˜“GˆEØˆHØˆEØˆHØˆDá¡4¨E°GªOØ �Ø˜‘
�Ü ¤§¡¨£Ó-ò �CØ# C™j¨8Ñ3°U¸3±ZÀ(Ñ5JÐKò ,˜Ü "§¡¨£˜Ø%&˜˜c™
Ù # EÐ 1¨DÒ 1˜Ø  A™˜Ø  5›=Ø$)˜EØ$)˜EØ'+™Hð,ð  Ð+Ù  œØÑ)¨h¸&Ó.@Ø#˜Ùðñ ¡4¨E°G«Oô& ×*Ñ*¨u¸À5Ø08À5È1Á9ôOð Or1   )gš™™™™™õ?r  rÒ   çš™™™™™ñ?rÔ   çš™™™™™©?©rI  ró   r\   rº  rù  ©rŽ   Nr>   r0  N)r   rª   r   rR  r   r.   )ro   rT  rU   r­   s       r/   Útest_customzTestOptimizeSimple.test_custom³  sI   € à<?Ø*.ó	Oò> (ˆÜ×Ñ¤§¡°¸7Ü(,°dÔ(;ô=ˆä˜Ÿ™˜s¨°DÖ9r1   c                 óx   ‡‡— ddgŠdŠˆˆfd„}ddg}t        j                  t         j                  ||‰‰¬«       y )N)r­  r4   )r   r_   Úconstraintsc                 óP   •— |d   ‰u sJ ‚|d   ‰u sJ ‚t        j                  «       S )Nr  r[  ©r   r   )rš   rU   r™   r  r[  s      €€r/   rT  z0TestOptimizeSimple.test_gh10771.<locals>.custminß  s8   ø€ Ø˜8Ñ$¨Ñ.Ð.Ð.Ø˜=Ñ)¨[Ñ8Ð8Ð8Ü×*Ñ*Ó,Ð,r1   r)   )r—   r  r[  )r   rª   r   )ro   rT  rU   r  r[  s      @@r/   Útest_gh10771zTestOptimizeSimple.test_gh10771Ù  sB   ù€ ð ˜6Ð"ˆØ#ˆõ	-ð
 �ˆVˆÜ×Ñœ(Ÿ.™.¨"°WØ!'°[ö	Br1   c           	      óH  — d„ }d„ }dD ]—  }|dv rd }n|}t        j                  |ddg|d|¬«      }t        j                  |ddg|d|¬«      } ||j                  «       ||j                  «      k  rŒjJ |› d	 ||j                  «      › d
 ||j                  «      › �«       ‚ y )Nc                 ó4   — | \  }}|dz  |dz  z  |dz  z   dz   S )Nr4   r¤   r)   rŽ   ©Úzr.   r7  s      r/   r}   z<TestOptimizeSimple.test_minimize_tol_parameter.<locals>.funcê  s+   € Ø‰DˆAˆqØ�a‘4˜˜1™‘9˜q !™tÑ# aÑ'Ð'r1   c                 óp   — | \  }}t        j                  d|z  |dz  z  d|dz  z  z   d|dz  z  |z  g«      S )Nr4   r¤   r_   ©r+   rL   ra  s      r/   Údfuncz=TestOptimizeSimple.test_minimize_tol_parameter.<locals>.dfuncî  sD   € Ø‰DˆAˆqÜ—8‘8˜Q˜q™S  A¡™X¨¨!¨Q©$©Ñ.°°!°Q±$±°q±Ð9Ó:Ð:r1   ©
r@  Úpowellr	  rð   rP  r  ÚtncÚcobylard  Úslsqp©r@  rg  ri  rd  r4   r®  )r˜   r  r—   r\   ú: z vs. )r   rª   r.   )ro   r}   re  r—   r˜   Úsol1Úsol2s          r/   Útest_minimize_tol_parameterz.TestOptimizeSimple.test_minimize_tol_parameterè  s½   € ò	(ò	;ð4ò 	BˆFð ÐFÑFØ‘à�ä×$Ñ$ T¨A¨q¨6°sÀØ,2ô4ˆDä×$Ñ$ T¨A¨q¨6°sÀØ,2ô4ˆDá˜Ÿ™“<¡$ t§v¡v£,Ó.ð BØ�X˜R¡ T§V¡V£˜~¨U±4¸¿¹³<°.ÐAóBÐ.ñ	Br1   rÅ   rã   úignore::RuntimeWarningr—   )r)  r  r«   rÈ   rY  r  Úfmin_tncÚ
fmin_slsqpc                 óŒ  ‡‡
— ‰dv rd„ }n0t         j                  }t         j                  }t         j                  }t	        j
                  d«      }i }‰j                  d«      r6t        t         ‰«      }‰dk(  rd|d<   nD‰dk(  rd	|d
<   n9‰dv rd|d<   n/d|d<   n)ˆ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kD  sJ ‚t        d„ ‰
D «       «      sJ ‚t        j                  ‰
d«      }	t        d„ |	D «       «      rJ ‚y )N)rq  r  c                 óV   — t        j                  | «      t        j                  | «      fS rA   )r   r   r   r-   s    r/   r}   zDTestOptimizeSimple.test_minimize_callback_copies_array.<locals>.func  s!   € Ü—~‘~ aÓ(¬(×*<Ñ*<¸QÓ*?Ð?Ð?r1   rÅ   r)  rr  rÕ   Úiterrq  r0  r4  )r)  r  i¬  rh   c                  ó8   •— ‰|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Ð2r1   rh  ©r4  r™   r  )rY  rè   )rP  r˜   ©rð  ró  rï  rò  rî  r†   c                 óŠ   •— t        | t        j                  «      rJ ‚‰j                  | t	        j
                  | «      f«       y rA   )Ú
isinstancer   r   rx   r+   ry   )r.   r–   r¿  Úresultss      €r/   r  zHTestOptimizeSimple.test_minimize_callback_copies_array.<locals>.callback8  s1   ø€ Ü! !¤X×%<Ñ%<Ô=Ð=Ð=Ø�N‰N˜AœrŸw™w q›z˜?Õ+r1   r  r4   c              3   óR   K  — | ]  \  }}t        j                  ||k(  «      –— Œ! y ­wrA   )r+   rK   ©r6  r.   r7  s      r/   r8  zITestOptimizeSimple.test_minimize_callback_copies_array.<locals>.<genexpr>A  s    è ø€ Ò6¡d a¨”2—6‘6˜!˜q™&—>Ñ6ùs   ‚%'c              3   óZ   K  — | ]#  \  }}t        j                  |d    |d    «      –— Œ% y­w)r   N)r+   Úmay_share_memoryr�  s      r/   r8  zITestOptimizeSimple.test_minimize_callback_copies_array.<locals>.<genexpr>C  s)   è ø€ ÒP¹4¸1¸a”r×*Ñ*¨1¨Q©4°°1±×6ÑPùs   ‚)+)r   r   r   r   r+   rd   Ú
startswithÚgetattrrR  r¦  rK   rè  ÚcombinationsÚany)ro   r—   r}   r˜   r†   rU   r¿  rz  r  r†  r  s    `        @r/   Ú#test_minimize_callback_copies_arrayz6TestOptimizeSimple.test_minimize_callback_copies_array  sƒ  ù€ ð Ð2Ñ2ó@ô —>‘>ˆDÜ×$Ñ$ˆCÜ×&Ñ&ˆDä�X‰X�b‹\ˆð ˆØ×Ñ˜VÔ$Üœh¨Ó/ˆGØ˜Ò%Ø!"��v’Ø˜:Ò%Ø#&��xÒ ØÐ2Ñ2Ø$(��yÒ!à$%��yÒ!ô3ð ˜ŠÜ$(°Ô$4��yÒ!ä$(°¤O��yÑ!à�]Ñ"Ø"ˆF�8ÒØ�~Ñ%ØˆF�5ŠMØð (ñ (àˆF�5‰MØ!ˆF�6‰Nð ˆô	,ñ 	��bÑ6 8Ð6¨vÒ6ô �7‹|˜aÒÐÐÜÑ6¨gÔ6Ô6Ð6Ð6Ü ×-Ñ-¨g°qÓ9ˆÜÑPÀ<ÔPÔPÐPÐPÐPr1   rf  c                 óx  — 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 ‚y )Nc                 ó   — | dz
  dz  S r3   rŽ   r-   s    r/   r}   z1TestOptimizeSimple.test_no_increase.<locals>.funcL  ó   € Ø˜‘E˜A‘:Ðr1   c                 ó   — d| dz
  z  dz  dz
  S )Nr4   r)   rF  rŽ   r-   s    r/   Úbad_gradz5TestOptimizeSimple.test_no_increase.<locals>.bad_gradO  s   € ð �a˜!‘e‘9 Ñ# aÑ'Ð'r1   ç       @rh  rþ  r{  r  rk  r$  rj  zSLSQP returns slightly worse)
r+   rL   rR  r   rª   r   r.   rš   rÙ   rl  )	ro   r—   r}   r�  rU   Úf0r˜   r™   r¾   s	            r/   Útest_no_increasez#TestOptimizeSimple.test_no_increaseE  s«   € ò	ò	(ô
 �X‰X�s�e‹_ˆÙ�"‹XˆØˆØ%+¨u¢_”$˜b•/¼$ÀrÔ:JˆØÐBÑBØˆCÜ×Ñ  b¨c¸&Ø(/ô1ˆä‘T˜#Ÿ%™%“[ #§'¡'Ô*à�WÒÜ�L‰LÐ7Ô8Ù�C—E‘E‹{˜bÒ Ð Ñ r1   c                 óÖ   — d„ }d„ }t        j                  g d¢«      }t        j                  ||dd|dœ¬«      }t	        |j
                  t        j                  g d¢«      d	z  d
¬«       y )Nc                 óN   — t        | t        j                  g d¢«      z
  dz  «      S )N)r\   rŽ  rB  rŽ  r4   )rC   r+   rL   r-   s    r/   r|   z7TestOptimizeSimple.test_slsqp_respect_bounds.<locals>.fd  s!   € Ü˜œBŸH™HÒ%5Ó6Ñ6¸Ñ:Ó;Ð;r1   c                 ó¾   — t        j                  g d¢g d¢g«      }t        j                  t        j                  || «      t        j                  ddg«      z   | g«      S )N)rF  rF  rF  rF  )éýÿÿÿr”  r­  rF  rÕ   rÅ   )r+   rL   Úconcatenaterv   ©r.   rx  s     r/   Úconsz:TestOptimizeSimple.test_slsqp_respect_bounds.<locals>.consg  sG   € Ü—‘Ò*Ò,<Ð=Ó>ˆAÜ—>‘>¤2§6¡6¨!¨Q£<´"·(±(¸A¸r¸7Ó2CÑ#CÀQÐ"GÓHÐHr1   )r^   r\   r6   rŽ  rj  Úineq©Útyperš   ©r—   r[  )r`   r4   rÕ   rÆ   r_   gê-�™—q=r    )r+   rL   r   rª   r   r.   )ro   r|   r—  rU   r­   s        r/   Útest_slsqp_respect_boundsz,TestOptimizeSimple.test_slsqp_respect_boundsb  s[   € ò	<ò	Iô �X‰XÒ(Ó)ˆÜ×Ñ  2¨gØ5;ÀDÑ,IôKˆä˜Ÿ™œrŸx™xªÓ6°qÑ8¸uÖEr1   )rr  r  r•   rÁ   rG  r"  ÚSLSQPrî  rò  rï  ró  rð  rd  c           	      óv  — 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 ‚y |dk(  r|j"                  dk(  sJ ‚y y )Nr¤   rÅ   rŽ   r  ró   )rG  r˜   r|  r†   rœ   r�  r¢   rd  rÇ   )r+   rd   r   r   r   r   r   rR  r‚   r†   rª   rš   rö   r›   rt   rœ   Úngevr�   )ro   r—   ÚMAXITERrU   Úsfr¿  r¾   s          r/   Útest_respect_maxiterz'TestOptimizeSimple.test_respect_maxiterp  s&  € ð ˆä�X‰X�b‹\ˆäœHŸN™N¨B°´H×4FÑ4FÜ$×/Ñ/°°tó=ˆð #¬t¸GÔ/DÑEˆà�^Ñ#ØŸG™GˆF�5ŠMØð (ñ (àŸG™GˆF�5‰MØŸW™WˆF�6‰Nä×Ñ §¡¨Ñ5¨fÑ5ˆØ�w‰w˜'Ò!Ð!Ð!Ø�x‰x˜2Ÿ7™7Ò"Ð"Ð"Ü�3˜ÔØ—8‘8˜rŸw™wÒ&Ð&Ð&ð �WÒØ—:‘: ’?Ð"‘?Ø�xÒØ—:‘: ’?Ð"‘?ð  r1   )rr  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  |j                  d«      r%t        t        |«      } ||j                  |fi |¤Ž n#t        j                  |j                  |||¬	«       d d d «       y # 1 sw Y   y xY w)
NrÅ   rŽ   r)   Tre  zMaximum number of iterationsrÎ   r)  ró   )r+   rd   r   r   r   r   r   rÙ   ÚwarnsÚRuntimeWarningr„  r…  rš   rª   )ro   r—   rU   r¡  r™   rz  s         r/   Útest_runtime_warningz'TestOptimizeSimple.test_runtime_warning•  s´   € ô �X‰X�b‹\ˆÜœHŸN™N¨B°´H×4FÑ4FÜ$×/Ñ/°°tó=ˆà¨Ñ.ˆÜ�\‰\œ.Ø ?ôAñ 	Nà× Ñ  Ô(Ü!¤(¨FÓ3�Ù˜Ÿ™ Ñ. gÓ.ä×!Ñ! "§&¡&¨"°VÀWÕM÷	N÷ 	Nñ 	Nús   Á1A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 ‚y )	Nr¤   c                 ó^   — t        j                  d| d   z  d| d   z  z
  d| d   z  z
  g«      S )NrI   r   çš™™™™™Ù?r)   ç…ëQ¸Õ?r4   rd  r-   s    r/   rš   zRTestOptimizeSimple.test_respect_maxiter_trust_constr_ineq_constraints.<locals>.fun®  s6   € Ü—8‘8˜S 1 Q¡4™Z¨#°°!±©*Ñ4°t¸aÀ¹d±{ÑBÐCÓDÐDr1   r˜  r™  rÅ   rî  r  )r[  r˜   r†   r—   r™   )	r   r   r   r   r+   rd   rª   rR  rö   )	ro   r   r|   r˜   r†   rš   r—  rU   r¾   s	            r/   Ú2test_respect_maxiter_trust_constr_ineq_constraintszETestOptimizeSimple.test_respect_maxiter_trust_constr_ineq_constraints¥  sˆ   € ð ˆÜ�N‰NˆÜ× Ñ ˆÜ×"Ñ"ˆò	EàØñð ˆô �X‰X�b‹\ˆÜ×Ñ  2°4¸SÀtØ'5Ü(,°WÔ(=ô?ˆð �w‰w˜'Ò!Ð!Ñ!r1   c                 ón  — 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                  rŒJ ‚ t        |j                  dd¬«       t        |j                  dd¬«       t        |j                  dd¬«       t        |j                  dd¬«       t        |j                  dd¬«       y )Nc                 ó   — | dz  S r<  rŽ   r-   s    r/   r|   z6TestOptimizeSimple.test_minimize_automethod.<locals>.fº  ó   € Ø�a‘4ˆKr1   c                 ó   — | dz
  S r<  rŽ   r-   s    r/   r—  z9TestOptimizeSimple.test_minimize_automethod.<locals>.cons½  s   € Ø�q‘5ˆLr1   rø  r˜  r™  )r[  )rÕ   rÅ   ©r  )r[  r  ©r)   rÅ   r   r?   r    r4   rÕ   )r+   rL   r   rª   r½   r   r.   )
ro   r|   r—  rU   Úsol_0Úsol_1Úsol_2Úsol_3Úsol_4r¾   s
             r/   Útest_minimize_automethodz+TestOptimizeSimple.test_minimize_automethod¹  s-  € ò	ò	ô �X‰X�s�e‹_ˆÜ×!Ñ! ! RÓ(ˆÜ×!Ñ! ! R¸vØ>Bñ7Dð 6Eô Fˆä×!Ñ! ! R°°	Ô:ˆÜ×!Ñ! ! RØ8>ÀtÑ/LÐ.MØ*1¨ô4ˆô ×!Ñ! ! RØ8>ÀtÑ/LÐ.MØ*1¨ô4ˆð ˜5 %¨°Ð6ò 	ˆCØ—;“;Ð�;ð	ä˜Ÿ™ ¨Õ.Ü˜Ÿ™ ¨Õ.Ü˜Ÿ™ ¨Õ.Ü˜Ÿ™ ¨Õ.Ü˜Ÿ™ ¨Ö.r1   c                 óÄ   — d„ }dd„}t        j                  g d¢«      }t         j                  j                  t	        |«      «      }t        j                  ||||d¬«       y )Nc                 ó8   — t        j                  | |z
  dz  «      S r<  r=  ©r.   rr   s     r/   ÚYz=TestOptimizeSimple.test_minimize_coerce_args_param.<locals>.YÕ  s   € Ü—6‘6˜1˜Q™3 ™(Ó#Ð#r1   c                 ó   — d| |z
  z  S r<  rŽ   rº  s     r/   ÚdY_dxzATestOptimizeSimple.test_minimize_coerce_args_param.<locals>.dY_dxØ  s   € Ø�a˜‘c‘7ˆNr1   )r_   r)   r¤   r)   rÕ   r¢   r4   rÇ   rÕ   r_   rÕ   rÁ   )r˜   r–   r—   rA   )r+   rL   r7   Úrandnr¦  r   rª   )ro   r»  r½  rr   Úxinits        r/   Útest_minimize_coerce_args_paramz2TestOptimizeSimple.test_minimize_coerce_args_paramÓ  sI   € ò	$ó	ô �H‰HÒ6Ó7ˆÜ—	‘	—‘¤ A£Ó'ˆÜ×Ñ˜!˜U¨°QÀÖGr1   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Œ.d
gŠd gŠ	t        j                  |‰|||¬«      }|› d‰
› d‰	› d|› �}|j
                  sJ |«       ‚t        |j                  dg|¬«       |j                  dk  sJ |«       ‚‰
dkD  r.|dv rt        ‰	d   d|¬«       Œ¸‰	d   dkD  r	‰	d   dk  rŒÉJ |«       ‚ŒÑ y )N)g¸ÔJzî�5r)   gšd~ÅQJ)r•   rÁ   r"  rG  c                 ó¼   •— ‰d   €"| d   ‰d   k7  rt        | d   ‰d   z
  «      ‰d<   t        | «      j                  «       dkD  rt        d«      ‚‰| d   dz
  dz  z  S )Nr   g     ˆÃ@zOptimization stepped far away!r)   r4   )rN   r:  ÚAssertionError)r.   Úfirst_step_sizeÚscalerU   s    €€€r/   r|   z7TestOptimizeSimple.test_initial_step_scaling.<locals>.fæ  sl   ø€ Ø˜qÑ!Ð)¨a°©d°b¸±eªmÜ%(¨¨1©°°1±©Ó%6� Ñ"Ü�1‹v�z‰z‹|˜cÒ!Ü$Ð%EÓFÐFØ˜!˜A™$ ™( Q™Ñ&Ð&r1   c                 óB   •— t        j                  ‰| d   dz
  z  g«      S ©Nr   r)   rd  )r.   rÅ  s    €r/   r=  z7TestOptimizeSimple.test_initial_step_scaling.<locals>.gí  s"   ø€ Ü—8‘8˜U A a¡D¨1¡HÑ-Ð.Ó/Ð/r1   )r•   rÁ   rý   )rô   r®  )r"  rG  ç      ð¿r$  ú rl  r\   ©Úerr_msgr_   r   g)\�Âõ(ð?r^   )	rè  ré  rR  r   rª   r½   r   r.   rö   )ro   Úscalesrê  r|   r=  r—   r™   r­   rË  rÄ  rÅ  rU   s            @@@r/   Útest_initial_step_scalingz,TestOptimizeSimple.test_initial_step_scalingß  s6  ú€ ò "ˆÚ9ˆö	'ô	0ô '×.Ñ.¨v°wÓ?ò 	‰MˆE�6Ø˜Ñ'Ü E¨$¡JÔ/‘ä›&�à�uŠ} Ð+DÑ!Dàà�ˆBØ#˜fˆOÜ×#Ñ# A r¨q¸Ø,3ô5ˆCð  ˜  % ¨¨?Ð*;¸2¸c¸UÐCˆGà—;’;Ð' Ó'�;Ü˜CŸE™E C 5°'Õ:Ø—7‘7˜a’<Ð( Ó(�<à�uŠ}Ø˜^Ñ+Ü# O°AÑ$6¸ÀgÖNð +¨1Ñ-°Ò3¸ÈÑ8JÈQÓ8NÐWÐPWÓWÐNð ñ?	r1   )r@  rg  r	  rð   rP  r  rh  ri  rd  rj  rî  rò  rï  ró  rð  c                 ó  ‡‡— |dkD  r|dk(  rt        j                  d«       t        j                  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 }|j                  t        d«       |j                  t        d«       |j                  t        d«       t        j                  |
||«      D ]:  \  }}}dgŠt        j                  ||||||¬«      }t!        |j"                  d«       Œ< 	 d d d «       d d d «       y # 1 sw Y   ŒxY w# 1 sw Y   y xY w)Nr)   rd  z,COBYQA does not support concurrent executionr8   r   c                 ó"   — t         j                  S rA   rØ  r-   s    r/   r}   z0TestOptimizeSimple.test_nan_values.<locals>.func  rÙ  r1   c                 ón   •— ‰dxx   dz  cc<   ‰d   dkD  rt         j                  S ‰j                  «       S r²  )r+   rÓ  rá  )r.   Úcountr=   s    €€r/   Úfunc2z1TestOptimizeSimple.test_nan_values.<locals>.func2"  s0   ø€ Ø�!‹H˜‰M‹HØ�Q‰x˜!Š|Ü—v‘v�à—x‘x“zÐ!r1   c                 ó.   — t        j                  dg«      S ©Nr\   rd  r-   s    r/   r‚   z0TestOptimizeSimple.test_nan_values.<locals>.grad)  s   € Ü—8‘8˜S˜E“?Ð"r1   c                 ó0   — t        j                  dgg«      S rÔ  rd  r-   s    r/   r†   z0TestOptimizeSimple.test_nan_values.<locals>.hess,  s   € Ü—8‘8˜c˜U˜GÓ$Ð$r1   r\   ©rP  rð  ró  rï  rò  ©rð  ró  rï  rò  rh  rþ  r{  r  ré   rÚ  údelta_grad == 0.*ú.*does not use Hessian.*ú.*does not use gradient.*)r˜   r†   r—   r™   F)rÙ   Úskipr+   r7   ÚRandomStaterL   rR  rì   r	   ÚfilterÚUserWarningr¥  rè  ré  r   rª   r   r½   )ro   r—   Únum_parallel_threadsr}   rÒ  r‚   r†   rU   Ú
needs_gradÚ
needs_hessÚfuncsÚgradsÚhesssr™   Úsupr|   r=  Úhr¾   rÑ  r=   s                      @@r/   Útest_nan_valuesz"TestOptimizeSimple.test_nan_values  s�  ù€ ð   !Ò#¨°(Ò(:Ü�K‰KÐFÔGô �i‰i×#Ñ# DÓ)ˆà�ˆò	õ	"ò	#ò	%ô �X‰X�s�e‹_ˆàð  7ð 7ˆ
àð  *ð *ˆ
ð �u�ˆÙ$�‘¨4°¨,ˆÙ$�‘¨4°¨,ˆØ%+¨u¢_”$˜b•/¼$ÀrÔ:Jˆä�[‰[ Ô*ñ 		1Ô,=Ó,?ð 		1À3Ø�J‰J”{Ð$7Ô8Ø�J‰J”~Ð'AÔBØ�J‰J”~Ð'BÔCä$×,Ñ,¨U°E¸5ÓAò 1‘��1�aØ˜�Ü×'Ñ'¨¨2°1¸1ÀVØ07ô9�ä˜SŸ[™[¨%Õ0ñ	1÷		1÷ 		1÷ 		1ñ 		1ú÷ 		1ð 		1ús%   Â:E:ÃBE.ÅE:Å.E7	Å3E:Å:F)r@  r	  rð   r  rh  ri  rd  rj  rî  rò  rï  ró  rð  c           	      ón  — d x}}|dv r| j                   }|dv r| j                  }t        j                  d¬«      5  t	        «       5 }|j                  t        d«       t        j                  | j                  | j                  |||¬«       d d d «       d d d «       t        dt        | j                  j                  «      «      D ]W  }t        j                  | j                  j                  |dz
     | j                  j                  |   «      sŒKt!        d|› �«      ‚ y # 1 sw Y   Œ•xY w# 1 sw Y   Œ™xY w)	NrÖ  r×  ré   rÚ  rØ  rñ  r)   zDuplicate evaluations made by )r‚   r†   r+   rì   r	   rÝ  rÞ  r   rª   r}   rf   r3  r¦  rm   rs   Úarray_equalru   )ro   r—   r˜   r†   rå  r€  s         r/   Útest_duplicate_evaluationsz-TestOptimizeSimple.test_duplicate_evaluationsF  s  € ð ÐˆˆdØð -ñ -à—)‘)ˆCØð  ñ  à—9‘9ˆDä�[‰[ Ô*ñ 	AÔ,=Ó,?ð 	AÀ3à�J‰J”{Ð$7Ô8Ü×Ñ˜dŸi™i¨×)9Ñ)9Ø%+°¸4õA÷	A÷ 	Aô �qœ#˜dŸj™jŸl™lÓ+Ó,ò 	?ˆAÜ�~‰~˜dŸj™jŸl™l¨1¨q©5Ñ1°4·:±:·<±<À±?ÕCÜ"Ø4°V°HÐ=ó?ð ?ñ	?÷	Að 	Aú÷ 	Að 	Aús$   »D+ÁADÂD+ÄD(	Ä$D+Ä+D4Únew_cb_interface)r   r)   r4   c                 óÀ  ‡
‡‡— ˆ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(  r?t        j                  di |¤dd‰ii¤Ž}	|j                  |	j                  cxk(  r‰k(  sDJ ‚ J ‚t        j                  di |¤dd‰ii¤Ž}	|j
                  |	j
                  cxk(  r‰k(  sJ ‚ J ‚|j                  |	j                  k(  sJ ‚t        |j                  |	j                  «       |j                  |dv rdndk(  sJ ‚y )Nc                 ó<   •— d‰_         t        j                  | «      S ©NF)Úflagr   r   ©r.   r|   s    €r/   r|   z9TestOptimizeSimple.test_callback_stopiteration.<locals>.fg  s   ø€ ØˆAŒFÜ—>‘> !Ó$Ð$r1   Fc                 ó<   •— d‰_         t        j                  | «      S rî  )rï  r   r   rð  s    €r/   r=  z9TestOptimizeSimple.test_callback_stopiteration.<locals>.gl  s   ø€ ØˆAŒFÜ×%Ñ% aÓ(Ð(r1   c                 ó<   •— d‰_         t        j                  | «      S rî  )rï  r   r   rð  s    €r/   ræ  z9TestOptimizeSimple.test_callback_stopiteration.<locals>.hp  s   ø€ ØˆAŒFÜ×&Ñ& qÓ)Ð)r1   rÕ   r)   c                 óV   •— | j                    ‰| j                  «      k(  sJ ‚ ‰«        y rA   ©rš   r.   )Úintermediate_resultr  r|   s    €€r/   Úcallback_interfacezJTestOptimizeSimple.test_callback_stopiteration.<locals>.callback_interfacew  s(   ø€ Ø*×.Ñ.±!Ð4G×4IÑ4IÓ2JÒJÐJÐJÙ•
r1   r4   c                   ó    •— e Zd Zdefˆ ˆfd„Zy)ú@TestOptimizeSimple.test_callback_stopiteration.<locals>.Callbackrõ  c                 óV   •— |j                    ‰|j                  «      k(  sJ ‚ ‰«        y rA   rô  )ro   rõ  r  r|   s     €€r/   r  zITestOptimizeSimple.test_callback_stopiteration.<locals>.Callback.__call__|  s(   ø€ Ø.×2Ñ2±aÐ8K×8MÑ8MÓ6NÒNÐNÐNÙ•Jr1   N)rŠ   r‹   rŒ   r   r  )r  r|   s   €€r/   r  rø  {  s   ø„ ð¸÷ r1   r  c                 ó   •—  ‰«        y rA   rŽ   )Úxkr–   r  s     €r/   rö  zJTestOptimizeSimple.test_callback_stopiteration.<locals>.callback_interface�  s   ø€ Ù•
r1   c                  ó~   •— ‰ xj                   dz  c_         d‰ _        ‰ j                   ‰k(  rd‰ _        t        «       ‚y )Nr)   FT)r€  rï  ÚStopIteration)r  rh   s   €€r/   r  z@TestOptimizeSimple.test_callback_stopiteration.<locals>.callback„  s7   ø€ Ø�JŠJ˜!‰O�JØ!ˆHŒMØ�z‰z˜WÒ$Ø $�”Ü#“oÐ%ð %r1   r   rU  )rU   r—   rš   r˜   r†   r  r@  rd  r™   rs  rh   )rî  rd  r_   éc   rŽ   )
rï  r€  r   rª   r›   rö   rš   r   r.   r�   )ro   r—   rë  r=  ræ  rö  r  r¿  r­   r÷   r  r|   rh   s             @@@r/   Útest_callback_stopiterationz.TestOptimizeSimple.test_callback_stopiteration`  s�  ú€ ô	%ð ˆŒô	)ô	*ð ˆà˜qÒ öð  Ò"÷ô ñ "*£Ñôõ	&ð ˆŒ
ØˆŒà˜˜a™¨6Ø 1¨añ1ˆô ×ÑÑF &ÑFÐ3EÒFˆØ�]Ò"Ø ‘kˆGØ�XÒÜ×#Ñ#ÑJ fÑJ°xÀÐ6IÒJˆCØ—8‘8˜sŸx™xÔ2¨7Ò2Ð2Ñ2Ð2Ð2ä×#Ñ#ÑK fÑK°yÀ'Ð6JÒKˆCØ—7‘7˜cŸg™gÔ0¨Ò0Ð0Ñ0Ð0Ð0Ø�w‰w˜#Ÿ'™'Ò!Ð!Ð!Ü�S—U‘U˜CŸE™EÔ"Ø�z‰z 6ð .
ñ $
™að òð 	ñ r1   c                 ó¨   — d}t        t        |¬«      5  t        j                  d„ t	        j
                  d«      «       d d d «       y # 1 sw Y   y xY w)Nz"'x0' must only have one dimension.rÎ   c                 ó   — | S rA   rŽ   r-   s    r/   r…  z4TestOptimizeSimple.test_ndim_error.<locals>.<lambda>£  s   € ¨€ r1   )r4   r)   )rP   rQ   r   rª   r+   Úones©ro   r�  s     r/   Útest_ndim_errorz"TestOptimizeSimple.test_ndim_error   s>   € Ø2ˆÜœ:¨SÔ1ñ 	<Ü×Ñ™k¬2¯7©7°6«?Ô;÷	<÷ 	<ñ 	<ús   ”+AÁA)r@  r  rh  rg  ri  rd  rî  c                 ó~  — d„ }t        ddgddg«      }d}t        j                  t        |¬«      5  t	        j
                  |g d¢||¬	«       d d d «       t        g d
¢g d¢«      }d}t        j                  t        |¬«      5  t	        j
                  |g d¢||¬	«       d d d «       y # 1 sw Y   Œ[xY w# 1 sw Y   y xY w)Nc                 ó2   — t        j                  | dz  «      S r<  r=  r-   s    r/   r|   z:TestOptimizeSimple.test_minimize_invalid_bounds.<locals>.f©  r?  r1   r)   r4   r_   r¤   z?The number of bounds is not compatible with the length of `x0`.rÎ   )r)   r4   r_   ©rU   r—   r  )r)   rÇ   r)   )r_   r¤   r4   z:An upper bound is less than the corresponding lower bound.)r   rÙ   r
   rQ   r   rª   )ro   r—   r|   r  r�  s        r/   Útest_minimize_invalid_boundsz/TestOptimizeSimple.test_minimize_invalid_bounds¥  s±   € ò	 ô ˜˜A˜  A Ó'ˆØOˆÜ�]‰]œ:¨SÔ1ñ 	MÜ×Ñ˜a¢I°fÀVÕL÷	Mô š	¢9Ó-ˆØJˆÜ�]‰]œ:¨SÔ1ñ 	MÜ×Ñ˜a¢I°fÀVÕL÷	Mð 	M÷	Mð 	Mú÷
	Mð 	Mús   ±B'ÂB3Â'B0Â3B<)rð   r	  rP  rg  c                 óL  — |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 «       d|d<   t        j                  d„ d	d	gf||d
œ|¤Ž y # 1 sw Y   Œ,xY w)Nrg  r˜   TrÅ   r!  úMaximum numberrÎ   c                 ó,   — t        j                  | «      S rA   ©r   r   r-   s    r/   r…  zBTestOptimizeSimple.test_minimize_warnings_gh1953.<locals>.<lambda>Á  s   € ¬¯©°qÓ(9€ r1   r   ró   Fr“   c                 ó,   — t        j                  | «      S rA   r  r-   s    r/   r…  zBTestOptimizeSimple.test_minimize_warnings_gh1953.<locals>.<lambda>Å  s   € ¤H§N¡N°1Ó$5€ r1   )r   r   r¥  r¥  rÙ   r¤  rª   )ro   r—   r¿  Úwarning_typer™   s        r/   Útest_minimize_warnings_gh1953z0TestOptimizeSimple.test_minimize_warnings_gh1953¶  sÌ   € ð
 ˜xÒ'‘¨e´X×5GÑ5GÐ-HˆØ*0°(Ò*:�Ü%×5Ñ5ð 	ð  ¨BÑ/ˆÜ�\‰\˜,Ð.>Ô?ñ 	HÜ×ÑÑ9¸A¸q¸6ð HØ%+°WñHØ@FòH÷	Hð  ˆ�‰Ü×ÑÑ5¸¸1°vð 	DØ!'°ñ	DØ<Bó	D÷	Hð 	Hús   ÁBÂB#N),rŠ   r‹   rŒ   rÕ  rÝ  râ  rì  rõ  rû  r  r
  r  r  r  r&  r*  r-  rD  rY  r^  ro  rÙ   ri  Ú	fail_slowrj  rk  r   rˆ  r�  rœ  r¢  Úthread_unsafer¦  r«  r·  rÀ  rÍ  rç  rê  r   rÿ  r  r  r  rŽ   r1   r/   rË  rË  µ  sµ  „ ò	%ò*ò.
#ò'ò-ò47ò	Fò/ò.	#ò#òDò4#ò8Cò"ò(ò4$:òLBòBð2 ‡[�[×Ñ˜2ÓØ‡[�[×ÑÐ 5Ó6Ø‡[�[×ÑÐ 8Ó9Ø‡[�[×Ñ˜Xò,à.>ñ?ó@ñ;Qó	@ó :ó 7ó ð;Qðz ‡[�[×Ñ˜Xò (Ló Mñ!óMð!ò4Fð ‡[�[×Ñ˜Xò (2ó 3ñ
#ó3ð
#ð@ ‡[�[×ÑØ‡[�[×Ñ˜Xò (?ó @ñNó@ó ðNò"ò(/ò4
Hò0ðd ‡[�[×Ñ˜Xò (Gó Hñ
.1óHð
.1ð` ‡[�[×Ñ˜Xò (Gó Hñ
?óHð
?ð* ‡[�[×ÑÐ 8Ó9Ø‡[�[×Ñ˜XÐ'>Ó?Ø‡[�[×ÑÐ/²Ó;ñ;ó <ó @ó :ð;òz<ð
 ‡[�[×Ñ˜Xð (8ó 9ñMó9ðMð ‡[�[×ÑØ‡[�[×Ñ˜XÒ'LÓMñDó Nó ñDr1   rË  r—   )r  rh  r  rr  rd  c                 óŒ   — d„ }t        j                  |ddg| ¬«      }|j                  sJ ‚t        |j                  dgd¬«       y )Nc                 ó2   — t        j                  | dz  «      S r<  r=  r-   s    r/   r|   z$test_minimize_with_scalar.<locals>.fÏ  rœ  r1   é   )r  r0  rA  r`   rº   r    )r   rª   r½   r   r.   )r—   r|   r­   s      r/   Útest_minimize_with_scalarr  É  s?   € òô ×
Ñ
˜A˜r¨;¨-ÀÔ
G€CØ�;Š;Ðˆ;Ü�C—E‘E˜C˜5 tÖ,r1   c                   ó˜   — e Zd Zd„ Zdd„Zdd„Zdd„Zd„ Zd„ Zd„ Z	e
j                  j                  dd	d
gd
d	gd	d	gg«      d„ «       Zd„ Zy)ÚTestLBFGSBBoundsc                 ó    — d| _         d| _        y )N))r)   N©NN)r)   r   )r  rg   rn   s    r/   rp   zTestLBFGSBBounds.setup_methodØ  s   € Ø/ˆŒØˆ�r1   c                 ó0   — d|z  |d   |z  |d   |z  z   z  S )Nr\   r   r)   rŽ   rˆ   s      r/   rš   zTestLBFGSBBounds.funÜ  s&   € Ø�Q‰w˜!˜A™$ ™' A a¡D¨!¡GÑ+Ñ,Ð,r1   c                 ó   — ||dz
  z  S r(   rŽ   rˆ   s      r/   r˜   zTestLBFGSBBounds.jacß  s   € Ø�1�q‘5‰zÐr1   c                 óJ   — | j                  ||«      | j                  ||«      fS rA   ©rš   r˜   rˆ   s      r/   ÚfjzTestLBFGSBBounds.fjâ  s!   € Ø�x‰x˜˜1‹~˜tŸx™x¨¨1›~Ð-Ð-r1   c                 óÒ   — t        j                  | j                  ddg| j                  | j                  ¬«      \  }}}|d   dk(  s
J |d   «       ‚t        || j                  d¬«       y )Nr   rF  )rè   r  r²   Útaskr;   r    )r   r  rš   r˜   r  r   rg   ©ro   r.   r|   r	  s       r/   Útest_l_bfgs_b_boundsz%TestLBFGSBBounds.test_l_bfgs_b_boundså  s_   € Ü×(Ñ(¨¯©°A°r°7Ø04·±Ø04·±ô=‰ˆˆ1ˆað �‰} Ò!Ð, 1 V¡9Ó,Ð!Ü˜˜4Ÿ=™=¨tÖ4r1   c                 ó¾   — t        j                  | j                  ddgd| j                  ¬«      \  }}}|d   dk(  s
J |d   «       ‚t	        || j
                  d¬«       y )	Nr   rF  ©rŽ  )r–   r  r²   r   r;   r    )r   r  r  r  r   rg   r!  s       r/   r  z%TestLBFGSBBounds.test_l_bfgs_b_funjacì  sX   € ä×(Ñ(¨¯©°1°b°'ÀØ04·±ô=‰ˆˆ1ˆaà�‰} Ò!Ð, 1 V¡9Ó,Ð!Ü˜˜4Ÿ=™=¨tÖ4r1   c                 óÚ   — t        j                  | j                  ddgd| j                  | j                  ¬«      }|d   s
J |d   «       ‚t        |j                  | j                  d¬«       y )	Nr   rF  r"  ©r—   r˜   r  r½   r  r;   r    )r   rª   rš   r˜   r  r   r.   rg   rg  s     r/   Útest_minimize_l_bfgs_b_boundsz.TestLBFGSBBounds.test_minimize_l_bfgs_b_boundsó  sW   € ä×Ñ §¡¨1¨b¨'¸*Ø$(§H¡H°T·[±[ôBˆà�9Š~Ð-˜s 9™~Ó-ˆ~Ü˜Ÿ™˜tŸ}™}°4Ö8r1   r  )rÅ   r)   r±  c                 óÄ   — t        j                  t        d¬«      5  t        j                  | j
                  ddgd| j                  |¬«       d d d «       y # 1 sw Y   y xY w)Nz	.*bound.*rÎ   r   rF  r"  r&  )rÙ   r
   rQ   r   rª   rš   r˜   )ro   r  s     r/   Ú'test_minimize_l_bfgs_b_incorrect_boundsz8TestLBFGSBBounds.test_minimize_l_bfgs_b_incorrect_boundsú  sL   € ô �]‰]œ:¨[Ô9ñ 	;Ü×Ñ˜dŸh™h¨¨B¨¸
Ø"&§(¡(°6õ;÷	;÷ 	;ñ 	;ús   œ1AÁAc                 ó  — g d¢}ddg}t        j                  ||«      D ]j  \  }}t        j                  | j                  ddg|d|| j
                  dd i¬«      }|d	   s
J |d
   «       ‚t        |j                  | j                  d¬«       Œl y )Nrå  r$  rŽ   r   rF  r"  Úfinite_diff_rel_step)r–   r—   r˜   r  r™   r½   r  r;   r    )	rè  ré  r   rª   rš   r  r   r.   rg   )ro   rë  Úargssr˜   r–   r­   s         r/   Ú test_minimize_l_bfgs_b_bounds_FDz1TestLBFGSBBounds.test_minimize_l_bfgs_b_bounds_FD  s�   € ò
 ,ˆØ˜�ˆÜ"×*Ñ*¨4°Ó7ò 	=‰IˆC�Ü×#Ñ# D§H¡H¨q°"¨g¸DØ+5Ø(+°D·K±KØ-CÀTÐ,JôLˆCð �y’>Ð1 3 y¡>Ó1�>Ü˜CŸE™E 4§=¡=°tÖ<ñ	=r1   Nr$  )rŠ   r‹   rŒ   rp   rš   r˜   r  r"  r  r'  rÙ   ri  rk  r)  r-  rŽ   r1   r/   r  r  ×  sl   „ òó-óó.ò5ò5ò9ð ‡[�[×Ñ˜XØ
�7Ð	Ø
�7Ð	Ø
�7Ð	ð(ó ñ
;óð
;ó
=r1   r  c                   ól  — e Zd Zd„ Zd d„Zd„ Zej                  j                  d«      d„ «       Z	d„ Z
d„ Zd„ Zd	„ Zd
„ Zd„ Zej                  j!                  dg d¢«      d„ «       Zej                  j!                  dg d¢«      d„ «       Zej                  j                  d«      ej                  j!                  dg d¢«      d„ «       «       Zd„ Zd„ Zej                  j!                  dddg«      d„ «       Zej                  j                  d«      ej                  j!                  de«      ej                  j!                  dddg«      ej                  j!                  dg d¢«      d„ «       «       «       «       Zej                  j2                  ej                  j!                  dg d¢«      d„ «       «       Zy)!ÚTestOptimizeScalarc                 ó   — d| _         y )Nr6   )rg   rn   s    r/   rp   zTestOptimizeScalar.setup_method  s	   € Øˆ�r1   c                 ó   — ||z
  dz  dz
  S )zObjective functionr4   rÒ   rŽ   )ro   r.   rx  s      r/   rš   zTestOptimizeScalar.fun  s   € à�A‘˜‰z˜CÑÐr1   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 «       d}t        j                  t        |¬
«      5  t        j                  | j                  d¬«       d d d «       y # 1 sw Y   ŒQxY w# 1 sw Y   y xY w)Nr;   r    ©r”  r­  ©ÚbrackT©rž   r   ©iñÿÿÿrF  é   ú/\(f\(xb\) < f\(xa\)\) and \(f\(xb\) < f\(xc\)\)rÎ   ©rF  r   r)   ú\(xa < xb\) and \(xb < xc\)©r   rF  r)   )r   Úbrentrš   r   rg   rÙ   r
   rQ   )ro   r.   r  s      r/   Ú
test_brentzTestOptimizeScalar.test_brent  s  € Ü�N‰N˜4Ÿ8™8Ó$ˆÜ˜˜4Ÿ=™=¨tÕ4ä�N‰N˜4Ÿ8™8¨8Ô4ˆÜ˜˜4Ÿ=™=¨tÕ4ä�N‰N˜4Ÿ8™8°Ô6ˆÜ˜˜!™˜dŸm™m°$Õ7ä�N‰N˜4Ÿ8™8¨=Ô9ˆÜ˜˜4Ÿ=™=¨tÕ4àDˆÜ�]‰]œ:¨WÔ5ñ 	7Ü�N‰N˜4Ÿ8™8¨:Õ6÷	7ð 1ˆÜ�]‰]œ:¨WÔ5ñ 	7Ü�N‰N˜4Ÿ8™8¨:Õ6÷	7ð 	7÷		7ð 	7ú÷	7ð 	7ús   Ä"E5Å
"FÅ5E>ÆF
rã   c                 óX  — 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
  |«       Œa d}t        j                  t        |¬«      5  t        j                  | j                  d¬«       d d d «       d}t        j                  t        |¬«      5  t        j                  | j                  d¬«       d d d «       y # 1 sw Y   ŒQxY w# 1 sw Y   y xY w)Nr;   r    r3  r4  Tr6  r   r7  ©r  )r   r)   rÕ   )rh   rž   r4   r9  rÎ   r:  r;  r<  )	r   Úgoldenrš   r   rg   r   rÙ   r
   rQ   )ro   r.   Úmaxiter_test_casesrh   rU   Únfev0r›   r  s           r/   Útest_goldenzTestOptimizeScalar.test_golden1  s”  € ä�O‰O˜DŸH™HÓ%ˆÜ˜˜4Ÿ=™=¨tÕ4ä�O‰O˜DŸH™H¨HÔ5ˆÜ˜˜4Ÿ=™=¨tÕ4ä�O‰O˜DŸH™H°$Ô7ˆÜ˜˜!™˜dŸm™m°$Õ7ä�O‰O˜DŸH™H¨MÔ:ˆÜ˜˜4Ÿ=™=¨tÕ4ä�O‰O˜DŸH™H¨!Ô,ˆÜ˜˜4Ÿ=™=Ô)â&ÐØ)ò 	0ˆGÜ—‘ §¡°1À$ÔGˆBÜ—‘ §¡°'ÀtÔLˆAØ˜Q™%  1¡�4ˆEÜ˜ ™ wÕ/ð		0ð EˆÜ�]‰]œ:¨WÔ5ñ 	8Ü�O‰O˜DŸH™H¨JÕ7÷	8ð 1ˆÜ�]‰]œ:¨WÔ5ñ 	8Ü�O‰O˜DŸH™H¨JÕ7÷	8ð 	8÷		8ð 	8ú÷	8ð 	8ús   Æ""HÇ)"H ÈHÈ H)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«       y )Nr   r)   rº  r    rÕ   r;   )	r   Ú	fminboundrš   r   rg   r+   rL   rP   rQ   r  s     r/   Útest_fminboundz!TestOptimizeScalar.test_fminboundQ  s¤   € Ü×Ñ˜tŸx™x¨¨AÓ.ˆÜ˜˜1 4Õ(ä×Ñ˜tŸx™x¨¨AÓ.ˆÜ˜˜4Ÿ=™=¨tÕ4ä×Ñ˜tŸx™x¬¯©°1°#«¼¿¹À!À»ÓFˆÜ˜˜4Ÿ=™=¨tÕ4Ü”j¤(×"4Ñ"4°d·h±hÀÀ1ÕEr1   c                 ód  — t        j                  t        d¬«      5  t        j                  | j
                  t        j                  d«      d«       d d d «       t        j                  | j
                  dt        j                  d«      «      }t        || j                  d¬«       y # 1 sw Y   ŒVxY w)Nz.*must be finite scalars.*rÎ   ©r)   r4   r)   rÕ   r;   r    )rÙ   r
   rQ   r   rF  rš   r+   rd   rL   r   rg   r  s     r/   Útest_fminbound_scalarz(TestOptimizeScalar.test_fminbound_scalar\  sw   € Ü�]‰]œ:Ð-IÔJñ 	>Ü×Ñ˜tŸx™x¬¯©°&Ó)9¸1Ô=÷	>ô ×Ñ˜tŸx™x¨¬B¯H©H°Q«KÓ8ˆÜ˜˜4Ÿ=™=¨tÖ4÷		>ð 	>ús   œ5B&Â&B/c                 ó8   — d„ }t        j                  |dd«       y )Nc                 ó   — | dz  S r<  rŽ   r-   s    r/   rš   z,TestOptimizeScalar.test_gh11207.<locals>.fund  r®  r1   r   )r   rF  )ro   rš   s     r/   Útest_gh11207zTestOptimizeScalar.test_gh11207c  s   € ò	ä×Ñ˜3  1Õ%r1   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¬«       y )Nr;   r    ÚBrentr¹   r_   r  ró   r3  ©r6   )Úbracketr–   r—   )r—   r–   r7  rA  )r   r)   ÚBounded)r  r–   r—   r)   rº  )r)   rÕ   ÚboundedrÕ   r6   )rÕ   r)   ©r  r—   r–   r4   rA  )r   Úminimize_scalarrš   r.   r   rg   r½   rR  r+   rL   rP   rQ   rd   r  s     r/   Útest_minimize_scalarz'TestOptimizeScalar.test_minimize_scalarh  s  € ä×$Ñ$ T§X¡XÓ.×0Ñ0ˆÜ˜˜4Ÿ=™=¨tÕ4ä×$Ñ$ T§X¡X°gÔ>ˆØ�yŠyÐˆyä×$Ñ$ T§X¡X°gÜ-1¸!¬_ô>ˆà—9’9Ðˆ}ä×$Ñ$ T§X¡X°xØ*1¸'ôCßCDÁ1ð 	
ä˜˜4Ÿ=™=¨tÕ4ä×$Ñ$ T§X¡X°gØ*0ô2ß23±!ð 	
ä˜˜4Ÿ=™=¨tÕ4ä×$Ñ$ T§X¡X°}Ø*1¸'ôCßCDÁ1ð 	
ä˜˜4Ÿ=™=¨tÕ4ä×$Ñ$ T§X¡X°xØ*1¸(ôDßDEÁAð 	
ä˜˜4Ÿ=™=¨tÕ4ä×$Ñ$ T§X¡X°hØ*0ô2ß23±!ð 	
ä˜˜4Ÿ=™=¨tÕ4ä×$Ñ$ T§X¡X°}Ø*1¸(ôDßDEÁAð 	
ä˜˜4Ÿ=™=¨tÕ4ä×$Ñ$ T§X¡X°fÀ6Ø,5ô7ß78±qð 	
ä˜˜1 4Õ(ä×$Ñ$ T§X¡X°fÀ7Ø,5ô7ß78±qð 	
ä˜˜4Ÿ=™=¨tÕ4ä×$Ñ$ T§X¡X´r·x±xÀÀ³}Ü79·x±xÀÀ³}ð7Fä+-¯8©8°S°E«?Ð*=Ø,5ô7÷ 89±qð 	
ô 	˜˜4Ÿ=™=¨tÕ4ä”j¤(×":Ñ":¸D¿H¹HØ#¨I¸Gõ	Eô 	”j¤(×":Ñ":¸D¿H¹HÜ Ÿh™h q›k¨1Ð-°iÀgõ	Oô ×$Ñ$ T§X¡X°q¼"¿(¹(À1»+Ð6FØ,5ô7ß78±qð 	
ä˜˜4Ÿ=™=¨tÖ4r1   c                 ó®   — 	 	 dd„}t        j                  | j                  d|t        d¬«      ¬«      }t	        |j
                  | j                  d¬«       y )	Nc                 ó&  — |d   |d   z   dz  } | |«      }	d}
d}d}d}|rU|sS||k  rNd}|dz  }||z
  ||z   fD ]  } | |g|¢­Ž }|
dz  }
||	k  sŒ|}	|}d}Œ |� ||«       |�|
|k\  rd}n
|r|s||k  rŒNt        j                  |	|||
|dkD  ¬«      S )Nr)   r   rŽ  TFrG  r]  )rš   rQ  r–   rs  rI  rh   r  r™   rJ  rK  rL  rM  rN  rO  rR  rS  s                   r/   rT  z?TestOptimizeScalar.test_minimize_scalar_custom.<locals>.custmin¦  sò   € à˜Q‘Z '¨!¡*Ñ,°Ñ3ˆEÙ˜“JˆEØˆHØˆEØˆHØˆDá¡4¨E°GªOØ �Ø˜‘
�Ø# hÑ.°¸Ñ0@ÐAò (�EÙ Ð-¨Ò-�EØ ‘M�HØ˜u“}Ø %˜Ø %˜Ø#'™ð(ð Ð'Ù˜U”OØÐ%¨(°fÒ*<Ø�DØñ ¡4¨E°G«Oô  ×*Ñ*¨u¸À5Ø08À5È1Á9ôOð Or1   )r   r¤   rV  rW  )rQ  r—   r™   r;   r    rX  )r   rU  rš   rR  r   r.   rg   )ro   rT  r­   s      r/   Útest_minimize_scalar_customz.TestOptimizeScalar.test_minimize_scalar_custom¤  sJ   € àADØ*.ó	Oô8 ×&Ñ& t§x¡x¸Ø.5Ü/3¸TÔ/BôDˆô 	˜Ÿ™˜tŸ}™}°4Ö8r1   c                 óF   — t        j                  | j                  d¬«       y )Nr6   ©r–   ©r   rU  rš   rn   s    r/   Ú&test_minimize_scalar_coerce_args_paramz9TestOptimizeScalar.test_minimize_scalar_coerce_args_paramÇ  s   € ä× Ñ  §¡°Ö4r1   r—   )r=  rS  rA  c                 óX   — dD ]%  }t        j                  | j                  d|i¬«       Œ' y )N)r   r)   r4   r_   r“   )r™   r\  )ro   r—   r“   s      r/   Ú	test_dispzTestOptimizeScalar.test_dispË  s-   € ð !ò 	GˆDÜ×$Ñ$ T§X¡X¸À°~ÖFñ	Gr1   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 ‚y )NrS  r  r«  rÅ   r—   r.   r½   r  rš   r›   rö   )r   rU  rš   rt   )ro   r—   r¿  rI  s       r/   Útest_result_attributesz)TestOptimizeScalar.test_result_attributesÑ  s—   € à*0°IÒ*=�(˜S "˜IÑ&À2ˆÜ×)Ñ)¨$¯(©(ÑL¸6ÐLÀVÑLˆÜ�v˜sÔ#Ð#Ð#Ü�v˜yÔ)Ð)Ð)Ü�v˜yÔ)Ð)Ð)Ü�v˜uÔ%Ð%Ð%Ü�v˜vÔ&Ð&Ð&Ü�v˜uÔ%Ð%Ñ%r1   c           
      ó
  ‡— t         j                  j                  d«       dgŠˆfd„}d}d}t        j                  d¬«      5  t	        «       5 }|j                  t        d«       |j                  t        d	«       |j                  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 «       d d d «       y # 1 sw Y   ŒxY w# 1 sw Y   y xY w)Nr8   r   c                 óŠ   •— ‰dxx   dz  cc<   ‰d   dkD  rt         j                  S | dz  dt        j                  | «      z  z   S )Nr   r)   r¤   r4   r>   )r+   rÓ  rB   )r.   rÑ  s    €r/   r}   z0TestOptimizeScalar.test_nan_values.<locals>.funcä  s?   ø€ Ø�!‹H˜‰M‹HØ�Q‰x˜!Š|Ü—v‘v�à˜!‘t˜c¤B§F¡F¨1£I™oÑ-Ð-r1   r:  r¢  ré   rÚ  rØ  rÙ  rÚ  rS  r  rQ  rþ  r  ró   F)r+   r7   r:   rì   r	   rÝ  rÞ  r¥  r   rU  rR  r   r½   )	ro   r—   r}   rQ  r  rå  r¿  r¾   rÑ  s	           @r/   rç  z"TestOptimizeScalar.test_nan_valuesÜ  s÷   ø€ ô 	�	‰	�‰�tÔà�ˆô	.ð ˆØˆä�[‰[ Ô*ñ 	-Ô,=Ó,?ð 	-À3Ø�J‰J”{Ð$7Ô8Ø�J‰J”~Ð'AÔBØ�J‰J”~Ð'BÔCà�CˆEà+1°YÒ+>�h Ñ'ÀBˆFÜ×*Ñ*¨4ñ E¸ð EØ-3ðEØ<BÜ37ÀÔ3CóEˆCô ˜Ÿ™ eÔ,÷	-÷ 	-÷ 	-ñ 	-ú÷ 	-ð 	-ús%   ÁC9ÁBC-ÃC9Ã-C6	Ã2C9Ã9Dc                 óÄ   — d„ }t        j                  |«      }t        |j                  dd¬«       t        j                  |dddi¬«      }t        |j                  d	«       y )
Nc                 ó   — | dz  S r<  rŽ   r-   s    r/   r|   zCTestOptimizeScalar.test_minimize_scalar_defaults_gh10911.<locals>.fþ  r®  r1   r   rý   r    )r)   r0  rˆ  r®  )r  r™   r)   )r   rU  r   r.   )ro   r|   r­   s      r/   Ú%test_minimize_scalar_defaults_gh10911z8TestOptimizeScalar.test_minimize_scalar_defaults_gh10911û  sT   € ò	ô ×&Ñ& qÓ)ˆÜ˜Ÿ™˜q tÕ,ä×&Ñ& q°Ø07¸Ð/?ôAˆä˜Ÿ™˜qÕ!r1   c                 óœ  — d}t        j                  t        |¬«      5  t        j                  t
        j                  dt
        j                  f¬«       d d d «       t        j                  t        |¬«      5  t        j                  t
        j                  t
        j                  df¬«       d d d «       y # 1 sw Y   ŒcxY w# 1 sw Y   y xY w)Nz+Optimization bounds must be finite scalars.rÎ   r)   r°  )	rÙ   r
   rQ   r   rU  r+   rB   r´  rÓ  r  s     r/   Ú'test_minimize_non_finite_bounds_gh10911z:TestOptimizeScalar.test_minimize_non_finite_bounds_gh10911  s•   € ð <ˆÜ�]‰]œ:¨SÔ1ñ 	AÜ×$Ñ$¤R§V¡V°Q¼¿¹°KÕ@÷	Aä�]‰]œ:¨SÔ1ñ 	AÜ×$Ñ$¤R§V¡V´R·V±V¸Q°KÕ@÷	Að 	A÷	Að 	Aú÷	Að 	Aús   ž6B6Á76CÂ6B?ÃCr=  rA  c                 ó´   — d}t        j                  t        |¬«      5  t        j                  t
        j                  |d¬«       d d d «       y # 1 sw Y   y xY w)Nz'Use of `bounds` is incompatible with...rÎ   rI  ©r—   r  )rÙ   r
   rQ   r   rU  r+   rB   )ro   r—   r�  s      r/   Ú2test_minimize_unbounded_method_with_bounds_gh10911zETestOptimizeScalar.test_minimize_unbounded_method_with_bounds_gh10911  sF   € ð 8ˆÜ�]‰]œ:¨SÔ1ñ 	KÜ×$Ñ$¤R§V¡V°FÀ6ÕJ÷	K÷ 	Kñ 	Kús   ž'AÁArp  r  r)   r;   Úfshape)rŽ   ©r)   ©r)   r)   c                 óp  ‡— ˆfd„}d\  }}|dk7  rt        ||f¬«      nt        ||f¬«      }|j                  t        ||¬«      «       t        j                  |fi |¤Ž}|j                  j
                  |j                  j
                  cxk(  r& ||j                  «      j
                  cxk(  r‰k(  sJ ‚ J ‚y )Nc                 óR   •— t        j                  | dz  «      j                  ‰«      S ©Nr¤   )r+   rL   Úreshape)r.   rl  s    €r/   r|   zITestOptimizeScalar.test_minimize_scalar_dimensionality_gh16196.<locals>.f!  s    ø€ Ü—8‘8˜A˜q™D“>×)Ñ)¨&Ó1Ð1r1   )r  rI   rS  )rQ  r°  )r—   r  )rR  Úupdater   rU  r.   Úshaperš   )	ro   r—   r  rl  r|   rx  Úbr¿  r­   s	      `     r/   Ú+test_minimize_scalar_dimensionality_gh16196z>TestOptimizeScalar.test_minimize_scalar_dimensionality_gh16196  s™   ø€ ô	2ð ‰ˆˆ1Ø*0°IÒ*=”$  1˜vÕ&Ü A q 6Ô*ð 	à�‰”d &¨cÔ2Ô3ä×&Ñ& qÑ3¨FÑ3ˆØ�u‰u�{‰{˜cŸg™gŸm™mÔG©q°·±«x¯~©~ÔGÀÒGÐGÑGÐGÑGr1   )rS  r=  rA  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 «       d|d<   t        j                  |f||dœ|¤Ž y # 1 sw Y   Œ(xY w)Nc                 ó   — | dz
  dz  S r3   rŽ   r-   s    r/   r|   zBTestOptimizeScalar.test_minimize_scalar_warnings_gh1953.<locals>.f1  r‹  r1   rS  r  rQ  r­  rÅ   Tr_   r!  r
  rÎ   ró   Fr“   )rÙ   r¤  r   r¥  rU  )ro   r—   r|   r¿  Úkwdr™   s         r/   Ú$test_minimize_scalar_warnings_gh1953z7TestOptimizeScalar.test_minimize_scalar_warnings_gh1953,  s£   € ò
	ð ˆØ  IÒ-‰h°9ˆØ˜2�hˆˆs‰à¨AÑ.ˆÜ�\‰\œ(×2Ñ2Ð:JÔKñ 	/Ü×$Ñ$ Qð /¨v¸wñ /Ø'-ò/÷	/ð  ˆ�‰Ü× Ñ  ÐM¨6¸7ÑMÀfÓM÷	/ð 	/ús   Á BÂB
NrP  )rŠ   r‹   rŒ   rp   rš   r>  rÙ   ri  rj  rD  rG  rJ  rM  rV  rY  r]  rk  r_  ra  rç  rf  rh  rk  r   rv  r  rz  rŽ   r1   r/   r/  r/    sÏ  „ òó ò7ð* ‡[�[×ÑÐ 5Ó6ñ8ó 7ð8ò>	Fò5ò&ò
:5òx!9òF5ð ‡[�[×Ñ˜XÒ'EÓFñGó GðGð
 ‡[�[×Ñ˜XÒ'EÓFñ&ó Gð&ð ‡[�[×ÑÐ 5Ó6Ø‡[�[×Ñ˜XÒ'EÓFñ-ó Gó 7ð-ò:"òAð ‡[�[×Ñ˜X¨°Ð':Ó;ñKó <ðKð ‡[�[×ÑÐ 8Ó9Ø‡[�[×Ñ˜XÐ'>Ó?Ø‡[�[×Ñ˜U Q¨ IÓ.Ø‡[�[×Ñ˜XÒ'9Ó:ñHó ;ó /ó @ó :ðHð ‡[�[×ÑØ‡[�[×Ñ˜XÒ'EÓFñNó Gó ñNr1   r/  c                   ó’   — e Zd Zej                  j                  d«      d„ «       Zej                  j                  dd«      d„ «       Zy)ÚTestBracketrp  c                 ó   — d„ }d}t        j                  t        |¬«      5  t        j                  |dd«       d d d «       t        j                  t        |¬«      5  t        j                  |dt
        j                  «       d d d «       t        j                  t        |¬«      5  t        j                  |d¬«       d d d «       t        j                  t        |¬«      5  t        j                  |d¬«       d d d «       d„ }d	}t        j                  t        |¬«      5  t        j                  |d
dd¬«       d d d «       y # 1 sw Y   �ŒxY w# 1 sw Y   ŒÏxY w# 1 sw Y   Œ xY w# 1 sw Y   ŒqxY w# 1 sw Y   y xY w)Nc                 ó&   — d| k  | dk  z  r| dz  S dS ©NrF  r)   r4   g      Y@rŽ   r-   s    r/   r|   z3TestBracket.test_errors_and_status_false.<locals>.fF  ó    € Ø !™V¨¨A©Ò.�1�a‘4Ð:°UÐ:r1   ú9The algorithm terminated without finding a valid bracket.rÎ   rF  r)   r¢  r4  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_   é   r4   r)   rŽ   r-   s    r/   r|   z3TestBracket.test_errors_and_status_false.<locals>.fS  sE   € Ø˜˜1™‘9˜q 1 a¡4™xÑ'¨"¨q°!©t©)Ñ3°b¸1¸a¹4±iÑ?À!ÀaÁ%ÑGÈ!ÑKÐKr1   z8No valid bracket was found before the iteration limit...r¥   r^   rÅ   r  )	rÙ   r
   ru   r   rQ  r+   r´  r=  rA  )ro   r|   r  s      r/   Útest_errors_and_status_falsez(TestBracket.test_errors_and_status_falseC  s)  € ò	;ð NˆÜ�]‰]œ<¨wÔ7ñ 	'Ü×Ñ˜Q  AÔ&÷	'ä�]‰]œ<¨wÔ7ñ 	,Ü×Ñ˜Q ¤B§F¡FÔ+÷	,ä�]‰]œ<¨wÔ7ñ 	-Ü�N‰N˜1 GÕ,÷	-ä�]‰]œ<¨wÔ7ñ 	.Ü�O‰O˜A WÕ-÷	.ò	Lð MˆÜ�]‰]œ<¨wÔ7ñ 	7Ü×Ñ˜Q  c°2Õ6÷	7ð 	7÷	'ñ 	'ú÷	,ð 	,ú÷	-ð 	-ú÷	.ð 	.ú÷	7ð 	7ús;   ¡EÁ&EÂ%EÃ E(Ä E4ÅEÅEÅE%Å(E1Å4E=r—   )r=  rA  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 ‚y )Nc                 ó&   — d| k  | dk  z  r| dz  S dS r  rŽ   r-   s    r/   r|   z9TestBracket.test_minimize_scalar_success_false.<locals>.f]  r€  r1   r�  r¢  )rQ  r—   r_   r   r0  )r   rU  r½   r  r›   rö   rš   )ro   r—   r|   r  r­   s        r/   Ú"test_minimize_scalar_success_falsez.TestBracket.test_minimize_scalar_success_falseZ  sq   € ò	;ð Nˆä×&Ñ& q°'À&ÔIˆØ—;’;ÐˆØ˜#Ÿ+™+Ñ%Ð%Ð%Ø�x‰x˜1Š}Ðˆ}Ø�w‰w˜!Š|Ðˆ|Ø�w‰w˜#Š~Ð‰~r1   N)	rŠ   r‹   rŒ   rÙ   ri  rj  r…  rk  rˆ  rŽ   r1   r/   r|  r|  A  sJ   „ à‡[�[×ÑÐ 8Ó9ñ7ó :ð7ð, ‡[�[×Ñ˜XÐ':Ó;ñó <ñr1   r|  c                  ób   — t        t        t        j                  t        j
                  d¬«       y )Ng{®Gáz„¿r@  )rP   rQ   r   r=  r+   rG   rŽ   r1   r/   Útest_brent_negative_tolerancerŠ  j  s   € Ü”*œhŸn™n¬b¯f©f¸$Ö?r1   c                   ó$   — e Zd Zd„ Zd„ Zd„ Zd„ Zy)ÚTestNewtonCgc                 óP  — 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¬«       y ©	Nrû   r\   rº   rG  ©r˜   r†   r  r—   r)   rº  r»   )r+   rL   r   rª   r   r   r   r½   r  r   r.   ©ro   rU   r¾   s      r/   Útest_rosenbrockzTestNewtonCg.test_rosenbrocko  sx   € Ü�X‰X�t˜S�kÓ"ˆÜ×Ñ¤§¡°Ü$,×$6Ñ$6Ü%-×%8Ñ%8Ø$(Ø'2ô	4ˆð
 �{Š{Ð'˜CŸK™KÓ'ˆ{Ü˜Ÿ™œrŸx™x¨¨A¨Ó/°dÖ;r1   c                 ó.  — t        j                  t        «      }t        j                  t
        |t        t        dd¬«      }|j                  sJ |j                  «       ‚t        |j                  t        d¬«       t        |j                  t        d¬«       y )NrG  r;   )r˜   r†   r—   r  rº  r»   r    )r+   rL   rT   r   rª   Ú
himmelblaurR   rS   r½   r  r   r.   Úhimmelblau_xoptrš   Úhimmelblau_minr�  s      r/   Útest_himmelblauzTestNewtonCg.test_himmelblauy  sh   € Ü�X‰X”mÓ$ˆÜ×Ñ¤
Ø "Ü$3Ü%4Ø'2Ø$(ô*ˆð �{Š{Ð'˜CŸK™KÓ'ˆ{Ü˜Ÿ™œ°TÕ:Ü˜Ÿ™¤°dÖ;r1   c                 ó4  — 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¬	«       y )
Nrû   r\   ræ  rº   rG  r�  r)   rº  r»   )
r+   rL   r   rª   r   r   r½   r  r   r.   r�  s      r/   Útest_finite_differencez#TestNewtonCg.test_finite_difference…  sr   € Ü�X‰X�t˜S�kÓ"ˆÜ×Ñ¤§¡°Ü$,×$6Ñ$6Ø%.Ø$(Ø'2ô	4ˆð
 �{Š{Ð'˜CŸK™KÓ'ˆ{Ü˜Ÿ™œrŸx™x¨¨A¨Ó/°dÖ;r1   c                 óX  — 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¬«       y rŽ  )r+   rL   r   rª   r   r   rÁ   r½   r  r   r.   r�  s      r/   Útest_hessian_update_strategyz)TestNewtonCg.test_hessian_update_strategy�  sx   € Ü�X‰X�t˜S�kÓ"ˆÜ×Ñ¤§¡°Ü$,×$6Ñ$6Ü%-§]¡]£_Ø$(Ø'2ô	4ˆð
 �{Š{Ð'˜CŸK™KÓ'ˆ{Ü˜Ÿ™œrŸx™x¨¨A¨Ó/°dÖ;r1   N)rŠ   r‹   rŒ   r‘  r–  r˜  rš  rŽ   r1   r/   rŒ  rŒ  n  s   „ ò<ò
<ò<ó<r1   rŒ  c                  óÜ  — 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 ]1  \  }}}}	 | ||||«      \  }
}t        |
|d¬«       t        ||	d¬«       Œ3 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 ]1  \  }}}}	 | ||||«      \  }
}t        |
|d¬«       t        ||	d¬«       Œ3 y )N)ç333333ÀrF  r·   r”  )rÓ   r)   çffffff@r_   ©r`   r   r   r   )r`   r4   r”  r   ©r\   r   r   r   rœ  rÓ   ©r`   r)   r   r   rF  r)   ©r`   r   r)   r   r·   r�  ©r`   r   r   r)   r”  r_   )r\   r)   r   r   )r\   r   rF  r4   r6   )rŽ  r   rF  r4   gffffffî?g333333@)r\   r   rF  r   r;   r    g333333À)r   r{  Ú_line_for_searchr+   rL   r   r´  )Úline_for_searchÚlower_boundÚupper_boundrU   Úx1Ú	all_testsr.   ÚalphaÚlminÚlmaxÚmiÚmas               r/   Útest_line_for_searchr®  š  sr  € ô
 ×(Ñ(×9Ñ9€Oô —(‘(Ò/Ó0€KÜ—(‘(Ò+Ó,€Kô 
�‰’-Ó	 €Bä	�‰’.Ó	!€Bð 
ŒR�X‰X’mÓ$ d¨CÐ0Ø	ŒR�X‰X’mÓ$ b¨!Ð,Ø	ŒR�X‰X’mÓ$ d¨CÐ0Ø	ŒR�X‰X’mÓ$ b¨!Ð,Ø	ŒR�X‰X’mÓ$ b¨!Ð,Ø	ŒR�X‰X’nÓ% t¨SÐ1Ø	ŒR�X‰X’nÓ% t¨TÐ2Ø	ŒR�X‰X’mÓ$ d¨CÐ0Ø	ŒR�X‰X’mÓ$ b¨"Ð-Ø	ŒR�X‰X’mÓ$ c¨3Ð/Ø	ŒR�X‰X’mÓ$ b¨!Ð,Ø	ŒR�X‰X’mÓ$ b¨"Ð-Ø	ŒR�X‰X’nÓ% t¨TÐ2ð€Ið  !*ò -Ñˆˆ5�$˜Ù   E¨;¸ÓD‰ˆˆBÜ˜˜D tÕ,Ü˜˜D tÖ,ð-ô —(‘(œRŸV™V˜G R¬"¯&©&¨°"Ð5Ó6€KÜ—(‘(œBŸF™F A s¬B¯F©FÐ3Ó4€Kð 
ŒR�X‰X’mÓ$¤r§v¡v g¬r¯v©vÐ6Ø	ŒR�X‰X’mÓ$ b¨!Ð,Ø	ŒR�X‰X’mÓ$¤r§v¡v g¨sÐ3Ø	ŒR�X‰X’mÓ$ b¬"¯&©&Ð1Ø	ŒR�X‰X’mÓ$ b¨!Ð,Ø	ŒR�X‰X’nÓ% t¬R¯V©VÐ4Ø	ŒR�X‰X’mÓ$¤r§v¡v g¬r¯v©vÐ6Ø	ŒR�X‰X’mÓ$ b¨"Ð-Ø	ŒR�X‰X’mÓ$¤r§v¡v g¨sÐ3Ø	ŒR�X‰X’mÓ$ b¬"¯&©&Ð1Ø	ŒR�X‰X’mÓ$ b¨"Ð-Ø	ŒR�X‰X’nÓ% t¬R¯V©VÐ4ð€Ið !*ò -Ñˆˆ5�$˜Ù   E¨;¸ÓD‰ˆˆBÜ˜˜D tÕ,Ü˜˜D tÖ,ñ-r1   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¬«       Œ� y )Nc                 ób   — t        j                  | t        j                  g d¢«      z
  dz  «      S ©N)rÈ  rŽ  r6   çš™™™™™Ù¿r4   ©r+   rC   rL   r-   s    r/   r}   z$test_linesearch_powell.<locals>.funcÞ  ó%   € Ü�v‰v�qœ2Ÿ8™8Ò$:Ó;Ñ;ÀÑAÓBÐBr1   rž  r¤   rŸ  rF  r   r4   r¡  r6   r¢  r²  ©rÈ  r   r)   r   ç      ô?©r`   r   r)   r)   çš™™™™™á?©rŽ  r   rF  r)   çÍÌÌÌÌÌä¿rº   )Úfvalr  r;   r    ©r  r¥  r¦  r»  )r   r{  Ú_linesearch_powellr+   rL   r´  r   ©Úlinesearch_powellr}   rž  r»  r¥  r¦  r¨  ÚxiÚlr|   r�   r9   s               r/   Útest_linesearch_powellrÂ  Ù  sŸ  € ä ×*Ñ*×=Ñ=ÐòCä	�‰’-Ó	 €BÙ�‹8€DÜ—(‘(œRŸV™V˜G˜9 q™=Ó)€KÜ—(‘(œBŸF™F˜8 a™<Ó(€Kô 
�‰’-Ó	  "Ð%Ü	�‰’-Ó	  !Ð$Ü	�‰’-Ó	  #Ð&Ü	�‰’-Ó	  #Ð&Ü	�‰’.Ó	! 4Ð(Ü	�‰’-Ó	  #Ð&Ü	�‰’.Ó	! 4Ð(ð€Ið ò 6‰ˆˆAÙ+¨D°"°bØ15¸4ôA‰ˆˆ1ˆiä˜™4  B¡›<¨dÕ3Ü˜˜1˜r™6¨Õ-Ü˜	 1 r¡6°Õ5á+¨D°"°b¸dØ8CØ8CØ15ô7‰ˆˆ1ˆiô 	˜™4  B¡›<¨dÕ3Ü˜˜1˜r™6¨Õ-Ü˜	 1 r¡6°Ö5ñ6r1   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 ]Q  \  }} | |||d|||¬«      \  }	}
}t        |	 |||z  «      d¬«       t        |
||z  d¬«       t        |||z  d¬«       ŒS t        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 ]Q  \  }} | |||d|||¬«      \  }	}
}t        |	 |||z  «      d¬«       t        |
||z  d¬«       t        |||z  d¬«       ŒS t        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 ]W  \  }} | |||d|||¬«      \  }	}
}t        |	 ||||z  z   «      d¬«       t        |
|||z  z   d¬«       t        |||z  d¬«       ŒY t        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 ]Q  \  }} | |||d|||¬«      \  }	}
}t        |	 |||z  «      d¬«       t        |
||z  d¬«       t        |||z  d¬«       ŒS t        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 ]W  \  }} | |||d|||¬«      \  }	}
}t        |	 ||||z  z   «      d¬«       t        |
|||z  z   d¬«       t        |||z  d¬«       ŒY y )!Nc                 ób   — t        j                  | t        j                  g d¢«      z
  dz  «      S r±  r³  r-   s    r/   r}   z,test_linesearch_powell_bounded.<locals>.func	  r´  r1   rž  g       Àr¤   rŽ  rŸ  rF  r   r4   r¡  r6   r¢  r²  rµ  r¶  r·  r¸  r¹  rº  rº   r¼  r;   r    g333333Ó¿r_   gÍÌÌÌÌÌÜ?r  r]   g333333Ã¿)rÈ  r   r   r4   rÑ   g333333À)r   r{  r½  r+   rL   r   r´  r¾  s               r/   Útest_linesearch_powell_boundedrÅ  ÿ  sh  € ä ×*Ñ*×=Ñ=ÐòCä	�‰’-Ó	 €BÙ�‹8€Dô —(‘(˜C˜5 ™7Ó#€KÜ—(‘(˜B˜4 ™6Ó"€Kô 
�‰’-Ó	  "Ð%Ü	�‰’-Ó	  !Ð$Ü	�‰’-Ó	  #Ð&Ü	�‰’-Ó	  #Ð&Ü	�‰’.Ó	! 4Ð(Ü	�‰’-Ó	  #Ð&Ü	�‰’.Ó	! 4Ð(ð€Ið ò 6‰ˆˆAÙ+¨D°"°b¸dØ8CØ8CØ15ô7‰ˆˆ1ˆiô 	˜™4  B¡›<¨dÕ3Ü˜˜1˜r™6¨Õ-Ü˜	 1 r¡6°Ö5ð6ô —(‘(˜C˜5 ™7 b T™>Ó*€KÜ—(‘(˜C˜5 ™7 b T™>Ó*€Kô 
�‰’-Ó	  #Ð&Ü	�‰’-Ó	  #Ð&Ü	�‰’-Ó	  #Ð&Ü	�‰’-Ó	  #Ð&Ü	�‰’.Ó	! 2Ð&Ü	�‰’-Ó	  #Ð&Ü	�‰’.Ó	! 4Ð(ð€Ið ò 6‰ˆˆAÙ+¨D°"°b¸dØ8CØ8CØ15ô7‰ˆˆ1ˆiô 	˜™4  B¡›<¨dÕ3Ü˜˜1˜r™6¨Õ-Ü˜	 1 r¡6°Ö5ð6ô 
�‰’.Ó	!€BÙ�‹8€Dô 
�‰’-Ó	  "Ð%Ü	�‰’-Ó	  #Ð&Ü	�‰’-Ó	  #Ð&Ü	�‰’-Ó	  $Ð'ð	€Ið ò 6‰ˆˆAÙ+¨D°"°b¸dØ8CØ8CØ15ô7‰ˆˆ1ˆiô 	˜™4  Q¨¡V¡Ó,°4Õ8Ü˜˜2  B¡™;¨TÕ2Ü˜	 1 r¡6°Ö5ð6ô 
�‰’-Ó	 €BÙ�‹8€Dô —(‘(˜C¤"§&¡& ¬2¯6©6¨'°2Ð6Ó7€KÜ—(‘(œBŸF™F C¬¯©°Ð4Ó5€Kô 
�‰’-Ó	  #Ð&Ü	�‰’-Ó	  #Ð&Ü	�‰’-Ó	  #Ð&Ü	�‰’-Ó	  #Ð&Ü	�‰’.Ó	! 2Ð&Ü	�‰’-Ó	  #Ð&Ü	�‰’.Ó	! 4Ð(ð€Ið ò 6‰ˆˆAÙ+¨D°"°b¸dØ8CØ8CØ15ô7‰ˆˆ1ˆiô 	˜™4  B¡›<¨dÕ3Ü˜˜1˜r™6¨Õ-Ü˜	 1 r¡6°Ö5ð6ô 
�‰’.Ó	!€BÙ�‹8€Dô 
�‰’-Ó	  "Ð%Ü	�‰’-Ó	  #Ð&Ü	�‰’-Ó	  #Ð&Ü	�‰’-Ó	  $Ð'ð	€Ið ò 6‰ˆˆAÙ+¨D°"°b¸dØ8CØ8CØ15ô7‰ˆˆ1ˆiô 	˜™4  Q¨¡V¡Ó,°4Õ8Ü˜˜2  B¡™;¨TÕ2Ü˜	 1 r¡6°Ö5ñ6r1   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‰¬«       y )Nr   ç333333ã?rþ  c                 óœ   •— | \  }}| ‰j                   k\  j                  «       r| ‰j                  k  j                  «       sJ ‚|dz  |dz  z   S r<  )ÚlbrK   Úub)r.   rx  ru  r  s      €r/   rš   ztest_powell_limits.<locals>.fun€	  sK   ø€ Ø‰ˆˆ1Ø�V—Y‘Y‘×#Ñ#Ô%¨1°·	±	©>×*>Ñ*>Ô*@Ð@Ð@Ø�A‰v˜˜Q™‰Ðr1   r  r  r)   T)rÉ  rÊ  Úkeep_feasiblec                 óD   — | dk\  r| dk  sJ ‚t        j                  | «      S rÇ  r*   r-   s    r/   r}   z test_powell_limits.<locals>.funcŠ	  s#   € Ø�AŠv˜!˜qš&Ð Ð Ü�v‰v�a‹yÐr1   r^   rg  )rš   rU   r—   r  )r   r   rª   )rš   r}   r  s     @r/   Útest_powell_limitsrÍ  |	  sq   ø€ ä�_‰_˜a ˜V c¨2 YÓ/€Fôô
 ×Ñ�c˜s B˜i°ÀÕHô �_‰_  ¨!¨¸d¸WÔE€Fòô ×Ñ˜$ C 5°À&ÖIr1   c                  óž   — t         d„ d„ g} | D ]=  }t        j                  |ddgd¬«      }t        j                  |j
                  «      rŒ=J ‚ y )Nc                 ó>   — t        j                  t        | «      «      S rA   ©r+   rL   r   r-   s    r/   r…  z$test_powell_output.<locals>.<lambda>’	  s   € œRŸX™X¤e¨A£hÓ/€ r1   c                 ó@   — t        j                  t        | «      g«      S rA   rÐ  r-   s    r/   r…  z$test_powell_output.<locals>.<lambda>’	  s   € ¼2¿8¹8ÄUÈ1ÃXÀJÓ;O€ r1   rÇ  rþ  r  )rU   r—   )r   r   rª   r+   Úisscalarrš   )Úfunsrš   r­   s      r/   Útest_powell_outputrÔ  ‘	  sM   € ÜÑ/Ñ1OÐP€DØò $ˆÜ×Ñ ¨¨b¨	¸(ÔCˆÜ�{‰{˜3Ÿ7™7Õ#Ð#Ð#ñ$r1   c                   óÎ   — e Zd Zd„ Z eddg¬«      ej                  j                  d«      d„ «       «       Z eddg¬«      ej                  j                  d«      d„ «       «       Z	y)	Ú	TestRosenc                 ó†   — |j                  g d¢«      }t        t        j                  |«      |j                  d«      «       y )Nr[   r`   )r}  r$   r   r   ©ro   r   r.   s      r/   Ú
test_rosenzTestRosen.test_rosenš	  s.   € à�J‰J’yÓ!ˆÜœŸ™ qÓ)ØŸ
™
 2›õ	(r1   z	jax.numpyz)JAX arrays do not support item assignment)ÚreasonsÚskip_xp_backendsc           	      ó¼   — |j                  g d¢«      }t        t        j                  |«      |j	                  ||j                  d«      j
                  ¬«      «       y )N)r)   r)   r)   r)   r\   )r�  )r}  r$   r   r   Ú
zeros_liker�  rØ  s      r/   Útest_rosen_derzTestRosen.test_rosen_der 	  sF   € ð �J‰J’|Ó$ˆÜœ×*Ñ*¨1Ó-ØŸ™ a¨r¯z©z¸"«~×/CÑ/C˜ÓDõ	Fr1   c                 ó4  — |j                  d«      }t        |«      }|j                  g d¢«      }|j                  g d¢«      }t        j                  ||«      }|j	                  ||j
                  «      }t        j                  |«      |z  }t        ||«       y )Nr\   )r_   r¤   rÕ   )r4   r4   r4   )r}  r%   r   Úrosen_hess_prodr“  r�  r   r$   )ro   r   ÚoneÚxp_testr.   r�   ÚhpÚdothps           r/   Útest_hess_prodzTestRosen.test_hess_prod¨	  s|   € ð �j‰j˜‹nˆÜ! #Ó&ˆà�J‰J’yÓ!ˆØ�J‰J’yÓ!ˆÜ×%Ñ% a¨Ó+ˆØ�N‰N˜1˜cŸi™iÓ(ˆÜ×#Ñ# AÓ&¨Ñ*ˆÜ˜˜EÕ"r1   N)
rŠ   r‹   rŒ   rÙ  rÛ  rÙ   ri  ÚusefixturesrÞ  rå  rŽ   r1   r/   rÖ  rÖ  ˜	  s   „ ò(ñ �kØJÐKôMà‡[�[×ÑÐ/Ó0ñFó 1óMðFñ
 �kØJÐKôMà‡[�[×ÑÐ/Ó0ñ	#ó 1óMñ	#r1   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Ž   )r�   r.   r7  rx  ru  s        r/   r“  r“  ·	  sA   € ð
 �D€A€qØ	ˆ!‰ˆa‰�"‰€AØ	ˆAˆa‰C‰�!‰€AØˆQ‰3��1‘‰9Ðr1   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_   é*   r4   é   é   rU  rd  ©r�   r.   r7  s      r/   rR   rR   Â	  s„   € Ø�D€A€qÜ�8‰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ð:ó ;ð ;r1   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ƒ  r4   r¤   ré  rë  rd  rì  s      r/   rS   rS   È	  sr   € Ø�D€A€qÜ�8‰8�b˜˜A™‘g  !¡‘m bÑ(¨!¨A©#°°!±©)Ð4Ø˜‘c˜A˜a™C‘i  1¡ r¨!¨Q©$¡w¡°Ñ!3Ð4ð6ó 7ð 7r1   gHáz®GÑ¿gÍÌÌÌÌÌì¿r_   r4   r`   c                  ó¢   — d„ } d„ }d„ }d| dœd|dœd|dœf}d„ }t        j                  |g d¢d|¬	«      }t        |j                  g d
¢d¬«       y )Nc                 ód   — t        j                  dd| d   z  z
  d| d   z  z
  d| d   z  z
  g«      S )Né   rI   r   r©  r)   rª  r4   rd  r-   s    r/   r}   z0test_minimize_multiple_constraints.<locals>.funcÕ	  s:   € Ü�x‰x˜˜c A a¡D™j™¨3°°1±©:Ñ5¸¸qÀ¹t¹ÑCÐDÓEÐEr1   c                 ó4   — t        j                  | d   g«      S r(   rd  r-   s    r/   Úfunc1z1test_minimize_multiple_constraints.<locals>.func1Ø	  ó   € Ü�x‰x˜˜1™˜ÓÐr1   c                 ó4   — t        j                  | d   g«      S r<  rd  r-   s    r/   rÒ  z1test_minimize_multiple_constraints.<locals>.func2Û	  ró  r1   r˜  r™  c                 ó*   — d| d   | d   z   | d   z   z  S )NrF  r   r)   r4   rŽ   r-   s    r/   r|   z-test_minimize_multiple_constraints.<locals>.fâ	  s"   € Ø�Q�q‘T˜A˜a™D‘[ 1 Q¡4Ñ'Ñ(Ð(r1   r¤  r�  r›  )é}   r   r   r®  r    rC  )r}   rò  rÒ  r—  r|   r­   s         r/   Ú"test_minimize_multiple_constraintsr÷  Ó	  s`   € òFò ò ð  DÑ)Ø EÑ*Ø EÑ*ð,€Dò)ô ×
Ñ
˜Ašy°ÀdÔ
K€CÜ�C—E‘Eš;¨UÖ3r1   c                   óT   — e Zd Zd„ Zej
                  j                  d«      d„ «       Zy)ÚTestOptimizeResultAttributesc                 óÐ   — ddg| _         t        j                  | _        t        j                  | _        t        j                  | _        t        j                  | _	        ddg| _
        y )NrÕ   )r`   rø  )rU   r   r   r}   r   r˜   r   r†   rà  r‰   r  rn   s    r/   rp   z)TestOptimizeResultAttributes.setup_methodì	  sK   € Ø�a�&ˆŒÜ—N‘NˆŒ	Ü×%Ñ%ˆŒÜ×'Ñ'ˆŒ	Ü×-Ñ-ˆŒ
Ø  )Ð,ˆ�r1   r4   c           
      óÈ  — g d¢}ddgi}t         D ]Ä  }t        «       5 }|j                  t        d«       t	        j
                  | j                  | j                  || j                  | j                  | j                  ¬«      }d d d «       |D ]+  }||v r|||   v rŒt        |«      sJ ‚|t        |«      v rŒ+J ‚ t        j                  t        «      rŒÄJ ‚ y # 1 sw Y   ŒXxY w)N)rö   r›   r.   r½   r�   rš   r  ri  rö   z7Method .+ does not use (gradient|Hessian.*) information)r—   r˜   r†   r‰   )r   r	   rÝ  r¥  r   rª   r}   rU   r˜   r†   r‰   rt   Údirr~  r  Ústr)ro   Ú
attributesrÛ  r—   rå  r­   Ú	attributes          r/   Útest_attributes_presentz4TestOptimizeResultAttributes.test_attributes_presentô	  sæ   € ò!ˆ
à˜5˜'Ð"ˆÜ&ò 	0ˆFÜ"Ó$ð :¨Ø—
‘
œ>ð+ô-ô ×'Ñ'¨¯	©	°4·7±7À6Ø,0¯H©H¸4¿9¹9Ø.2¯j©jô:�÷	:ð (ò -�	Ø˜T‘> i°4¸±<Ñ&?Øä˜s IÔ.Ð.Ð.Ø ¤C¨£HÒ,Ð,Ð,ð-ô ˜cŸk™k¬3Õ/Ð/Ð/ñ!	0÷:ð :ús   �A$CÃC!	N)rŠ   r‹   rŒ   rp   rÙ   ri  r  r   rŽ   r1   r/   rù  rù  é	  s*   „ ò-ð ‡[�[×Ñ˜1Óñ0ó ñ0r1   rù  c                 ó~   — | \  }}|\  }}}}}}	}
}}}}}}||dz  z  ||z  |z  z   ||dz  z  z   ||z  z   ||z  z   |	z   S r<  rŽ   ©rb  r®   r.   r7  rx  ru  rr   r	  ræ   r|   r=  ræ  r€  r5  rA  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¸!Ñ;Ð<r1   c                 ó„   — | \  }}|\  }}}}}}	}
}}}}}}|
 t        j                  ||z
  dz  ||z
  dz  z    |z  «      z  S r<  r*   r  s                    r/   Úf2r  
  ó^   € Ø�D€A€qØ06Ñ-€A€qˆ!ˆQ��1�a˜˜A˜q ! Q¨ØˆBŒr�v‰v˜˜1™˜q™ A a¡C¨!¡8Ñ+Ð,¨uÑ4Ó5Ñ5Ð6r1   c                 ó„   — | \  }}|\  }}}}}}	}
}}}}}}| t        j                  ||z
  dz  ||z
  dz  z    |z  «      z  S r<  r*   r  s                    r/   Úf3r  
  r  r1   c                 óN   — t        | g|¢­Ž t        | g|¢­Ž z   t        | g|¢­Ž z   S rA   )r  r  r  )rb  r®   s     r/   Ú
brute_funcr
  
  s*   € Üˆaˆ>�&Š>œB˜q˜N 6šNÑ*¬R°¨^°Fª^Ñ;Ð;r1   c                   ó¤   — e Zd Zd„ Zd„ Zd„ Zd„ Zej                  j                  d«      d„ «       Z
ej                  j                  d„ «       Zd„ Zy	)
Ú	TestBrutec                 óˆ   — d| _         t        ddd«      t        ddd«      f| _        t        j                  ddg«      | _        y )N)r4   r_   r£   rÆ   r¢   rÅ   é,   rF  r4   rë  r)   r­  r^   r£  r¤   ç      Ð?g_}ú×èð¿g•÷iÃþîü?)r®   ÚsliceÚrrangesr+   rL   rg   rn   s    r/   rp   zTestBrute.setup_method$
  s<   € ØDˆŒÜ˜b ! TÓ*¬E°"°a¸Ó,>Ð?ˆŒÜŸ™ +¨zÐ!:Ó;ˆ�r1   c                 ó   — t        |g|¢­Ž S rA   )r
  )ro   rb  r®   s      r/   r
  zTestBrute.brute_func)
  s   € ä˜!Ð%˜fÒ%Ð%r1   c                 óî  — t        j                  t        | j                  | j                  dt         j
                  ¬«      }t        |d   | j                  d¬«       t        |d   t        | j                  g| j                  ¢­Ž d¬«       t        j                  t        | j                  | j                  dt         j                  ¬«      }t        |d   | j                  d¬«       t        |d   t        | j                  g| j                  ¢­Ž d¬«       t        j                  | j                  | j                  | j                  dt         j                  ¬«      }t        |d   | j                  d¬«       y )NT©r–   rž   Úfinishr   rò   r    r)   )	r   Úbruter
  r  r®   r)  r   rg   rª   )ro   Úresbrutes     r/   Ú
test_brutezTestBrute.test_brute-
  s
  € ä—>‘>¤*¨d¯l©lÀÇÁØ.2¼8¿=¹=ôJˆä˜ ™ T§]¡]¸Õ>Ü˜ ™¤Z°·±Ð%LÀÇÁÒ%LØ!õ	#ô —>‘>¤*¨d¯l©lÀÇÁØ.2Ü)1×):Ñ):ô<ˆô 	˜ ™ T§]¡]¸Õ>Ü˜ ™¤Z°·±Ð%LÀÇÁÒ%LØ!õ	#ô
 —>‘> $§/¡/°4·<±<Ø'+§{¡{ÀÜ)1×):Ñ):ô<ˆô 	˜ ™ T§]¡]¸Ö>r1   c                 ó>   — d„ }t        j                  |dgdd ¬«       y )Nc                 óh   — t        | j                  «      dk(  sJ ‚| j                  d   dk(  sJ ‚| dz  S )Nr)   r   r4   )r¦  rt  r-   s    r/   r|   zTestBrute.test_1D.<locals>.fG
  s5   € Ü�q—w‘w“< 1Ò$Ð$Ð$Ø—7‘7˜1‘: ’?Ð"�?Ø˜‘6ˆMr1   r¢  r_   )ÚNsr  )r   r  )ro   r|   s     r/   Útest_1DzTestBrute.test_1DD
  s   € ò	ô
 	�‰�q˜7˜)¨°$Ö7r1   rÅ   c                 ó  — t        j                  t        | j                  | j                  dd ¬«      }t        j                  t        | j                  | j                  dd d¬«      }t        |d   |d   «       t        |d   |d   «       y )NTr  r4   )r–   rž   r  ÚworkersrF  r   )r   r  r
  r  r®   r   )ro   r  Ú	resbrute1s      r/   Útest_workerszTestBrute.test_workersN
  sr   € ô —>‘>¤*¨d¯l©lÀÇÁØ.2¸4ôAˆô —N‘N¤:¨t¯|©|À$Ç+Á+Ø/3¸DÈ!ôMˆ	ô 	˜	 "™ x°¡|Ô4Ü˜	 !™ h¨q¡kÕ2r1   c                 ó  ‡— t         j                  j                  d«      Šˆfd„}d}t        j                  t
        |¬«      5  t        j                  || j                  | j                  d¬«       d d d «       y # 1 sw Y   y xY w)Nr8   c                 ó,   •— ‰j                  d«      dz  S ro  rp  )rb  r®   r=   s     €r/   r}   z,TestBrute.test_runtime_warning.<locals>.func^
  s   ø€ Ø—:‘:˜a“= 4Ñ'Ð'r1   zFfinal optimization did not succeed.*|Maximum number of function eval.*rÎ   T)r–   r“   )
r+   r7   rt  rÙ   r¤  r¥  r   r  r  r®   )ro   Úcapsysr}   r�  r=   s       @r/   r¦  zTestBrute.test_runtime_warningZ
  se   ø€ ä�i‰i×#Ñ# DÓ)ˆô	(ð WˆÜ�\‰\œ.°Ô4ñ 	LÜ�N‰N˜4 §¡°D·K±KÀdÕK÷	L÷ 	Lñ 	Lús   Á.A:Á:Bc                 ój   — d„ }t        j                  |t        ddd«      fd¬«      }t        |d«       y )Nc                 ó   — | |d   z  S rM  rŽ   )r.   r–   s     r/   r|   z+TestBrute.test_coerce_args_param.<locals>.fg
  s   € Ø˜˜Q™‘<Ðr1   r£  r¤   r  r4   r[  r   )r   r  r  r   )ro   r|   r  s      r/   Útest_coerce_args_paramz TestBrute.test_coerce_args_parame
  s1   € ò	 ô —>‘> !¤e¨B°°3Ó&7Ð%9ÀÔBˆÜ˜ !Õ$r1   N)rŠ   r‹   rŒ   rp   r
  r  r  rÙ   ri  r  r   r  r¦  r&  rŽ   r1   r/   r  r  "
  s^   „ ò<ò
&ò?ò.8ð ‡[�[×Ñ˜2Óñ	3ó ð	3ð ‡[�[×ÑñLó ðLó%r1   r  rþ  c                  ó^  ‡‡‡‡	— dd l } dd lŠ	ˆ	fd„Šˆ	fd„ŠdŠˆˆfd„}ˆˆfd„}| j                  j                  «       5 }g }|j	                  |j                  |«      «       |j	                  |j                  |«      «       |D ]  }|j                  «        Œ 	 d d d «       y # 1 sw Y   y xY w)Nr   c                 ó6   •— ‰j                  d«       | d   dz  S )Nr>   r   r4   ©Úsleep©r.   Útimes    €r/   Ú
objective1z*test_cobyla_threadsafe.<locals>.objective1w
  s   ø€ Ø�
‰
�3ŒØ�‰t�Q‰wˆr1   c                 ó<   •— ‰j                  d«       | d   dz
  dz  S )Nr>   r   r)   r4   r)  r+  s    €r/   Ú
objective2z*test_cobyla_threadsafe.<locals>.objective2{
  s    ø€ Ø�
‰
�3ŒØ�!‘�Q‘˜‰{Ðr1   ÚCOBYLAc                  ó6   •— t        j                  ‰dg‰ ¬«      S ©Nr`   r¹   rw  )Ú
min_methodr-  s   €€r/   Ú
minimizer1z*test_cobyla_threadsafe.<locals>.minimizer1�
  ó    ø€ Ü× Ñ  Ø'* eØ-7ô9ð 	9r1   c                  ó6   •— t        j                  ‰dg‰ ¬«      S r2  rw  )r3  r/  s   €€r/   Ú
minimizer2z*test_cobyla_threadsafe.<locals>.minimizer2†
  r5  r1   )Úconcurrent.futuresr,  ÚfuturesÚThreadPoolExecutorrx   ÚsubmitrI  )
Ú
concurrentr4  r7  ÚpoolÚtasksrs   r3  r-  r/  r,  s
         @@@@r/   Útest_cobyla_threadsafer?  n
  s˜   û€ ó Ûôôð €Jõ9õ
9ð
 
×	Ñ	×	.Ñ	.Ó	0ð °DØˆØ�‰�T—[‘[ Ó,Ô-Ø�‰�T—[‘[ Ó,Ô-Øò 	ˆAØ�H‰H�Jñ	÷	÷ ñ ús   ¿AB#Â#B,c                   óf   — e Zd Zd„ Zd„ Zej                  j                  d«      d„ «       Zd„ Z	d„ Z
y)ÚTestIterationLimitsc                 ó6   — t        j                  «       | _        y rA   )ri   rj   rL  rn   s    r/   rp   z TestIterationLimits.setup_method—
  s   € Ü!Ÿ™Ó)ˆ�r1   c                 óP  — t        | j                  d«      sd| j                  _        | j                  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 )Nrr   r   r)   r4   rþ  r^   )rt   rL  rr   r+   rß  Úarctan2rB   )ro   r)  rV   rs   s       r/   Ú	slow_funczTestIterationLimits.slow_funcš
  s†   € Ü�t—}‘} cÔ*ØˆD�M‰MŒOØ�‰�Š˜1Ñ�Ü�w‰w�q˜‘t˜Q‘w˜q ™t Q™w‘Ó'¬¯©°A°a±D¸!¸A¹$Ó)?ˆ1ˆÜ�v‰v�a˜‘d˜Q‘hÓ  #¡Ñ%Ð%r1   rÅ   c                 ó(   — | j                  dd«       y )Nrr  éÈ   ©Úcheck_limitsrn   s    r/   Útest_neldermead_limitz)TestIterationLimits.test_neldermead_limit¡
  s   € à×Ñ˜-¨Õ-r1   c                 ó(   — | j                  dd«       y )Nrg  ra   rH  rn   s    r/   Útest_powell_limitz%TestIterationLimits.test_powell_limit¥
  s   € Ø×Ñ˜( DÕ)r1   c           
      óZ  — ddgddgddgfD �]  }dD ]p  }d| j                   _        t        j                  | j                  ||d|i¬«      }| j                   j                  |d   k(  sJ ‚|d	   r|d   |k  rŒeJ ‚|d   |k\  rŒpJ ‚ dD ]A  }t        j                  | j                  ||d
|i¬«      }|d	   r|d   |k  rŒ6J ‚|d   |k\  rŒAJ ‚ ddgddgdt
        j                  gfD ]…  \  }}d| j                   _        t        j                  | j                  ||||dœ¬«      }| j                   j                  |d   k(  sJ ‚|d	   r|d   |k  r	|d   |k  rŒqJ ‚|d   |k\  rŒ||d   |k\  rŒ…J ‚ t
        j                  d gd t
        j                  gfD ]–  \  }}d| j                   _        t        j                  | j                  ||||dœ¬«      }| j                   j                  |d   k(  sJ ‚|d	   r|€|d   |dz  k  rŒnJ ‚|d   |dz  k  rŒ|J ‚|d   |dz  k\  rŒŠ|d   |dz  k\  rŒ–J ‚ �Œ y )Nr>   r)   r4   )r1  iô  éˆ  r   rs  ró   r›   r½   rh   rö   r1  rN  )rh   rs  )rL  rr   r   rª   rE  r+   r´  )ro   r—   Údefault_itersÚstart_vÚmfevr­   Úmits          r/   rI  z TestIterationLimits.check_limits¨
  s¤  € Ø˜c˜
 Q¨ F¨Q°¨FÐ3ó ,	>ˆGØ'ò 	/�Ø"#�—‘”Ü×'Ñ'¨¯©¸Ø/5Ø19¸4Ð0@ôB�ð —}‘}—‘¨#¨f©+Ò5Ð5Ð5Ø�y’>Ø˜v™;¨Ó-Ð-Ð-à˜v™;¨$Ó.Ð.Ð.ð	/ð 'ò -�Ü×'Ñ'¨¯©¸Ø/5Ø1:¸CÐ0@ôB�ð �y’>Ø˜u™:¨Ó,Ð,Ð,à˜u™:¨Ó,Ð,Ð,ð-ð  " 2˜h¨¨t¨°t¼R¿V¹V°nÐEò 
D‘	��cØ"#�—‘”Ü×'Ñ'¨¯©¸Ø/5Ø<?Ø;?ñ1AôB�ð —}‘}—‘¨#¨f©+Ò5Ð5Ð5Ø�y’>Ø˜v™;¨Ò-°#°e±*ÀÓ2CÐCÐCà˜v™;¨$Ó.°#°e±*ÀÓ2CÐCÐCð
Dô  "Ÿv™v t˜n¨t´R·V±V¨nÐ=ò >‘	��cØ"#�—‘”Ü×'Ñ'¨¯©¸Ø/5Ø<?Ø;?ñ1AôB�ð —}‘}—‘¨#¨f©+Ò5Ð5Ð5Ø�y’>Ø�|Ø" 6™{¨]¸1©_Ó<Ð<Ð<à" 5™z¨]¸1©_Ó<Ð<Ð<à ™K¨=¸©?Ó:Ø" 5™z¨]¸1©_Ó<ð>ð =ò>ñ=,	>r1   N)rŠ   r‹   rŒ   rp   rE  rÙ   ri  r  rJ  rL  rI  rŽ   r1   r/   rA  rA  “
  s9   „ ò*ò&ð ‡[�[×Ñ˜2Óñ.ó ð.ò*ó->r1   rA  c                  ób  — d„ } d„ }d„ }g d¢}|D ]I  }t        j                  | t        j                  dg«      |¬«      }|j                  j
                  dk(  rŒIJ ‚ g d¢}|D ]K  }t        j                  | t        j                  dg«      |||¬	«      }|j                  j
                  dk(  rŒKJ ‚ y )
Nc                 ó   — | | z  S rA   rŽ   r-   s    r/   rš   z2test_result_x_shape_when_len_x_is_one.<locals>.funÙ
  s   € Ø�1‰uˆr1   c                 ó   — d| z  S ©NrŽ  rŽ   r-   s    r/   r˜   z2test_result_x_shape_when_len_x_is_one.<locals>.jacÜ
  s   € Ø�A‰vˆr1   c                 ó0   — t        j                  dgg«      S rV  rd  r-   s    r/   r†   z3test_result_x_shape_when_len_x_is_one.<locals>.hessß
  s   € Ü�x‰x˜"˜˜ÓÐr1   )	rr  r  r•   rÁ   r"  rä  r0  ÚCOBYQAr�  r>   r¹   rm  )rî  rò  rï  ró  rð  rG  rñ  )r   rª   r+   rL   r.   rt  )rš   r˜   r†   rê  r—   r­   s         r/   Ú%test_result_x_shape_when_len_x_is_onerY  Ø
  s¬   € òòò ò,€Gàò #ˆÜ×Ñ ¤R§X¡X¨s¨e£_¸VÔDˆØ�u‰u�{‰{˜dÓ"Ð"Ð"ð#ò
,€Gàò #ˆÜ×Ñ ¤R§X¡X¨s¨e£_¸VÈØ%)ô+ˆà�u‰u�{‰{˜dÓ"Ð"Ð"ñ#r1   c                   ó   — e Zd Zd„ Zd„ Zy)ÚFunctionWithGradientc                 ó6   — t        j                  «       | _        y rA   )ri   rj   Únumber_of_callsrn   s    r/   r  zFunctionWithGradient.__init__ò
  s   € Ü(Ÿ™Ó0ˆÕr1   c                 óÈ   — t        | j                  d«      sd| j                  _        | j                  xj                  dz  c_        t        j                  |dz  «      d|z  fS )Nrr   r   r)   r4   )rt   r]  rr   r+   rC   r  s     r/   r  zFunctionWithGradient.__call__õ
  sR   € Ü�t×+Ñ+¨SÔ1Ø%&ˆD× Ñ Ô"Ø×Ñ×Ò !Ñ#ÕÜ�v‰v�a˜‘d‹|˜Q ™UÐ"Ð"r1   Nr  rŽ   r1   r/   r[  r[  ñ
  s   „ ò1ó#r1   r[  c                  ó   — t        «       S rA   )r[  rŽ   r1   r/   Úfunction_with_gradientr`  ü
  s   € äÓ!Ð!r1   c                 óŒ  — t        | «      }t        j                  ddg«      }t         ||«      d«       | j                  j
                  dk(  sJ ‚t        |j                  |«      d|z  «       | j                  j
                  dk(  sJ d«       ‚t         |d|z  «      dd¬	«       | j                  j
                  dk(  sJ d«       ‚y )
Nr\   rŽ  r�  r)   r4   zHfunction is not recomputed if gradient is requested after function valueg      4@ú(different input triggers new computationrÊ  )r   r+   rL   r   r]  rr   Ú
derivative©r`  Úmemoized_functionrU   s      r/   Ú)test_memoize_jac_function_before_gradientrf    sË   € Ü"Ð#9Ó:Ðä	�‰�3˜�*Ó	€BÜÑ% bÓ)¨3Ô/Ø!×1Ñ1×3Ñ3°qÒ8Ð8Ð8äÐ%×0Ñ0°Ó4°a¸"±fÔ=Ø!×1Ñ1×3Ñ3°qÒ8ð 8ð	8ó8Ð8ô Ù˜!˜b™&Ó! 4Ø:õ<ð "×1Ñ1×3Ñ3°qÒ8ð 3Ø2ó3Ñ8r1   c                 ó¤  — t        | «      }t        j                  ddg«      }t        |j	                  |«      d|z  «       | j
                  j                  dk(  sJ ‚t         ||«      d«       | j
                  j                  dk(  sJ d«       ‚t        |j	                  d|z  «      d|z  d¬	«       | j
                  j                  dk(  sJ d«       ‚y )
Nr\   rŽ  r4   r)   r�  zHfunction is not recomputed if function value is requested after gradientr¤   rb  rÊ  )r   r+   rL   r   rc  r]  rr   rd  s      r/   Ú)test_memoize_jac_gradient_before_functionrh    sÕ   € Ü"Ð#9Ó:Ðä	�‰�3˜�*Ó	€BÜÐ%×0Ñ0°Ó4°a¸"±fÔ=Ø!×1Ñ1×3Ñ3°qÒ8Ð8Ð8äÑ% bÓ)¨3Ô/Ø!×1Ñ1×3Ñ3°qÒ8ð 8ð	8ó8Ð8ô Ø×$Ñ$ Q¨¡VÓ,¨a°"©fØ:õ<ð "×1Ñ1×3Ñ3°qÒ8ð 3Ø2ó3Ñ8r1   c           	      óœ  — t        | «      }|j                  }t        j                  «       }t	        j
                  ddg«      }t        ||d||dd«      }| j                  j                  dk(  sJ ‚|j                  |dz   «       | j                  j                  dk(  sJ ‚|j                  |dz   «       | j                  j                  d	k(  sJ ‚y)
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.
    r\   r^   rŽ   Nr)   r>   r4   rI   r_   )
r   rc  r   rÁ   r+   rL   r   r]  rr   rš   )r`  re  r˜   r†   rU   Úscalar_functions         r/   Útest_memoize_jac_with_bfgsrk  '  sÃ   € ô
 #Ð#9Ó:ÐØ
×
&Ñ
&€CÜ�=‰=‹?€Dä	�‰�3˜�*Ó	€BÜ$Ø˜2˜r 3¨¨d°Dó:€Oà!×1Ñ1×3Ñ3°qÒ8Ð8Ð8à×Ñ˜˜S™Ô!Ø!×1Ñ1×3Ñ3°qÒ8Ð8Ð8à×Ñ˜˜S™Ô!Ø!×1Ñ1×3Ñ3°qÒ8Ð8Ñ8r1   c                  ó°   — t        «       5  t        j                  d„ t        j                   t        j                  d¬«       d d d «       y # 1 sw Y   y xY w)Nc                 ó4   — t        j                  | dz  g«      S r<  rd  r-   s    r/   r…  ztest_gh12696.<locals>.<lambda>@  s   € ”b—h‘h  1¡˜vÓ&€ r1   Frë   )r   r   rF  r+   r!  rŽ   r1   r/   Útest_gh12696rn  <  sC   € ä	Ó	ñ CÜ×ÑÙ&¬¯©¨´·±¸Eõ	C÷C÷ Cñ Cús   ‹8AÁAc                  ó¾  ‡‡‡‡‡— t         j                  j                  d«      } | 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   r4   rF  rÈ  )r_   r4   r4   rÈ  Tc                 óV   •— |r| j                   dk(  sJ ‚|rt        | ‰   ‰‰   «       y y rq  )rH  r   )r.   Ú
check_sizeÚcheck_valuesÚi_ebrÉ  s      €€r/   Úcheck_xz(setup_test_equal_bounds.<locals>.check_xM  s0   ø€ ÙØ—6‘6˜Q’;Ð�;ÙÜ˜A˜d™G R¨¡XÕ.ð r1   c                 ó>   •—  ‰| «       t        j                  | «      S rA   r  ©r.   rt  s    €r/   r}   z%setup_test_equal_bounds.<locals>.funcS  s   ø€ Ù�Œ
Ü�~‰~˜aÓ Ð r1   c                 ó>   •—  ‰| «       t        j                  | «      S rA   )r   r   rv  s    €r/   r‚   z%setup_test_equal_bounds.<locals>.gradW  s   ø€ Ù�Œ
Ü×!Ñ! !Ó$Ð$r1   c                 ó   •—  ‰| «       y rA   rŽ   )r.   r–   rt  s     €r/   r  z)setup_test_equal_bounds.<locals>.callback[  s
   ø€ Ù��
r1   c                 ó(   •—  ‰| d¬«       | dd dz
  S )NF©rr  r   r)   rŽ   rv  s    €r/   Úconstraint1z,setup_test_equal_bounds.<locals>.constraint1^  s   ø€ Ù� Õ&Ø��1ˆv˜‰zÐr1   c                 óP   •—  ‰| d¬«       t        j                  | «      }d|d<   |S )NFrz  r)   r   ©r+   rÝ  ©r.   Údcrt  s     €r/   Ú	jacobian1z*setup_test_equal_bounds.<locals>.jacobian1b  ó)   ø€ Ù� Õ&Ü�]‰]˜1ÓˆØˆˆ1‰Øˆ	r1   c                 ó(   •—  ‰| d¬«       | dd dz
  S )NFrz  r4   r_   r^   rŽ   rv  s    €r/   Úconstraint2z,setup_test_equal_bounds.<locals>.constraint2h  s   ø€ Ù� Õ&Ø��1ˆv˜‰|Ðr1   c                 óP   •—  ‰| d¬«       t        j                  | «      }d|d<   |S )NFrz  r)   r4   r}  r~  s     €r/   Ú	jacobian2z*setup_test_equal_bounds.<locals>.jacobian2l  r�  r1   )r"  r�  rä  Fr  c                 ó$   •—  ‰| «       ‰| «      fS rA   rŽ   )r.   r}   r‚   s    €€r/   r…  z)setup_test_equal_bounds.<locals>.<lambda>~  s   ø€ ¡ Q£©¨a«Ð1€ r1   c                 ó,   — t        t        | |«      «      S rA   )ÚlistÚzip©rÉ  rÊ  s     r/   r…  z)setup_test_equal_bounds.<locals>.<lambda>‚  s   € ¤$¤s¨2¨r£{Ó"3€ r1   r  )	rê  ÚkwdsÚbound_typesr[  Ú	callbacksrÉ  rÊ  rU   rs  )TT)r+   r7   rÜ  rá  rL   r   r´  r   )r=   rU   rÊ  r  r{  r€  rƒ  r…  Úc1aÚc1bÚc2aÚc2brê  r‹  rŒ  r[  r�  Údatart  r}   r‚   rs  rÉ  s                     @@@@@r/   Úsetup_test_equal_boundsr“  E  s•  ü€ ä
�)‰)×
Ñ
 Ó
"€CØ	�‰�!‹€BÜ	�‰Ò"Ó	#€BÜ	�‰’/Ó	"€BØ�"‰H€Dö/ô!ô%ôôôôôô ˜k¬B¯F©F¨7°AÓ
6€CÜ
˜k¬B¯F©F¨7°A°yÓ
A€CÜ
˜k¬B¯F©F¨7°AÓ
6€CÜ
˜k¬B¯F©F¨7°A°yÓ
A€Cð +€Gð  Ñ'Ø Ñ&Ü1Øñð€Dñ 4Üð€Kð   " b Ø˜�:  S˜zØ�E˜C˜5�> S E¨C¨5 >Ø˜#�J  c 
Ð+Ø˜#�J  c 
Ð+Ø˜#�J  c 
Ð+ð-€Kð �xÐ €Ià¨¸[Ø&°YØ˜B b°$ñ8€Dð €Kr1   z0Failures due to floating point issues, not logicÚdicts)ÚmodeÚ	CompilersÚfortranÚnamez
intel-llvmr  rê  r‹  Ú
bound_typerŒ  r[  r  r�  c           	      óp  — 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«       |	|
k7  } |||«      }|j                  || ||	|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&        «      sod„ }t        j                  ||ddg   | |ddd…   ¬«      }t        |j                  |j                  «       t        |j                  ddg   |j                  d¬«       yyyy)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Ê  rU   rs  r�  z)Only SLSQP supports nonlinear constraints)rU   r—   r  r[  r  )r—   r˜   r  r[  gTäqs*¹>r»   gü©ñÒMb@?r   r¤   r;   c                 ó¤   — t        j                  t         j                  dt         j                  dg«      }| |ddg<   t        j                  |«      S )Nr4   rF  r   )r+   rL   rÓ  r   r   )r.   Únew_xs     r/   rš   ztest_equal_bounds.<locals>.funÒ  s=   € Ü—H‘HœbŸf™f a¬¯©°Ð4Ó5ˆEØˆE�1�a�&‰MÜ—>‘> %Ó(Ð(r1   r4   rj  g�íµ ÷ÆÀ>rŽ   )ÚplatformÚmachinerÙ   rÛ  Úeb_datars  r   rª   r   r   r½   r   rš   r.   r+   rÓ  r˜   rt  r~  r   )r—   r‹  r™  r[  r  rÉ  rÊ  rU   rs  Útest_constraintsÚreference_constraintsÚ	fd_neededr  r­   Úexpectedrš   Úfd_ress                    r/   Útest_equal_boundsr¦  �  s  € ô  	×ÑÓ˜iÒ'¨F°eªOØ�U‘˜uÑ$¨Ð)=Ü�‰Ð2Ô3ä�T‰]œG D™Mˆ€BÜ�t‰}œg f™oˆ€Bà.9Ñ+ÐÐ+Ù ¨'Ò 1Ü�‰Ð?Ô@ð "Ð%:Ñ:€Iá˜˜BÓ€Fà‡K�K�r V°vØ 0¸hñHô Iä
×
Ñ
Ñ
#˜dÑ
#€Cä× Ñ ¤§¡°¸FÜ%-×%7Ñ%7ÀØ-BôD€Hð
 �;Š;Ðˆ;Ü�C—G‘G˜XŸ\™\°Õ7Ü�C—E‘E˜8Ÿ:™:¨DÕ1á�D˜‘K 5Ñ(ÜŸV™Vˆ�‰�TÑØ�7‰7�=‰=˜Ñ˜qÒ Ð Ð Ü�C—G‘G˜D‘M 8§<¡<°Ñ#5¸DÕAà�ŠKÑ+¬z¸&Ä&Ô/Iò	)ô
 ×"Ñ" 3Ø#% q¨! f¡:Ø*0Ø*0±°1°©+ô7ˆô 	˜Ÿ™ §¡Ô,ô 	˜Ÿ™˜q !˜f™ v§x¡x°dÖ;ð% 0JÐ+ˆKr1   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«      «       | j                  «       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                  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                  j                  |«      sJ ‚y y )Nr)   c                 óF   — t         j                  j                  | «      |z   S rA   )r+   ÚlinalgÚnorm)r.   Úp1s     r/   r|   z test_all_bounds_equal.<locals>.fè  s   € Ü�y‰y�~‰~˜aÓ  2Ñ%Ð%r1   rn  )r4   r4   )r\   rB  rA  r\   rŽ  z/All independent variables were fixed by bounds.)r4   rT  r4   r�  c                 ó,   — t        j                  | «      S rA   r=  r-   s    r/   Úconz"test_all_bounds_equal.<locals>.conù  s   € Ü—6‘6˜!“9Ðr1   r`   )r  r—   r[  Fz3All independent variables were fixed by bounds, butr¤   Tz8All independent variables were fixed by bounds at valuesrm  )r   rª   r½   r   rš   r›   r  Úupperr   r+   r´  r„  )	r—   r|   r  rU   r­   r–   r­  Únlcr  s	            r/   Útest_all_bounds_equalr°  ä  sÝ  € ó&ð �fÐ€FØ	€BÜ
×
Ñ
˜A˜r¨&¸Ô
@€CØ�;Š;Ðˆ;Ü�C—G‘G™Q  S˜z›]Ô+Ø�8‰8�qŠ=Ðˆ=Ø�;‰;ÐKÒKÐKÐKà€DÜ
×
Ñ
˜A˜r¨&¸ÀdÔ
K€CØ�;Š;Ðˆ;Ü�C—G‘G™Q  S˜z¨1Ó-Ô.à‡|�|ƒ~˜Ó ò	ä! #¬¯© w°Ó4ˆÜ×ÑØˆr˜&¨¸c¸Uô
ˆð �{‰{˜eÑ#Ð#Ð#Ü˜Ÿ™¡ C¨ :£Ô/Ø�x‰x˜1Š}Ðˆ}ØGˆØ�{‰{×%Ñ% gÔ.Ð.Ð.ä! #¬¯© w°Ó2ˆÜ×ÑØˆr˜&¨¸c¸Uô
ˆð �{‰{˜dÑ"Ð"Ð"Ü˜Ÿ™¡ C¨ :£Ô/Ø�x‰x˜1Š}Ðˆ}ØLˆØ�{‰{×%Ñ% gÔ.Ð.Ñ.ð+ !r1   c                  ó„   — d„ } d„ }d|dœg}dgdz  }d|d<   t        j                  | g d	¢d
||¬«       |d   d   |k(  sJ ‚y )Nc                 ó<   — | d   dz  | d   dz  z   | d   | d   z  z   S )Nr   r_   r)   r4   rŽ   r-   s    r/   r|   ztest_eb_constraints.<locals>.f  s.   € Ø�‰t�Q‰w˜˜1™˜q™Ñ  1 Q¡4¨¨!©¡9Ñ,Ð,r1   c                 ó6   — | d   | d   z   | d   z   | d   z   dz
  S )Nr   r)   r4   r_   é(   rŽ   r-   s    r/   Úcfunz!test_eb_constraints.<locals>.cfun  s+   € Ø�‰t�a˜‘d‰{˜Q˜q™TÑ! A a¡DÑ(¨2Ñ-Ð-r1   r˜  r™  )r   rþ  r¤   )rÕ   rÕ   r)   )r)   r4   r_   r¤   r�  )rU   r—   r  r[  r   rš   rw  )r|   rµ  r[  r  s       r/   Útest_eb_constraintsr¶    se   € ò-ò.ð #¨4Ñ0Ð1€KàˆY˜‰]€FØ€Fˆ1�IÜ×ÑØ	ÚØØØõð �q‰>˜%Ñ  DÒ(Ð(Ñ(r1   c                  ó  — t         t        t        t        t        t
        dœ} | j                  «       D ]  \  }}|D ]  }t        ||«       Œ Œ ddddœ}|j                  «       D ]  \  }}t        t        t        ||«       Œ y )N)rª   rU  ÚrootÚroot_scalarÚlinprogÚquadratic_assignmentÚekkir	  )rª   ÚmaximizeÚmaximize_scalar)
r   r   r   r   r   r   Úitemsr   rP   rQ   )Úsolver_methodsÚsolverrê  r—   Úunknown_solver_methods        r/   Útest_show_optionsrÃ  '  s“   € ä$Ü2ÜÜ*Ü"Ü <ñ€Nð *×/Ñ/Ó1ò )‰ˆ�Øò 	)ˆFä˜ Õ(ñ	)ð)ð ØØ!ñÐð
 0×5Ñ5Ó7ò @‰ˆ�ä”j¤,°¸Õ?ñ@r1   c                  ó²   — t        j                  ddgddg¬«      } t        j                  t         j                  t	        j
                  ddg«      d| ¬«       y )Nr�  rø  rŠ  r¢   r  r  )r   r   rª   r   r+   rL   r°  s    r/   Útest_bounds_with_listrÅ  ?  sB   € ä�_‰_  R ¨c°3¨ZÔ8€FÜ×ÑÜ�‰œ2Ÿ8™8 Q¨ FÓ+°HÀVör1   c            	      ó<  — d„ } d„ }d„ }g d¢}g d¢}t        j                  d«      dz  }t        D ]j  }d }d }||v r|}||v r|}t        j                  | ||||¬«      }	t        |	j                  t        j                  t        j                  |«      «      d	¬
«       Œl y )Nc                 ó�   — t        j                  t        j                  | «      «      }| |z  } | | z  } t        j                  | «      S rA   )r+   rO   rH  rC   r–  s     r/   Úfquadz/test_x_overwritten_user_function.<locals>.fquadK  s8   € Ü�I‰I”b—g‘g˜a“jÓ!ˆØ	ˆQ‰ˆØ	ˆQ‰ˆÜ�v‰v�a‹yÐr1   c                 óp   — t        j                  t        j                  | «      «      }| dz  } | d|z  z  } | S r<  )r+   rO   rH  r–  s     r/   Ú	fquad_jacz3test_x_overwritten_user_function.<locals>.fquad_jacQ  s3   € Ü�I‰I”b—g‘g˜a“jÓ!ˆØ	ˆQ‰ˆØ	ˆQ�‰U‰
ˆØˆr1   c                 óX   — t        j                  t        j                  | «      «      dz  S rV  )r+   rÚ   rH  r-   s    r/   Ú
fquad_hessz4test_x_overwritten_user_function.<locals>.fquad_hessW  s   € Ü�v‰v”b—g‘g˜a“jÓ! CÑ'Ð'r1   )rP  rò  rï  ró  rð  rî  )rò  rï  ró  rð  rî  rÕ   r6   rñ  g-Cëâ6*?r    )	r+   r  r   r   rª   r   r.   rO   rH  )
rÈ  rÊ  rÌ  Úmeth_jacÚ	meth_hessrU   Úmethr˜   r†   r­   s
             r/   Ú test_x_overwritten_user_functionrÐ  G  s¡   € òòò(ò€Hò€Iô 
�‰�‹�cÑ	€Bä ò BˆØˆØˆØ�8ÑØˆCØ�9ÑØˆDÜ×Ñ  r°$¸CÀdÔKˆÜ˜Ÿ™œrŸy™y¬¯©°«Ó5¸DÖAñBr1   c                   ó   — e Zd Zd„ Zy)ÚTestGlobalOptimizationc                 óØ  — d„ }t        j                  |d¬«      t        j                  |dg«      t        j                  |dg«      t        j                  |dg«      t        j
                  |dg«      g}|D ]r  }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
«      rŒrJ ‚ y )Nc                 ó   — | dz  S r<  rŽ   r-   s    r/   r}   zDTestGlobalOptimization.test_optimize_result_attributes.<locals>.funcr  s   € Ø˜‘6ˆMr1   r)   )rU   )r£  r¤   r.   r½   r  rš   r›   rö   )	r   ÚbasinhoppingÚdifferential_evolutionÚshgoÚdual_annealingÚdirectr~  r   rt   )ro   r}   r  rI  s       r/   Útest_optimize_result_attributesz6TestGlobalOptimization.test_optimize_result_attributesq  së   € ò	ô ×(Ñ(¨°!Ô4Ü×2Ñ2°4¸'¸ÓCÜ—=‘= ¨ yÓ1Ü×*Ñ*¨4°'°Ó;Ü—?‘? 4¨'¨Ó3ð	ˆð ò 	*ˆFÜ˜f¤h×&=Ñ&=Ô>Ð>Ð>Ü˜6 3Ô'Ð'Ð'Ü˜6 9Ô-Ð-Ð-Ü˜6 9Ô-Ð-Ð-Ü˜6 5Ô)Ð)Ð)Ü˜6 6Ô*Ð*Ð*Ü˜6 5Õ)Ð)Ð)ñ	*r1   N)rŠ   r‹   rŒ   rÚ  rŽ   r1   r/   rÒ  rÒ  o  s   „ ó*r1   rÒ  c                  óè   — t        j                  t        t        «      } t	        | t        t        «      d¬«       t        j                  t        t
        «      }t	        |t        t        «      d¬«       y )Nr  r»   )r   Úapprox_fprimerT   r“  r   rR   rS   )r=  ræ  s     r/   Útest_approx_fprimerÝ  ‡  sJ   € ô 	×Ñœ}¬jÓ9€AÜ�A”¤}Ó5¸DÕAä×Ñœ}¬oÓ>€AÜ�A”¤}Ó5¸DÖAr1   c                  ó~  — 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                  «       y )Nc                 ó*   — | d   dz  | d   dz
  dz  z   S r—  rŽ   r-   s    r/   r|   ztest_gh12594.<locals>.f–  s!   € Ø�‰t�Q‰w˜!˜A™$ ™( Q™Ñ&Ð&r1   r«  rÅ   rŠ  rÝ   r  r  )r   r   rª   r+   rL   r   rš   r.   )r|   r  r­   r÷   s       r/   Útest_gh12594rà  ‘  s“   € ò
'ô ˜˜S�z r¨2 hÔ/€FÜ
×
Ñ
˜A &°À&Ô
I€CÜ”r—x‘x  c 
Ó+´·±¸"¸b¸Ó0BÔC€FÜ
×
Ñ
˜A &°À&Ô
I€Cä�C—G‘G˜SŸW™WÔ%Ü�C—E‘E˜3Ÿ5™5Õ!r1   rG  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 ‚y )Nc                 ó&   •—  ‰t        | «      «      S rA   )r   )r.   rá  s    €r/   Úsparse_rosen_hessz.test_sparse_hessian.<locals>.sparse_rosen_hess«  s   ø€ Ùœ: a›=Ó)Ð)r1   rŽ  rñ  )r   rª   r   r   r   r   rš   r.   r›   rœ   Únhev)r—   rá  rä  rU   Ú
res_sparseÚ	res_denses    `    r/   Útest_sparse_hessianrè  ¢  s´   ø€ ô*ð ˆbˆ€Bä×"Ñ"¤5¨"°VÜ'0Ð7HôJ€Jä×!Ñ!¤%¨°FÜ&/´jôB€Iô �I—M‘M :§>¡>Ô2Ü�I—K‘K §¡Ô.Ø�>‰>˜ZŸ_™_Ò,Ð,Ð,Ø�>‰>˜ZŸ_™_Ò,Ð,Ð,Ø�>‰>˜ZŸ_™_Ò,Ð,Ñ,r1   )�r�   rè  rž  ri   Únumpyr+   Únumpy.testingr   r   r   r   r   r   r	   rÙ   r
   rP   Ú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"   Úscipy.conftestr#   Úscipy._lib._array_api_no_0dr$   r%   ri  rÛ  rW   rY   r�   rv  r‚  r†  r‹  r”  r™  rŸ  r  r§  r·  rÀ  rÂ  rÅ  rÇ  rÉ  rË  rk  r  r  r/  r|  rŠ  rŒ  r®  rÂ  rÅ  rÍ  rÔ  rÖ  r“  rR   rS   rT   r”  r•  r÷  rù  r  r  r  r
  r  r  r?  rA  rY  r[  Úfixturer`  rf  rh  rk  rn  r“  r   Úxfail_on_32bitrl  Úshow_configr¦  r°  r¶  rÃ  rÅ  rÐ  rÒ  rÝ  rà  rè  rŽ   r1   r/   ú<module>rú     s‰  ðñó Û Û Û ÷A÷ Añ Aó Ý *ã Ý ß @÷?ñ ?õ 4Ý -Ý ;Ý <ß Oß MÑ Mß 7Ñ 7÷0÷ 0å /ß Hà—;‘;×/Ñ/Ð ò3÷l7'ñ 7'ôtRA ô RAòj-ò"ò0Hòò8òDò$ð ‡�×Ññ ó ð ð> ‡�×ÑñI:ó ðI:òX'FôTÐ8ô ô
Ð :ô ô
Ð :ô ô
Ð"<ô ô
QD˜ô QDðh ‡�×ÑØÚ:óñ-ó	ð-÷:=ñ :=÷zjNñ jN÷Z	&ñ &òR@÷)<ñ )<òX<-ò~#6òLz6òzJò*$ð ÷#ð #ó ð#ò<ò;ò7ð ˜�€Ø�a�&€Ø€ò4÷, 0ñ  0òF=ò7ò7ò<÷I%ñ I%ðX ‡�×ÑØ‡�×Ñ�rÓñ ó ó ð ÷FB>ñ B>òJ#÷2#ñ #ð ‡�ñ"ó ð"ò3ò&3ò&9ò*CòQñh "Ó
#€ð ‡�×ÑÐNÓOØ‡�×ÑÐ$�5×$Ñ$¨'Ô2°;Ñ?À	ÑJÈ6ÑRØñ àLð ó Nð ‡�×Ñ˜ 7¨9Ñ#5Ó6Ø‡�×Ñ˜ ¨¡Ó1Ø‡�×Ñ˜ w¨}Ñ'=Ó>Ø‡�×Ñ˜¨°Ñ(>Ó?Ø‡�×Ñ˜ W¨[Ñ%9Ó:ñ;<ó ;ó @ó ?ó 2ó 7óNó Pð;<ð| ‡�×Ñ˜ 7¨9Ñ#5Ó6ñ(/ó 7ð(/òV)ò.@ò0ò%B÷P*ñ *ò0Bò"ð" ‡�×Ñ˜ K°Ð#@ÓAØ‡�×Ñ˜¨°ZÀØ)2°I¸yð)Jó Kñ-óKó Bñ-r1   