+
    /i>d                         R t ^ RIHtHtHtHt ^ RIHt ^ RIt^ RI	t
^ RIt^ RIHtHtHtHtHt  ! R R4      t ! R R4      tR	 tR# )
z#
Unit test for SLSQP optimization.
)assert_assert_array_almost_equalassert_allcloseassert_equal)raisesN)
fmin_slsqpminimizeBoundsNonlinearConstraintOptimizeResultc                   <   a  ] tR t^t o RtR tR tR tR tRt	V t
R# )
MyCallBackzBpass a custom callback function

This makes sure it's being used.
c                "    R V n         ^ V n        R# )FNbeen_calledncallsselfs   &]/var/www/html/photoedit/myenv/lib/python3.14/site-packages/scipy/optimize/tests/test_slsqp.py__init__MyCallBack.__init__   s         c                v    \        V\        4      '       d   Q hR V n        V ;P                  ^,          un        R# TN
isinstancer   r   r   r   xs   &&r   __call__MyCallBack.__call__   s+    a0000qr   c                v    \        V\        4      '       g   Q hR V n        V ;P                  ^,          un        R# r   r   r   intermediate_results   &&r   	callback2MyCallBack.callback2   s,    -~>>>>qr   c                >    \        V\        4      '       g   Q h\        hN)r   r   StopIterationr!   s   &&r   	callback3MyCallBack.callback3"   s    -~>>>>r   r   N)__name__
__module____qualname____firstlineno____doc__r   r   r#   r(   __static_attributes____classdictcell____classdict__s   @r   r   r      s#     

 r   r   c                      a  ] tR t^'t o RtR tR=R ltR=R ltR=R ltR=R lt	R=R lt
R=R ltR=R	 ltR=R
 ltR=R l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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/]0Pb                  Pe                  ]3Ph                  ! R-R.7      R/,          R0,          R1,          R28H  R3R47      R5 4       t5R6 t6R7 t7R8 t8R9 t9R: t:R;t;V t<R<# )>	TestSLSQPz
Test SLSQP algorithm using Example 14.4 from Numerical Methods for
Engineers by Steven Chapra and Raymond Canale.
This example maximizes the function f(x) = 2*x*y + 2*x - x**2 - 2*y**2,
which has a maximum at x=2, y=1.
c                    R R/V n         R# )dispFNoptsr   s   &r   setup_methodTestSLSQP.setup_method.   s    UO	r   c                    V^ ,          pV^,          pV^V,          V,          ^V,          ,           V^,          ,
          ^V^,          ,          ,
          ,          # )a^  
Arguments:
d     - A list of two elements, where d[0] represents x and d[1] represents y
         in the following equation.
sign - A multiplier for f. Since we want to optimize it, and the SciPy
       optimizers can only minimize functions, we need to multiply it by
       -1 to achieve the desired solution
Returns:
2*x*y + 2*x - x**2 - 2*y**2

 )r   dsignr   ys   &&&  r   funTestSLSQP.fun1   sG     aDaDQqSUQqS[1a4'!AqD&011r   c                    V^ ,          pV^,          pVRV,          ^V,          ,           ^,           ,          pV^V,          ^V,          ,
          ,          p\         P                  ! WV.\        4      # )zW
This is the derivative of fun, returning a NumPy array
representing df/dx and df/dy.

)nparrayfloat)r   r=   r>   r   r?   dfdxdfdys   &&&    r   jacTestSLSQP.jacA   sY     aDaDRTAaCZ!^$QqS1Q3Yxxe,,r   c                F    V P                  W4      V P                  W4      3# r&   )r@   rI   )r   r=   r>   s   &&&r   fun_and_jacTestSLSQP.fun_and_jacM   s    xx $((1"333r   c                Z    \         P                  ! V^ ,          V^,          ,
          .4      # zEquality constraint rD   rE   r   r   r>   s   &&&r   f_eqconTestSLSQP.f_eqconP   s    xx1!&&r   c                4    \         P                  ! ^R..4      # )z Equality constraint, derivative rP   rQ   s   &&&r   fprime_eqconTestSLSQP.fprime_eqconT       xx!R	""r   c                2    V P                  W4      ^ ,          # )zScalar equality constraint )rR   rQ   s   &&&r   f_eqcon_scalarTestSLSQP.f_eqcon_scalarX   s    ||A$Q''r   c                N    V P                  W4      ^ ,          P                  4       # )z'Scalar equality constraint, derivative )rV   tolistrQ   s   &&&r   fprime_eqcon_scalarTestSLSQP.fprime_eqcon_scalar\   s!      )!,3355r   c                h    \         P                  ! V^ ,          V^,          ,
          R,
          .4      # )zInequality constraint       ?rP   rQ   s   &&&r   f_ieqconTestSLSQP.f_ieqcon`   s%    xx1!s*+,,r   c                4    \         P                  ! ^R..4      # )z"Inequality constraint, derivative rU   rP   rQ   s   &&&r   fprime_ieqconTestSLSQP.fprime_ieqcond   rX   r   c                .    \         P                  ! V4      # )zVector inequality constraint )rD   asarrayr   s   &&r   	f_ieqcon2TestSLSQP.f_ieqcon2h   s    zz!}r   c                P    \         P                  ! VP                  ^ ,          4      # )z)Vector inequality constraint, derivative )rD   identityshaper   s   &&r   fprime_ieqcon2TestSLSQP.fprime_ieqcon2l   s    {{1771:&&r   c           
         . ROpV F\  p\        V P                  RR.RVRV P                  R7      p\        VR,          VR,          4       \	        VP
                  ^^.4       K^  	  R # )	Nra   SLSQPargsrI   methodoptionssuccessmessageNFz2-pointz3-point      ry   )r   r@   r8   r   r   r   r   jacsrI   ress   &   r   $test_minimize_unbounded_approximated.TestSLSQP.test_minimize_unbounded_approximatedq   s[    2C488dC[x"7#'99.C C	NC	N3CEEAq6* r   c           	         \        V P                  RR .RV P                  RV P                  R7      p\	        VR,          VR,          4       \        VP                  ^^.4       R# )ra   rq   rr   rv   rw   Nry   rz   )r   r@   rI   r8   r   r   r   r   r}   s   & r   test_minimize_unbounded_given'TestSLSQP.test_minimize_unbounded_given{   sN    txx$888GTYYHII/1v&r   c                   . R
OpV F  p\         P                  ! RR7      ;_uu_ 4        \        V P                  RR.RVRRV P                  R7      pR R R 4       \        XR,          VR	,          4       \        VP                  RR.4       \        RVP                  ^ ,          8*  4       \        VP                  ^,          R8*  4       K  	  R #   + '       g   i     L; i)Nignore)invalidra         @      ?rq   )rs   rI   boundsrt   ru   rv   rw   rx   ry   rz   ))r   N)Nr   )rD   errstater   r@   r8   r   r   r   r{   s   &   r   "test_minimize_bounded_approximated,TestSLSQP.test_minimize_bounded_approximated   s    2CX..txx$8#&&@&-tyyB /
 C	NC	N3CEEC:.C3558O$CEE!HO$ ..s   )CC c           	         \        V P                  RR .RRRV P                  R7      p\        VR,          VR,          4       \	        VP
                  ^^.4       R# )	ra   Trq   rr   rv   rw   Nry   rz   )r   rL   r8   r   r   r   r   s   & r    test_minimize_unbounded_combined*TestSLSQP.test_minimize_unbounded_combined   sL    t''$8DII/1v&r   c                    . R
OpV Fm  p\        V P                  RR.RVRRRV P                  RR/RV P                  R7      p\	        VR,          VR	,          4       \        VP                  ^^.4       Ko  	  R # )Nra   typeeqr@   rs   rq   )rs   rI   constraintsrt   ru   rv   rw   rx   ry   rz   )r   r@   rR   r8   r   r   r   r{   s   &   r   #test_minimize_equality_approximated-TestSLSQP.test_minimize_equality_approximated   su    2C488dC[x"(.(-t||(.(: #*499>C C	NC	N3CEEAq6* r   c                    \        V P                  R
R .V P                  RRRRRV P                  RR/V P                  R7      p\        VR,          VR,          4       \        VP                  ^^.4       R	# )ra   rq   r   r   r@   rs   rI   rt   rs   r   ru   rv   rw   Nry   rz   )r   r@   rI   rR   r8   r   r   r   r   s   & r   test_minimize_equality_given&TestSLSQP.test_minimize_equality_given   sg    txx$$((%G$*D%$*H$6#yy	*
 	II/1v&r   c                   \        V P                  RR .RV P                  RRRRV P                  RRRV P                  /V P
                  R7      p\        VR,          VR	,          4       \        VP                  ^^.4       R
# ra   rq   r   r   r@   rs   rI   rt   rI   rs   r   ru   rv   rw   Nry   rz   	r   r@   rI   rR   rV   r8   r   r   r   r   s   & r   test_minimize_equality_given2'TestSLSQP.test_minimize_equality_given2   sw     txx$W88'$*D$)4<<$*H$)4+<+<$>  $yy* 	II/1v&r   c                   \        V P                  RR .RV P                  RRRRV P                  RRRV P                  /V P
                  R7      p\        VR,          VR	,          4       \        VP                  ^^.4       R
# r   )	r   r@   rI   rZ   r^   r8   r   r   r   r   s   & r   (test_minimize_equality_given_cons_scalar2TestSLSQP.test_minimize_equality_given_cons_scalar   sz     txx$W88'$*D$)4+>+>$*H$)4+C+C$E  $yy* 	II/1v&r   c                    \        V P                  RR .RV P                  RRRRV P                  RR/V P                  R7      p\        VR,          VR,          4       \        VP                  ^^.R	R
7       R# )ra   rq   r   ineqr@   rs   r   rv   rw   MbP?atolNry   rz   )r   r@   rI   rb   r8   r   r   r   r   s   & r   test_minimize_inequality_given(TestSLSQP.test_minimize_inequality_given   sl    txx$W88($*F$)4==$*H$6  $yy* 	II/1vD1r   c                   \        V P                  R
R .V P                  RRRRRV P                  RV P                  /V P
                  R7      p\        VR,          VR,          4       \        VP                  ^^.4       R	# )ra   rq   r   r   r@   rI   r   rv   rw   Nry   rz   )	r   r@   rI   ri   rn   r8   r   r   r   r   s   & r   1test_minimize_inequality_given_vector_constraints;TestSLSQP.test_minimize_inequality_given_vector_constraints   ss     txx$$((%G$*F$)4>>$)4+>+>$@  $yy* 	II/1v&r   c                    R  pR p\        V^ R4      .p\        P                  ! RR.4      p\        RR.RR.4      p\	        W$RWSR7       R	# )
c                     ^ V ^ ,          u;8:  d   ^8:  d(   M Q V 4       h^ V ^,          u;8:  d   ^8:  g   Q V 4       h Q V 4       hV ^ ,          R,          V ^,          ,           #     r   r<   r   s   &r   c5TestSLSQP.test_minimize_bounded_constraint.<locals>.c   sY    !>>7a74a1Q4n1n7a74n7a74Q43;1%%r   c                     ^ V ^ ,          u;8:  d   ^8:  d(   M Q V 4       h^ V ^,          u;8:  d   ^8:  g   Q V 4       h Q V 4       hV ^ ,          ^,          ) V ^,          ^,          ,           # r   r<   r   s   &r   f5TestSLSQP.test_minimize_bounded_constraint.<locals>.f   s_    !>>7a74a1Q4n1n7a74n7a74aDAI:!	))r   g      ??r   g        ra   rq   rt   r   r   N)r
   rD   rh   r	   r   )r   r   r   cnsx0bnds   &     r    test_minimize_bounded_constraint*TestSLSQP.test_minimize_bounded_constraint   sQ    
	&	* #1a-.ZZc
#b"XSz*wsDr   c                   \        V P                  RR .RV P                  RRR.RRRV P                  RRRV P                  /V P
                  R7      p\        VR	,          VR
,          4       \        VP                  RR.RR7       \        RVP                  ^ ,          u;8*  ;'       d    ^8*  Mu 4       \        RVP                  ^,          u;8*  ;'       d    R8*  4       R# u 4       R# )ra   rq   皙?r   r   r@   rs   rI   )rt   rI   rs   r   r   ru   rv   rw   r   r   Nry   rz   皙鿩r   ra   rU   rU   r   r   r   s   & r   #test_minimize_bound_equality_given2-TestSLSQP.test_minimize_bound_equality_given2   s     txx$W88()95$*D$)4<<$*H$)4+<+<$>  $yy* 	II/Sz5a%%A%&ceeAh%%#%&%&r   c                    \        V P                  RR .R^ ^R7      pVw  r#rEp\        V^ 8H  V4       \        V^^.4       R# )ra   )rs   iprintfull_outputNry   rz   )r   r@   r   r   r   r}   r   fxitsimodesmodes   &      r   test_unbounded_approximated%TestSLSQP.test_unbounded_approximated  sG    D#;X"#16#& s5
E"!!aV,r   c           	         \        V P                  RR .RV P                  ^ ^R7      pVw  r#rEp\        V^ 8H  V4       \	        V^^.4       R# )ra   )rs   fprimer   r   Nry   rz   )r   r@   rI   r   r   r   s   &      r   test_unbounded_givenTestSLSQP.test_unbounded_given
  sP    D#;X"&((Q'(* $' s5
E"!!aV,r   c           	         \        V P                  RR .RV P                  .^ ^R7      pVw  r#rEp\        V^ 8H  V4       \	        V^^.4       R# )ra   )rs   eqconsr   r   Nry   rz   )r   r@   rR   r   r   r   s   &      r   test_equality_approximated$TestSLSQP.test_equality_approximated  sR    4*7#'<<."#16 $' s5
E"!!aV,r   c           
         \        V P                  RR .V P                  RV P                  .^ ^R7      pVw  r#rEp\	        V^ 8H  V4       \        V^^.4       R# )ra   )r   rs   r   r   r   Nry   rz   )r   r@   rI   rR   r   r   r   s   &      r   test_equality_givenTestSLSQP.test_equality_given  sY    D#; $w#'<<.1'(* $' s5
E"!!aV,r   c                    \        V P                  RR .V P                  RV P                  V P                  ^ ^R7      pVw  r#rEp\        V^ 8H  V4       \        V^^.4       R# )ra   )r   rs   f_eqconsfprime_eqconsr   r   Nry   rz   r   r@   rI   rR   rV   r   r   r   s   &      r   test_equality_given2TestSLSQP.test_equality_given2&  sa    D#; $w$(LL)-):):"#'(* $' s5
E"!!aV,r   c           
         \        V P                  RR .V P                  RV P                  .^ ^R7      pVw  r#rEp\	        V^ 8H  V4       \        V^^.^R7       R# )ra   )r   rs   ieqconsr   r   decimalNry   rz   )r   r@   rI   rb   r   r   r   s   &      r   test_inequality_givenTestSLSQP.test_inequality_given2  s[    D#; $x$(MM?"#16 $' s5
E"!!aVQ7r   c                t   \        V P                  RR .V P                  RRR
.V P                  V P                  ^ ^R7	      pVw  r#rEp\        V^ 8H  V4       \        VRR.^R7       \        RV^ ,          u;8*  ;'       d    ^8*  Mu 4       \        R	V^,          u;8*  ;'       d    R8*  4       R# u 4       R# )ra   r   )r   rs   r   r   r   r   r   r   Nry   rz   r   r   rU   r   r   r   s   &      r   test_bound_equality_given2$TestSLSQP.test_bound_equality_given2<  s    D#; $x#-y"9$(LL)-):):"#16 $' s5
E"!!c3Z;!!!!"ad!!c!"!"r   c                    \        R  R.R .^ R7      p\        VR.4       \        R R.R ^ R7      p\        VR.4       R# )	c                     V ^,          #    r<   zs   &r   <lambda>3TestSLSQP.test_scalar_constraints.<locals>.<lambda>L      Ar   g      @c                 "    V ^ ,          ^,
          # r   r<   r   s   &r   r   r   M  s    !A$(r   )r   r   ra   c                     V ^,          # r   r<   r   s   &r   r   r   Q  r   r   c                 $    V ^ ,          ^,
          .# r   r<   r   s   &r   r   r   R  s    AaD1H:r   )	f_ieqconsr   N)r   r   r   s   & r   test_scalar_constraints!TestSLSQP.test_scalar_constraintsJ  sM    ~t 23! 	"!bT*~t!5! 	"!bT*r   c                .    \        R  ^ .^ ^..^ R7       R# )c                 "    V ^,          ^,
          # r   r<   r   s   &r   r   /TestSLSQP.test_integer_bounds.<locals>.<lambda>X  s    QTAXr   r   r   Nr   r   s   &r   test_integer_boundsTestSLSQP.test_integer_boundsV  s    %sQF8AFr   c                    \         P                  ) \         P                  3\         P                  ! ^.4      \         P                  ! ^.4      3.p\        R RR.V^ R7      p\	        V^ ^.4       R# )r   c                 J    \         P                  ! V ^,          ^,
          4      # r   rD   sumr   s   &r   r   -TestSLSQP.test_array_bounds.<locals>.<lambda>_  s    1q!1r   r   r   N)rD   infrE   r   r   )r   r   r   s   &  r   test_array_boundsTestSLSQP.test_array_boundsZ  s\     FF7BFF#bhhsmRXXqc]%CD1C:f!!!aV,r   c                    \        \        4      ;_uu_ 4        \        R  . RO4       RRR4       R#   + '       g   i     R# ; i)c                 
    ^ ^.# r   r<   r   s   &r   r   7TestSLSQP.test_obj_must_return_scalar.<locals>.<lambda>g  s    !Qr   N   r      )assert_raises
ValueErrorr   r   s   &r   test_obj_must_return_scalar%TestSLSQP.test_obj_must_return_scalarc  s)     :&&'3 '&&&s	   2A	c                (    \        R  . RO^ R7       R# )c                     ^ .# r   r<   r   s   &r   r   ;TestSLSQP.test_obj_returns_scalar_in_list.<locals>.<lambda>m  s    aSr   )r   Nr  r   r   s   &r   test_obj_returns_scalar_in_list)TestSLSQP.test_obj_returns_scalar_in_listi  s     	=)A6r   c           	        \        4       p\        V P                  RR .RRWP                  R7      pVP                  '       g   Q hVP
                  '       g   Q hVP                  '       g   Q h\        VP                  VR,          4       \        V P                  RR .RRVP                  V P                  R7      pVP                  '       g   Q hVP                  '       g   Q h\        V P                  RR .RRVP                  V P                  R7      pVP                  '       d   Q hVP
                  P                  R4      '       g   Q hR# )ra   rq   )rs   rt   callbackru   nitz!`callback` raised `StopIteration`Nry   rz   )r   r   r@   r8   rv   rw   r   r   r   r#   r(   
startswith)r   r  r}   s   &  r   test_callbackTestSLSQP.test_callbacko  s   <txx$8%))M{{{{{{{{#####X__c%j1HH3K''II
 {{{{#####HH3K''II
 ;;;{{%%&IJJJJr   c           	         ^ ^.pR pR p\        R VRRRV/RRRV/3RR	R
7      pVP                  p\        V! V4      ^ RR7       \        V! V4      R8  4       \        VP                  V4       R# )r   c                 >    V ^ ,          V ^,          ,           ^,
          # r   r<   r   s   &r   f15TestSLSQP.test_inconsistent_linearization.<locals>.f1      Q4!A$;?"r   c                 0    V ^ ,          ^,          ^,
          # r   r<   r   s   &r   f25TestSLSQP.test_inconsistent_linearization.<locals>.f2  s    Q419q= r   c                 L    V ^ ,          ^,          V ^,          ^,          ,           # r   r<   r   s   &r   r   ;TestSLSQP.test_inconsistent_linearization.<locals>.<lambda>      adAg!a'r   r   r   r@   r   Nrq   r   r   rt   g:0yE>r   r   Nr*  g:0yE)r   r   r   r   rv   )r   r   r  r#  sols   &    r   test_inconsistent_linearization)TestSLSQP.test_inconsistent_linearization  s     F	#	!' eR0 r24' EE1qt,1S!r   c           	     ~    ^^.p\        R VRRRR /RRRR /3RR	R
7      p\        VP                  '       * V4       R# )r  c                 L    V ^ ,          ^,          V ^,          ^,          ,           # r   r<   r   s   &r   r   0TestSLSQP.test_regression_5743.<locals>.<lambda>  r'  r   r   r   r@   c                 >    V ^ ,          V ^,          ,           ^,
          # r   r<   r   s   &r   r   r0    s    qtAaDy{r   r   c                 "    V ^ ,          ^,
          # r   r<   r   s   &r   r   r0    s    1ar   Nrq   r(  r)  )r   r   rv   )r   r   r+  s   &  r   test_regression_5743TestSLSQP.test_regression_5743  sU     F' e-BC /?@B' 	CKK%r   c                p    R  p\        V. RORR7      p\        VP                  P                  R8H  4       R# )c                     V ^ ,          ^,
          ^,          ^V ^,          ^,
          ^,          ,          ,           RV ^,          ^,
          ^,          ,          ,           # r   r<   r   s   &r   func$TestSLSQP.test_gh_6676.<locals>.func  s?    aD1Hq=1adQh]?2S!A$(Q5FFFr   rq   rt   Nr   r   r   )r  )r   r   rI   rm   )r   r7  r+  s   &  r   test_gh_6676TestSLSQP.test_gh_6676  s-    	G tYw7%&r   c           
     .   RRR\         P                  ^ 3\         P                  ^ 33^\         P                  ) 3R3.pV F>  p\        \        4      ;_uu_ 4        \	        V P
                  R	R.VRR7       RRR4       K@  	  R#   + '       g   i     KU  ; i)
r  ra   rq   )r   rt   N)r  r   r   r  )r?  r>  )r?  r?  )r   r  ry   )rD   r  r  r  r   r@   )r   bounds_listr   s   &  r   test_invalid_boundsTestSLSQP.test_invalid_bounds  s}     ffa[2661+&"&&\6"
 "Fz**D#;vgN +* "***s   BBc                   R  p\        V^
.RR.R7      p\        VP                  4       \        VP                  ^ RR7       \        VR.RR.R7      p\        VP                  4       \        VP                  ^RR7       \        VR.RR.R7      p\        VP                  4       \        VP                  ^ RR7       \        V^
.RR.R7      p\        VP                  4       \        VP                  ^RR7       \        VR	.RR
.R7      p\        VP                  4       \        VP                  ^ RR7       \        V^
.RR
.R7      p\        VP                  4       \        VP                  ^ RR7       R# )c                 0    V ^ ,          ^,
          ^,          # r   r<   r   s   &r   r   )TestSLSQP.test_bounds_clipping.<locals>.f  s    aD1Hq= r   slsqpNrt   r   绽|=r   )Nr   )r   N      )rU   r   r   r   rv   r   r   )r   r   r+  s   &  r   test_bounds_clippingTestSLSQP.test_bounds_clipping  s)   	! q2$w	{Cqu-q3%Dqu-q3%Dqu-q2$w	{Cqu-q4&'Cqu-q2$wyAqu-r   c                $   R  pRRRR /.pRRRR /.pRRRR /RRRR /.p\        V^
.RVR	7      p\        VP                  4       \        VP                  ^ R
R7       \        VR.RVR	7      p\        VP                  4       \        VP                  ^R
R7       \        VR.RVR	7      p\        VP                  4       \        VP                  ^ R
R7       \        V^
.RVR	7      p\        VP                  4       \        VP                  ^R
R7       \        VR.RVR	7      p\        VP                  4       \        VP                  ^ R
R7       \        V^
.RVR	7      p\        VP                  4       \        VP                  ^ R
R7       R# )c                 D    V w  p W ,          ^V ,          ,
          ^,           # r   r<   r   s   &r   r   ,TestSLSQP.test_infeasible_initial.<locals>.f  s    BA319q= r   r   r   r@   c                     ^ V ,
          # r   r<   r   s   &r   r   3TestSLSQP.test_infeasible_initial.<locals>.<lambda>      AEr   c                     V ^,
          # r   r<   r   s   &r   r   rR    rS  r   c                     ^ V ,
          # r   r<   r   s   &r   r   rR        QUr   c                     V ^,           # r  r<   r   s   &r   r   rR    rV  r   rF  )rt   r   rH  r   NrI  rJ  rK  )r   r   cons_ucons_lcons_ulr+  s   &     r   test_infeasible_initial!TestSLSQP.test_infeasible_initial  s`   	! 65/:;65/:;FE?;FE?;= q2$wFCqu-q3%VDqu-q3%VDqu-q2$wFCqu-q4&gFqu-q2$wGDqu-r   dicts)mode	Compilersfortrannamez
intel-llvmz7Runtime warning due to floating point issues, not logic)reasonc                    R  pR pR pRpR	p\        RVR7      \        RVR7      3p\        WRWVR7      p\        VP                  '       * 4       R# )
c                 L    RV ^ ,          ,          ^V ^,          ,          ,           # )r  rU   r<   r   s   &r   cost6TestSLSQP.test_inconsistent_inequalities.<locals>.cost  s    !9q1Q4x''r   c                 >    V ^,          V ^ ,          ,
          ^,
          # rX  r<   r   s   &r   	ineqcons1;TestSLSQP.test_inconsistent_inequalities.<locals>.ineqcons1  r!  r   c                 0    V ^ ,          V ^,          ,
          # r   r<   r   s   &r   	ineqcons2;TestSLSQP.test_inconsistent_inequalities.<locals>.ineqcons2  s    Q4!A$;r   r   )r   r@   rq   r   N)r     )rn  ro  )dictr   r   rv   )r   rf  ri  rl  r   r   consr}   s   &       r   test_inconsistent_inequalities(TestSLSQP.test_inconsistent_inequalities  sQ    	(	#	 #&i0$F	2RStQCKK r   c                    R  p\        ^^ .\        P                  \        P                  .4      p\        V^ ^ .RVR7      p\	        VP
                  4       \        VP                  ^^ .4       R# )c                 L    V ^ ,          ^,          V ^,          ^,          ,           # r   r<   r   s   &r   r   )TestSLSQP.test_new_bounds_type.<locals>.f+  s    Q419qtqy((r   rF  rG  N)r	   rD   r  r   r   rv   r   r   )r   r   r   r+  s   &   r   test_new_bounds_typeTestSLSQP.test_new_bounds_type*  sV    	)A 01q1a&@1v&r   c                H     ! R  R4      pV! 4       pVP                  4        R# )c                   8   a  ] tR tRt o R tR tR tR tRtV t	R# )9TestSLSQP.test_nested_minimization.<locals>.NestedProblemi4  c                    ^ V n         R# r*  F_outer_countr   s   &r   r   BTestSLSQP.test_nested_minimization.<locals>.NestedProblem.__init__6  s
    %&"r   c                j   V ;P                   ^,          un         V P                   R8  d   \        R4      h\        V P                  RRR7      p\	        VP
                  4       \        VP                  ^^.4       V^ ,          ^,          V^,          ^,          ,           V^,          ^,          ,           # )r  i  z(Nested minimization failed to terminate.rq   r9  )r     )r  	Exceptionr   F_innerr   rv   r   r   )r   r   	inner_ress   && r   F_outerATestSLSQP.test_nested_minimization.<locals>.NestedProblem.F_outer9  s    ""a'"%%,#$NOO$T\\6'J		))*	aV4tQw1q(1Q4722r   c                h    V^ ,          ^,
          ^,          V^,          ^,
          ^,          ,           # r   r<   r   s   &&r   r  ATestSLSQP.test_nested_minimization.<locals>.NestedProblem.F_innerB  s%    !q1}!q1}44r   c                    \        V P                  RRR7      p\        VP                  4       \	        VP
                  . RO4       R# )rn  rq   r9  N)rn  rn  rn  r:  )r   r  r   rv   r   r   )r   	outer_ress   & r   solve?TestSLSQP.test_nested_minimization.<locals>.NestedProblem.solveE  s0    $T\\9WM		))*	Y7r   r~  N)
r*   r+   r,   r-   r   r  r  r  r/   r0   r1   s   @r   NestedProblemr|  4  s     '358 8r   r  N)r  )r   r  problems   &  r   test_nested_minimization"TestSLSQP.test_nested_minimization2  s    	8 	8,  /r   c                .   R  pR pR pRRRV/pRRRV/p\        V^R.RWE.RR.R7      p\        P                  P                  VP                  R	4       \        P                  P                  VP
                  R
R.4       VP                  '       g   Q hR# )c                 <    \         P                  ! V ^,          4      # rX  )rD   sqrtr   s   &r   r@   "TestSLSQP.test_gh1758.<locals>.funQ  s    771Q4= r   c                L    V ^,          ^V ^ ,          ,          ^,          ,
          # rO   r<   r   s   &r   rR   &TestSLSQP.test_gh1758.<locals>.f_eqconT  s    Q41qt8/))r   c                N    V ^,          V ^ ,          ) ^,           ^,          ,
          # rO   r<   r   s   &r   f_eqcon2'TestSLSQP.test_gh1758.<locals>.f_eqcon2X  s     Q4AaD519***r   r   r   r@   g      ?rq   )rt   r   r   g8r](k?gQUU?gc@?N)rJ  r  )r      )r   rD   testingr   r@   r   rv   )r   r@   rR   r  c1c2r}   s   &      r   test_gh1758TestSLSQP.test_gh1758M  s    	!	*	+ dE7+dE8,sQIg$&8Y4GI 	

""377O<


""355:y*AB{{{{r   c                    R RRR /R RRR /3pRpR p. ROp\        W4RW!RRR	R
/R7      pVP                  '       d   Q hR# )r   r   r@   c                 @    V ^ ,          ) V ^,          ,
          ^,
          # r   r<   r   s   &r   r   'TestSLSQP.test_gh9640.<locals>.<lambda>g  s    1Q4%!A$,2Br   c                 >    V ^,          V ^,          ,           ^,
          # rX  r<   r   s   &r   r   r  h  s    !A$1+/r   c                     ^# rX  r<   r   s   &r   target%TestSLSQP.test_gh9640.<locals>.targetk  s    r   rq   r6   Fmaxiteri'  )rt   r   r   ru   N)rC   r   r  r  )g51gУX{gP()r   rv   )r   rr  bndsr  r   r}   s   &     r   test_gh9640TestSLSQP.test_gh9640f  sb    (BC(ABD*	Kv'$ &ui>@ ;;;;r   c                V  a \        \        P                  ! R .4      \        P                  ! R.4      4      o\        P                  ! SP                  SP                  SP                  ,
          R,          ,           4      pV3R lp\        W!RSR7      pVP                  '       g   Q hR# )g?ra   g<}?c                    < V SP                   8  P                  4       '       g   Q h\        P                  P	                  V 4      # r&   )lballrD   linalgnorm)r   r   s   &r   r   7TestSLSQP.test_parameters_stay_within_bounds.<locals>.f  s3    N''))))99>>!$$r   rq   rG  N)r	   rD   rE   r  ubr   rv   )r   r   r   r}   r   s   &   @r   "test_parameters_stay_within_bounds,TestSLSQP.test_parameters_stay_within_boundst  sx     #3%9XXfii699vyy#8'#( ( )	%
 qWV<{{{{r   r7   N)ra   )=r*   r+   r,   r-   r.   r9   r@   rI   rL   rR   rV   rZ   r^   rb   re   ri   rn   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r,  r3  r;  rA  rL  r\  pytestmarkxfailscipyshow_configrs  rx  r  r  r  r  r/   r0   r1   s   @r   r4   r4   '   sV    $2 
-4'#(6-#'
+'%'+'''	2
'E$'"----
-8#
+G-47K@"8&'O.>!.F [[u((g6{CINvV&'W  Y!Y!0'62 r   r4   c                     a \         P                  P                  R 4      p V P                  ^R.R7      p\         P                  ! RR^24      pR oV3R lpV! W4       R# )l   _x
&C1 im  )sizer   g      @c                     ^ ^ .^^..# r   r<   )vweightss   &&r   metric?test_slsqp_segfault_wrong_workspace_computation.<locals>.metric  s    A1vr   c                    <a aa VV 3R  loV3R lpRRRVV3R l/RRRR /3p\         P                  ! \        S 4      R\        S 4      ,          .,          .4      ^ ,          p\        VVS 3RVR	7      pV# )
c                 2   < S! SV 4      ^,          ^ ,          # rX  r<   )r  r  r  s   &r   metric_a[test_slsqp_segfault_wrong_workspace_computation.<locals>.efficient_metric.<locals>.metric_a  s    !W%a(++r   c                 0   < S! W4      ^ ,          ^ ,          # r   r<   )r  r  r  s   &&r   metric_b[test_slsqp_segfault_wrong_workspace_computation.<locals>.efficient_metric.<locals>.metric_b  s    !%a(++r   r   r   r@   c                 "   < S! V 4      S,
          # r&   r<   )r   r  r  s   &r   r   [test_slsqp_segfault_wrong_workspace_computation.<locals>.efficient_metric.<locals>.<lambda>  s    x{V7Kr   c                 <    \         P                  ! V 4      ^,
          # rX  r  r   s   &r   r   r    s    rvvay1}r   ra   rq   )rs   rt   r   )rD   rE   lenr   )r  r  r  r   r  resultr  r  s   ff    @r   efficient_metricItest_slsqp_segfault_wrong_workspace_computation.<locals>.efficient_metric  s{    	,	, e-KLe-DEG((CFBs1vI;./03(! !t!(&1	3
 r   N)rD   randomdefault_rnguniformlinspace)rngr   r  r  r  s       @r   /test_slsqp_segfault_wrong_workspace_computationr    sT    
 ))

 0
1C"S"A[[c2&F" Qr   )r.   numpy.testingr   r   r   r   r  r   r  numpyrD   r  scipy.optimizer   r   r	   r
   r   r   r4   r  r<   r   r   <module>r     sF   : : *   , , 0_	 _	D r   