+
    /iW/                    	   R t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt	^ RI
HtHtHtHtHt ^ RIt^ RIHt ^ RIt^ RIHt ^ RIHt ^ RIHtHt ^ RIHtHtHt ^ RIHt ^ R	IH t  ^ R
I!H"t" ^ RI#H$t$ ^ RI%H&t&H't' ^ RI(H)t)H*t*H+t+H,t, ^ RI-H.t.H/t/H0t0 ^ RI1H2t2H3t3H4t4H5t5H6t6H7t7 ^ RI8H9t9 ^ RI:H;t; ^ RI<H=t= ].t>R t? ! R R4      t@ ! R R]@4      tAR tBR tCR tDR tER tFR tGR tHR tIR  tJR! tK ! R" R#]A4      tL ! R$ R%]A4      tM ! R& R']A4      tN ! R( R)]A4      tO ! R* R+]@4      tP]P                  P                  R,. RO4      R- 4       tS ! R. R/4      tT ! R0 R14      tU ! R2 R34      tVR4 tW ! R5 R64      tXR7 tYR8 tZR9 t[R: t\R; t] ! R< R=4      t^R> t_R? t`R@ taRR.tb^^.tcRAtdRB te ! RC RD4      tfRE tgRF thRG tiRH tj ! RI RJ4      tk]P                  P                  ^4      RK 4       tm ! RL RM4      tnRN to ! RO RP4      tp]P                  RQ 4       trRR tsRS ttRT tuRU tvRV tw]w! 4       tx]P                  P                  RW4      ]P                  P                  ]P                  ! RXRY7      RZ,          R[,          R\,          R]8H  RWR^7      ]P                  P                  R,]xR_,          4      ]P                  P                  R`]xR`,          4      ]P                  P                  Ra]xRb,          4      ]P                  P                  Rc]xRc,          4      ]P                  P                  Rd]xRe,          4      Rf 4       4       4       4       4       4       4       t|]P                  P                  R,]xR_,          4      Rg 4       t}Rh t~Ri tRj t]P                  P                  R,R4      Rl 4       tRm t ! Rn Ro4      tRp tRq tRr t]P                  P                  R,RsRk.4      ]P                  P                  Rt]2]3]4]5]6]7.4      Ru 4       4       t]P                  P                  RvR^.4      ]P                  P                  R,. RO4       ! Rw Rx4      4       4       t]EP                  R8  d
   ^ RyIHt ]tM$^ RIt]EP                  '       d   ]EP                  tRz R{ ltR| R} ltR~ R ltR R lt]P                  EP%                  ]EP                  R8  RR^7       ! R R4      4       tR tR# )zx
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_array_less)raises)assert_deallocated)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_minimize_bfgs)rosen	rosen_der
rosen_hess)
coo_matrix
csc_matrix
csr_matrix	coo_array	csr_array	csc_array)xp_assert_equal)make_xp_test_case)
MapWrapperc                  d   R  p R p\         P                  ! R.4      p\        P                  ! WV4      p\	        V^ 4       \        P                  ! WVRRR7      p\	        V^ 4       \        P                  ! WVRR7      p\	        V^ 4       \        P                  ! WVRRRR7      p\	        V^ 4       \        \        P                  ! WVR	R7      ^ ,
          4      pVR
8  g   Q h\        \        P                  ! WVR	RRR7      ^ ,
          4      pVR
8  g   Q hR pR p\         P                  ! ^ ^R4      p\        P                  ! WEVRRR7      p\	        V^ 4       \        \        \        P                  WEVRRR7       \        P                  ! \        \        \        RRR7      pVR8  g   Q hR# )c                 L    ^^\         P                  ! V ) 4      ,           ,          #    npexpxs   &`/var/www/html/photoedit/myenv/lib/python3.14/site-packages/scipy/optimize/tests/test_optimize.pyexpittest_check_grad.<locals>.expit7   s    Ar
N##    c                     \         P                  ! V ) 4      ^\         P                  ! V ) 4      ,           ^,          ,          # r'   r)   r,   s   &r.   	der_expit"test_check_grad.<locals>.der_expit:   s*    vvqbzQ^a///r1         ?random  )	directionseedư>)epsilon)r;   r8   rng皙?Hz>c                 X    V \         P                  ! V 4      ,          P                  4       # N)r*   sinsumr,   s   &r.   x_sinxtest_check_grad.<locals>.x_sinxS   s    "&&)  ""r1   c                 r    \         P                  ! V 4      V \         P                  ! V 4      ,          ,           # r@   r*   rA   cosr,   s   &r.   
der_x_sinx#test_check_grad.<locals>.der_x_sinxV   s!    vvay1RVVAY;&&r1   皙?)r8   r<   random_projectionallgƠ>N)r*   arrayr	   
check_gradr   absarangeassert_raises
ValueErrorhimmelblau_gradhimmelblau_hesshimmelblau_x0)r/   r3   x0rrC   rH   s         r.   test_check_gradrX   3   s   $0 
3%BEb1A1Eb&.T	;A1Eb$?A1Eb$&.D	:A1 	H"dCaGHAt8O8H"d*2>@AB 	CAt8O8#' 
1a	BF&.D	:A1*h11b/T;
 	O_m&+	7At8O8r1   c                   B   a  ] tR t^it o RtR tR tR tR tR t	Rt
V tR# )	CheckOptimizezBase 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                   \         P                  ! . RO. RO. RO. RO. RO.4      V n        \         P                  ! . RO4      V n        \         P                  ! ^\         P
                  4      V n        \         P                  ! . RO4      V n        RV n        \        P                  ! 4       V n        \        P                  ! 4       V n        \        P                  ! 4       V n        R# )	r(     Nr(   r(   r(   )r(   r(       )r(   r^   r(   )r(   r^   r^   )      ?333333?      ?)        g\g)3?)r*   rM   FKzerosfloat64startparamssolutionmaxiter	threadinglocal	funccalls	gradcallstraceselfs   &r.   setup_methodCheckOptimize.setup_methodo   s    9$$$$	& '
 .)88Arzz2!@A"*"*__&
r1   c                   \        V P                  R 4      '       g   ^ V P                  n        \        V P                  R 4      '       g   ^ V P                  n        V P                  ;P                  ^,          un        V P                  P                  R8  d   \	        R4      h\
        P                  ! V P                  V4      p\
        P                  ! \        \
        P                  ! V4      4      4      pV\
        P                  ! V P                  V4      ,
          p\        V P                  R4      '       g   . V P                  n        V P                  P                  P                  \
        P                  ! V4      4       V# )cip  z+too many iterations in optimization routinet)hasattrrl   rt   rm   RuntimeErrorr*   dotrc   logrB   r+   rd   rn   ru   appendcopy)rp   r-   log_pdotlogZfs   &&   r.   funcCheckOptimize.func}   s    t~~s++ DNNt~~s++ DNNA>>d"LMM66$&&!$vvc"&&*+,266$&&!$$tzz3''DJJL

BGGAJ'r1   c                   \        V P                  R 4      '       g   ^ V P                  n        V P                  ;P                  ^,          un        \        P                  ! V P
                  V4      p\        P                  ! \        \        P                  ! V4      4      4      p\        P                  ! W#,
          4      p\        P                  ! V P
                  P                  4       V4      V P                  ,
          # rt   )rv   rm   rt   r*   rx   rc   ry   rB   r+   	transposerd   rp   r-   r|   r}   ps   &&   r.   gradCheckOptimize.grad   s    t~~s++ DNNA66$&&!$vvc"&&*+,FF8?#vvdff&&(!,tvv55r1   c                   \         P                  ! V P                  V4      p\         P                  ! \	        \         P
                  ! V4      4      4      p\         P
                  ! W#,
          4      p\         P                  ! V P                  P                  \         P                  ! \         P                  ! V4      V P                  \         P                  ! V P                  P                  V4      ,
          4      4      # r@   )r*   rx   rc   ry   rB   r+   Tdiagr   s   &&   r.   hessCheckOptimize.hess   s    66$&&!$vvc"&&*+,FF8?#vvdffhhffRWWQZ"&&12E)EFH 	Hr1   c                N    \         P                  ! V P                  V4      V4      # r@   )r*   rx   r   rp   r-   r   s   &&&r.   hesspCheckOptimize.hessp   s    vvdiilA&&r1   )rc   rd   rl   rm   ri   rh   rg   rn   N)__name__
__module____qualname____firstlineno____doc__rq   r   r   r   r   __static_attributes____classdictcell____classdict__s   @r.   rZ   rZ   i   s)     
'$6H' 'r1   rZ   c                   ~  a  ] tR t^t o R tR tR tR tR tR t	]
P                  P                  R4      R 4       tR	 tR
 tR t]
P                  P#                  RR.R^.R#R.RR..4      R 4       tR t]
P                  P)                  RR7      R 4       tR tR tR tR tR tR tR tR tR tR tR  t R!t!V t"R"# )$CheckOptimizeParameterizedc                   V P                   '       d   R V P                  RV P                  RR/p\        P                  ! V P
                  V P                  RRV P                  VR7      pVR,          VR,          VR,          VR	,          VR
,          3w  r4rVpMV\        P                  ! V P
                  V P                  V P                  RV P                  RV P                  RR7      pVw  r4rVp\        V P                  V4      V P                  V P                  4      RR7       V P                  P                  ^	8X  g   Q V P                  P                  4       hV P                  P                  ^8X  g   Q V P                  P                  4       h\        V P                  P                  R,          . RO. RO.RRR7       R# )ri   disp
return_allFCG)argsmethodjacoptionsr-   funnfevnjevstatusT)ri   full_outputr   retallr:   atol:      N+=r>   r   rtolN )r^         ra   )r^   g;ӱ.g)`$|;?)use_wrapperri   r   r	   minimizer   rg   r   fmin_cgr   rh   rl   rt   rm   rn   ru   )	rp   optsresparamsfopt
func_calls
grad_callswarnflagretvals	   &        r.   test_cg"CheckOptimizeParameterized.test_cg   so   t||VTYY %)D##DIIt/?/?b+/TYY,02C C#e*c&k3v;HM ;F*( %%dii1A1A&*iiT\\26TYY-24F @F<V:8		&)499T]]+C!	#
 ~~1$6dnn&6&66$~~1$6dnn&6&66$ 	

S)'=?"	/r1   c                    R  p\         P                  ! R^^G4       FI  p\        P                  ! W.RR7      pVP                  '       g   Q h\        VP                  R.RR7       KK  	  R# )c                 t    R ^\         P                  ! RV R,
          ,          4      ,
          ^,          ,          # )      @ra         r)   )rW   s   &r.   r~   8CheckOptimizeParameterized.test_cg_cornercase.<locals>.f   s(    !bffT1s7^44q888r1   r   r   ra   h㈵>r   Ng      )r*   linspacer	   r   successr   r-   )rp   r~   rV   sols   &   r.   test_cg_cornercase-CheckOptimizeParameterized.test_cg_cornercase   sT    	9
 ++eQ+B##AtD9C;;;;CEEC5t4 ,r1   c                   V P                   '       d   R V P                  RV P                  RR/p\        P                  ! V P
                  V P                  V P                  RRVR7      pVR,          VR,          VR,          VR	,          VR
,          VR,          VR,          3w  r4rVrxp	MW\        P                  ! V P
                  V P                  V P                  RV P                  RV P                  RR7      p
V
w  r4rVrxp	\        V P                  V4      V P                  V P                  4      RR7       V P                  P                  ^
8X  g   Q V P                  P                  4       hV P                  P                  ^8X  g   Q V P                  P                  4       h\        V P                  P                  R,          . RO. RO.RRR7       R# )ri   r   r   FBFGSr   r   r   r   r-   r   r   hess_invr   r   r   Tr   ri   r   r   r   r:   r   :      Nr   r>   r   Nr   )r^   g&/LgB__E7?)r^   g$g
|3?)r   ri   r   r	   r   r   rg   r   	fmin_bfgsr   rh   rl   rt   rm   rn   ru   )rp   r   r   r   r   goptHoptr   r   r   r   s   &          r.   	test_bfgs$CheckOptimizeParameterized.test_bfgs   s   t||VTYY %)D##DIIt/?/?(,		&r,02C
 Hc%j#e*c*oKVc(mJ=FF$jh ''		43C3CTYY-/48tyy/46F
 28/V4X		&)499T]]+C!	#
 ~~2%7t~~'7'77%~~1$6dnn&6&66$ 	

S)==?"	/r1   c           
     T   \         P                  ! \        R R7      ;_uu_ 4        \        P                  ! . RO4      pRV P
                  R\        P                  ! ^4      ) /p\        P                  ! \        P                  VRRVR7       RRR4       R#   + '       g   i     R# ; i)	+'hess_inv0' matrix isn't positive definite.matchr   	hess_inv0r   rV   r   r   r   N?ffffff?皙?ffffff?333333?r   )
pytestr   rR   r*   rM   r   eyer	   r   r   )rp   rV   r   s   &  r.   test_bfgs_hess_inv0_neg2CheckOptimizeParameterized.test_bfgs_hess_inv0_neg   sy     ]]: .0 1 134BDII{RVVAYJ?DhnnF&*,	1 1 1 1s   A'BB'	c           
     `   \         P                  ! \        R R7      ;_uu_ 4        \        P                  ! . RO4      p\        P
                  ! ^4      p^ VR&   RV P                  RV/p\        P                  ! \        P                  VRR	VR7       RRR4       R#   + '       g   i     R# ; i)
r   r   r   r   r   r   Nr   r^   r^   r   )
r   r   rR   r*   rM   r   r   r	   r   r   )rp   rV   r   r   s   &   r.   test_bfgs_hess_inv0_semipos6CheckOptimizeParameterized.test_bfgs_hess_inv0_semipos   s     ]]: .0 1 134Bq	IIdODII{I>DhnnF&*,1 1 1 1s   A-BB-	c                p   \         P                  p\        P                  ! . R	O4      pRV P                  RR\        P
                  ! ^4      ,          /p\         P                  ! WRR
VR7      p\         P                  ! WRR
RV P                  /R7      p\        VP                  VP                  RR7       R# )r   r   r   {Gz?r   r   r:   r   Nr   r   )	r	   r   r*   rM   r   r   r   r   r   )rp   r   rV   r   r   res_trues   &     r.   test_bfgs_hess_inv0_sanity5CheckOptimizeParameterized.test_bfgs_hess_inv0_sanity  s    nnXX/0		;rvvay0@A6(,.$$SR.4dii-@BD9r1   ignore::UserWarningc                  a R  oV3R lp^ .p\         P                  ! RR7      ;_uu_ 4        V P                  '       d2   RV P                  /p\        P
                  ! SW!RR
VR7      R,          pM#\        P                  ! SW!V P                  R7      p\         P                  ! S! V4      4      '       d   Q h R	R	R	4       R	#   + '       g   i     R	# ; i)c                 4    \         P                  V ) ,          ) # r@   )r*   er,   s   &r.   r   ;CheckOptimizeParameterized.test_bfgs_infinite.<locals>.func  s    DDaRL= r1   c                    < S! V 4      ) # r@   r   )r-   r   s   &r.   fprime=CheckOptimizeParameterized.test_bfgs_infinite.<locals>.fprime  s    G8Or1   ignore)overr   r   r   r-   r   Nr   )r*   errstater   r   r	   r   r   isfinite)rp   r   rV   r   r-   r   s   &    @r.   test_bfgs_infinite-CheckOptimizeParameterized.test_bfgs_infinite  s    	!	S[[h''		*%%dB6+-t==@B &&tRdiiH{{47+++++ ('''s   BC6CC	c                    . ROp\         P                  ! \         P                  VRRR/R7      p\         P                  ! \         P                  VRRR/R7      pVP                  VP                  8w  g   Q hR# )r   bfgsxrtolMbP?r   r   gtolNr   r	   r   r   nit)rp   rV   r   refs   &   r.   test_bfgs_xrtol*CheckOptimizeParameterized.test_bfgs_xrtol#  sa    & "6GT?L "6FD>Kww#''!!!r1   c                    . ROp\         P                  ! \         P                  VRRR/R7      p\         P                  ! \         P                  VRRR/R7      pVP                  VP                  8  g   Q hR# )皙$@r  c1:0yE>r  r=   Nr  g333334@g%@r   333333)r	   r   r   r   )rp   rV   res_c1_small
res_c1_bigs   &   r.   test_bfgs_c1'CheckOptimizeParameterized.test_bfgs_c1,  sg     +(()+FT4LR&&x~~')&4,P
   :??222r1   c                    . ROp\         P                  ! \         P                  VRRR/R7      p\         P                  ! \         P                  VRRR/R7      pVP                  VP                  8  g   Q hR# )r   r  c2?r  r   Nr   r  )rp   rV   res_defaultres_mods   &   r.   test_bfgs_c2'CheckOptimizeParameterized.test_bfgs_c27  sc     '''(*6D":O##HNN$&vd|M,,,r1   r  r  ra   r=   rJ   c                    \         P                  ! \        R R7      ;_uu_ 4        . ROp\        P                  ! \        P
                  VRRVRV/R7       RRR4       R#   + '       g   i     R# ; i)z'c1' and 'c2'r   cgr  r  r  Nr  )r   r   rR   r	   r   r   )rp   r  r  rV   s   &&& r.   test_invalid_c1_c2-CheckOptimizeParameterized.test_invalid_c1_c2A  sM     ]]:_==.Bhnnb'+Rr&:< >===s   1A  A1	c           
     T   V P                   '       d   R V P                  RV P                  RR/p\        P                  ! V P
                  V P                  RRVR7      pVR,          VR,          VR,          VR	,          VR
,          VR,          3w  r4rVrxMK\        P                  ! V P
                  V P                  RV P                  RV P                  RR7      p	V	w  r4rVrx\        V P                  V4      V P                  V P                  4      RR7       \        VR,          V P                  R,          RR7       V P                  P                  ^8:  g   Q V P                  P                  4       hV P                  P                  ^ 8X  g   Q V P                  P                  4       hR# )ri   r   r   FPowellr   r   r   r-   r   direcr  r   r   Tr   r:   r   :r(   NNh㈵>Nr   )r   ri   r   r	   r   r   rg   fmin_powellr   rh   rl   rt   rm   
rp   r   r   r   r   r$  numiterr   r   r   s
   &         r.   test_powell&CheckOptimizeParameterized.test_powellJ  s_   t||VTYY %)D##DIIt/?/?b+3TCC Hc%j#g,E
KXB0>F%*h ))$))T5E5E/14<<6:168F DJ@V5:		&)499T]]+C!	# 	r
DMM"$5DA ~~8+=T^^-=-==+~~1$6dnn&6&66$r1   zeThis part of test_powell fails on some platforms, but the solution returned by powell is still valid.reasonc           
     "   V P                   '       d   R V P                  RV P                  RR/p\        P                  ! V P
                  V P                  RRVR7      pVR,          VR,          VR,          VR	,          VR
,          VR,          3w  r4rVrxMK\        P                  ! V P
                  V P                  RV P                  RV P                  RR7      p	V	w  r4rVrx\        V P                  R,          . RO. RO. RO. RO. RO.RRR7       R# )ri   r   r   Fr"  r#  r-   r   r$  r  r   r   Tr   :"   '   Nr   r>   r   Nr   )病~W?f"Bܿg%?)r0  r1  g:&?)gSϼW?gf"Bg{år?)r0  r1  {år?)gB?r1  r2  )
r   ri   r   r	   r   r   rg   r&  r   rn   r'  s
   &         r.   test_powell_gh14014.CheckOptimizeParameterized.test_powell_gh14014l  s    t||VTYY %)D##DIIt/?/?b+3TCC Hc%j#g,E
KXB0>F%*h ))$))T5E5E/14<<6:168F DJ@V5: 	

5)>>>>>	@
 #	/r1   c           	        V P                    Uu. uF$  p\        P                  ) \        P                  3NK&  	  ppV P                  '       d   R V P                  RV P
                  RR/p\        P                  ! V P                  V P                   RVRVR7      pVR,          VR,          reW`P                  P                  8X  g   Q h\        V P                  V4      V P                  V P                  4      RR	R
7       V P                  P                  ^8:  g   Q hV P                  P                  ^ 8X  g   Q hR# R# u upi )ri   r   r   Fr"  )r   boundsr   r   r-   r   r:   r   r   Nr   )rg   r*   pir   ri   r   r	   r   r   rl   rt   r   rh   rm   )rp   _r6  r   r   r   r   s   &      r.   test_powell_bounded.CheckOptimizeParameterized.test_powell_bounded  s
    ,0+;+;<+;aBEE6255/+;<t||VTYY %)D##DIIt/?/?b+1+3TCC #&c(CKJ!1!1111DIIf-tyy/G!%D2 >>##x///>>##q((('  =s   *D;c           
     X   V P                   '       d{   R V P                  RV P                  RR/p\        P                  ! V P
                  V P                  RRVR7      pVR,          VR,          VR,          VR	,          VR
,          3w  r4rVpMK\        P                  ! V P
                  V P                  RV P                  RV P                  RR7      pVw  r4rVp\        V P                  V4      V P                  V P                  4      RR7       V P                  P                  ^8X  g   Q V P                  P                  4       hV P                  P                  ^ 8X  g   Q V P                  P                  4       h\        V P                  P                  R,          . RO. RO.RRR7       R# )ri   r   r   FNelder-meadr#  r-   r   r  r   r   Tr   r:   r   :L   N   Nr   r>   r   Nr   )g	dװ?g]fgt䝁?)gә ?g#=^goT?)r   ri   r   r	   r   r   rg   fminr   rh   rl   rt   rm   rn   ru   )	rp   r   r   r   r   r(  r   r   r   s	   &        r.   test_neldermead*CheckOptimizeParameterized.test_neldermead  sb   t||VTYY %)D##DIIt/?/?b+8$HC Hc%j#e*c&kM;#7F'x ]]499d.>.>(*DLL/3$))*/1F =C9V7		&)499T]]+C!	#
 ~~3&8(8(88&~~1$6dnn&6&66$ 	

U+=>@"	/r1   c                    \         P                  ! R4      pV P                  VR&   \        ^4       F   pW^,           V3;;,          R,          uu&   K"  	  V P                  '       d   RV P
                  RRRRRV/p\        P                  ! V P                  V P                  RR	VR
7      pVR,          VR,          VR,          VR,          VR,          3w  rVrxp	\        VR,          ^ ,          V^ ,          4       MB\        P                  ! V P                  V P                  RV P
                  RRRVR7      p
V
w  rVrxp	\        V P                  V4      V P                  V P                  4      RR7       V P                  P                  ^d8X  g   Q V P                  P                  4       hV P                  P                  ^ 8X  g   Q V P                  P                  4       h\        V P                  P                   R,          . RO. RO.RRR7       R# )r   .r=   ri   r   Fr   Tinitial_simplexr<  r#  r-   r   r  r   r   allvecsr   ri   r   r   r   rC  r:   r   :2   4   Nr   r>   r   N)r      r   )gIt?g?'ΛTgx8?)gҢ_׆?goMg囎|52?)r*   re   rg   ranger   ri   r	   r   r   r   r?  rh   rl   rt   rm   rn   ru   )rp   simplexjr   r   r   r   r(  r   r   r   s   &          r.   test_neldermead_initial_simplex:CheckOptimizeParameterized.test_neldermead_initial_simplex  s   ((6"''qAaCFOs"O  t||VU $(97DD##DIIt/?/?b+8$HC;>s8;>u:;>u:;>v;;>x=	;J7F'x
 C	N1-wqz:]]499d.>.>(*DLL/3%3:<F
 =C9V7		&)499T]]+C!	#
 ~~3&8(8(88&~~1$6dnn&6&66$ 	

U+==?"	/r1   c                   . p\         P                  ! R4      pV P                  R,          VR&   \        ^4       F   pW#^,           V3;;,          R,          uu&   K"  	  VP	                  V4       \         P                  ! R4      pVP	                  V4       V F  pV P
                  '       dO   RV P                  RRRRRV/p\        \        \        P                  V P                  V P                  RR	VR
7       Kc  \        \        \        P                  V P                  V P                  RV P                  RRRVR7
       K  	  R# )rH  Nr   N.r=   ri   r   Fr   rC  r<  r#  TrE  N)rH  r   )rH  rH  r   )r*   re   rg   rI  rz   r   ri   rQ   rR   r	   r   r   r?  )rp   bad_simplicesrJ  rK  r   s   &    r.   #test_neldermead_initial_simplex_bad>CheckOptimizeParameterized.test_neldermead_initial_simplex_bad  s
   ((6"''+qAaCFOs"O W%((6"W%$G!4<<$e->Ij&//"ii"..#%%2&*, j(--"ii)9)9#%t||*.U5.5	7 %r1   c                    R  p\         P                  ! V^.R.RR7      p\        VP                  ^ .4       \         P                  ! V^^.RR.RR7      p\        VP                  ^ ^.4       R# )c                 <    \         P                  ! V ^,          4      # r   r*   rB   r,   s   &r.   quad>CheckOptimizeParameterized.test_neldermead_x0_ub.<locals>.quad      66!Q$<r1   nelder-meadr6  r   N)r^   r_   )r(         @r	   r   r   r-   )rp   rW  r   s   &  r.   test_neldermead_x0_ub0CheckOptimizeParameterized.test_neldermead_x0_ub  st    	  C9 	
 	s#FW% 	
 	1v&r1   c           	         R R/p\         P                  ! V P                  V P                  RV P                  RVR7      pVP
                  ^8X  g   Q hR# )ri   	Newton-CGr   r   r   r   Nr   )r	   r   r   rg   r   r   )rp   r   results   &  r.   test_ncg_negative_maxiter4CheckOptimizeParameterized.test_ncg_negative_maxiter%  sK    2""499d.>.>*5499(*D: }}!!!r1   c           
         R  pR pR.p^ p\         P                  ! VVVR\        VR7      R7      pVP                  ^ 8X  g   Q h\	        VP
                  ^ ,          \        P                  4       R# )c                 <    \         P                  ! V ^ ,          4      # r^   )r*   rG   r,   s   &r.   cosine=CheckOptimizeParameterized.test_ncg_zero_xtol.<locals>.cosine/  s    66!A$<r1   c                 >    \         P                  ! V ^ ,          4      ) # ri  )r*   rA   r,   s   &r.   r   :CheckOptimizeParameterized.test_ncg_zero_xtol.<locals>.jac2  s    FF1Q4L= r1   r=   	newton-cg)xtol)rV   r   r   r   N)r	   r   dictr   r   r-   r*   r7  )rp   rj  r   rV   ro  rd  s   &     r.   test_ncg_zero_xtol-CheckOptimizeParameterized.test_ncg_zero_xtol-  sf    	 	! U""6&('**5+/T?	<
 }}!!!FHHQK/r1   c                .   V P                   '       d_   R V P                  RV P                  RR/p\        P                  ! V P
                  V P                  RV P                  RVR7      R,          pMP\        P                  ! V P
                  V P                  V P                  RV P                  RV P                  RR7      pTp\        V P                  V4      V P                  V P                  4      RR	7       V P                  P                  ^8X  g   Q V P                  P                  4       hV P                  P                  ^8:  g   Q V P                  P                  4       h\        V P                  P                  R
,          . RO. RO.RRR7       R# )ri   r   r   Fra  rb  r-   r   r:   r   rH     Nr>   r   Nr   (6-H=g?g4u3?rw  g_g/N3?)r   ri   r   r	   r   r   rg   r   fmin_ncgr   rh   rl   rt   rm   rn   ru   rp   r   r   r   s   &   r.   test_ncg#CheckOptimizeParameterized.test_ncg?  sA   t||VTYY %)D&&tyy$2B2B.9tyy,.>>ACF &&tyy$2B2BDII,.38tyy.35F
 		&)499T]]+C!	#
 ~~1$6dnn&6&66$~~2%7t~~'7'77% 	

S)KKM!	.r1   c                Z   V P                   '       dj   R V P                  RV P                  RR/p\        P                  ! V P
                  V P                  RV P                  V P                  RVR7      R,          pM[\        P                  ! V P
                  V P                  V P                  V P                  RV P                  RV P                  RR7	      pTp\        V P                  V4      V P                  V P                  4      RR	7       V P                  P                  ^8:  g   Q V P                  P                  4       hV P                  P                  ^8:  g   Q V P                  P                  4       h\        V P                  P                   R
,          . RO. RO.RRR7       R# )ri   r   r   Fra  )r   r   r   r   r   r-   )fhessr   ri   r   r   r   r:   r   rt  r>   r   Nr   rv  rx  )r   ri   r   r	   r   r   rg   r   r   ry  r   rh   rl   rt   rm   rn   ru   rz  s   &   r.   test_ncg_hess(CheckOptimizeParameterized.test_ncg_hess`  sR   t||VTYY %)D&&tyy$2B2B.9tyy,0II,.> ?BCF
 &&tyy$2B2BDII-1YY,.38tyy.3	5F 		&)499T]]+C!	#
 ~~1$6dnn&6&66$~~2%7t~~'7'77%
 	

S)KKM!	.r1   c                Z   V P                   '       dj   R V P                  RV P                  RR/p\        P                  ! V P
                  V P                  RV P                  V P                  RVR7      R,          pM[\        P                  ! V P
                  V P                  V P                  V P                  RV P                  RV P                  RR7	      pTp\        V P                  V4      V P                  V P                  4      RR	7       V P                  P                  ^8:  g   Q V P                  P                  4       hV P                  P                  ^8:  g   Q V P                  P                  4       h\        V P                  P                   R
,          . RO. RO.RRR7       R# )ri   r   r   Fra  )r   r   r   r   r   r-   )fhess_pr   ri   r   r   r   r:   r   rt  r>   r   Nr   rv  rx  )r   ri   r   r	   r   r   rg   r   r   ry  r   rh   rl   rt   rm   rn   ru   rz  s   &   r.   test_ncg_hessp)CheckOptimizeParameterized.test_ncg_hessp  sR   t||VTYY %)D&&tyy$2B2B.9tyy-1ZZ,.> ?BCF
 &&tyy$2B2BDII/3zz,.38tyy.3	5F 		&)499T]]+C!	#
 ~~1$6dnn&6&66$~~2%7t~~'7'77%
 	

S)KKM!	.r1   c           	        V P                   '       d   \        P                  ! V P                  V P                  R RV P
                  RV P                  /R7      p\        VP                  V P                  V P                  4      RR7       V P                  P                  ^A8:  g   Q V P                  P                  4       hR# R# )cobyqari   r   r  r:   r   N)r   r	   r   r   rg   ri   r   r   r   rh   rl   rt   rp   r   s   & r.   test_cobyqa&CheckOptimizeParameterized.test_cobyqa  s    ##		  "DLL&$))D	C CGGTYYt}}%=DI >>##w.@0@0@@. r1   r   N皙)#r   r   r   r   r   r   r   r   r   r   r   markfilterwarningsr   r
  r  r  parametrizer  r)  xfailr3  r9  r@  rL  rQ  r^  re  rq  r{  r  r  r  r   r   r   s   @r.   r   r      s    />	5 /D,
,	: [[ 56, 7, "	3- [[dD\S!H-13K-0#J,8 9<9< 7D [[ & '/'/@)2/>&/P7>'."0$.B .D .DA Ar1   r   c            	         a \         P                  P                  R 4      oV3R lp R FG  pR F>  p\        P                  ! V SP                  ^
4      VRV/R7      pVR,          V8X  d   K>  Q h	  KI  	  R# )l	   <vgRI*q4 c                 4   < SP                  ^4      R,          # r(   r\   r6   )r-   r<   s   &r.   costtest_maxfev_test.<locals>.cost  s    zz!}t##r1   maxfevr  r   N)r(   
   rF  )r"  Nelder-Mead)r*   r6   default_rngr	   r   )r  imaxfevr   rd  r<   s       @r.   test_maxfev_testr    sq    
))

 G
HC$  0F&&tSZZ^.408'/BDF &>W,,,	 0	 r1   c                     R  p \         P                  P                  V \        P                  ! ^4      ^4      w  r\        ^4       F6  pV! \        P                  ! V4      4       V^ ,          V^,           8X  d   K6  Q h	  Rp\        \         P                  P                  VR7      ;_uu_ 4        V! \        P                  ! X4      4       RRR4       \         P                  P                  V \        P                  ! ^4      ^4      w  rRp\        \        VR7      ;_uu_ 4        V! \        P                  ! ^^.4      4       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; i)c                     V # r@   r   r,   s   &r.   func_8test_wrap_scalar_function_with_validation.<locals>.func_  s    r1   zToo many function callsr   N@The user-provided objective function must return a scalar value.)
r	   	_optimize'_wrap_scalar_function_maxfun_validationr*   asarrayrI  rQ   _MaxFuncCallErrorrR   rM   )r  fcallsr   imsgs        r.   )test_wrap_scalar_function_with_validationr    s    %%//rzz!}aH F 1XRZZ]ayAaC  $C	x));;3	G	GRZZ] 
H %%//rzz!}aH F MC	z	-	-RXXq!f 
.	- 
H	G 
.	-	-s   /E&E"E	"E3	c            	          R p \        \        V R7      ;_uu_ 4        \        P                  ! R \        P
                  ! ^^.4      RR7       RRR4       R#   + '       g   i     R# ; i)r  r   c                     V # r@   r   r,   s   &r.   <lambda>.test_obj_func_returns_scalar.<locals>.<lambda>  s    Ar1   r   r   N)rQ   rR   r	   r   r*   rM   r   s    r.   test_obj_func_returns_scalarr    sF    &E 
z	/	/+rxxA'7G 
0	/	/	/s   1AA(	c                      \         P                  ! . RO4      p \        P                  P	                  \        P
                  V RR7      pVP                  R8:  g   Q hR# )r   r  )xatoliS  Nr   )r*   rM   r	   	_minimize_minimize_neldermeadr   r  )rV   r   s     r.   test_neldermead_iteration_numr    sG    	+	,B



1
1(.."8< 2 >C77c>>r1   c                      \         P                  ! R R.4      P                  \         P                  4      p R p\        P
                  ! WRR7       R# )      @      @c                 p    V P                   \        P                  8X  g   Q h\        P                  ! V 4      # r@   )dtyper*   float32r	   r   r,   s   &r.   rosen_*test_neldermead_respect_fp.<locals>.rosen_  s'    ww"**$$$~~a  r1   r  r   N)r*   rM   astyper  r	   r   )rV   r  s     r.   test_neldermead_respect_fpr    s:    	3*		$	$RZZ	0B! f7r1   c                  X    R  p \         P                  P                  V ^^.^RRR7       R# )c                 L    V ^ ,          ^,          V ^,          ^,          ,           # ri  r   r,   s   &r.   r   )test_neldermead_xatol_fatol.<locals>.func  s    tqy1Q419$$r1   r  )ri   r  fatolN)r	   r  r  )r   s    r.   test_neldermead_xatol_fatolr    s2    % ++D1a&!26d , Dr1   c                      R  p . ROp\         P                  ! WRR7      p\        VP                  R4       \         P                  ! WRRR/R7      p\        VP                  R4       R# )	c                 <    \         P                  ! V ^,          4      # rU  rV  r,   s   &r.   r   &test_neldermead_adaptive.<locals>.func      vva1f~r1   r  r   FadaptiveTr  N)gM@'?gOC?g~?g -?g?g#j?g ?g~^g?gܠr#?g^cǽ?g)i	?g'?g?g1?g[VΤ?)r	   r   r   r   )r   p0r   s      r.   test_neldermead_adaptiver    s[    
FB 

D]
;Ce$


D]%/$68Cd#r1   c            
      @   R  p Rp. ROp\         P                  ! \        P                  4      ;_uu_ 4        \        P                  ! WVRR7      pRRR4       \        XP                  \        P                  ! R.\        V4      ,          4      RR7       \        VP                  R4       \        VP                  ^ 4       . RO. RO. RO.p\         P                  ! \        P                  4      ;_uu_ 4        \        P                  ! WVRRV/R	7      pRRR4       \        VP                  \        P                  ! . RO4      RR7       \        VP                  R
4       \        VP                  ^4       R#   + '       g   i     EL2; i  + '       g   i     L; i)c                 <    \         P                  ! V ^,          4      # rU  rV  r,   s   &r.   r   /test_bounded_powell_outsidebounds.<locals>.func  r  r1   r"  r[  Nrb   r:   r   Tr$  )r6  r   r   F)rc  r(   r  r  )ra   g鿩r^   r^   r^   )r^   r(   r^   )r^   r^   r(   )g      r^   r^   )r   warnsr	   OptimizeWarningr   r   r-   r*   rM   lenr   r   r   )r   r6  rV   r   r$  s        r.   !test_bounded_powell_outsideboundsr    s   &F	B 
h..	/	/I 
0CEE288RD3r7N3$?d#Q 	9-E	h..	/	/'-h)0%(8: 
0 CEE288K0t<e$Q% 
0	/	/ 
0	/s   E98F9F
	F	c            	         R  p Rp. ROpRRRR/p\         P                  ! WRVR7      p\        VP                  RRR7       \        VP                  RRR7       \         P                  ! WVVRR	7      p\
        P                  ! . RO4      p\        VP                  VRR7       \        VP                  V ! V4      RR7       R\
        P                  ) R3^\
        P                  3RR3p\         P                  ! WVVRR	7      p\
        P                  ! . RO4      p\        VP                  VRR7       \        VP                  V ! V4      RR7       R p R.^,          p. ROp\         P                  ! WRR7      p\         P                  ! WVRR7      p\        VP                  RRR7       \        VP                  ^ RR7       \
        P                  ) \
        P                  3.^,          p\         P                  ! WVRR7      p\        VP                  VP                  RR7       \        VP                  VP                  RR7       \        VP                  VP                  RR7       . ROpR.^,          p\        P                  ! \         P                  4      ;_uu_ 4        \         P                  ! WVRR7      pR
R
R
4       \        VP                  ^ RR7       R
#   + '       g   i     L*; i)c                 <    \         P                  ! V ^,          4      # rU  rV  r,   s   &r.   r   +test_bounded_powell_vs_powell.<locals>.func:  r  r1   ftol绽|=ro  r"  r  rb   r:   r   )r   r6  r   Nc                 
   \         P                  ! V ^ ,          ) 4      \         P                  ! V ^,          4      ,          \         P                  ! V ^ ,          ) V ^,          ,          4      ,          \         P                  ! V ^,          4      ,          pV\         P                  ! \         P                  ! V ^,          V ^,          ,          4      \         P                  ! V ^,          4      ,          4      ,          pV^,          # ri  rF   r-   ru   s   & r.   r   r  X  s    FFAaD5MBFF1Q4L(2661Q4%!A$,+??"&&1,N	RVVBFF1Q4!A$;'"&&1,677!tr1   r   r[  g8:}?r  g/))rc  )r  )r(   gffffff"@)r  gffffff@r  )g gr   r^   r  )rc  r  r(   r^   r  )Nrc  )r  N)r  ru  )r   r   r   )gb4F@g:gW?@)r	   r   r   r-   r   r*   rM   infr   r   r  r  )r   r6  rV   r   
res_powellres_bounded_powellr   s          r.   test_bounded_powell_vs_powellr  2  sm   DF	!Bufe,G""4HgNJJLL"40JNNBT2!**4W282:< 	%&A&((!$7&**DG$? 266'3!RVVj+MF!**4W282:< 	%&A&((!$7&**DG$?

 Y]F	B""4H=J!**4282:< JNN$8tD&**AD9
 w 1$F!**4282:< JNN$6$:$:FJOO%7%<%<4HJLL"4"6"6TB 
2BY]F	h..	/	/%..t6<6>@ 
0 &**AD9	 
0	/s   %K!!K1	c            	          R RR\         P                  ) R3.^,          RRRRR//p . ROpR p\        P                  ! W!3/ V B p\	        VP
                  RR	R
7       R p\        P                  ! W!3/ V B p\	        VP
                  R4       R p\        P                  ! W!3/ V B p\	        VP
                  RRR7       R p\         P                  ) R3.^,          V R&   \        P                  ! W!3/ V B p\	        VP
                  RRR7       R# )r   r"  r6  g    .Ar   r  r  ro  c                 0    \         P                  ! V 4      ) # r@   rV  r,   s   &r.   r~   1test_onesided_bounded_powell_stability.<locals>.f  s    q	zr1   -C6?r   c                     \         P                  ! \         P                  ! V 4      4      R ,          ) \         P                  ! V ^ 8  4      '       d	   ^,          # R,          # )r=   rc  r*   rO   rB   rL   r,   s   &r.   r~   r    s>    rvvay!c**266!a%==aIIbIIr1   c                     \         P                  ! \         P                  ! V 4      4      ^
,          ) \         P                  ! V ^ 8  4      '       d	   ^,          # R,          # )r  rc  r  r,   s   &r.   r~   r    s>    rvvay!R''q1u1FF2FFr1   r>   r   c                 V   \         P                  ! \         P                  ! V R ,          4      4      ^,          ) \         P                  ! \         P                  ! V R,          4      4      R,          ,
          pT\         P                  ! V ^ 8  4      '       d   ^,          pV# R,          pV# )rO  :r   NNr=   rc  r  r  s   & r.   r~   r    sq    VVBFF1R5M"a''"&&"*?C*HH	266!a%==a) '))r1   g     @@Nr]   g    `FgwgB+Iag 4&k\)r*   r  r	   r   r   r   )kwargsrV   r~   r   s       r.   &test_onesided_bounded_powell_stabilityr  ~  s    266'3(1,&$57F 
B


A
,V
,CCGGT-J 

A
,V
,CCGG_-G 

A
,V
,CCGG\5
 &&#'!+F8


A
,V
,CCGG9Er1   c                       ] tR tRtRtRtRtR# )TestOptimizeWrapperDispi  Tr   Nr   r   r   r   r   r   r   r   r1   r.   r  r    s    KDr1   r  c                       ] tR tRtRtRtRtR# )TestOptimizeWrapperNoDispi  TFr   Nr  r   r1   r.   r  r    s    KDr1   r  c                       ] tR tRtRtRtRtR# )TestOptimizeNoWrapperDispi  FTr   Nr  r   r1   r.   r  r    s    KDr1   r  c                       ] tR tRtRtRtRtR# )TestOptimizeNoWrapperNoDispi  Fr   Nr  r   r1   r.   r  r    s    KDr1   r  c                   p  a  ] tR tRt o R tR tR tR tR tR t	R t
R	 tR
 tR tR tR tR tR tR tR tR tR t]P.                  P1                  ^
4      ]P.                  P3                  R4      ]P.                  P3                  R4      ]P.                  P5                  R. R)O],           4      R 4       4       4       4       t]P.                  P5                  R. R*O4      R 4       tR t]P.                  P5                  R. R+O4      R 4       t]P.                  P5                  R. R,O4      R 4       t R t!R t"R t#R t$]P.                  P5                  R. R-O4      R  4       t%]P.                  P5                  R. R.O4      R! 4       t&]P.                  P3                  R4      ]P.                  P5                  R]'4      ]P.                  P5                  R". R/O4      R# 4       4       4       t(R$ t)]P.                  P5                  RR04      R% 4       t*]P.                  P5                  R. R1O4      R& 4       t+R't,V t-R(# )2TestOptimizeSimplei  c           	     *   R  pR p\         P                  .p\         P                  ! RRR7      ;_uu_ 4        \        P                  ! WVRR7      p\         P
                  ! V! V4      4      '       g   Q h RRR4       R#   + '       g   i     R# ; i)c                     V # r@   r   r,   s   &r.   r   .TestOptimizeSimple.test_bfgs_nan.<locals>.func  s    Hr1   c                 .    \         P                  ! V 4      # r@   r*   	ones_liker,   s   &r.   r   0TestOptimizeSimple.test_bfgs_nan.<locals>.fprime      <<?"r1   r   )r   invalidFr   N)r*   nanr   r	   r   isnan)rp   r   r   rV   r-   s   &    r.   test_bfgs_nan TestOptimizeSimple.test_bfgs_nan  sd    		#ffX[[h99""4V%@A88DG$$$$ :999s   >BB	c                4   R  p\         P                  ! RR7      ;_uu_ 4        \        P                  ! V^ 4      pRRR4       \         P                  ! XR,          4      '       g   Q hVR,          RJ g   Q hR pR p\         P                  ! RR7      ;_uu_ 4        \        P                  ! V^ VR	7      pRRR4       \         P                  ! VR,          4      '       g   Q hVR,          RJ g   Q hR#   + '       g   i     L; i  + '       g   i     LY; i)
c                 "    \         P                  # r@   r*   r  r,   s   &r.   r   5TestOptimizeSimple.test_bfgs_nan_return.<locals>.func      66Mr1   r   r  Nr   r   Fc                 4    V ^ 8X  d   ^ # \         P                  # ri  r  r,   s   &r.   r   r    s    Q1*BFF*r1   c                 .    \         P                  ! V 4      # r@   r  r,   s   &r.   r   7TestOptimizeSimple.test_bfgs_nan_return.<locals>.fprime  r  r1   )r   )r*   r   r	   r   r   )rp   r   rd  r   s   &   r.   test_bfgs_nan_return'TestOptimizeSimple.test_bfgs_nan_return  s    	[[**&&tQ/F + xxu&&&&i E)))	+	#[[**&&tQF;F + xxu&&&&i E))) +* +*s   C4D4D	D	c           	        \         P                  P                  R 4      p\         P                  ! \         P                  ! R4      4      VP                  \        V P                  4      4      ,          p\        P                  ! V P                  V P                  VRV P                  RR7      p\        V P                  V4      V P                  V P                  4      RR7       R# )r7   r_   F)r;   r   ri   r   r:   r   Nr   )r*   r6   r  sqrtspacingr  rh   r	   r   r   rg   ri   r   )rp   r<   r;   r   s   &   r.   test_bfgs_numerical_jacobian/TestOptimizeSimple.test_bfgs_numerical_jacobian  s     ii##D)''"**R.)CJJs4==7I,JJ##DIIt/?/?,3",0LLuF 			&)499T]]+C!	#r1   c                .   . ROp. ROp\         P                  ! W4       Fr  w  r4\        P                  ! V P                  V P
                  W4R7      p\        V P	                  VP                  4      V P	                  V P                  4      RR7       Kt  	  R# )r   N)r   r   r:   r   )r   r   TNC2-point3-pointN)		itertoolsproductr	   r   r   rg   r   r-   rh   )rp   methodsjacsr   r   rd  s   &     r.   test_finite_differences_jac.TestOptimizeSimple.test_finite_differences_jac  sm    '+$,,W;KF&&tyy$2B2B.4?FDIIfhh/4==1I!%' <r1   c                Z   . ROp\         \        P                  3,           p\        P                  ! W4       Fl  w  r4V\        P                  J d   V! 4       p\        P
                  ! V P                  V P                  W0P                  VR7      pVP                  '       d   Kl  Q h	  . ROpV Ff  p\        P                  ! \        4      ;_uu_ 4        \        P
                  ! V P                  V P                  W0P                  RR7       RRR4       Kh  	  R#   + '       g   i     K}  ; i)trust-constrr   r   r   N)r  ra  	trust-ncgtrust-krylov)r!  r"  doglegtrust-exact)r   r	   r   r  r  r   r   rg   r   r   r   r   rR   )rp   r  hessesr   r   rd  s   &     r.   test_finite_differences_hess/TestOptimizeSimple.test_finite_differences_hess  s     Mx}}..%--g>LFx}}$v&&tyy$2B2B.4)),02F >>>!> ? IFz**!!$))T-=-=)/YY'+- +* ***s   9DD*c                ^    R  p\         P                  ! VR.RR7      p\        VRRRR7       R# )c                 4    V ^ 8  d   R# V RV ,          ,           # )r^   gBr_   r   r,   s   &r.   r~   /TestOptimizeSimple.test_bfgs_gh_2169.<locals>.f  s    1u&2a4xr1         $@Fr   r_   r  r   r   N)r	   r   r   )rp   r~   xss   &  r.   test_bfgs_gh_2169$TestOptimizeSimple.test_bfgs_gh_2169  s-    	 
 C5u5Cd6r1   c                ^   a V3R  lp\        4       o\        P                  ! VRRRRR7       R# )c                 |   < V ^ ,          pVS9  g   Q hSP                  V4       ^
V ^,          ,          ^V ,          3# ri  )add)r-   xpseens   & r.   r~   :TestOptimizeSimple.test_bfgs_double_evaluations.<locals>.f  s9    1BT>!>HHRLad7BqD= r1   r  Tr>   )r   r   tolN)setr	   r   )rp   r~   r4  s   & @r.   test_bfgs_double_evaluations/TestOptimizeSimple.test_bfgs_double_evaluations  s'    	! u!T&dEr1   c                :   \         P                  ! V P                  V P                  V P                  RV P
                  R 7      pVw  r#p\        V P                  V4      V P                  V P                  4      RR7       V P                  P                  ^8X  g   Q V P                  P                  4       hV P                  P                  ^8X  g   Q V P                  P                  4       h\        V P                  P                  R,          . R	O. R
O.RRR7       R# ))r   ri   r:   r   rt  r   r>   r   Nr   )g><gwT볹gUuAX?)rb   gHg!mʲ3?)r	   fmin_l_bfgs_br   rg   r   ri   r   rh   rl   rt   rm   rn   ru   rp   r   r   r   ds   &    r.   test_l_bfgs_b TestOptimizeSimple.test_l_bfgs_b$  s    ''		43C3C(,		04> #q		&)499T]]+C!	#
 ~~1$6dnn&6&66$~~1$6dnn&6&66$ 	

S)D68"	/r1   c                    \         P                  ! V P                  V P                  R V P                  R7      pVw  r#p\        V P                  V4      V P                  V P                  4      RR7       R# )T)approx_gradri   r:   r   N)r	   r<  r   rg   ri   r   rh   r=  s   &    r.   test_l_bfgs_b_numjac'TestOptimizeSimple.test_l_bfgs_b_numjac;  s[    ''		43C3C4804> #q		&)499T]]+C!	#r1   c                   a  V 3R  lp\         P                  ! VS P                  S P                  R7      pVw  r4p\	        S P                  V4      S P                  S P                  4      RR7       R# )c                 H   < SP                  V 4      SP                  V 4      3# r@   )r   r   )r-   rp   s   &r.   r   4TestOptimizeSimple.test_l_bfgs_b_funjac.<locals>.funH  s    99Q<1--r1   ri   r:   r   N)r	   r<  rg   ri   r   r   rh   )rp   r   r   r   r   r>  s   f     r.   test_l_bfgs_b_funjac'TestOptimizeSimple.test_l_bfgs_b_funjacF  s\    	. ''T-=-=04> #q		&)499T]]+C!	#r1   c                    ! R  R4      pV! 4       p\         P                  ! \         P                  RR.RVR^/R7      p\        VP                  ^4       \        VP                  VP                  4       \        VP                  VP                  4       \        VP                  ^4       VP                  RJ g   Q h\        VP                  R4       R# )	c                   ,   a  ] tR tRt o R tR tRtV tR# ):TestOptimizeSimple.test_l_bfgs_b_maxiter.<locals>.CallbackiV  c                0    ^ V n         RV n        RV n        R# r^   N)r  r   r-   ro   s   &r.   __init__CTestOptimizeSimple.test_l_bfgs_b_maxiter.<locals>.Callback.__init__W  s    r1   c                z    Wn         \        P                  ! V4      V n        V ;P                  ^,          un        R# r(   N)r-   r	   r   r   r  rp   r-   s   &&r.   __call__CTestOptimizeSimple.test_l_bfgs_b_maxiter.<locals>.Callback.__call__\  s$    #>>!,Ar1   )r   r  r-   Nr   r   r   r   rP  rU  r   r   r   s   @r.   CallbackrM  V  s     
 r1   rX  rb   l-bfgs-bri   )r   callbackr   Fz+STOP: TOTAL NO. OF ITERATIONS REACHED LIMITN)r	   r   r   r   r  r   r-   r   r   r   message)rp   rX  rt   r   s   &   r.   test_l_bfgs_b_maxiter(TestOptimizeSimple.test_l_bfgs_b_maxiterS  s    		 		 JR)*YND 	SWWa CEE133'CGGQUU+SZZ#{{e###S[[B	Dr1   c                @   R V P                   /p\        P                  ! V P                  V P                  RV P
                  VR7      p\        V P                  VP                  4      V P                  V P                  4      RR7       V P                  P                  VP                  8X  g   Q h^ ;V P                  n
        V P                  n
        \        P                  ! V P                  V P                  RVR7      pV P                  P                  VP                  8X  g   Q h\        V P                  VP                  4      V P                  V P                  4      RR7       ^ ;V P                  n
        V P                  n
        \        P                  ! V P                  V P                  RRVR7      pV P                  P                  VP                  8X  g   Q h\        V P                  VP                  4      V P                  V P                  4      RR7       R# )	ri   L-BFGS-Br   r   r   r:   r   r  r  r   r   r   N)ri   r	   r   r   rg   r   r   r-   rh   rm   rt   r   rl   r   )rp   r   rW   ras   &   r.   test_minimize_l_bfgs_b)TestOptimizeSimple.test_minimize_l_bfgs_bm  s   4<<(dii)9)9%/TYY&*, 			!##		$--(@!	#~~166))).//4>>+tyy$*:*:&0$@ ~~277***		"$$4==)A!	# /0/4>>+tyy$*:*:	&0$@~~277***		"$$4==)A!	#r1   c           	     N   R pR F  pRV P                   RV/p\        P                  ! V P                  V P                  RV P
                  VR7      pV P                  VP                  4      pVf   TpMWQ8  g   Q h\        WPP                  V P                  4      VR7       K  	  R # )Nri   r  r_  r`  r   )r=   r  r>   r  )	ri   r	   r   r   rg   r   r-   r   rh   )rp   v0r6  r   r   vs   &     r.   test_minimize_l_bfgs_b_ftol.TestOptimizeSimple.test_minimize_l_bfgs_b_ftol  s    ,Ct||VS9D##DIIt/?/?+5499,02C 		#%% AzvvAyy7cB -r1   c                    \         P                  ! \         P                  \        P                  ! RR.4      R\         P
                  R^/R7      pVP                  '       d   Q hR# )r   r_   r_  maxlsr`  Nr  )r	   r   r   r*   rM   r   r   )rp   r   s   & r.   test_minimize_l_bfgs_maxls-TestOptimizeSimple.test_minimize_l_bfgs_maxls  sK    $0E'1x7I7I)0!6 ;;;;r1   c                ~  aa \         P                  o\         P                  p. o\        P                  ! ^R4      pVV3R lp^^dRrep\         P
                  ! W2WR7       \        R \        SVR 4       4       4      w  rxWX,           p	\        SRV 4      p
\         P
                  ! SW!V	R7      w  rp\        W4       R# )   r\   c                 :   < S! V 4      pSP                  V4       V# r@   )rz   )r-   valuer~   valuess   & r.   objfunMTestOptimizeSimple.test_minimize_l_bfgs_b_maxfun_interruption.<locals>.objfun  s    aDEMM% Lr1   i,  )r   maxfunc              3   ,   "   T F
  w  rW!3x  K  	  R # 5ir@   r   ).0r  ys   &  r.   	<genexpr>PTestOptimizeSimple.test_minimize_l_bfgs_b_maxfun_interruption.<locals>.<genexpr>  s     A&@daA6&@s   N)
r	   r   r   r*   fullr<  max	enumerateminr   )rp   grV   rs  lowmediumhighrg  kru  targetxminr?  r>  r~   rr  s   &             @@r.   *test_minimize_l_bfgs_b_maxfun_interruption=TestOptimizeSimple.test_minimize_l_bfgs_b_maxfun_interruption  s    NNWWQ	 STv!AAivw&@AA VDS\" ..q"vNA$'r1   c           	         RR lp. R	Op\         P                  ! \         P                  W!\        RR7      R7      p\	        VP
                  RRRR7       R # )
Nc                    TpV ! V4      p	^p
^ pRpRpV'       d   V'       g   W8  d   RpV^,          p\        \        P                  ! V4      4       F  pW,          V,
          W,          V,           3 F@  p\        P                  ! V4      pVVV&   V ! V.VO5!  pV
^,          p
VV	8  g   K:  Tp	TpRpKB  	  Ve	   V! V4       Vf   Kw  W8  g   K  Rp K  	  K  \        P
                  ! WVW^8  R7      # )r(   TFr   r-   r  r   r   )rI  r*   sizer{   r	   r   )r   rV   r   r  stepsizeri   rZ  r   bestxbestyfuncallsniterimprovedstopdimstestxtestys   &&&&&&&,          r.   custmin/TestOptimizeSimple.test_custom.<locals>.custmin  s    EGEHEHD4EO 
 -C#j83UZ(5JK "%&c
 #E 1D 1 A 5=$)E$)E'+H L  + )h.@# .  **u50819O Or1   皙?r  r  r_   r  r,  r   Nr=   d   N)g?r  r   皙?r   )r	   r   r   rp  r   r-   )rp   r  rV   r   s   &   r.   test_customTestOptimizeSimple.test_custom  sA    	O> ((,d(;=sD9r1   c                |   aa RR.oRoVV3R lp^^.p\         P                  ! \         P                  W!SSR7       R# )r   constraintsc                 j   < VR ,          SJ g   Q hVR,          SJ g   Q h\         P                  ! 4       # )r6  r  r	   r   )r   rV   r   r6  r  s   &&,r.   r  0TestOptimizeSimple.test_gh10771.<locals>.custmin  s8    8$...=)[888**,,r1   )r   r6  r  N)r  r   )r^   rH  )r	   r   r   )rp   r  rV   r6  r  s   &  @@r.   test_gh10771TestOptimizeSimple.test_gh10771  s@     6"#	-
 V(.."!'[	Br1   c           	     \   R  pR pR F  pVR	9   d   RpMTp\         P                  ! V^^.VRVR7      p\         P                  ! V^^.VRVR7      pV! VP                  4      V! VP                  4      8  d   Kr  Q V RV! VP                  4       RV! VP                  4       24       h	  R# )
c                 b    V w  rV^,          V^,          ,          V^,          ,           ^,           # rU  r   zr-   rx  s   &  r.   r   <TestOptimizeSimple.test_minimize_tol_parameter.<locals>.func  s)    DAa419q!t#a''r1   c                     V w  r\         P                  ! ^V,          V^,          ,          ^V^,          ,          ,           ^V^,          ,          V,          .4      # rU  r*   rM   r  s   &  r.   dfunc=TestOptimizeSimple.test_minimize_tol_parameter.<locals>.dfunc  sB    DA88QqSAX!Q$.!Q$q9::r1   Nr  )r   r6  r   r_   : z vs. 
rZ  powellr  r  rn  rY  tnccobylar  slsqprZ  r  r  r  )r	   r   r-   )rp   r   r  r   r   sol1sol2s   &      r.   test_minimize_tol_parameter.TestOptimizeSimple.test_minimize_tol_parameter  s    	(	;4F FF$$TAq6s,24D$$TAq6s,24D<$tvv,. BXRTVV~U4<.AB.4r1   r   ignore::RuntimeWarningr   c                  aa
 SR9   d   R pM0\         P                  p\         P                  p\         P                  p\        P
                  ! ^
4      p/ pSP                  R4      '       d>   \        \         S4      pSR8X  d   ^VR&   McSR 8X  d   ^dVR&   MVSR9   d   RVR&   MI^VR&   MCV3R lpSR	8X  d   \        ^dR
7      VR&   M&SR8X  d   \        ^dR7      VR&   M\        ^R7      VR&   SR9   d   XVR&   MSR9   d   XVR&   MSR9   d   XVR&   XVR&   . o
V
3R lpV! W%3RV/VB  \        S
4      ^8  g   Q h\        ;QJ d    R S
 4       F  '       d   K   RM	  RM! R S
 4       4      '       g   Q h\        P                  ! S
^4      p	\        ;QJ d    R V	 4       F  '       g   K   RM	  RM! R V	 4       4      '       d   Q hR# )fmin_tncc                 Z    \         P                  ! V 4      \         P                  ! V 4      3# r@   )r	   r   r   r,   s   &r.   r   DTestOptimizeSimple.test_minimize_callback_copies_array.<locals>.func  s!    ~~a((*<*<Q*???r1   r?  
fmin_slsqpiterru  i  ri   c                  :   < SVR &   \         P                  ! V / VB # r   r	   r   )akwr   s   *,r.   routineGTestOptimizeSimple.test_minimize_callback_copies_array.<locals>.routine+  s"    %8((!2r22r1   r  ru  r   r  rH  r   r   r   c                    < \        V \        P                  4      '       d   Q hSP                  V \        P
                  ! V 4      34       R # r@   )
isinstancer	   r   rz   r*   r{   )r-   r   r  resultss   &*,r.   rZ  HTestOptimizeSimple.test_minimize_callback_copies_array.<locals>.callbackB  s4    !!X%<%<====NNArwwqz?+r1   rZ  c              3   V   "   T F  w  r\         P                  ! W8H  4      x  K!  	  R # 5ir@   )r*   rL   rw  r-   rx  s   &  r.   ry  ITestOptimizeSimple.test_minimize_callback_copies_array.<locals>.<genexpr>K  s     6gda266!&>>gs   ')FTc              3   p   "   T F,  w  r\         P                  ! V^ ,          V^ ,          4      x  K.  	  R# 5irO  )r*   may_share_memoryr  s   &  r.   ry  r  M  s*     P<41r**1Q4166<s   46N)r  r<  )r?  r&  )ry  )rn  r"  r$  r!  r#  r  )r	   r   r   r   r*   re   
startswithgetattrrp  r  rL   r  combinationsany)rp   r   r   r   r   rV   r  r  rZ  r  r  s   &f        @r.   #test_minimize_callback_copies_array6TestOptimizeSimple.test_minimize_callback_copies_array	  s    22@ >>D$$C&&DXXb\ V$$h/G%!"v:%#&x 22$(y!$%y!3 $($4y!8#$($5y!$(Oy!]""F8~%F5M ( (F5M!F6N 	, 	686v6 7|as6g6sss6g66666 --gq93P<P333P<PPPPPPr1   c                   R  pR p\         P                  ! R.4      pV! V4      pTpVR8X  d   \        ^R7      M\        ^R7      pVR
9   d   Rp\        P                  ! W$WaVR7      p\        V! VP                  4      VP                  4       VR8X  d   \        P                  ! R	4       V! VP                  4      V8:  g   Q hR# )c                 "    V ^,
          ^,          # r'   r   r,   s   &r.   r   1TestOptimizeSimple.test_no_increase.<locals>.funcV      EA:r1   c                 >    ^V ^,
          ,          R,          ^,
          # r   rc  r   r,   s   &r.   bad_grad5TestOptimizeSimple.test_no_increase.<locals>.bad_gradY  s     a!e9#a''r1          @r  r  rH  Nra  r  zSLSQP returns slightly worser  )
r*   rM   rp  r	   r   r   r-   r   r   r  )	rp   r   r   r  rV   f0r   r   r   s	   &&       r.   test_no_increase#TestOptimizeSimple.test_no_increaseO  s    		(
 XXse_"X%+u_$b/$r:JBBCc(/1T#%%[#''*WLL78CEE{b   r1   c           	         R  pR p\         P                  ! . R
O4      p\        P                  ! WRRRRV/R7      p\	        VP
                  \         P                  ! . RO4      ^,          RR7       R	# )c                 `    \        V \        P                  ! . RO4      ,
          ^,          4      # )r_   )r_   r  r\  r  )rB   r*   rM   r,   s   &r.   r~   7TestOptimizeSimple.test_slsqp_respect_bounds.<locals>.fn  s!    BHH%566:;;r1   c                     \         P                  ! . RO. RO.4      p\         P                  ! \         P                  ! W4      \         P                  ! ^^
.4      ,           V .4      # )r(   )rc  rc  rc  rc  )r  r  rc  )r*   rM   concatenaterx   r-   r  s   & r.   cons:TestOptimizeSimple.test_slsqp_respect_bounds.<locals>.consq  sE    *,<=>A>>266!<"((Ar72C#CQ"GHHr1   r  typeineqr   r   r  g-q=r   N)ra   r_   r5   r  )rb   r   ru  r   )r*   rM   r	   r   r   r-   )rp   r~   r  rV   r   s   &    r.   test_slsqp_respect_bounds,TestOptimizeSimple.test_slsqp_respect_boundsl  s]    	<	I XX()g-3VUD,IKrxx6q8uEr1   c           	        ^p\         P                  ! ^
4      p\        \        P                  VR
\        P
                  \        P                  RR4      pRVR\        VR7      /pVR9   d   VP                  VR&   M%VR9   d   VP                  VR&   VP                  VR&   \        P                  ! VP                  V3/ VB pVP                  V8X  g   Q hVP                  VP                  8  g   Q h\        VR4      '       d   VP                  VP                   8  g   Q hVR8X  d   VP"                  ^	8X  g   Q hR# VR	8X  d   VP"                  ^8X  g   Q hR# R# )r   Nr   r   rH  r   r   r   SLSQPr  r   )ra  r  )r*   re   r   r	   r   r   r   rp  r   r   r   r   r  r   rv   r   ngevr   )rp   r   MAXITERrV   sfr  r   s   &&     r.   test_respect_maxiter'TestOptimizeSimple.test_respect_maxiterz  s-    XXb\HNNBH4F4F$//t= FItG/DE^#GGF5M ( (GGF5MWWF6N5f5ww'!!!xx277"""388rww&&& W::?"?x::?"?  r1   c           	        \         P                  ! ^
4      p\        \        P                  VR	\        P
                  \        P                  RR4      pR^RR/p\        P                  ! \        RR7      ;_uu_ 4        VP                  R4      '       d&   \        \        V4      pV! VP                  V3/ VB  M#\        P                  ! VP                  W!VR7       RRR4       R#   + '       g   i     R# ; i)
r  Nri   r   TzMaximum number of iterationsr   r?  r  r   )r*   re   r   r	   r   r   r   r   r  RuntimeWarningr  r  r   r   )rp   r   rV   r  r   r  s   &&    r.   test_runtime_warning'TestOptimizeSimple.test_runtime_warning  s     XXb\HNNBH4F4F$//t=a.\\. ?A A  ((!(F3.g.!!"&&"WMA A A As   <A C&&C7	c                   ^p\         P                  p\         P                  p\         P                  pR pRRRV/3p\        P
                  ! ^
4      p\         P                  ! W'WcVR\        VR7      R7      pVP                  V8X  g   Q hR# )	r   c                     \         P                  ! R V ^ ,          ,          RV ^,          ,          ,
          RV ^,          ,          ,
          .4      # )rJ   皙?Q?r  r,   s   &r.   r   RTestOptimizeSimple.test_respect_maxiter_trust_constr_ineq_constraints.<locals>.fun  s6    88S1Q4Z#!*4tad{BCDDr1   r  r  r   r  rH  )r  r   r   r   r   N)	r	   r   r   r   r*   re   r   rp  r  )	rp   r  r~   r   r   r   r  rV   r   s	   &        r.   2test_respect_maxiter_trust_constr_ineq_constraintsETestOptimizeSimple.test_respect_maxiter_trust_constr_ineq_constraints  s     NN  ""	E  XXb\4t'5(,W(=? ww'!!!r1   c                   R  pR p\         P                  ! R.4      p\        P                  ! W4      p\        P                  ! WRRRV/.R7      p\        P                  ! WR.R7      p\        P                  ! WRRRV/.R.R7      p\        P                  ! WRRRV/.R.R7      pWEWgV3 F  p	V	P                  '       d   K  Q h	  \        VP                  ^ R	R
7       \        VP                  ^R	R
7       \        VP                  ^R	R
7       \        VP                  ^R	R
7       \        VP                  ^R	R
7       R# )c                     V ^,          # rU  r   r,   s   &r.   r~   6TestOptimizeSimple.test_minimize_automethod.<locals>.f      a4Kr1   c                     V ^,
          # rU  r   r,   s   &r.   r  9TestOptimizeSimple.test_minimize_automethod.<locals>.cons  s    q5Lr1   r+  r  r  r   )r  r6  )r  r6  r>   r   N)ru  r  r(   r  )r*   rM   r	   r   r   r   r-   )
rp   r~   r  rV   sol_0sol_1sol_2sol_3sol_4r   s
   &         r.   test_minimize_automethod+TestOptimizeSimple.test_minimize_automethod  s(   		 XXse_!!!(!!!vv7<d7D 6E F!!!	:!!!06t/L.M*14 !!!06t/L.M*14 %6C;;;; 7.....r1   c                    R  pRR lp\         P                  ! . RO4      p\         P                  P                  R4      pVP	                  \        V4      4      p\        P                  ! WW#RR7       R# )c                 H    \         P                  ! W,
          ^,          4      # rU  rV  r-   rt   s   &&r.   Y=TestOptimizeSimple.test_minimize_coerce_args_param.<locals>.Y  s    6613(##r1   Nc                      ^W,
          ,          # rU  r   r  s   &&r.   dY_dxATestOptimizeSimple.test_minimize_coerce_args_param.<locals>.dY_dx  s    ac7Nr1   r7   r   )r   r   r   r@   )rH  r(   r   r(   ru  	   r   r   ru  rH  ru  )r*   rM   r6   r  standard_normalr  r	   r   )rp   r  r  rt   r<   xinits   &     r.   test_minimize_coerce_args_param2TestOptimizeSimple.test_minimize_coerce_args_param  sW    	$	 HH67ii##D)##CF+!Gr1   c           	     d  a	a
a . ROp. ROpV	V
V3R lpV
3R lp\         P                  ! W4       F  w  o
pVR9   d   \        S
R,          R7      pM
\        4       pS
R8  d
   VR9   d   K;  R.oR.o	\        P                  ! VSWEVR7      pV R	S
 R
S	 R
V 2pVP
                  '       g   Q V4       h\        VP                  R.VR7       VP                  ^8:  g   Q V4       hS
R8  dD   VR9   d   \        S	^ ,          RVR7       K  S	^ ,          R8  d   S	^ ,          ^8  g   Q V4       hK  K  	  R# )Jz5c                   < S^ ,          f9   V ^ ,          S^ ,          8w  d$   \        V ^ ,          S^ ,          ,
          4      S^ &   \        V 4      P                  4       R8  d   \        R4      hSV ^ ,          ^,
          ^,          ,          # )r^   g     @zOptimization stepped far away!)rO   r|  AssertionError)r-   first_step_sizescalerV   s   &r.   r~   7TestOptimizeSimple.test_initial_step_scaling.<locals>.f  sl    q!)adbem%(11%6"1vzz|c!$%EFF!A$(Q&&r1   c                 \   < \         P                  ! SV ^ ,          ^,
          ,          .4      # ri  r  )r-   r&  s   &r.   r  7TestOptimizeSimple.test_initial_step_scaling.<locals>.g  s"    88UAaD1H-.//r1   r  )r  r  r_   Nra   r  err_msg)\(?ra   )r"  r(   gd~QJ)r   r   r_  ra  )r   r   )r_  ra        )	r  r  rp  r	   r   r   r   r-   r  )rp   scalesr  r~   r  r   r   r   r,  r%  r&  rV   s   &        @@@r.   test_initial_step_scaling,TestOptimizeSimple.test_initial_step_scaling  s3    "9	'	0 '..v?ME6'E$J/&u}+D!DB#fO##Arq,35C  %?*;2cUCG;;;'';CEEC5':77a<((<u}^+#OA$6gN +1-38JQ8NWPWWN8N ? @r1   c                j  aa \         P                  P                  R 4      o^ .oR pVV3R lpR pR p\         P                  ! R.4      pVR9   pVR9   pW#.p	V'       d   V.MVR.p
V'       d   V.MVR.pVR8X  d   \	        ^R7      M\	        ^R	7      p\         P
                  ! R
R7      ;_uu_ 4        \        P                  ! 4       ;_uu_ 4        \        P                  ! R
R\        4       \        P                  ! R
R\        4       \        P                  ! R
R\        4       \        P                  ! WV4       F9  w  rp^ .o\        P                  ! WWVVR7      p\        VP                   R4       K;  	  RRR4       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; i)i c                 "    \         P                  # r@   r  r,   s   &r.   r   0TestOptimizeSimple.test_nan_values.<locals>.func)  r  r1   c                    < S^ ;;,          ^,          uu&   S^ ,          ^8  d   \         P                  # SP                  4       # ri  )r*   r  r6   )r-   countr<   s   &r.   func21TestOptimizeSimple.test_nan_values.<locals>.func2,  s0    !HMHQx!|vvzz|#r1   c                 0    \         P                  ! R .4      # r_   r  r,   s   &r.   r   0TestOptimizeSimple.test_nan_values.<locals>.grad3  s    88SE?"r1   c                 2    \         P                  ! R ..4      # r:  r  r,   s   &r.   r   0TestOptimizeSimple.test_nan_values.<locals>.hess6  s    88cUG$$r1   r_   Nr  r  rH  r   r  delta_grad == 0.*.*does not use Hessian.*.*does not use gradient.*r   r   r   r   Frn  r"  r$  r!  r#  r"  r$  r!  r#  )r*   r6   r  rM   rp  r   warningscatch_warningsr  UserWarningr  r  r  r	   r   r   r   )rp   r   r   r7  r   r   rV   
needs_grad
needs_hessfuncsgradshesssr   r~   r  hr   r6  r<   s   &&               @@r.   test_nan_values"TestOptimizeSimple.test_nan_values  sg    ii##F+		$	#	% XXse_  7 7
  * *
 $4,$4,%+u_$b/$r:J[[**H,C,C,E,E##H.A;O##4nF##5~G %,,U5Aa''1V079S[[%0	 B -F**,E,E***s%   5F!B)F	<F!FF!!F2	c                   R ;r#VR9   d   V P                   pVR9   d   V P                  p\        P                  ! RR7      ;_uu_ 4        \        P
                  ! 4       ;_uu_ 4        \        P                  ! RR\        4       \        P                  ! V P                  V P                  WVR7       R R R 4       R R R 4       \        ^\        V P                  P                  4      4       Fk  p\        P                   ! V P                  P                  V^,
          ,          V P                  P                  V,          4      '       g   K_  \#        RV 24      h	  R #   + '       g   i     L; i  + '       g   i     L; i)Nr   r  r>  r   zDuplicate evaluations made by rB  rC  )r   r   r*   r   rD  rE  r  rF  r	   r   r   rg   rI  r  rn   ru   array_equalrw   )rp   r   r   r   r  s   &&   r.   test_duplicate_evaluations-TestOptimizeSimple.test_duplicate_evaluationsR  s	     - -))C    99D[[**H,C,C,E,E##H.A;Odii)9)9%+4A -F* q#djjll+,A~~djjll1q514::<<?CC"4VH=? ? - -F,E**s%   	E/'AE	2E/E,'E//E?	new_cb_interfacec           
       a
aa V3R  loRSn         V3R lpV3R lp^oV^8X  d	   V
V3R lpM#V^8X  d    ! V
V3R lR4      pV! 4       pMV
3R lpV
V3R lo
^ S
n        RS
n         R	R
.^,          RVRSRVRV/p\        P                  ! R/ VBRV/B pVR8X  d
   S^,           oVR8X  dF   \        P                  ! R/ VBRRS//B p	VP                  V	P                  u;8X  d	   S8X  g   Q h Q hMVR8X  d   \        S\        VR	,          4      ^,           4      o\        P                  ! R/ VBRRS//B p	VP                  ^8X  g   Q hVP                  R8X  g   Q hV	P                  ^8X  g   Q hV	P                  R8X  g   Q hR# \        P                  ! R/ VBRRS//B p	VP                  P                  R4      '       g   Q hVP                  V	P                  u;8X  d	   S8X  g   Q h Q hVR8w  d>   VP                  V	P                  8X  g   Q h\        VP                  V	P                  4       VR9   d   VP                  ^8X  g   Q h VR8w  d   VP                  '       d   Q hR# R# )c                 >   < R Sn         \        P                  ! V 4      # F)flagr	   r   r-   r~   s   &r.   r~   9TestOptimizeSimple.test_callback_stopiteration.<locals>.fs  s    AF>>!$$r1   Fc                 >   < R Sn         \        P                  ! V 4      # rV  )rW  r	   r   rX  s   &r.   r  9TestOptimizeSimple.test_callback_stopiteration.<locals>.gx  s    AF%%a((r1   c                 >   < R Sn         \        P                  ! V 4      # rV  )rW  r	   r   rX  s   &r.   rL  9TestOptimizeSimple.test_callback_stopiteration.<locals>.h|  s    AF&&q))r1   c                 \   < V P                   S! V P                  4      8X  g   Q hS! 4        R # r@   r   r-   )intermediate_resultrZ  r~   s   $r.   callback_interfaceJTestOptimizeSimple.test_callback_stopiteration.<locals>.callback_interface  s(    *..!4G4I4I2JJJJ
r1   c                   <   <a  ] tR tRt o V 3R lVV3R lltRtV tR# )@TestOptimizeSimple.test_callback_stopiteration.<locals>.Callbacki  c                    < V ^8  d   QhRS[ /# )r   r`  )r   )formatr   s   "r.   __annotate__MTestOptimizeSimple.test_callback_stopiteration.<locals>.Callback.__annotate__  s       r1   c                \   < VP                   S! VP                  4      8X  g   Q hS! 4        R # r@   r_  )rp   r`  rZ  r~   s   &&r.   rU  ITestOptimizeSimple.test_callback_stopiteration.<locals>.Callback.__call__  s(    .22a8K8M8M6NNNNJr1   r   N)r   r   r   r   rU  r   r   )r   rZ  r~   s   @r.   rX  rd    s       r1   rX  c                    < S! 4        R # r@   r   )xkr   rZ  s   &*r.   ra  rb    s    
r1   c                     < S ;P                   ^,          un         RS n        S P                   S8X  d   RS n        \        4       hR# )r(   FTN)r  rW  StopIteration)rZ  ri   s   r.   rZ  @TestOptimizeSimple.test_callback_stopiteration.<locals>.callback  s7    JJ!OJ!HMzzW$ $#o% %r1   rV   r  r   r   r   r   rZ  rZ  r  r   r  r  ri   zFReturn from COBYLA because the callback function requested terminationzRReturn from COBYLA because the objective function has been evaluated MAXFUN times.Nz!`callback` raised `StopIteration`r  r   >   r  r  )rW  r  r	   r   r   r|  r  r   r[  r  r  r   r   r-   r   )rp   r   rS  r  rL  ra  rX  r  r   r	  rZ  r~   ri   s   &&&       @@@r.   test_callback_stopiteration.TestOptimizeSimple.test_callback_stopiterationl  sb   	% 	)	* q  "  "*	& 
a6E1fa1 F&F3EF]"kGX##JfJx6IJC88sxx2722222x '3vd|#4Q#67G##KfKy'6JKC::###;; $; < < <::?"?;; $F G G G ##KfKy'6JKC;;))*MNNNN77cgg000000W 77cgg%%%&"(,F"FszzQNNBX{{{"?{ r1   c                    R p\        \        VR7      ;_uu_ 4        \        P                  ! R \        P
                  ! R4      4       RRR4       R#   + '       g   i     R# ; i)z"'x0' must only have one dimension.r   c                     V # r@   r   r,   s   &r.   r  4TestOptimizeSimple.test_ndim_error.<locals>.<lambda>  s    r1   N)r   r(   )rQ   rR   r	   r   r*   onesrp   r  s   & r.   test_ndim_error"TestOptimizeSimple.test_ndim_error  s;    2:S11k2776?; 2111s   -AA$	c           	        R  p\        ^^.^^.4      pRp\        P                  ! \        VR7      ;_uu_ 4        \        P
                  ! V. ROWR7       RRR4       \        . RO. RO4      pRp\        P                  ! \        VR7      ;_uu_ 4        \        P
                  ! V. ROWR7       RRR4       R#   + '       g   i     Ll; i  + '       g   i     R# ; i)	c                 <    \         P                  ! V ^,          4      # rU  rV  r,   s   &r.   r~   :TestOptimizeSimple.test_minimize_invalid_bounds.<locals>.f  rY  r1   z?The number of bounds is not compatible with the length of `x0`.r   rV   r   r6  Nz:An upper bound is less than the corresponding lower bound.)r(   r   rH  )r(   r   r(   )rH  r   r   )r
   r   r   rR   r	   r   )rp   r   r~   r6  r  s   &&   r.   test_minimize_invalid_bounds/TestOptimizeSimple.test_minimize_invalid_bounds  s    	  AA'O]]:S11aIfL 2 	9-J]]:S11aIfL 21 21
 211s   B:C:C
	C	c           	        VR 8X  d   / MR\         P                  /pVR 8X  d   \        M\         P                  pRRR^
/p\        P
                  ! VRR7      ;_uu_ 4        \         P                  ! R ^ ^ .3RVR	V/VB  R
R
R
4       RVR&   \         P                  ! R ^ ^ .3RVR	V/VB  R
#   + '       g   i     L6; i)r  r   r   Tri   Maximum numberr   c                 .    \         P                  ! V 4      # r@   r	   r   r,   s   &r.   r  BTestOptimizeSimple.test_minimize_warnings_gh1953.<locals>.<lambda>  s    q(9r1   r   r   NFc                 .    \         P                  ! V 4      # r@   r  r,   s   &r.   r  r    s    HNN1$5r1   )r	   r   r  r  r   r  r   )rp   r   r  warning_typer   s   &&   r.   test_minimize_warnings_gh19530TestOptimizeSimple.test_minimize_warnings_gh1953  s     x'eX5G5G-H*0(*:%55 	 4B/\\,.>??9Aq6 H%+H5<H@FH @  51v 	D!'	D18	D<B	D @?s    B--B=	r   N)r?  r&  r   r   ry  r<  r  r  r  )r  r"  r   r   ra  r_  r  r  r#  r!  r$  r"  r  )r  r"  r?  r&  )rZ  r  r  r  rn  rY  r  r  r  r  r#  r!  r$  r"  )rZ  r  r  rY  r  r  r  r  r  r#  r!  r$  r"  )r^   r(   r   )rZ  rY  r  r  r  r  r  )r  r  rn  r  ).r   r   r   r   r  r  r  r  r&  r.  r9  r?  rC  rI  r\  rc  rh  rl  r  r  r  r  r   r  	fail_slowr  r  r   r  r  r  r  r  r  r  r  r0  rM  rQ  r   rp  rw  r}  r  r   r   r   s   @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~ [[X (L M!M!4F [[X (2 3
#3
#@ [[X (? @N@N"(/4H0d [[X (G H
01H
01d [[X (G H
?H
?* [[ 89[[X'>?[[/;O# < @ :O#b<
 [[X (8 9M9M [[X'LMD NDr1   r  r   c                     R  p\         P                  ! V^R.V R7      pVP                  '       g   Q h\        VP                  R.RR7       R# )c                 <    \         P                  ! V ^,          4      # rU  rV  r,   s   &r.   r~   $test_minimize_with_scalar.<locals>.f  r  r1   r[  rb   r   r   N)r7  r  )r	   r   r   r   r-   )r   r~   r   s   &  r.   test_minimize_with_scalarr    sA     

Ar;-
GC;;;;CEEC5t,r1   c                      a  ] tR tRt o R tRR ltRR ltRR ltR tR t	R t
]P                  P                  R	RR.RR.RR..4      R
 4       tR tRtV tR# )TestLBFGSBBoundsi  c                "    RV n         RV n        R# )r(   N)rS  NN)r(   r^   r6  rh   ro   s   &r.   rq   TestLBFGSBBounds.setup_method  s    /r1   c                h    R V,          V^ ,          V,          V^,          V,          ,           ,          # r:  r   r   s   &&&r.   r   TestLBFGSBBounds.fun  s&    Qw!A$'AaD!G+,,r1   c                     W^,
          ,          # r'   r   r   s   &&&r.   r   TestLBFGSBBounds.jac  s    q5zr1   c                F    V P                  W4      V P                  W4      3# r@   )r   r   r   s   &&&r.   fjTestLBFGSBBounds.fj  s    xx~txx~--r1   c                    \         P                  ! V P                  ^ R.V P                  V P                  R7      w  rpVR,          ^ 8X  g   Q VR,          4       h\        WP                  RR7       R# )r^   )r   r6  r   taskr:   r   Nrc  )r	   r<  r   r   r6  r   rh   rp   r-   r~   r>  s   &   r.   test_l_bfgs_b_bounds%TestLBFGSBBounds.test_l_bfgs_b_bounds  s[    ((Ar70404=a }!,1V9,!==t4r1   c                    \         P                  ! V P                  ^ R.RV P                  R7      w  rpVR,          ^ 8X  g   Q VR,          4       h\	        WP
                  RR7       R# )	r^   )r   r6  r   r  r:   r   Nrc  r  )r	   r<  r  r6  r   rh   r  s   &   r.   rI  %TestLBFGSBBounds.test_l_bfgs_b_funjac  sT    ((1b'04=a}!,1V9,!==t4r1   c                    \         P                  ! V P                  ^ R.RV P                  V P                  R7      pVR,          '       g   Q VR,          4       h\        VP                  V P                  RR7       R# )	r^   r_  r   r   r6  r   r[  r:   r   Nrc  )r	   r   r   r   r6  r   r-   rh   r  s   & r.   test_minimize_l_bfgs_b_bounds.TestLBFGSBBounds.test_minimize_l_bfgs_b_bounds  sY    1b'*$(HHT[[B9~~-s9~-~t}}48r1   r6  c           
         \         P                  ! \        R R7      ;_uu_ 4        \        P                  ! V P
                  ^ R.RV P                  VR7       RRR4       R#   + '       g   i     R# ; i)z	.*bound.*r   r_  r  Nrc  )r   r   rR   r	   r   r   r   )rp   r6  s   &&r.   'test_minimize_l_bfgs_b_incorrect_bounds8TestLBFGSBBounds.test_minimize_l_bfgs_b_incorrect_bounds  sI     ]]:[99dhhB
"&((6; :999s   2A!!A2	c                :   . R	OpR
R.p\         P                  ! W4       Fx  w  r4\        P                  ! V P                  ^ R.VRW0P
                  RR/R7      pVR,          '       g   Q VR,          4       h\        VP                  V P                  RR7       Kz  	  R# )r  Nr_  finite_diff_rel_step)r   r   r   r6  r   r   r[  r:   r   r  r  r   rc  )	r  r  r	   r   r   r6  r   r-   rh   )rp   r  argssr   r   r   s   &     r.    test_minimize_l_bfgs_b_bounds_FD1TestLBFGSBBounds.test_minimize_l_bfgs_b_bounds_FD#  s    
 ,"**47IC##DHHq"gD+5(+KK-CT,JLC y>>13y>1>CEE4==t< 8r1   r  Nr  )r  r(   r  )r   r   r   r   rq   r   r   r  r  rI  r  r   r  r  r  r  r   r   r   s   @r.   r  r    st     -.559 [[X
7	
7	
7	( 
;
;
= =r1   r  c                   P  a  ] tR tRt o R tRR ltR t]P                  P                  R4      R 4       t
R tR tR	 tR
 tR tR t]P                  P#                  R. RO4      R 4       t]P                  P#                  R. RO4      R 4       t]P                  P                  R4      ]P                  P#                  R. RO4      R 4       4       tR tR t]P                  P#                  RRR.4      R 4       t]P                  P                  R4      ]P                  P#                  R]4      ]P                  P#                  R^R.4      ]P                  P#                  R. R O4      R 4       4       4       4       t]P                  P#                  R. R!O4      R 4       tRtV tR# )"TestOptimizeScalari3  c                    R V n         R# )r5   Nrh   ro   s   &r.   rq   TestOptimizeScalar.setup_method4  s	    r1   c                .    W,
          ^,          R,
          # )zObjective functionr   r   )rp   r-   r  s   &&&r.   r   TestOptimizeScalar.fun7  s    zCr1   c                l   \         P                  ! V P                  4      p\        WP                  R R7       \         P                  ! V P                  R	R7      p\        WP                  R R7       \         P                  ! V P                  RR7      p\        V^ ,          V P                  R R7       \         P                  ! V P                  R
R7      p\        WP                  R R7       Rp\
        P                  ! \        VR7      ;_uu_ 4        \         P                  ! V P                  RR7       RRR4       Rp\
        P                  ! \        VR7      ;_uu_ 4        \         P                  ! V P                  RR7       RRR4       R#   + '       g   i     Lc; i  + '       g   i     R# ; i)r:   r   brackTr   /\(f\(xb\) < f\(xa\)\) and \(f\(xb\) < f\(xc\)\)r   N\(xa < xb\) and \(xb < xc\)r  r  irc     rc  r^   r(   r^   rc  r(   )r	   brentr   r   rh   r   r   rR   )rp   r-   r[  s   &  r.   
test_brentTestOptimizeScalar.test_brent;  s   NN488$==t4NN48884==t4NN4886!dmm$7NN488=9==t4D]]:W55NN488:6 6 1]]:W55NN488:6 65	 65 655s   #F"#F"F	"F3	r   c                   \         P                  ! V P                  4      p\        WP                  R R7       \         P                  ! V P                  RR7      p\        WP                  R R7       \         P                  ! V P                  RR7      p\        V^ ,          V P                  R R7       \         P                  ! V P                  RR7      p\        WP                  R R7       \         P                  ! V P                  ^ R7      p\        WP                  4       . ROpV Fl  p\         P                  ! V P                  ^ RR7      p\         P                  ! V P                  VRR7      pV^,          V^,          re\        We,
          V4       Kn  	  Rp\        P                  ! \        VR7      ;_uu_ 4        \         P                  ! V P                  RR7       R	R	R	4       R
p\        P                  ! \        VR7      ;_uu_ 4        \         P                  ! V P                  RR7       R	R	R	4       R	#   + '       g   i     Lc; i  + '       g   i     R	# ; i)r:   r   r  Tr  r6  )ri   r   r  r   Nr  r  r  )r^   r(   ru  r  r  )	r	   goldenr   r   rh   r   r   r   rR   )rp   r-   maxiter_test_casesri   rV   nfev0r   r[  s   &       r.   test_goldenTestOptimizeScalar.test_goldenP  s|   OODHH%==t4OODHHH5==t4OODHH$7!dmm$7OODHHM:==t4OODHH!,==)&)G1$GB'tLAQ%14w/	 * E]]:W55OODHHJ7 6 1]]:W55OODHHJ7 65	 65 655s   >#H<#I<I	I 	c                   \         P                  ! V P                  ^ ^4      p\        V^RR7       \         P                  ! V P                  ^^4      p\        WP                  RR7       \         P                  ! V P                  \
        P                  ! ^.4      \
        P                  ! ^.4      4      p\        WP                  RR7       \        \        \         P                  V P                  ^^4       R# )r^   r  r   r:   N)	r	   	fminboundr   r   rh   r*   rM   rQ   rR   rT  s   & r.   test_fminbound!TestOptimizeScalar.test_fminboundp  s    txxA.14(txxA.==t4txx1#!F==t4j("4"4dhh1Er1   c                   \         P                  ! \        R R7      ;_uu_ 4        \        P                  ! V P
                  \        P                  ! R4      ^4       RRR4       \        P                  ! V P
                  ^\        P                  ! ^4      4      p\        WP                  RR7       R#   + '       g   i     L_; i)z.*must be finite scalars.*r   Nr:   r   r(   r   )r   r   rR   r	   r  r   r*   re   rM   r   rh   rT  s   & r.   test_fminbound_scalar(TestOptimizeScalar.test_fminbound_scalar{  ss    ]]:-IJJtxx&)91= K txxBHHQK8==t4	 KJs   7B33C	c                <    R  p\         P                  ! V^ ^ 4       R# )c                     V ^,          # rU  r   r,   s   &r.   r   ,TestOptimizeScalar.test_gh11207.<locals>.fun  r  r1   N)r	   r  )rp   r   s   & r.   test_gh11207TestOptimizeScalar.test_gh11207  s    	31%r1   c           	     R   \         P                  ! V P                  4      P                  p\	        WP
                  R R7       \         P                  ! V P                  RR7      pVP                  '       g   Q h\         P                  ! V P                  R\        ^R7      R7      pVP                  '       d   Q h\         P                  ! V P                  RRRR7      P                  p\	        WP
                  R R7       \         P                  ! V P                  RRR7      P                  p\	        WP
                  R R7       \         P                  ! V P                  RRRR7      P                  p\	        WP
                  R R7       \         P                  ! V P                  RRR	R7      P                  p\	        WP
                  R R7       \         P                  ! V P                  R	RR7      P                  p\	        WP
                  R R7       \         P                  ! V P                  RRR	R7      P                  p\	        WP
                  R R7       \         P                  ! V P                  RRR
R7      P                  p\	        V^RR7       \         P                  ! V P                  RRRR7      P                  p\	        WP
                  R R7       \         P                  ! V P                  \        P                  ! ^.4      \        P                  ! ^.4      3\        P                  ! R.4      3RR7      P                  p\	        WP
                  R R7       \        \        \         P                  V P                  RRRR7       \        \        \         P                  V P                  \        P                  ! ^4      ^3RRR7       \         P                  ! V P                  ^\        P                  ! ^4      3RR7      P                  p\	        WP
                  R R7       R# )r:   r   Brentr   rH  r  r5   )bracketr   r   )r   r   r  Bounded)r6  r   r   r  boundedr6  r   r   r[  Nr  r5   r  )r^   r(   )r(   ru  )ru  r(   )r	   minimize_scalarr   r-   r   rh   r   rp  r*   rM   rQ   rR   re   rT  s   & r.   test_minimize_scalar'TestOptimizeScalar.test_minimize_scalar  s   $$TXX.00==t4$$TXXg>yyyy$$TXXg-1!_>999}$$TXXx*1'CCD1 	
==t4$$TXXg*0223! 	
==t4$$TXX}*1'CCD1 	
==t4$$TXXx*1(DDEA 	
==t4$$TXXh*0223! 	
==t4$$TXX}*1(DDEA 	
==t4$$TXXf6,5778q 	
14($$TXXf7,5778q 	
==t4$$TXXrxx}79xx}7F+-88SE?*=,57 89q 	
 	==t4j(":":DHH#IG	E 	j(":":DHH hhqk1-ig	O $$TXXq"((1+6F,5778q 	
==t4r1   c           	         RR lp\         P                  ! V P                  RV\        RR7      R7      p\	        VP
                  V P                  RR7       R # )	Nc                    V^,          V^ ,          ,           R,          pV ! V4      p	^p
^ pRpRpV'       do   V'       gg   W8  da   RpV^,          pW,
          W,           3 F$  pV ! V.VO5!  pV
^,          p
W8  g   K  Tp	TpRpK&  	  Ve	   V! V4       Vf   Kk  W8  g   Ks  Rp \         P                  ! WVW^8  R7      # )r(   r  TFr  r  )r   r  r   r  r  ri   rZ  r   r  r  r  r  r  r  r  r  s   &&&&&&&,        r.   r  ?TestOptimizeScalar.test_minimize_scalar_custom.<locals>.custmin  s    QZ'!*,3EJEHEHD4EO 
#.0@AE--EMH} % %#' B 'UO%(*<D**u50819O Or1   r  r  )r  r   r   r:   r   r  )r^   r   )r	   r  r   rp  r   r-   rh   )rp   r  r   s   &  r.   test_minimize_scalar_custom.TestOptimizeScalar.test_minimize_scalar_custom  sD    	O8 &&txx.5/3T/BD 	t}}48r1   c                J    \         P                  ! V P                  R R7       R# )r5   r   Nr	   r  r   ro   s   &r.   &test_minimize_scalar_coerce_args_param9TestOptimizeScalar.test_minimize_scalar_coerce_args_param  s      4r1   r   r  r  c                `    R F'  p\         P                  ! V P                  RV/R7       K)  	  R# )r^   r   )r   N)r^   r(   r   rH  r  )rp   r   r   s   && r.   	test_dispTestOptimizeScalar.test_disp  s&     !D$$TXX~F !r1   c                Z   VR 8X  d   RR
^
./M/ p\         P                  ! V P                  3RV/VB p\        VR4      '       g   Q h\        VR4      '       g   Q h\        VR4      '       g   Q h\        VR4      '       g   Q h\        VR4      '       g   Q h\        VR4      '       g   Q hR	# )r  r6  r   r-   r   r[  r   r   r  Nr  )r	   r  r   rv   )rp   r   r  rd  s   &&  r.   test_result_attributes)TestOptimizeScalar.test_result_attributes  s    *0I*=(S"I&2))$((L6LVLvs####vy))))vy))))vu%%%%vv&&&&vu%%%%r1   c                R  a ^ .oV3R lpRpRp\         P                  ! RR7      ;_uu_ 4        \        P                  ! 4       ;_uu_ 4        \        P                  ! RR\
        4       \        P                  ! RR\        4       \        P                  ! RR\        4       ^ .oVR8X  d   RV/M/ p\        P                  ! V3R	V/VBR
VR\        ^R7      /B p\        VP                  R4       RRR4       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; i)r^   c                    < S^ ;;,          ^,          uu&   S^ ,          ^8  d   \         P                  # V ^,          R\         P                  ! V 4      ,          ,           # )r^   r=   )r*   r  rA   )r-   r6  s   &r.   r   0TestOptimizeScalar.test_nan_values.<locals>.func  s?    !HMHQx!|vv!tcBFF1Io--r1   r   r  r>  r?  r@  r  r6  r  r   r   rH  FNr  r  )r*   r   rD  rE  r  rF  r  r	   r  rp  r   r   )rp   r   r   r  r6  r  r   r6  s   &&     @r.   rM  "TestOptimizeScalar.test_nan_values  s    
 	. [[**H,C,C,E,E##H.A;O##4nF##5~G CE+1Y+>h'BF**4 E E-3E<BE373CEC e, -F**,E,E***s$   DB$D	0DDDD&	c                    R  p\         P                  ! V4      p\        VP                  ^ RR7       \         P                  ! VRRR/R7      p\        VP                  ^4       R# )c                     V ^,          # rU  r   r,   s   &r.   r~   CTestOptimizeScalar.test_minimize_scalar_defaults_gh10911.<locals>.f  r  r1   r  r   r  r  )r6  r   N)r(   r  )r	   r  r   r-   )rp   r~   r   s   &  r.   %test_minimize_scalar_defaults_gh109118TestOptimizeScalar.test_minimize_scalar_defaults_gh10911  sT    	 &&q)qt,&&q07/?Aq!r1   c                   R p\         P                  ! \        VR7      ;_uu_ 4        \        P                  ! \
        P                  ^\
        P                  3R7       RRR4       \         P                  ! \        VR7      ;_uu_ 4        \        P                  ! \
        P                  \
        P                  ^3R7       RRR4       R#   + '       g   i     Lu; i  + '       g   i     R# ; i)z+Optimization bounds must be finite scalars.r   r  N)	r   r   rR   r	   r  r*   rA   r  r  rv  s   & r.   'test_minimize_non_finite_bounds_gh10911:TestOptimizeScalar.test_minimize_non_finite_bounds_gh10911(  s     <]]:S11$$RVVQK@ 2]]:S11$$RVVRVVQK@ 21 21111s   7C
7CC	C/	c                    R p\         P                  ! \        VR7      ;_uu_ 4        \        P                  ! \
        P                  VRR7       RRR4       R#   + '       g   i     R# ; i)z'Use of `bounds` is incompatible with...r   r   r6  Nr  )r   r   rR   r	   r  r*   rA   )rp   r   r  s   && r.   2test_minimize_unbounded_method_with_bounds_gh10911ETestOptimizeScalar.test_minimize_unbounded_method_with_bounds_gh109111  s?     8]]:S11$$RVVF6J 2111s   (AA*	r  r6  r:   fshapec                |  a V3R  lpRRreVR8w  d   \        WV3R7      M\        WV3R7      pVP                  \        WR7      4       \        P                  ! V3/ VB pVP                  P
                  VP                  P
                  u;8X  d+   V! VP                  4      P
                  u;8X  d	   S8X  g   Q h Q hR# )c                 \   < \         P                  ! V ^,          4      P                  S4      # r   )r*   rM   reshape)r-   r  s   &r.   r~   ITestOptimizeScalar.test_minimize_scalar_dimensionality_gh16196.<locals>.fA  s     88AqD>))&11r1   rJ   r  )r  r  )r   r6  Nr  )rp  updater	   r  r-   shaper   )	rp   r   r6  r  r~   r  br  r   s	   &&&f     r.   +test_minimize_scalar_dimensionality_gh16196>TestOptimizeScalar.test_minimize_scalar_dimensionality_gh161969  s    	2 S1*0I*=$v&A6* 	d&23&&q3F3uu{{cggmmGqx~~GGGGGGr1   c           	     H   R  p/ pVR8X  d   RMRpR^
.W4&   RRR^/p\         P                  ! \        P                  RR7      ;_uu_ 4        \        P                  ! V3R	VR
V/VB  RRR4       RVR&   \        P                  ! V3R	VR
V/VB  R#   + '       g   i     L2; i)c                 "    V ^,
          ^,          # r'   r   r,   s   &r.   r~   BTestOptimizeScalar.test_minimize_scalar_warnings_gh1953.<locals>.fP  r  r1   r  r6  r  r   Tri   r  r   r   r   NFr  )r   r  r	   r  r  )rp   r   r~   r  kwdr   s   &&    r.   $test_minimize_scalar_warnings_gh19537TestOptimizeScalar.test_minimize_scalar_warnings_gh1953L  s    	  I-h92h4A.\\(22:JKK$$Q /v /w /'-/ L    M6M7MfM LKs   BB!	r  Nr  )r  r  r  )r   r'   r(   r(   )r  r  r  )r   r   r   r   rq   r   r  r   r  r  r  r  r  r  r  r  r  r  r  r  rM  r  r  r  r   r
  r  r   r   r   s   @r.   r  r  3  s     7* [[ 568 78>	F5&
:5x!9F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'>?[[UQI.[[X'9:H ; / @ :H [[X'EFN GNr1   r  c                      a  ] tR tRt o ]P
                  P                  R4      R 4       t]P
                  P                  RR4      R 4       t	Rt
V tR# )	TestBracketi`  r  c           	        R  pRp\         P                  ! \        VR7      ;_uu_ 4        \        P                  ! VR	^4       RRR4       \         P                  ! \        VR7      ;_uu_ 4        \        P                  ! VR	\
        P                  4       RRR4       \         P                  ! \        VR7      ;_uu_ 4        \        P                  ! VR
R7       RRR4       \         P                  ! \        VR7      ;_uu_ 4        \        P                  ! VR
R7       RRR4       R pRp\         P                  ! \        VR7      ;_uu_ 4        \        P                  ! VRR^
R7       RRR4       R#   + '       g   i     EL<; i  + '       g   i     L; i  + '       g   i     L; i  + '       g   i     L; i  + '       g   i     R# ; i)c                 B    RV 8  V ^8  ,          '       d
   V ^,          # R# r(   g      Y@rc  r   r,   s   &r.   r~   3TestBracket.test_errors_and_status_false.<locals>.fe  #    !VA..1a4:U:r1   9The algorithm terminated without finding a valid bracket.r   Nr  c                     RV ^,          ,          ^V ^,          ,          ,           ^V ^,          ,          ,
          ^V ^,          ,          ,           ^V ,          ,
          ^,           # )ru  r  r   r,   s   &r.   r~   r  r  sE    19q1a4x'"q!t)3b1a4i?!a%G!KKr1   z8No valid bracket was found before the iteration limit...ra   rH  rc  r  r   )	r   r   rw   r	   r  r*   r  r  r  )rp   r~   r[  s   &  r.   test_errors_and_status_false(TestBracket.test_errors_and_status_falseb  s   	; N]]<w77QA& 8]]<w77QBFF+ 8]]<w77NN1G, 8]]<w77OOAW- 8	L M]]<w77Qc26 87 877777777 877s;   E6/'F
FF0G6F	
F	F-	0G 	G	r   c                    R  pRp\         P                  ! VRVR7      pVP                  '       d   Q hW4P                  9   g   Q hVP                  ^8X  g   Q hVP
                  ^ 8X  g   Q hVP                  ^d8X  g   Q hR# )c                 B    RV 8  V ^8  ,          '       d
   V ^,          # R# r  r   r,   s   &r.   r~   9TestBracket.test_minimize_scalar_success_false.<locals>.f|  r  r1   r  )r  r   Nr  )r	   r  r   r[  r   r  r   )rp   r   r~   r[  r   s   &&   r.   "test_minimize_scalar_success_false.TestBracket.test_minimize_scalar_success_falsey  sq    	; N&&q'&I;;;++%%%xx1}}ww!||ww#~~r1   r   N)r  r  )r   r   r   r   r   r  r  r  r  r!  r   r   r   s   @r.   r  r  `  sM     [[ 897 :7, [[X':; <r1   r  c                  d    \        \        \        P                  \        P
                  RR7       R# )r   r  Ng{Gz)rQ   rR   r	   r  r*   rG   r   r1   r.   test_brent_negative_tolerancer$    s    *hnnbff$?r1   c                   8   a  ] tR tRt o R tR tR tR tRtV t	R# )TestNewtonCgi  c           	     d   \         P                  ! RR.4      p\        P                  ! \        P                  V\        P
                  \        P                  RRR7      pVP                  '       g   Q VP                  4       h\        VP                  \         P                  ! ^^.4      RR7       R# 	r   r_   r   ra  r   r   r6  r   r  r   Nr  )r*   rM   r	   r   r   r   r   r   r[  r   r-   rp   rV   r   s   &  r.   test_rosenbrockTestNewtonCg.test_rosenbrock  sz    XXtSk"$,$6$6%-%8%8$('2	4
 {{{'CKK'{rxxA/d;r1   c           	     @   \         P                  ! \        4      p\        P                  ! \
        V\        \        R RR7      pVP                  '       g   Q VP                  4       h\        VP                  \        RR7       \        VP                  \        RR7       R# )ra  r:   )r   r   r   r6  r  r   r   N)r*   rM   rU   r	   r   
himmelblaurS   rT   r   r[  r   r-   himmelblau_xoptr   himmelblau_minr*  s   &  r.   test_himmelblauTestNewtonCg.test_himmelblau  sj    XXm$
 "$3%4'2$(* {{{'CKK'{T:d;r1   c           	     H   \         P                  ! R	R.4      p\        P                  ! \        P                  V\        P
                  RRRR7      pVP                  '       g   Q VP                  4       h\        VP                  \         P                  ! ^^.4      RR7       R# )
r   r_   r  r   ra  r)  r  r   Nr  )
r*   rM   r	   r   r   r   r   r[  r   r-   r*  s   &  r.   test_finite_difference#TestNewtonCg.test_finite_difference  st    XXtSk"$,$6$6%.$('2	4
 {{{'CKK'{rxxA/d;r1   c           	     n   \         P                  ! RR.4      p\        P                  ! \        P                  V\        P
                  \        P                  ! 4       RRR7      pVP                  '       g   Q VP                  4       h\        VP                  \         P                  ! ^^.4      RR7       R# r(  )r*   rM   r	   r   r   r   r   r   r[  r   r-   r*  s   &  r.   test_hessian_update_strategy)TestNewtonCg.test_hessian_update_strategy  sz    XXtSk"$,$6$6%-]]_$('2	4
 {{{'CKK'{rxxA/d;r1   r   N)
r   r   r   r   r+  r1  r4  r7  r   r   r   s   @r.   r&  r&    s     <
<<< <r1   r&  c                  	   \         P                  P                  p \        P                  ! . RO4      p\        P                  ! . RO4      p\        P                  ! . RO4      p\        P                  ! . RO4      pV\        P                  ! . RO4      R	R3V\        P                  ! . RO4      R
^3V\        P                  ! . RO4      RR3V\        P                  ! . RO4      R^3V\        P                  ! . RO4      R
^3V\        P                  ! . RO4      RR3V\        P                  ! . RO4      RR3V\        P                  ! . RO4      R	R3V\        P                  ! . RO4      RR
3V\        P                  ! . RO4      RR3V\        P                  ! . RO4      R^3V\        P                  ! . RO4      RR
3V\        P                  ! . RO4      R	R33pV F+  w  rgrV ! WgW4      w  r\        WRR7       \        WRR7       K-  	  \        P                  ! \        P                  ) R
\        P                  ) R.4      p\        P                  ! \        P                  ^R\        P                  .4      pV\        P                  ! . RO4      \        P                  ) \        P                  3V\        P                  ! . RO4      R
^3V\        P                  ! . RO4      \        P                  ) R3V\        P                  ! . RO4      R\        P                  3V\        P                  ! . RO4      R
^3V\        P                  ! . RO4      R\        P                  3V\        P                  ! . RO4      \        P                  ) \        P                  3V\        P                  ! . RO4      RR
3V\        P                  ! . RO4      \        P                  ) R3V\        P                  ! . RO4      R\        P                  3V\        P                  ! . RO4      RR
3V\        P                  ! . RO4      R\        P                  33pV F+  w  rgrV ! WgW4      w  r\        WRR7       \        WRR7       K-  	  R# )g333333@r5   r   ffffff@gffffff?g333333@r:   r   N333333rc  r   r  )r;  rc  r   r  )r   r(   r:  rH  rb   r^   r^   r^   )rb   r   r  r^   r_   r^   r^   r^   rb   r(   r^   r^   rb   r^   r(   r^   rb   r^   r^   r(   )r_   r(   r^   r^   )r_   r^   rc  r   )r  r^   rc  r   )r_   r^   rc  r^   g333333)r	   r  _line_for_searchr*   rM   r   r  )line_for_searchlower_boundupper_boundrV   x1	all_testsr-   alphalminlmaxmimas               r.   test_line_for_searchrL    sL   
 ((99O ((/0K((+,K 
-	 B	.	!B 
RXXm$dC0	RXXm$b!,	RXXm$dC0	RXXm$b!,	RXXm$b!,	RXXn%tS1	RXXn%tT2	RXXm$dC0	RXXm$b"-	RXXm$c3/	RXXm$b!,	RXXm$b"-	RXXn%tT2I  !*$ ;Dt,t, !* ((RVVGR"&&"56K((BFFAsBFF34K 
RXXm$rvvgrvv6	RXXm$b!,	RXXm$rvvgs3	RXXm$b"&&1	RXXm$b!,	RXXn%tRVV4	RXXm$rvvgrvv6	RXXm$b"-	RXXm$rvvgs3	RXXm$b"&&1	RXXm$b"-	RXXn%tRVV4I !*$ ;Dt,t, !*r1   c                     \         P                  P                  p R  p\        P                  ! . R
O4      pV! V4      p\        P                  ! \        P
                  ) .^,          4      p\        P                  ! \        P
                  .^,          4      p\        P                  ! . RO4      R3\        P                  ! . RO4      ^3\        P                  ! . RO4      R3\        P                  ! . RO4      R3\        P                  ! . RO4      R3\        P                  ! . RO4      R3\        P                  ! . RO4      R33pV F  w  rxV ! WVVRR7      w  rp\        W! W,          4      RR7       \        WV,          RR7       \        WV,          RR7       V ! WVRVVVR7      w  rp\        W! W,          4      RR7       \        WV,          RR7       \        WV,          RR7       K  	  R	# )c                 v    \         P                  ! V \         P                  ! . RO4      ,
          ^,          4      # r_   )r.  r  r5   皙ٿr*   rB   rM   r,   s   &r.   r   $test_linesearch_powell.<locals>.func  %    vvq288$:;;ABBr1   r5         ?皙?r   )fvalr6  r:   r   r6  rC  rD  rV  Nr<  r=  rc  r>  r?  r@  rP  r.  r^   r(   r^   rb   r^   r(   r(   r  r^   rc  r(   )r	   r  _linesearch_powellr*   rM   r  r   linesearch_powellr   r  rV  rC  rD  rF  xilr~   r   r8   s               r.   test_linesearch_powellra    s    **==C	-	 B8D((RVVG9q=)K((BFF8a<(K 
-	 "%	-	 !$	-	 #&	-	 #&	.	!4(	-	 #&	.	!4(I +Db154Ai4<d3r6-	r65+Dbd8C8C157i 	4<d3r6-	r65 r1   c                     \         P                  P                  p R  p\        P                  ! . RO4      pV! V4      p\        P                  ! R.^,          4      p\        P                  ! R.^,          4      p\        P                  ! . RO4      R3\        P                  ! . RO4      ^3\        P                  ! . RO4      R3\        P                  ! . RO4      R3\        P                  ! . RO4      R3\        P                  ! . RO4      R3\        P                  ! . RO4      R33pV FW  w  rxV ! WVRVVVR7      w  rp\        W! W,          4      RR7       \        WV,          RR7       \        WV,          RR7       KY  	  \        P                  ! R.^,          R.,           4      p\        P                  ! R
.^,          R.,           4      p\        P                  ! . RO4      R3\        P                  ! . RO4      R
3\        P                  ! . RO4      R
3\        P                  ! . RO4      R3\        P                  ! . RO4      R	3\        P                  ! . RO4      R
3\        P                  ! . RO4      R33pV FW  w  rxV ! WVRVVVR7      w  rp\        W! W,          4      RR7       \        WV,          RR7       \        WV,          RR7       KY  	  \        P                  ! . RO4      pV! V4      p\        P                  ! . RO4      R3\        P                  ! . RO4      R
3\        P                  ! . RO4      R
3\        P                  ! . RO4      R33pV Fd  w  rxV ! WVRVVVR7      w  rp\        W! W(V,          ,           4      RR7       \        WW,          ,           RR7       \        WV,          RR7       Kf  	  \        P                  ! . RO4      pV! V4      p\        P                  ! R\        P                  ) \        P                  ) R.4      p\        P                  ! \        P                  R
\        P                  R.4      p\        P                  ! . RO4      R3\        P                  ! . RO4      R
3\        P                  ! . RO4      R3\        P                  ! . RO4      R3\        P                  ! . RO4      R	3\        P                  ! . RO4      R3\        P                  ! . RO4      R33pV FW  w  rxV ! WVRVVVR7      w  rp\        W! W,          4      RR7       \        WV,          RR7       \        WV,          RR7       KY  	  \        P                  ! . RO4      pV! V4      p\        P                  ! . RO4      R3\        P                  ! . RO4      R
3\        P                  ! . RO4      R3\        P                  ! . RO4      R33pV Fd  w  rxV ! WVRVVVR7      w  rp\        W! W(V,          ,           4      RR7       \        WW,          ,           RR7       \        WV,          RR7       Kf  	  R# )c                 v    \         P                  ! V \         P                  ! . RO4      ,
          ^,          4      # rO  rQ  r,   s   &r.   r   ,test_linesearch_powell_bounded.<locals>.func#	  rS  r1   r  r5   rT  rU  r   rW  r:   r   r`   g?r  r   Nr<  g       r=  rc  r>  r?  r@  rP  rX  rY  rZ  r[  g333333ӿg333333ÿ)r.  r^   r^   r   g333333)r	   r  r\  r*   rM   r   r  r]  s               r.   test_linesearch_powell_boundedre  	  s    **==C	-	 B8D ((C57#K((B46"K 
-	 "%	-	 !$	-	 #&	-	 #&	.	!4(	-	 #&	.	!4(I +Dbd8C8C157i 	4<d3r6-	r65  ((C57bT>*K((C57bT>*K 
-	 #&	-	 #&	-	 #&	-	 #&	.	!2&	-	 #&	.	!4(I +Dbd8C8C157i 	4<d3r6-	r65  
.	!B8D 
-	 "%	-	 #&	-	 #&	-	 $'	I +Dbd8C8C157i 	4V,48;T2	r65  
-	 B8D ((C"&&266'267K((BFFC45K 
-	 #&	-	 #&	-	 #&	-	 #&	.	!2&	-	 #&	.	!4(I +Dbd8C8C157i 	4<d3r6-	r65  
.	!B8D 
-	 "%	-	 #&	-	 #&	-	 $'	I +Dbd8C8C157i 	4V,48;T2	r65 r1   c                     a \         P                  ! ^ ^ .R^.4      oV3R lp \         P                  ! V R^.RSR7       \         P                  ! ^ .^.R.R7      oR p\         P                  ! VR.R	SR
7       R# )r^   333333?c                    < V w  rV SP                   8  P                  4       '       d$   V SP                  8*  P                  4       '       g   Q hV^,          V^,          ,           # rU  )lbrL   ub)r-   r  r	  r6  s   &  r.   r   test_powell_limits.<locals>.fun	  sO    VYY##%%1		>*>*>*@*@@@AvQr1   r"  r|  T)ri  rj  keep_feasiblec                 N    V ^ 8  d   V ^8:  g   Q h\         P                  ! V 4      # ri  r)   r,   s   &r.   r    test_powell_limits.<locals>.func	  s#    Av!q&  vvayr1   ra   r  )r   rV   r   r6  N)r	   r
   r   )r   r   r6  s     @r.   test_powell_limitsro  	  sq    __aVc2Y/F
 csBiH __!dWEF $C5&Ir1   c                      \         R  R .p V  FF  p\        P                  ! VR^.RR7      p\        P                  ! VP
                  4      '       d   KF  Q h	  R# )c                 @    \         P                  ! \        V 4      4      # r@   r*   rM   r   r,   s   &r.   r  $test_powell_output.<locals>.<lambda>	  s    RXXeAh/r1   c                 B    \         P                  ! \        V 4      .4      # r@   rr  r,   s   &r.   r  rs  	  s    288U1XJ;Or1   rg  r"  )rV   r   N)r   r	   r   r*   isscalarr   )funsr   r   s      r.   test_powell_outputrw  	  sK    /1OPDb	(C{{377#### r1   c                      a  ] tR tRt o ]! ]P                  4      R 4       t]! ]P                  4      R 4       t	]! ]P                  ]P                  4      R 4       tRtV tR# )	TestRoseni	  c                    VP                  . RO4      p\        \        P                  ! V4      VP                  R4      4       R# )r(   rb   Nr]   )r  r"   r	   r   rp   r3  r-   s   && r.   
test_rosenTestRosen.test_rosen	  s0     JJy!q)

2	(r1   c           	         VP                  . RO4      p\        \        P                  ! V4      VP	                  W!P                  R4      P
                  R7      4       R# )r(   r_   )r  N)r(   r(   r(   r(   )r  r"   r	   r   
zeros_liker  r{  s   && r.   test_rosen_derTestRosen.test_rosen_der	  sB    JJ|$**1-azz"~/C/CD	Fr1   c                &   VP                  R 4      pVP                  . RO4      pVP                  . RO4      p\        P                  ! W44      pVP                  WBP                  4      p\        P
                  ! V4      V,          p\        WV4       R# )r_   N)rH  r   ru  )r   r   r   )r  r	   rosen_hess_prodr  r  r   r"   )rp   r3  oner-   r   hpdothps   &&     r.   test_hess_prodTestRosen.test_hess_prod	  sl    jjn JJy!JJy!%%a+IIa###A&*"r1   r   N)r   r   r   r   r#   r	   r   r|  r   r  r   r  r  r   r   r   s   @r.   ry  ry  	  si     x~~&( '( x))*F +F
 x**H,D,DE	# F	#r1   ry  c                    V w  rW,          V,           ^,
          pWV,          ,           ^,
          pW3,          WD,          ,           # )zl
R^2 -> R^1 test function for optimization. The function has four local
minima where himmelblau(xopt) == 0.
r   )r   r-   rx  r  r	  s   &    r.   r.  r.  	  s7    
 DA	a"A	aC!A39r1   c                 n   V w  r\         P                  ! ^V^,          ,          ^V,          V,          ,           ^*V,          ,
          ^V^,          ,          ,           ^,
          ^V^,          ,          ^V,          V,          ,           ^V^,          ,          ,           ^V,          ,
          ^,
          .4      # r  r  r   r-   rx  s   &  r.   rS   rS   	  s    DA88Qq!tVac!e^bd*Qq!tV3b8q!tVac!e^a1f,r!t3b8: ; ;r1   c                 "   V w  r\         P                  ! ^V^,          ,          ^V,          ,           ^*,
          ^V,          ^V,          ,           .^V,          ^V,          ,           ^V,          ^V^,          ,          ,           ^,
          ..4      # )   r  r  s   &  r.   rT   rT   	  sp    DA88bAg!mb(!A#!)4cAaCi1r!Q$w!346 7 7r1   rb   c                      R  p R pR pRRRV /RRRV/RRRV/3pR p\         P                  ! V. RORVR7      p\        VP                  . ROR	R
7       R# )c                     \         P                  ! ^RV ^ ,          ,          ,
          RV ^,          ,          ,
          RV ^,          ,          ,
          .4      # )   rJ   r   r  r  r,   s   &r.   r   0test_minimize_multiple_constraints.<locals>.func	  s:    xxcAaDj31:5qtCDEEr1   c                 >    \         P                  ! V ^,          .4      # r'   r  r,   s   &r.   func11test_minimize_multiple_constraints.<locals>.func1	      xx1r1   c                 >    \         P                  ! V ^,          .4      # rU  r  r,   s   &r.   r7  1test_minimize_multiple_constraints.<locals>.func2	  r  r1   r  r  r   c                 Z    RV ^ ,          V ^,          ,           V ^,          ,           ,          # )r(   rc  r   r,   s   &r.   r~   -test_minimize_multiple_constraints.<locals>.f	  s"    QqTAaD[1Q4'((r1   r  r  r  r   Nr  )}   r^   r^   r]  )r   r  r7  r  r~   r   s         r.   "test_minimize_multiple_constraintsr  	  sl    F   VUD)VUE*VUE*,D) 

Ayd
KCCEE;U3r1   c                   h   a  ] tR tRt o R t]P                  P                  ^4      R 4       tRt	V t
R# )TestOptimizeResultAttributesi
  c                    ^^.V n         \        P                  V n        \        P                  V n        \        P                  V n        \        P                  V n	        RR.V n
        R# )ru  N)rb   r+  )rV   r	   r   r   r   r   r   r   r  r   r6  ro   s   &r.   rq   )TestOptimizeResultAttributes.setup_method
  sK    a&NN	%%''	--
 ),r1   c                D   . ROpRR ./p\          F  p\        P                  ! 4       ;_uu_ 4        \        P                  ! RR\        4       \
        P                  ! V P                  V P                  VV P                  V P                  V P                  R7      pRRR4       V F>  pW29   d   WRV,          9   d   K  \        XV4      '       g   Q hV\        V4      9   d   K>  Q h	  \        XP                  \         4      '       d   K  Q h	  R#   + '       g   i     L|; i)r  r  r   z7Method .+ does not use (gradient|Hessian.*) information)r   r   r   r   N)r  r   r-   r   r   r   r[  )r   rD  rE  r  r  r	   r   r   rV   r   r   r   rv   dirr  r[  str)rp   
attributesskipr   r   	attributes   &     r.   test_attributes_present4TestOptimizeResultAttributes.test_attributes_present
  s    !
5'"&F((**''+-;= ''		4776,0HH499.2jj:	 + (	>i<&?sI.... CH,,, ( ckk3////! '**s   A+DD)r6  r   r   r   r   rV   N)r   r   r   r   rq   r   r  r  r  r   r   r   s   @r.   r  r  
  s-     - [[10 0r1   r  c                     V w  r#Vw  rErgrrrrpWB^,          ,          WR,          V,          ,           Wc^,          ,          ,           Wr,          ,           W,          ,           V	,           # rU  r   r  r   r-   rx  r  r	  rt   r>  r   r~   r  rL  r  rK  r  r`  r&  s   &*               r.   f1r  '
  sR    DA06-A!aA!1Hquqy 1!t8+ac1AC7!;<r1   c                     V w  r#Vw  rErgrrrrpV
) \         P                  ! W+,
          ^,          W<,
          ^,          ,           ) V,          4      ,          # rU  r)   r  s   &*               r.   f2r  -
  L    DA06-A!aA!BrvvqAC!8+,u4556r1   c                     V w  r#Vw  rErgrrrrpV) \         P                  ! W.,
          ^,          W?,
          ^,          ,           ) V,          4      ,          # rU  r)   r  s   &*               r.   f3r  3
  r  r1   c                 d    \        V .VO5!  \        V .VO5!  ,           \        V .VO5!  ,           # r@   )r  r  r  )r  r   s   &*r.   
brute_funcr  9
  s*    a>&>BqN6N*R^F^;;r1   c                      a  ] tR tRt o R tR tR tR t]P                  P                  ^
4      R 4       tR tR tR	tV tR
# )	TestBrutei=
  c                    RV n         \        R^R4      \        R^R4      3V n        \        P                  ! RR.4      V n        R# )r         ?gi?Nr   rH  ro  r   r  r  ,   rc  r      r(   r  ra   r  g_})r   slicerrangesr*   rM   rh   ro   s   &r.   rq   TestBrute.setup_method?
  s<    Db!T*E"a,>?+z!:;r1   c                    \        V.VO5!  # r@   )r  )rp   r  r   s   &&*r.   r  TestBrute.brute_funcD
  s    !%f%%r1   c                "   \         P                  ! \        V P                  V P                  R \         P
                  R7      p\        V^ ,          V P                  RR7       \        V^,          \        V P                  .V P                  O5!  RR7       \         P                  ! \        V P                  V P                  R \         P                  R7      p\        V^ ,          V P                  RR7       \        V^,          \        V P                  .V P                  O5!  RR7       \         P                  ! V P                  V P                  V P                  R \         P                  R7      p\        V^ ,          V P                  RR7       R# )Tr   r   finishr  r   N)	r	   bruter  r  r   r?  r   rh   r   )rp   resbrutes   & r.   
test_bruteTestBrute.test_bruteH
  s
   >>*dll.28==JT]]>Z%L%L!	# >>*dll.2)1):):< 	T]]>Z%L%L!	#
 >>$//4<<'+{{)1):):< 	T]]>r1   c                B    R  p\         P                  ! VR.^RR7       R# )c                     \        V P                  4      ^8X  g   Q hV P                  ^ ,          ^8X  g   Q hV ^,          # r'   )r  r  r,   s   &r.   r~   TestBrute.test_1D.<locals>.fb
  s5    qww<1$$$771:?"?6Mr1   N)Nsr  r  )r	   r  )rp   r~   s   & r.   test_1DTestBrute.test_1D_
  s    	
 	q7)$7r1   c           	     <   \         P                  ! \        V P                  V P                  R RR7      p\         P                  ! \        V P                  V P                  R R^R7      p\        VR,          VR,          4       \        V^ ,          V^ ,          4       R# )TNr  )r   r   r  workersrc  )r	   r  r  r  r   r   )rp   r  	resbrute1s   &  r.   test_workersTestBrute.test_workersi
  sr     >>*dll.24A NN:t||$++/3D!M	 		"x|4	!hqk2r1   c           	     2  a \         P                  P                  R 4      oV3R lpRp\        P                  ! \
        VR7      ;_uu_ 4        \        P                  ! W P                  V P                  RR7       RRR4       R#   + '       g   i     R# ; i)r7   c                 4   < SP                  ^4      R,          # r  r  )r  r   r<   s   &*r.   r   ,TestBrute.test_runtime_warning.<locals>.funcx
  s    ::a=4''r1   zFfinal optimization did not succeed.*|Maximum number of function eval.*r   T)r   r   N)
r*   r6   r  r   r  r  r	   r  r  r   )rp   capsysr   r  r<   s   &&  @r.   r  TestBrute.test_runtime_warningu
  s\    ii##D)	( W\\.44NN4DKKdK 5444s   .BB	c                n    R  p\         P                  ! V\        R^R4      3^R7      p\        V^ 4       R# )c                      W^ ,          ,          # ri  r   )r-   r   s   &*r.   r~   +TestBrute.test_coerce_args_param.<locals>.f
  s    Q<r1   r  r  Nr  )r	   r  r  r   )rp   r~   r  s   &  r.   test_coerce_args_param TestBrute.test_coerce_args_param
  s1    	  >>!eB3&7%9B!$r1   )r   r  rh   N)r   r   r   r   rq   r  r  r  r   r  r  r  r  r  r   r   r   s   @r.   r  r  =
  sL     <
&?.8 [[2	3 	3L% %r1   r  c                    aaaa	 ^ RI p ^ RIo	V	3R loV	3R loRoVV3R lpVV3R lpV P                  P                  4       ;_uu_ 4       p. pVP	                  VP                  V4      4       VP	                  VP                  V4      4       V F  pVP                  4        K  	  RRR4       R#   + '       g   i     R# ; i)r^   Nc                 F   < SP                  R 4       V ^ ,          ^,          # r=   sleepr-   times   &r.   
objective1*test_cobyla_threadsafe.<locals>.objective1
  s    

3tQwr1   c                 T   < SP                  R 4       V ^ ,          ^,
          ^,          # r  r  r  s   &r.   
objective2*test_cobyla_threadsafe.<locals>.objective2
  s     

3!Q{r1   COBYLAc                  8   < \         P                  ! SR .S R7      # rb   r   r  )
min_methodr  s   r.   
minimizer1*test_cobyla_threadsafe.<locals>.minimizer1
         '*e-79 	9r1   c                  8   < \         P                  ! SR .S R7      # r  r  )r  r  s   r.   
minimizer2*test_cobyla_threadsafe.<locals>.minimizer2
  r  r1   )concurrent.futuresr  futuresThreadPoolExecutorrz   submitrd  )

concurrentr  r  pooltasksru   r  r  r  r  s
         @@@@r.   test_cobyla_threadsafer  
  s    
  J9
9
 
			.	.	0	0DT[[,-T[[,-AHHJ 	 
1	0	0	0s   AB11C	c                   z   a  ] tR tRt o R tR t]P                  P                  ^
4      R 4       t	R t
R tRtV tR# )	TestIterationLimitsi
  c                :    \         P                  ! 4       V n        R # r@   )rj   rk   r  ro   s   &r.   rq    TestIterationLimits.setup_method
  s    !)r1   c                   \        V P                  R 4      '       g   ^ V P                  n        V P                  ;P                  ^,          un        \        P                  ! V^ ,          ^,          V^,          ^,          ,           4      \        P
                  ! V^ ,          V^,          4      r2\        P                  ! V^,          V,           4      VR,          ,           # )rt   ra   )rv   r  rt   r*   r  arctan2rA   )rp   rg  rW   ru   s   &&  r.   	slow_funcTestIterationLimits.slow_func
  s    t}}c**DMMO1wwqtQwqtQw'AaD!A$)?1vvadQh#%%r1   c                *    V P                  R ^4       R# )r  Ncheck_limitsro   s   &r.   test_neldermead_limit)TestIterationLimits.test_neldermead_limit
  s    --r1   c                *    V P                  R R4       R# )r  r\   Nr  ro   s   &r.   test_powell_limit%TestIterationLimits.test_powell_limit
  s    (D)r1   c                   R R .^^.^^.3 EF  pR	 F  p^ V P                   n        \        P                  ! V P                  VVRV/R7      pV P                   P                  VR,          8X  g   Q hVR,          '       d   VR,          V8  g   Q hK  VR,          V8  d   K  Q h	  R	 FZ  p\        P                  ! V P                  VVRV/R7      pVR,          '       d   VR,          V8:  g   Q hKJ  VR,          V8  d   KZ  Q h	  ^2^2.RR.R\
        P                  .3 F  w  rF^ V P                   n        \        P                  ! V P                  VVRVRV/R7      pV P                   P                  VR,          8X  g   Q hVR,          '       d!   VR,          V8  d   VR,          V8:  g   Q hK  VR,          V8  d   K  VR,          V8  d   K  Q h	  \
        P                  R.R\
        P                  .3 F  w  rF^ V P                   n        \        P                  ! V P                  VVRVRV/R7      pV P                   P                  VR,          8X  g   Q hVR,          '       d7   Vf   VR,          V^,          8  g   Q hK  VR,          V^,          8:  g   Q hK  VR,          V^,          8  d   K  VR,          V^,          8  d   K  Q h	  EK  	  R# )
r=     r  r  r   r   ri   r  N)rF  i  r	  )r  rt   r	   r   r  r*   r  )rp   r   default_itersstart_vmfevr   mits   &&&    r.   r   TestIterationLimits.check_limits
  s   c
QFQF3G'"#''/51940@B }}#f+555y>>v;---v;$... ( '''/51:C0@B y>>u:,,,u:,,, '  "2httRVVnE	"#''/51:C1941AB }}#f+555y>>v;-#e*2CCC2Cv;$.#e*2CCC F  "vvtntRVVn=	"#''/51:C1941AB }}#f+555y>>|"6{]1_<<<"5z]1_<<<K=?:"5z]1_<> = >= 4r1   )r  N)r   r   r   r   rq   r  r   r  r  r  r  r  r   r   r   s   @r.   r  r  
  sA     *& [[2. .*-> ->r1   r  c            	      z   R  p R pR p. ROpV FN  p\         P                  ! V \        P                  ! R.4      VR7      pVP                  P
                  R8X  d   KN  Q h	  . R	OpV FO  p\         P                  ! V \        P                  ! R.4      WAVR7      pVP                  P
                  R8X  d   KO  Q h	  R# )
c                     W ,          # r@   r   r,   s   &r.   r   2test_result_x_shape_when_len_x_is_one.<locals>.fun
  s	    ur1   c                     R V ,          # r  r   r,   s   &r.   r   2test_result_x_shape_when_len_x_is_one.<locals>.jac
  s    Avr1   c                 2    \         P                  ! R ..4      # r  r  r,   s   &r.   r   3test_result_x_shape_when_len_x_is_one.<locals>.hess
  s    xx"r1   r=   r   r   N)	r  r"  r   r   r_  r  r  COBYQAr  r'   )r  r#  r!  r$  r"  ra  )r	   r   r*   rM   r-   r  )r   r   r   r  r   r   s         r.   %test_result_x_shape_when_len_x_is_oner  
  s     ,GRXXse_VDuu{{d""" 
,GRXXse_V%)+uu{{d""" r1   c                   ,   a  ] tR tRt o R tR tRtV tR# )FunctionWithGradienti
  c                :    \         P                  ! 4       V n        R # r@   )rj   rk   number_of_callsro   s   &r.   rP  FunctionWithGradient.__init__  s    (0r1   c                    \        V P                  R 4      '       g   ^ V P                  n        V P                  ;P                  ^,          un        \        P                  ! V^,          4      ^V,          3# r   )rv   r  rt   r*   rB   rT  s   &&r.   rU  FunctionWithGradient.__call__  sU    t++S11%&D  "!#vvad|QU""r1   )r  NrW  r   s   @r.   r  r  
  s     1# #r1   r  c                      \        4       # r@   )r  r   r1   r.   function_with_gradientr     s    !!r1   c                    \        V 4      p\        P                  ! R R.4      p\        V! V4      R4       V P                  P
                  ^8X  g   Q h\        VP                  V4      ^V,          4       V P                  P
                  ^8X  g   Q R4       h\        V! ^V,          4      RRR7       V P                  P
                  ^8X  g   Q R4       hR# )r_   r  r  zHfunction is not recomputed if gradient is requested after function valueg      4@(different input triggers new computationr+  N)r   r*   rM   r   r  rt   
derivativer   memoized_functionrV   s   &  r.   )test_memoize_jac_function_before_gradientr&    s    "#9:	3*	B%b)3/!1133q888%004a"f=!1133q8 8	888 !b&!4:< "1133q8 3238r1   c                    \        V 4      p\        P                  ! R R.4      p\        VP	                  V4      ^V,          4       V P
                  P                  ^8X  g   Q h\        V! V4      R4       V P
                  P                  ^8X  g   Q R4       h\        VP	                  ^V,          4      ^V,          RR7       V P
                  P                  ^8X  g   Q R4       hR# )r_   r  r  zHfunction is not recomputed if function value is requested after gradientr"  r+  N)r   r*   rM   r   r#  r  rt   r$  s   &  r.   )test_memoize_jac_gradient_before_functionr(  -  s    "#9:	3*	B%004a"f=!1133q888%b)3/!1133q8 8	888 $$QV,a"f:< "1133q8 3238r1   c           	        \        V 4      pVP                  p\        P                  ! 4       p\        P
                  ! RR.4      p\        WRW#RR4      pV P                  P                  ^8X  g   Q hVP                  VR,           4       V P                  P                  ^8X  g   Q hVP                  VR,           4       V P                  P                  ^8X  g   Q hR# )zTests that using MemoizedJac in combination with ScalarFunction
and BFGS does not lead to repeated function evaluations.
Tests changes made in response to GH11868.
r_   ra   Nr=   rJ   r   )
r   r#  r	   r   r*   rM   r   r  rt   r   )r   r%  r   r   rV   scalar_functions   &     r.   test_memoize_jac_with_bfgsr+  @  s    
 ##9:

&
&C==?D	3*	B$r3dD:O!1133q888S!!1133q888S!!1133q888r1   c            	          \        4       ;_uu_ 4        \        P                  ! R  \        P                  ) \        P                  RR7       RRR4       R#   + '       g   i     R# ; i)c                 >    \         P                  ! V ^,          .4      # rU  r  r,   s   &r.   r  test_gh12696.<locals>.<lambda>Y  s    bhh1v&r1   Fr   N)r   r	   r  r*   r7  r   r1   r.   test_gh12696r/  U  s<    			&E	C 
			s   9AA'	c                    aaaaa \         P                  P                  R 4      p V P                  ^4      p\         P                  ! . RO4      o\         P                  ! . RO4      pSV8H  oRVV3R lloV3R loV3R loV3R lpV3R lpV3R lpV3R lpV3R	 lpV3R
 lp\	        V\         P
                  ) ^ 4      p	\	        V\         P
                  ) ^ V4      p
\	        V\         P
                  ) ^ 4      p\	        V\         P
                  ) ^ V4      pRpRSRR/RSRS/RVV3R lRR/3pR \        3pR. . 3W3W3V
.V
.3V.V.3W.W.3W.W.3W.W.33	pRW43pRVRVRVRVRVRSRVRVRS/	pV# )i/  Tc                    < V'       d   V P                   ^8X  g   Q hV'       d   \        V S,          SS,          4       R# R# )r   N)r  r   )r-   
check_sizecheck_valuesi_ebri  s   &&&r.   check_x(setup_test_equal_bounds.<locals>.check_xf  s0    66Q;;AdGRX. r1   c                 @   < S! V 4       \         P                  ! V 4      # r@   r  r-   r5  s   &r.   r   %setup_test_equal_bounds.<locals>.funcl  s    
~~a  r1   c                 @   < S! V 4       \         P                  ! V 4      # r@   )r	   r   r8  s   &r.   r   %setup_test_equal_bounds.<locals>.gradp  s    
!!!$$r1   c                    < S! V 4       R # r@   r   )r-   r   r5  s   &*r.   rZ  )setup_test_equal_bounds.<locals>.callbackt  s
    
r1   c                 \   < \        V \        4      '       g   Q hS! V P                  4       R # r@   )r  r   r-   )r`  r5  s   &r.   	callback2*setup_test_equal_bounds.<locals>.callback2w  s&    -~>>>>#%%&r1   c                 8   < S! V R R7       V R,          ^,
          # )Fr3  :r^   r(   Nr   r8  s   &r.   constraint1,setup_test_equal_bounds.<locals>.constraint1{  s    &vzr1   c                 R   < S! V R R7       \         P                  ! V 4      p^V^ &   V# FrB  r*   r  r-   dcr5  s   & r.   	jacobian1*setup_test_equal_bounds.<locals>.jacobian1  )    &]]11	r1   c                 8   < S! V R R7       V R,          R,
          # )FrB  :r   rH  Nra   r   r8  s   &r.   constraint2,setup_test_equal_bounds.<locals>.constraint2  s    &v|r1   c                 R   < S! V R R7       \         P                  ! V 4      p^V^&   V# rF  rG  rH  s   & r.   	jacobian2*setup_test_equal_bounds.<locals>.jacobian2  rL  r1   r   r   Fc                 $   < S! V 4      S! V 4      3# r@   r   )r-   r   r   s   &r.   r  )setup_test_equal_bounds.<locals>.<lambda>  s    Qa1r1   c                 *    \        \        W4      4      # r@   )listzipri  rj  s   &&r.   r  rT    s    $s2{"3r1   Nr  kwdsbound_typesr  	callbacksri  rj  rV   r4  )r^   r   rc  r.  )rH  r   r   r.  )TT)r_  r  r  r  )r*   r6   r  rM   r   r  r
   )r<   rV   rj  rZ  r?  rC  rJ  rN  rQ  c1ac1bc2ac2br  rY  rZ  r  r[  datar5  r   r   r4  ri  s                      @@@@@r.   setup_test_equal_boundsra  ^  s   
))


&C	AB	"	#B	/	"B"HD/ /!%' kBFF7A
6C
kBFF7Ay
AC
kBFF7A
6C
kBFF7Ay
AC +G D%'D%&1DD 4K  "b:zEC5>SEC5>J
+J
+J
+-K x+Iwm[;Y"dBb&$8D Kr1   z0Failures due to floating point issues, not logicdicts)mode	Compilersfortrannamez
intel-llvmr+  r  rY  
bound_typerZ  r  rZ  r[  c                   \         P                  ! 4       R8X  d/   V R8X  d(   VR,          RJ d   Ve   \        P                  ! R4       \        R,          \        R,          re\        R	,          \        R
,          rVw  rV	'       d   V R8X  g   \        P                  ! R4       V R9   dX   \        V4      '       dG   \        P                  ! V4      pR\        VP                  4      9   d   \        P                  ! R4       W8g  pV! WV4      pVP                  R	VRV RVRV	RV/4       \        P                  ! R/ VB p\        P                  ! \        P                  Wp\        P                  VV
R7      pVP                  '       g   Q h\!        VP"                  VP"                  RR7       \!        VP$                  VP$                  RR7       V'       g   VR,          RJ d   \&        P(                  VP*                  V&   VP*                  P,                  ^ ,          ^8X  g   Q h\!        VP*                  V,          VP*                  V,          RR7       VR,          '       g   V	'       g   \/        V\0        4      '       g{   R p\        P                  ! VV^ ^.,          V VR,          R7      p\!        VP"                  VP"                  4       \!        VP$                  ^ ^.,          VP$                  RR7       R# R# R# R# )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 aarchri  rj  rV   r4  r  z)Only SLSQP supports nonlinear constraintsr`  z,SLSQP, TNC don't support intermediate_resultr   r6  r  rZ  )r   r   r6  r  r%  r   gMb@?r:   c                     \         P                  ! \         P                  ^\         P                  R.4      pW^ ^.&   \        P                  ! V4      # r  )r*   rM   r  r	   r   )r-   new_xs   & r.   r   test_equal_bounds.<locals>.fun  s;    HHbffa45E1a&M>>%((r1   :NNr   r  g>)r  r  r   )platformmachiner   r  eb_datacallableinspect	signaturer8  
parametersr  r	   r   r   r   r   r   r   r-   r*   r  r   r  r  r
   )r   rY  rg  r  rZ  ri  rj  rV   r4  test_constraintsreference_constraintssig	fd_neededr6  r   expectedr   fd_ress   &&&&&             r.   test_equal_boundsrz    sB     	i'FeOUu$)=23T]GDMt}gfo.9+' 1?@!!hx&8&8) C$77KKFG ":IFKKr8VXv 0*hH I



#d
#C  %-%7%7-BDH
 ;;;;CGGX\\7CEE8::D1DK5(VVT77==q   CGGDM8<<#5DAKK+z&&/I/I	)
 ""3#%q!f:*0*0+7 	, 	q!fvxxd;% 0J+Kr1   c                 F   RR lpRR.pRp\         P                  ! WW R7      pVP                  '       g   Q h\        VP                  V! RR.4      4       VP
                  ^8X  g   Q hVP                  R8X  g   Q hRp\         P                  ! WW VR7      pVP                  '       g   Q h\        VP                  V! RR.^4      4       V P                  4       R8X  EdB   R p\        V\        P                  ) R	4      p\         P                  ! WW V.R
7      pVP                  RJ g   Q h\        VP                  V! RR.4      4       VP
                  ^8X  g   Q hRpVP                  P                  V4      '       g   Q h\        V\        P                  ) ^4      p\         P                  ! WW V.R
7      pVP                  RJ g   Q h\        VP                  V! RR.4      4       VP
                  ^8X  g   Q hRpVP                  P                  V4      '       g   Q hR# R# )r(   c                 N    \         P                  P                  V 4      V,           # r@   )r*   linalgnorm)r-   p1s   &&r.   r~    test_all_bounds_equal.<locals>.f  s    yy~~a 2%%r1   r_   r[  r  z/All independent variables were fixed by bounds.r  r  c                 .    \         P                  ! V 4      # r@   rV  r,   s   &r.   con"test_all_bounds_equal.<locals>.con  s    66!9r1   rb   )r6  r   r  Fz3All independent variables were fixed by bounds, butTz8All independent variables were fixed by bounds at valuesNr'   r  )r   r   )r_   r\  rU  )r	   r   r   r   r   r   r[  upperr   r*   r  r  )	r   r~   r6  rV   r   r   r  nlcr[  s	   &        r.   test_all_bounds_equalr    s   & fF	B


A&
@C;;;;CGGQSz]+88q==;;KKKKD


A&d
KC;;;;CGGQSz1-.||~ 	!#w4&cU
 {{e###C:/xx1}}G{{%%g....!#w2&cU
 {{d"""C:/xx1}}L{{%%g....+ !r1   c                      R  p R pRRRV/.pR.^,          pR	V^&   \         P                  ! V . R
ORVVR7       V^ ,          R,          V8X  g   Q hR# )c                     V ^ ,          ^,          V ^,          ^,          ,           V ^,          V ^,          ,          ,           # ri  r   r,   s   &r.   r~   test_eb_constraints.<locals>.f6  s.    tQw1q 1Q4!9,,r1   c                 v    V ^ ,          V ^,          ,           V ^,          ,           V ^,          ,           ^(,
          # ri  r   r,   s   &r.   cfun!test_eb_constraints.<locals>.cfun9  s+    tad{QqT!AaD(2--r1   r  r  r   r  )rV   r   r6  r  N)r^      )ru  ru  r(   r   rH  r   r  )r~   r  r  r6  s       r.   test_eb_constraintsr  3  si    -. FE401KY]FF1I	 q>% D(((r1   c                     R \         R\        R\        R\        R\        R\
        /p V P                  4        F  w  rV F  p\        W4       K  	  K  	  R RRRR	R/pVP                  4        F  w  r\        \        \        W4       K  	  R
# )r   r  rootroot_scalarlinprogquadratic_assignmentekkimaximizer  maximize_scalarN)
r   r   r   r   r   r   itemsr   rQ   rR   )solver_methodssolverr  r   unknown_solver_methods        r.   test_show_optionsr  J  s    $2*? <N *//1F(  2 	FD6
 0557j,? 8r1   c                      \         P                  ! R R .RR.R7      p \         P                  ! \         P                  \        P
                  ! ^	^	.4      RV R7       R# )r  r+  rX  r"  r|  N)r	   r
   r   r   r*   rM   r  s    r.   test_bounds_with_listr  b  sB    __Rc3Z8F288QF+HVr1   r  c                 t    \         P                  ! . RO4      p\        P                  ! \        WRR/R7       R# )r   ri   gfffffY@r  Nr   )r*   rM   r	   r   r   )r   rV   s   & r.    test_minimize_maxiter_nonintegerr  j  s*    
 
+	,BeRE8JKr1   c            	      V   R  p R pR p. ROp. R	Op\         P                  ! ^4      R,          p\         Fp  pRpRpWc9   d   TpWd9   d   Tp\        P                  ! WWgVR7      p	\        V	P                  \         P                  ! \         P                  ! V4      4      RR7       Kr  	  R# )
c                     \         P                  ! \         P                  ! V 4      4      pW,          p W ,          p \         P                  ! V 4      # r@   )r*   rP   r  rB   r  s   & r.   fquad/test_x_overwritten_user_function.<locals>.fquadw  s4    IIbggaj!		vvayr1   c                     \         P                  ! \         P                  ! V 4      4      pV ^,          p V ^V,          ,          p V # rU  )r*   rP   r  r  s   & r.   	fquad_jac3test_x_overwritten_user_function.<locals>.fquad_jac}  s3    IIbggaj!	Q	QU
r1   c                 d    \         P                  ! \         P                  ! V 4      4      R ,          # r  )r*   r   r  r,   s   &r.   
fquad_hess4test_x_overwritten_user_function.<locals>.fquad_hess  s    vvbggaj!C''r1   r5   Nr   g-C6*?r   )rn  r#  r!  r$  r"  r  )r#  r!  r$  r"  r  )	r*   ru  r   r	   r   r   r-   rP   r  )
r  r  r  meth_jac	meth_hessrV   methr   r   r   s
             r.    test_x_overwritten_user_functionr  s  s    (HI 
c	B CD$dKryy5DA !r1   c                   &   a  ] tR tRt o R tRtV tR# )TestGlobalOptimizationi  c                <   R  p\         P                  ! V^R7      \         P                  ! VR	.4      \         P                  ! VR	.4      \         P                  ! VR	.4      \         P
                  ! VR	.4      .pV F  p\        V\         P                  4      '       g   Q h\        VR4      '       g   Q h\        VR4      '       g   Q h\        VR4      '       g   Q h\        VR4      '       g   Q h\        VR4      '       g   Q h\        VR4      '       d   K  Q h	  R# )
c                     V ^,          # rU  r   r,   s   &r.   r   DTestGlobalOptimization.test_optimize_result_attributes.<locals>.func  s    6Mr1   rV   r-   r   r[  r   r   r  N)r  r   )	r	   basinhoppingdifferential_evolutionshgodual_annealingdirectr  r   rv   )rp   r   r  rd  s   &   r.   test_optimize_result_attributes6TestGlobalOptimization.test_optimize_result_attributes  s    	 ((!4224'C==y1**4';??4'3	 Ffh&=&=>>>>63''''69----69----65))))66****65)))) r1   r   N)r   r   r   r   r  r   r   r   s   @r.   r  r    s     * *r1   r  c                      \         P                  ! \        \        4      p \	        V \        \        4      R R7       \         P                  ! \        \
        4      p\	        V\        \        4      R R7       R# )r%  r   N)r	   approx_fprimerU   r.  r   rS   rT   )r  rL  s     r.   test_approx_fprimer    sJ     	}j9AA}5DA}o>AA}5DAr1   c                     R  p \        RR.^
^
.R7      p\        P                  ! V RRVR7      p\        \        P                  ! RR.4      \        P                  ! ^
^
.4      R7      p\        P                  ! V RRVR7      p\        VP                  VP                  4       \        VP                  VP                  4       R# )c                 Z    V ^ ,          ^,          V ^,          ^,
          ^,          ,           # ri  r   r,   s   &r.   r~   test_gh12594.<locals>.f  s!    tQw!A$(Q&&r1   rX  r"  r|  Nr  r   )r
   r	   r   r*   rM   r   r   r-   )r~   r6  r   r	  s       r.   test_gh12594r    s    
' Szr2h/F


A&&
ICrxxc
+"b0BCF


A&&
ICCGGSWW%CEE355!r1   c                    aa \         P                  ! . RO. RO. RO. RO. RO. RO. RO. RO. RO. RO. RO. RO. RO. RO. RO. RO. RO. RO. RO.4      o\         P                  ! . RO4      oVV3R lp VV3R lpV3R lp\         P                  ! ^4      p\        P                  ! V VVVRRRR^
/R7      pVP
                  '       g   Q h\        V ! VP                  4      4      R	8  g   Q hR
# )`]B@c                    < \         P                  ! \         P                  ! V S4      V 4      ^,          \         P                  ! V S4      ,           # rU  r*   rx   r-   HJs   &r.   r   9test_gh12513_trustregion_exact_infinite_loop.<locals>.fun:  s2    vvbffQlA&*RVVAq\99r1   c                 @   < \         P                  ! V S4      S,           # r@   r  r  s   &r.   r   9test_gh12513_trustregion_exact_infinite_loop.<locals>.jac=  s    vva|ar1   c                    < S# r@   r   )r-   r  s   &r.   r   :test_gh12513_trustregion_exact_infinite_loop.<locals>.hess@  s    r1   r$  r  r:   subproblem_maxiterrA  r   N)r  nضo}crs'@9bS.Q- 8w r  8T`w^ѿ-U\v\?炾_j@R^ݸiT[ʢ]LX?篍>'@,:Y,>7*3?)r  "J@XWmх?%6@x(,@r  yֱ@ַ#@&8L0@皇lB|sɂ(h0s?	@Fyb@{P(CfR?爏c)r  r  gϠrm@G)ܿP{ۍ`t<r  8$p&
>Jwy>b*P gc\@K@畑E1@!a"*%DS	5Vh	@k	ؒ@)r  r  r  gOhj?L ?Z"'?r  \,8Q?ZϪޡy?Mؤh?B?NR?HOAK9%?琒O$V?>fB?OZ?ϗ@dA )r  r  r  r  g3333@J_@r  r`J@"<5@|DL$d@JZRU]Ջ)T@~?@l%H@祿U"翀^sw7 [Z@ 8)&)r  r  r  r  r  g<A?r  x극B@sd^[?烙b?睶c~7%7F8Qt?Bd?7`ƭ?Vu]ܿ{jfu?BE)r  r  r  r  r  r  r  g~@sϡ*J@WE@砇}Q4q%@?.XG? }#: @pr*@ݦg	oB@TY"_2#?/)S)r  r  r  r  r  r  r  r(  gBw[E@<ۤbs@W#y4uֲ>Иe);M>''@Ѐz3jXD@!xtJ>ICı=฿crZ?)r  r  r  r  r  r  r  r)  r3  gR,@珉f`bB<tk3mIE۶T@ۄ{e6r@ǫ#u!qs =磴?)r  r  r  r  r  r  r  r*  r4  r=  g6mkS@[z4Ud@罹l25ם<9
x>HO$d@瓊_l@瀛o{폽@)r  r  r  r  r  r   r  r+  r5  r>  rF  gI~w@u'|rfF>ɋ[餭 '@}@+LcEV!@)r  r  r  r  r  r!  r  r,  r6  r?  rG  rN  gR3Z?A	#?jG@7VeeG|83緭v,?/yng)r  r  r  r	  r  r"  r  r-  r7  r@  rH  rO  rU  gGb:@G>_R@`)Y禀\ɍ^?9o2)r  r  r  r
  r  r#  r  r.  r8  rA  rI  rP  rV  r[  g6x"m@oe%JnqvyN?~+)r  r  r  r  r  r$  r  r/  r9  rB  rJ  rQ  rW  r\  r`  gbS?RBU>@WUKܿsliq?)r  r  r  r  r  r%  r  r0  r:  rC  rK  rR  rX  r]  ra  rd  g<8bM@Q;*ʔ K6@)r  r  r  r  r  r&  r  r1  r;  rD  rL  rS  rY  r^  rb  re  rg  g&Ad?aBI)r  r  r   r  r  r'  r  r2  r<  rE  rM  rT  rZ  r_  rc  rf  rh  ri  gC	f@)gqՠgbk>g6ߓR>gI눑gXF;>g)	@AnN>g\>ghM>gV֕gH4>Sg͜>gsCa!T>g'sdg6KJg~|WRg,Nh>g		>gZ|O>g+ݱf>)r*   rM   re   r	   r   r   rO   r-   )r   r   r   rV   r   r  r  s        @@r.   ,test_gh12513_trustregion_exact_infinite_looprj    s    	
:

:

8

<

9

<

:

9

;

;

8

8

;

:

:

:

8

;

9u^	:`	AB 	  	A:  
"B



3R8C ;;;;s355z?T!!!r1   ra  sparse_typec                   a V3R  lpRR.p\         P                  ! \        W0\        VR7      p\         P                  ! \        W0\        \        R7      p\        VP                  VP                  4       \        VP                  VP                  4       VP                  VP                  8X  g   Q hVP                  VP                  8X  g   Q hVP                  VP                  8X  g   Q hR# )c                 &   < S! \        V 4      4      # r@   r   )r-   rk  s   &r.   sparse_rosen_hess.test_sparse_hessian.<locals>.sparse_rosen_hessZ  s    :a=))r1   r  r   N)r	   r   r   r   r   r   r   r-   r   r   nhev)r   rk  ro  rV   
res_sparse	res_denses   &f    r.   test_sparse_hessianrt  Q  s    * bB""5"'07HJJ!!%&/jBI IMM:>>2IKK.>>Z__,,,>>Z__,,,>>Z__,,,r1   r  c                   2   a  ] tR tRt o R tR tR tRtV tR# )TestWorkersik  c                @    \         P                  ! . RO4      V n        R# )r_   N)r_   r  r\  )r*   rM   rV   ro   s   &r.   rq   TestWorkers.setup_methody  s    ((?+r1   c           	        T;'       g    \         pR RRR/pVR9   d   \        VR &   RVR&   \        V4      ;_uu_ 4       p\        P                  ! \
        V P                  3RRV/RV/VB pRRR4       \        P                  ! \
        V P                  3RV/VB p\        XP                  VP                  4       \        VP                  VP                  4       R#   + '       g   i     Lz; i)r   Nr   r  r   r  r   )ra  r!  r"  )
mapr   r$   r	   r   r   rV   r   r-   r   )rp   r  r   rY  mfr   r  s   &&&    r.   
test_smokeTestWorkers.test_smoke|  s    ..StVT*??#DK$DL  B##tww)22?EIMC ! ''477
#)
-1
 	SUUKMM*SXX{//0 ! s   -CC.	c           
        T;'       g    \         pVR9  d   \        P                  ! V R24       \        . RO. RO4      p\	        V4      ;_uu_ 4       p\
        P                  ! \        V P                  VRV/VR7      pRRR4       XP                  '       g   Q h\        VP                  ^,          R4       R#   + '       g   i     LC; i)	rY  z cannot use boundsr  r  )r6  r   r   N)rY  r  r  r  )r^   r  rb   )r+  r  r+  )rz  r   r  r
   r$   r	   r   r   rV   r   r   r-   )rp   r  r   r6  r{  r   s   &&&   r.   rz  TestWorkers.test_equal_bounds  s    ..SEEKK6("456o6  B##twwv	2vC ! {{{{a#& ! s   ,B;;C	r  N)	r   r   r   r   rq   r|  rz  r   r   r   s   @r.   rv  rv  k  s     ,1(' 'r1   rv  )Anyc                0    V ^8  d   QhR\         R\        /# r   r-   return_DUMMY_TYPEfloat)rf  s   "r.   rg  rg    s      { u r1   c                 &    \        V 4      ^,           # r'   )r   r,   s   &r.   rosen_annotatedr    s    8a<r1   c                0    V ^8  d   QhR\         R\         /# r  r  )rf  s   "r.   rg  rg    s      ; ; r1   c                     \        V 4      # r@   )r   r,   s   &r.   rosen_der_annotatedr    s    Q<r1   c                0    V ^8  d   QhR\         R\         /# r  r  )rf  s   "r.   rg  rg    s      K K r1   c                     \        V 4      # r@   rn  r,   s   &r.   rosen_hess_annotatedr    s    a=r1   c                (    V ^8  d   QhR\         RR/# )r   r`  r  Nr  )rf  s   "r.   rg  rg    s     	 	K 	D 	r1   c                     R # r@   r   )r`  s   &r.   callable_annotatedr    s    r1   z'Requires PEP 649/749 from Python 3.14+.c                      a  ] tR tRt o R t]P                  P                  R. RO4      R 4       tR t	R t
R tR tR	tV tR
# )TestAnnotationsi  c                N    \         P                  ! R R.4      V n        RV n        R# )r_   r-  Nr  )r*   rM   rV   brute_paramsro   s   &r.   rq   TestAnnotations.setup_method  s    ((C;'Jr1   r   c                    R RRRR\         /pVR9   d
   \        VR &   VR9   d
   \        VR&   \        P                  ! \
        V P                  3RV/VB  R# )r   Nr   rZ  r   )r   r   ra  r_  r  r  r#  r!  r"  r$  r  )ra  r#  r!  r$  r"  r  )r  r  r  r	   r   r  rV   )rp   r   rY  s   && r.   test_callable_annotations)TestAnnotations.test_callable_annotations  se    $ tVT:7IJ R R .DK 6 6/DL/477J6JTJr1   c                    RR.p\         P                  ! \        V^\        R7      pVP                  '       g   Q RVP
                   24       hR# )ru  )r9   rZ  Unexpected error: N)r  ru  )r	   r  r  r  r   r[  )rp   r6  r   s   &  r.   'test_differential_evolution_annotations7TestAnnotations.test_differential_evolution_annotations  sE    7#--ovA7IK{{{>0>>{r1   c                    R  R lpR R lp\         P                  ! ^ ^^
4      pV! VRRR4      p\        P                  ! WWBRR7      w     rVVR9   g   Q R	VP                   24       hR
# )c                <    V ^8  d   QhR\         R\        R\         /# r   r-   r  r  r  )rf  s   "r.   rg  @TestAnnotations.test_curve_fit_annotations.<locals>.__annotate__  s!     	* 	*+ 	*% 	*+ 	*r1   c                 Z    V\         P                  ! V) V ,          4      ,          V,           # r@   r)   r-   r  r	  rt   s   &&&&r.   
model_func>TestAnnotations.test_curve_fit_annotations.<locals>.model_func  s     rvvqb1f~%))r1   c                <    V ^8  d   QhR\         R\        R\         /# r  r  )rf  s   "r.   rg  r    s!     	 	 	 	 	r1   c                     \         P                  ! \         P                  ! V) V ,          4      V) V ,          \         P                  ! V) V ,          4      ,          \         P                  ! V 4      .4      P                  # r@   )r*   rM   r+   r  r   r  s   &&&&r.   	model_jac=TestAnnotations.test_curve_fit_annotations.<locals>.model_jac  sW    88rAvQQ'Q  q	r1   r   r   ra   T)r   r   r  Nr  )r*   r   r	   	curve_fitr[  )rp   r  r  xdataydatar8  r   s   &      r.   test_curve_fit_annotations*TestAnnotations.test_curve_fit_annotations  sn    	*	 Aq"%5#sC0((E59;!Aa|#H(:3;;-&HH#r1   c                    R  R lpR R lp\        R^R4      \        R^R4      3p\        P                  ! WV P                  VR7       R# )c                <    V ^8  d   QhR\         R\        R\        /# )r   r  r   r  r  )rf  s   "r.   rg  <TestAnnotations.test_brute_annotations.<locals>.__annotate__  s&     	E 	E+ 	E 	E% 	Er1   c                     V w  r#Vw  rErgrrrrpWB^,          ,          WR,          V,          ,           Wc^,          ,          ,           Wr,          ,           W,          ,           V	,           # rU  r   r  s   &*               r.   r  2TestAnnotations.test_brute_annotations.<locals>.f1  sR    DA8>5A!aA!1Hquqy(1!t83ac9AC?!CDr1   c                <    V ^8  d   QhR\         R\         R\         /# )r   rp  rV   r  r  )rf  s   "r.   rg  r    s'     	@ 	@[ 	@k 	@/:	@r1   c                 6    \         P                  ! W.VO5/ VB # r@   )r	   r?  )rp  rV   r   r  s   &&*,r.   annotated_fmin>TestAnnotations.test_brute_annotations.<locals>.annotated_fmin  s    ==????r1   r  )r   r  Nr  )r  r	   r  r  )rp   r  r  r  s   &   r.   test_brute_annotations&TestAnnotations.test_brute_annotations  sB    	E
	@ Q%uRD'9:r):):>Rr1   c                    R  R lp\         P                  ! \        V P                  ^^VR7      pVP                  '       g   Q RVP
                   24       hR# )c          
      T    V ^8  d   QhR\         R\        R\         R\        R\        /# )r   f_newx_newf_oldx_oldr  )r  r  bool)rf  s   "r.   rg  CTestAnnotations.test_basinhopping_annotations.<locals>.__annotate__  s2     	 	5 	 	-2	:E	JN	r1   c                     R # )Tr   )r  r  r  r  s   &&&&r.   acceptable_testFTestAnnotations.test_basinhopping_annotations.<locals>.acceptable_test  s    r1   )r  r9   accept_testr  N)r	   r  r  rV   r   r[  )rp   r  r   s   &  r.   test_basinhopping_annotations-TestAnnotations.test_basinhopping_annotations  sJ    	 ##OTWWAA0?A {{{>0>>{r1   )r  rV   N)r  r"  r   r  ra  rY  r  r  r  r  r#  r!  r$  r"  )r   r   r   r   rq   r   r  r  r  r  r  r  r  r   r   r   s   @r.   r  r    sR     K [[X ( "	K#"	K?I&S? ?r1   r  c            
      :   \         P                  ! R R .4      p \        \        P                  ^4      ;_uu_ 4       pV;_uu_ 4       p\        \        WP                  R7       RRR4       ??RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; i)r  )r  N)r*   rM   r   multiprocessingPoolr   r   rz  )rV   pool_objr   s      r.   .test_multiprocessing_too_many_open_files_23080r    sc    	3*	B	O00!	4	4X5"ee4 	 
5	4X 
5	4	4s#   B	A6	"
B	6BB		B	)rY  r  r"  r  r  gHzGѿg)r  r  r  r  rZ  r  rY  r  )	rY  r  r  r  ra  r   r  r!  r"  )rH     )r   sysr  rq  rm  rj   rD  r  numpyr*   numpy.testingr   r   r   r   r   r   r   rQ   scipyscipy._lib._gcutilsr   r	   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   r   scipy.optimizer   r   r   scipy.sparser   r   r   r   r    r!   scipy._lib._array_api_no_0dr"   scipy._lib._array_apir#   scipy._lib._utilr$   lazy_xp_modulesrX   rZ   r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r$  r&  rL  ra  re  ro  rw  ry  r.  rS   rT   rU   r/  r0  r  r  r  r  r  r  r  r  r  r  r  r  fixturer   r&  r(  r+  r/  ra  ro  xfail_on_32bitr  show_configrz  r  r  r  r  r  r  r  r  r  rj  rt  rv  version_infotypingr  r  TYPE_CHECKINGr  r  r  r  skipifr  r  r   r1   r.   <module>r     sH          . .  *  2  @? ? 4 - ; < O  8 70 0 7 3 '*3l7' 7'tRA RAj-"0H8D$ >I:X'FT8 
 : 
 : 
"< 
iD iDX :-	-:= :=zjN jNZ	& &R@)< )<X<-~#6Lz6zJ*$# #6;7 a&4, 0  0F=77<H% H%V r   FB> B>J#2# # " "3&3&9*CUp "
# NO5$$'2;?	J6R L  N 79#561w}'=>(>?W[%9:A< ; @ ? 2 7N PA<H 79#56(/ 7(/V).@0  $ LL%BP* *0B" A"H K#@AZ)2Iy)J K-K B-. T1I.
$' $'
 /$'P gKjj	 C$$w.D  FS? S?FS?lr1   