+
    /i                     T   ^ RI t ^ RIHt ^ RIHt ^ RIt^ RIHt ^ RI	H
t
HtHt ^ RIt^ RIHt ^ RIHtHt ^ RIHt ^ R	IHtHtHt ^ R
IHt ^ RIHtHtHt ^ RIHt R4R lt R5R lt!R t"R t#R t$ ! R R4      t%R t&R t'R t(R t)R t*R5R lt+R t, ! R R4      t- ! R R4      t.R t/]0! ]Pb                  ! 4       4      ]/.,           t2 ! R  R!4      t3 ! R" R#4      t4 ! R$ R%4      t5 ! R& R'4      t6 ! R( R)]3]4]5]64      t7 ! R* R+]3]4]5]64      t8 ! R, R-]34      t9R. t:R/ t;R0 t<R1 t=R2 t>R3 t?R# )6    N)product)Pool)norm)assert_assert_allcloseassert_equal)raises)issparse	lil_array)aslinearoperator)least_squaresBoundsminimize)IMPLEMENTED_LOSSES)EPSmake_strictly_feasibleCL_scaling_vectorOptimizeResultc                 .    W,
          ^,          R,           # )         @ xas   &&e/var/www/html/photoedit/myenv/lib/python3.14/site-packages/scipy/optimize/tests/test_least_squares.pyfun_trivialr      s    EA:    c                      ^W,
          ,          # r   r   r   s   &&r   jac_trivialr"      s    ;r   c                 N    \         P                  ! V ^ ,          V ^,          .4      # r   nparrayr   s   &r   fun_2d_trivialr)      s    88QqT1Q4L!!r   c                 .    \         P                  ! ^4      # r!   )r&   identityr(   s   &r   jac_2d_trivialr,   !   s    ;;q>r   c                     \         P                  ! ^
V ^,          V ^ ,          ^,          ,
          ,          ^V ^ ,          ,
          .4      # )
   r%   r(   s   &r   fun_rosenbrockr/   %   s3    88R1Q4!A$'>*Q1X788r   c                   0   a  ] tR t^)t o R tRR ltRtV tR# )Fun_Rosenbrockc                    ^ V n         R# )r   Nnfevselfs   &r   __init__Fun_Rosenbrock.__init__*   s	    	r   c                J    V ;P                   ^,          un         \        V4      #    )r4   r/   )r6   r   r   s   &&&r   __call__Fun_Rosenbrock.__call__-   s    		Q	a  r   r3   Nr$   )__name__
__module____qualname____firstlineno__r7   r<   __static_attributes____classdictcell____classdict__s   @r   r1   r1   )   s     ! !r   r1   c                 V    \         P                  ! RV ^ ,          ,          ^
.R^ ..4      # )   r%   r(   s   &r   jac_rosenbrockrJ   2   s/    88	qtR	Q  r   c                 \    \         P                  ! RV ^ ,          ,          ^
.R^ .RR..4      # )rG           rH   rI   r%   r(   s   &r   jac_rosenbrock_bad_dimrM   9   s6    88	qtR	Q	c
  r   c                 &    \        V 4      ^ ,          # r$   )r/   r(   s   &r   fun_rosenbrock_croppedrO   A       !Qr   c                 &    \        V 4      ^ ,          # r$   )rJ   r(   s   &r   jac_rosenbrock_croppedrR   E   rP   r   c                 N    \         P                  ! W ^,          V ^,          .4      # r!   r%   r(   s   &r   fun_wrong_dimensionsrT   J   s    88Q1adO$$r   c                 B    \         P                  ! \        WR 7      4      # ))r   )r&   
atleast_3dr"   r   s   &&r   jac_wrong_dimensionsrW   N   s    ==Q,--r   c                    \        \        P                  ! V P                  ^ ,          4      4      p\        P                  ! V^,           V^,           34      pV P                  W34      p W^R1^R13&   VRR1^R13,          VR^R13,          ,           V^R1RR13,          ,           V^R1R3,          ,           ^V ,          ,
          V ^,          ,           pVP                  4       # )r   N:r   NNrI   )intr&   sqrtshapezerosreshaperavel)r   nuys   &   r   fun_bvprc   R   s    BGGAGGAJ A
!a%Q A			1&AadAbDjM	#2#qt)qQrT{"QqtSbSy\1AadBhK?!a%G!Q$NA779r   c                   6   a  ] tR t^[t o RR ltR tR tRtV tR# )BroydenTridiagonalc                `  a  \         P                  P                  R 4      pVS n        \         P                  ! V4      ) S n        \         P                  ! RRV4      S n        \         P                  ! RRV4      S n        S ;P                  RVP                  V4      ,          ,          un        S ;P                  RVP                  V4      ,          ,          un        S ;P
                  RVP                  V4      ,          ,          un        \        S P
                  S P                  S P                  4      S n        VR8X  d   \        W3\        R7      S n        \         P                  ! V4      p^S P                  WD3&   \         P                  ! ^V4      p^S P                  WD^,
          3&   \         P                  ! V^,
          4      p^S P                  WD^,           3&   S P                  S n        R# VR8X  d   V 3R lS n        R# VR8X  d   RS n        V 3R	 lS n        R# \#        R
4       R# )i0 rL   皙?sparsedtypeoperatorc                 8   < \        SP                  V 4      4      # N)r   _jacr   r6   s   &r   <lambda>-BroydenTridiagonal.__init__.<locals>.<lambda>v   s    !1$))A,!?r   denseNc                 B   < SP                  V 4      P                  4       # rm   )rn   toarrayro   s   &r   rp   rq   y   s    1!5!5!7r   FrY         g)r&   randomdefault_rngr`   onesx0linspacelbubstandard_normalr   r   rZ   sparsityarangern   jacr   )r6   r`   moderngis   f&&  r   r7   BroydenTridiagonal.__init__\   s   ii##F+771:+++b$*++dC+3,,Q///3,,Q///3,,Q///($''477C8%qfC8DM		!A"#DMM!$		!QA&'DMM!U(#		!a% A&'DMM!U(#yyDHZ?DHW_ DM7DHENr   c                    ^V,
          V,          ^,           pVR;;,          VRR ,          uu&   VRR;;; ^VR,          ,          ,          uuu% V# )   :r;   NNNrI   r   )r6   r   fs   && r   funBroydenTridiagonal.fun}   sC    UaK!O	"3B	#2!ae)r   c                t   \        V P                  V P                  34      p\        P                  ! V P                  4      p^^V,          ,
          W#V3&   \        P                  ! ^V P                  4      pRW#V^,
          3&   \        P                  ! V P                  ^,
          4      pRW#V^,           3&   V# )r   rI   rY   )r   r`   r&   r   )r6   r   Jr   s   &&  r   rn   BroydenTridiagonal._jac   s    tvvtvv&'IIdffa!e)Q$IIa QU(IIdffqj!QU(r   )r   r{   r`   r~   r|   ry   N)d   rh   )	r>   r?   r@   rA   r7   r   rn   rB   rC   rD   s   @r   re   re   [   s     B r   re   c                   :   a  ] tR t^t o RtRR ltR tR tRtV t	R# )ExponentialFittingProblemzYProvide data and function for exponential fitting in the form
y = a + exp(b * x) + noise.Nc                   \         P                  P                  V4      pW`n        ^V n        \         P
                  ! ^4      V n        \         P                  ! V^ ,          V^,          V4      V n        V\         P                  ! W P                  ,          4      ,           V n
        V ;P                  W7P                  V P                  4      ,          ,          un
        VP                  ^ V P                  V4      pV P                  V;;,          ^2V,          VP                  V4      ,          ,          uu&   \         P                  ! W.4      V n        R# )r   N)r&   rv   rw   mr`   r]   p0rz   r   exprb   r}   integersr'   p_opt)	r6   r   bnoise
n_outliersx_rangen_pointsr   outlierss	   &&&&&&&& r   r7   "ExponentialFittingProblem.__init__   s    ii##C(((1+WQZX>RVVAJ''%--dff555<<466:6xBJJ)???XXqf%
r   c                    V^ ,          \         P                  ! V^,          V P                  ,          4      ,           V P                  ,
          # r$   )r&   r   r   rb   r6   ps   &&r   r   ExponentialFittingProblem.fun   s/    tbffQqTDFF]++dff44r   c                    \         P                  ! V P                  V P                  34      p^VR&   V P                  \         P
                  ! V^,          V P                  ,          4      ,          VR&   V# )r;   )NNNr   )r   r;   )r&   emptyr   r`   r   r   )r6   r   r   s   && r   r   ExponentialFittingProblem.jac   sR    HHdffdff%&$&&266!A$-00$r   )r   r`   r   r   r   rb   )r;   )rI   r;      N)
r>   r?   r@   rA   __doc__r7   r   r   rB   rC   rD   s   @r   r   r      s     #&"5 r   r   c                     \         P                  ! ^V P                  34      p^V ,           p^VR,          ^,
          ,          V^ &   VR,          V^&   RVR,          ,          V^&   V# )r   gUUUUUU?gUUUUUUg)r&   r   size)zrhots   &  r   cubic_soft_l1r      s[    
((Aqvv;
C	AA!c(Q,CF4[CFAICFJr   c                      a  ] tR t^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R tR tR tR t]P6                  P9                  ^4      ]P6                  P;                  R4      R 4       4       tRtV t R# )	BaseMixinzBjac='(3-point|cs)' works equivalently to '2-point' for method='lm'c                    \        \        R V P                  R7      p\        VP                  ^ RR7       \        VP
                  \        VP                  4      4       R# )       @method-C6?atolN)r   r   r   r   r   r   r6   ress   & r   
test_basicBaseMixin.test_basic   s;    KDKK@qt,SUU!34r   c                j   R pRRR\         3 EF  p\        P                  ! 4       ;_uu_ 4        \        P                  ! RV P                  \
        4       \        \        RW!3V P                  R7      p\        \        RVRV/V P                  R7      pR	R	R	4       \        XP                  VR
R7       \        XP                  VR
R7       \        \        \        \        RRV P                  R7       \        \        \        \        RR^/V P                  R7       EK  	  R	#   + '       g   i     L; i)      @2-point3-pointcsignorer   )argsr   r   )kwargsr   Nr   )rtolkaboom)r      )r"   warningscatch_warningsfilterwarningsmsgUserWarningr   r   r   r   r   assert_raises	TypeError)r6   r   r   r   res1s   &    r   test_args_kwargsBaseMixin.test_args_kwargs   s    y$<C((**''$((KH#Kc+/;;8$[#sC8+/;;8	 + CEE140DFFAD1)]K&t{{<)]K"*At{{D D =**s   A%D""D2c           
        R RR\         3 F  p\        P                  ! 4       ;_uu_ 4        \        P                  ! RV P                  \
        4       \        \        RWP                  R7      pRRR4       \        XP                  ^ RR7       K  	  \        \        \        \        RR	V P                  R
7       R#   + '       g   i     LU; i)r   r   r   r   r   r   Nr   r   oopsr   r   )r"   r   r   r   r   r   r   r   r   r   r   r   
ValueErrorr6   r   r   s   &  r   test_jac_optionsBaseMixin.test_jac_options   s    y$<C((**''$((KH#Kc++N + CEE140	 = 	j-cv![[	* +*s   AB;;Cc                    R F8  p\        \        RVV P                  R7      p\        VP                  ^ RR7       K:  	  R # )Nr   )max_nfevr   r   r   )NrG   r   r   r   r   r   )r6   r   r   s   &  r   test_nfev_optionsBaseMixin.test_nfev_options   s3    "HS8'+{{4CCEE140 #r   c           	        R \         P                  ! R.4      R3 F+  p\        \        RVR7      p\	        VP
                  ^ 4       K-  	  \        \        \        \        RRV P                  R7       \        \        \        \        RRV P                  R7       \        \        \        \        RR	V P                  R7       R# )
      ?      ?r   r   )x_scaleauto)r   r   N      y      ?       @)	r&   r'   r   r   r   r   r   r   r   )r6   r   r   s   &  r   test_x_scale_optionsBaseMixin.test_x_scale_options   s    RXXse_e4GS'BCCEE1% 5 	j-6$++	?j-4	=j-8DKK	Ar   c                    \        \        R RV P                  R7      p\        \        R RV P                  R7      p\        VP                  ^ RR7       \        VP                  ^ RR7       R# )r   rg   )	diff_stepr   Nr   r   r   )r6   r   res3s   &  r   test_diff_stepBaseMixin.test_diff_step   sQ    [#$(KK1[#'+DKKA--r   c           	         \        \        \        \        R V P                  R^d/R7       \        \        \        \        R V P                  R^d/R7       R# )r   no_such_option)r   optionsr   N)r   r   r   r   r   r5   s   &r   test_incorrect_options_usage&BaseMixin.test_incorrect_options_usage   sA    iS![[3CS2I	KiS![[:s2C	Er   c                   \        \        R V P                  R7      p\        VP                  ^ RR7       \        VP
                  R4       \        VP                  ^4       \        VP                  ^ RR7       \        VP                  ^ RR7       \        VP                  ^ RR7       \        VP                  ^ 4       V P                  R8X  d   \        VP                  RJ 4       M0\        VP                  ^
8  4       \        VP                  ^
8  4       \        VP                  ^ 8  4       \        VP                   4       R# )r   r   r   r   g      )@{Gz?lmN)r   r   r   r   r   costr   r   grad
optimalityr   active_maskr   njevr4   statussuccessr   s   & r   test_full_resultBaseMixin.test_full_result   s     KT[[Aqt,$'#.!$/5S__a(;;$CHH$%CHHrM"CHHrM"

Qr   c                   V P                   R 8X  d   R# \        \        RV P                   ^R7      p\        VP                  \
        P                  ! ^.4      4       \        VP                  R4       \        VP                  \
        P                  ! ^	.4      4       \        VP                  \
        P                  ! ^..4      4       \        VP                  \
        P                  ! ^$.4      4       \        VP                  ^$4       \        VP                  \
        P                  ! ^ .4      4       \        VP                  ^4       \        VP                  ^4       \        VP                  ^ 4       \        VP                   ^ 4       R# )r   Nr   )r   r   g     @D@)r   r   r   r   r   r&   r'   r   r   r   r   r   r   r4   r   r   r   r   s   & r   test_full_result_single_fev%BaseMixin.test_full_result_single_fev  s     ;;$KT[[%&(SUUBHHaSM*SXXt$SWWbhhsm,SWWbhhuo.SXXrxx~.S^^R(S__bhhsm4SXXq!SXXq!SZZ#S[[!$r   c           	     $   \        ^^4       F  p\        P                  P                  R4      pVP	                  ^R7      ^
,          p\        4       p\        WC\        V P                  VR7      pVP                  VP                  8X  d   K  Q h	  R# )r;   i )r   )r   r   r   N)
ranger&   rv   rw   uniformr1   r   rJ   r   r4   )r6   r   r   ry   ftrivialr   s   &     r   	test_nfevBaseMixin.test_nfev'  sr    q!A))''/C!$r)B%'HaC 88x}},,, r   c                   R^.p^^.p\        RRR\        .R\        P                  ! RR.4      R.RR.4       F  w  r4p\        P
                  ! 4       ;_uu_ 4        \        P                  ! R	V P                  \        4       \        \        WVWPP                  R
7      pRRR4       \        XP                  V4       K  	  R#   + '       g   i     L,; i)r   r   r   r   r   皙?r   exactlsmrr   r   	tr_solverr   NrY   )r   rJ   r&   r'   r   r   r   r   r   r   r/   r   r   r   )r6   ry   x_optr   r   r  r   s   &      r   test_rosenbrockBaseMixin.test_rosenbrock2  s    !WA'.It^<bhhSz*E2&!(##C) ((**''$((KH#NBW.7M + CEE5)(# +*s   ACCc           
     J   R^.pV P                   R8X  d   \        \        \        \        VRR7       R# \        RRR\        .R\        P                  ! RR.4      R.R	R
.4       F;  w  r#p\        \        WVW@P                   R7      p\        VP                  ^ RR7       K=  	  R# )r   r   r   r   r   r   r   r  r   r  r  r  g+=r   NrY   )r   r   r   r   rO   r   rR   r&   r'   r   r   )r6   ry   r   r   r  r   s   &     r   test_rosenbrock_cropped!BaseMixin.test_rosenbrock_cropped?  s    !W;;$*m5KT+ ,3	41GH"((C:.6f%,''i $*BW'=  !%8,'r   c                R    \        \        \        \        R V P                  R7       R# r   r   N)r   r   r   rT   r   r5   s   &r   test_fun_wrong_dimensions#BaseMixin.test_fun_wrong_dimensionsN  s    j-1E$++	/r   c           	     \    \        \        \        \        R \        V P
                  R7       R# r  )r   r   r   r   rW   r   r5   s   &r   test_jac_wrong_dimensions#BaseMixin.test_jac_wrong_dimensionsR  s    j-/	Er   c           	     d    ^^.p\        \        \        \        V\        V P
                  R7       R# )r;   r   N)r   r   r   r/   rM   r   r6   ry   s   & r   (test_fun_and_jac_inconsistent_dimensions2BaseMixin.test_fun_and_jac_inconsistent_dimensionsV  s%    Vj-,T[[	Br   c                    \         P                  ! ^4      P                  ^^4      p\        \        \
        \        VV P                  R7       R# )r   r   N)r&   rx   r^   r   r   r   r   r   r  s   & r   test_x0_multidimensional"BaseMixin.test_x0_multidimensional[  s3    WWQZ1%j-b![[	*r   c                V    Rp\        \        \        \        VV P                  R7       R# )r   r   N       @        r   r   r   r   r   r  s   & r   test_x0_complex_scalar BaseMixin.test_x0_complex_scalar`  s    j-b![[	*r   c                Z    R R.p\        \        \        \        VV P                  R7       R# )r   r   Nr  r  r  s   & r   test_x0_complex_arrayBaseMixin.test_x0_complex_arraye  s#    < j-b![[	*r   c                   ^
p\         P                  ! V^,          4      pV P                  R8X  d   RpM^dp\        \        VRV P                  VR7      p\        VP                  V8  4       \        VP                  R8  4       R# )r.   r   i  r   )ftolr   r   r   N)r&   rx   r   r   rc   r   r4   r   )r6   r`   ry   r   r   s   &    r   test_bvpBaseMixin.test_bvpj  sl    
 WWQT];;$HHGRd4;;%-/ 	8#$3r   c                X    \        \        \        \        R V P                  RRRR7       R# )r   N)r   r%  xtolgtolr  r5   s   &r   /test_error_raised_when_all_tolerances_below_eps9BaseMixin.test_error_raised_when_all_tolerances_below_eps{  s     j-c![[t$T	Kr   c                    V P                   R 8X  d   R# R^.p^^.pR F?  w  r4p\        \        V\        W5VV P                   R7      p\	        VP
                  V4       KA  	  R# )r   N)r   r%  r*  r)  r   rY   )):0yE>NN)Nr.  N)NNr.  )r   r   r/   rJ   r   r   )r6   ry   r  r%  r)  r*  r   s   &      r   0test_convergence_with_only_one_tolerance_enabled:BaseMixin.test_convergence_with_only_one_tolerance_enabled  sb    ;;$!WA!6D  %)4'+{{4C CEE5)!6r   r   c           	     x   \        \        R V P                  R7      p. pR F1  p\        \        R V P                  VR7      pVP                  V4       K3  	  \	        ^4      ;_uu_ 4       p\        \        R V P                  VP
                  R7      pVP                  V4       RRR4       V Fw  pVP                  '       g   Q h\        VP                  VP                  4       \        VP                  VP                  4       \        VP                  VP                  4       Ky  	  R#   + '       g   i     L; i)r   r   N)r   workers)Nr   )r   r   r   appendr   mapr   r   r   r4   r   )r6   serialresesr2  r   s   &    r   test_workersBaseMixin.test_workers  s     {CD GSgC LL	 !
 !WWSgkkC LL	 
 C;;;;)6;;/6;;/	  Ws   )9D))D9	r   N)!r>   r?   r@   rA   r   r   r   r   r   r   r   r   r   r   r   r	  r  r  r  r  r  r  r"  r&  r+  r/  pytestmarkparallel_threads_limit	fail_slowr7  rB   rC   rD   s   @r   r   r      s     
NC5D&*1	A.E&%(	-*9/EB
*
*
*
 "K
* [[''*[[30   +0r   r   c                      a  ] tR tRt o R tR tR tR tR tR t	R t
]P                  P                  ^
4      R	 4       tR
tV tR# )BoundsMixini  c           	     T    \        \        \        \        R RV P                  R7       R# )r   boundsr   N)      $@rL   r  r5   s   &r   test_inconsistentBoundsMixin.test_inconsistent  s    j-c(	>r   c           	     T    \        \        \        \        R RV P                  R7       R# )r   r@  N)r   r   r  r5   s   &r   test_infeasibleBoundsMixin.test_infeasible  s    j-c$T[[	:r   c           	     T    \        \        \        \        R RV P                  R7       R# )r   r@  N)r   r   r   r  r5   s   &r   test_wrong_numberBoundsMixin.test_wrong_number  s    j-b'	=r   c           	         \        \        \        \        R RR R.3V P                  R7       \        \        \        \
        RR .R.RR.3V P                  R7       R# )r   r   r   r@  rL         @N)r   r   r   r   r   r/   r5   s   &r   test_inconsistent_shape#BoundsMixin.test_inconsistent_shape  sP    j-c!C:.t{{	D 	j-#s"ec3Z0	Fr   c           	         R RR\         3 F  p\        \        RVR
V P                  R7      p\	        VP
                  RRR7       \        VP                  ^ .4       \        RVP
                  u;8*  ;'       d    ^8*  Mu 4       \        \        RVRV P                  R7      p\	        VP
                  RRR7       \        VP                  R.4       \        RVP
                  u;8*  ;'       d    ^8*  Mu 4       K  	  R	# )r   r   r   r   r   rA  r   rL   r   r   r   N)r   r   rI   )r   r   )	r"   r   r   r   r   r   r   r   r   r   s   &  r   test_in_boundsBoundsMixin.test_in_bounds  s    y$<CSc'24;;HCCEE3T21#.B#%%$$1$%Sc'1$++GCCEE3T22$/C355%%A%& =r   c                   R  pR pRRR\         3 F  pW3 F  pRR.p\        \        WSR7      p\        VP                  RR.4       \        \        WSV! RR	R	.4      V P
                  R
7      p\        VP                  RR.4       \        \        WSV! RR.R4      V P
                  R
7      p\        VP                  RR.4       \        \        WSV! RR.RR.4      V P
                  R
7      p\        VP                  RR.RR7       K  	  K  	  R# )c                     W3# rm   r   r{   r|   s   &&r   get_bounds_direct8BoundsMixin.test_bounds_shape.<locals>.get_bounds_direct  s	    6Mr   c                     \        W4      # rm   )r   rU  s   &&r   get_bounds_instances;BoundsMixin.test_bounds_shape.<locals>.get_bounds_instances  s    ">!r   r   r   r   r   )r   rL   r   r   rP  g333333?r  r   h㈵>r   NrI   )r,   r   r)   r   r   r   )r6   rV  rY  r   bounds_funcry   r   s   &      r   test_bounds_shapeBoundsMixin.test_bounds_shape  s   		" y$?C 1H3Z#NB@Sz2#NB+6sS#J+G+/;;8  Sz2#NB+6Sz3+G+/;;8  Sz2#"B&Cy3*=;;(  Sz=!  I @r   c           	        \        \        R \        4       R7      p\        VP                  RRR7       \        \        R\        RR7      R7      p\        VP                  RRR7       \        \        R \        RRR7      R7      p\        VP                  RRR7       \        \        R\        RR	7      R7      p\        VP                  RRR7       \        \
        R R .\        RR.RR7      R7      p\        VP                  RR.R
R7       \        \
        R R .\        RR.R7      R7      p\        VP                  RR.R
R7       R# )r   )rA  rL   r   r   r   r   )r{   rU  )r|   r[  rg   Nr         )r   r   r   r   r   r)   r   s   & r   test_bounds_instances!BoundsMixin.test_bounds_instances  s    KVX>s.KVs^Ds.KVt5LMs.KfoFt$/NS#J#)dD\c#BDSz5NS#J#)c3Z#8:Sz5r   c                   \         P                  ! RR.4      p\         P                  ! R R .4      p\         P                  ! RR .4      p\         P                  ! RR .4      p\         P                  ! RR.4      pV\         P                  ) R.\         P                  33V\         P                  ) R.\         P                  33V\         P                  ) R.\         P                  33V\         P                  ) R.R\         P                  .33VRR.RR.33VRR.R^d.33.pV Fa  w  rx\        RRR\        .RRR.R	.R
R.4       F<  w  rp\        \        WyVWV P                  R7      p\        VP                  RRR7       K>  	  Kc  	  R# )r   r   rL   g      ?r   r   r   r   r   r   r  r  r  r[  r   Ng       g333333ru   g      I)
r&   r'   infr   rJ   r   r/   r   r   r   )r6   x0_1x0_2x0_3x0_4x0_5problemsry   rA  r   r   r  r   s   &            r   test_rosenbrock_bounds"BoundsMixin.test_rosenbrock_bounds  so   xxs$xxc
#xxs$xxc
#xxs$bffWdORVV,-bffWcNBFF+,bffWcNBFF+,bffWcNS"&&M23S#Jc
+,UCL3*-.
 #JB+2	4@3*e,f%,''i $NBV,3+/;;8  $?,' #r   r   N)r>   r?   r@   rA   rC  rF  rI  rM  rQ  r]  ra  r9  r:  r<  rk  rB   rC   rD   s   @r   r>  r>    sN     >:=F'>46* [[2@ @r   r>  c                      a  ] tR tRt o R tR tR tR tR tR t	]
P                  P                  ^
4      R 4       tR	 tR
 tR tRtV tR# )SparseMixini  c           
     "   \        4       p\        \        \        VP                  VP
                  VP                  R V P                  R7       \        \        \        VP                  VP
                  R VP                  V P                  R7       R# )r  r  r   )r  jac_sparsityr   N)	re   r   r   r   r   ry   r   r   r~   r   s   & r   test_exact_tr_solver SparseMixin.test_exact_tr_solver  sY     j-aee '	=j- 'ajj![[	*r   c                   \        R R7      p\        RR7      p\        VP                  VP                  VP                  V P
                  R7      p\        VP                  VP                  VP                  V P
                  R7      p\        VP                  VP                  4       \        VP                  VP                  RR7       \        VP                  ^ RR7       \        VP                  ^ RR7       R# rh   r   rr   r   #B;r   N)re   r   r   ry   r   r   r   r4   r   r   r   r6   rh   rr   
res_sparse	res_denses   &    r   test_equivalenceSparseMixin.test_equivalence  s    #2"0"JJ		vzz;; 
 "IIuxxVZZ;; 	 	Z__inn5
ikk>
7	6r   c                    \        4       p\        VP                  VP                  VP                  V P
                  R R/R7      p\        VP                  ^ RR7       R# )btol绽|=r   
tr_optionsrw  r   N)re   r   r   ry   r   r   r   r   r6   r   r   s   &  r   test_tr_optionsSparseMixin.test_tr_options'  sC     AEE144t{{(.8!%0r   c           
        \        4       p\        \        \        VP                  VP
                  VP                  R V P                  R7       \        \        \        VP                  VP
                  VP                  RRR/R7       R# )bestrp  r  tolr  )r  r  N)	re   r   r   r   r   ry   r   r   r   r   s   & r   test_wrong_parameters!SparseMixin.test_wrong_parameters-  sY     j-aee &t{{	<iqttQUU &E5>	Cr   c                   \        R R7      p\        RR7      p\        VP                  VP                  VP                  V P
                  R7      p\        VP                  VP                  VP                  V P
                  R7      p\        VP                  ^ RR7       \        VP                  ^ RR7       \        \        VP                  4      4       \        \        VP                  \        P                  4      4       R# ru  )re   r   r   ry   r   r   r   r   r   r
   
isinstancer&   ndarrayrx  s   &    r   test_solver_selection!SparseMixin.test_solver_selection4  s    #2"0"6::vyyfjj*.++7
!%))UXX599)-6	
7	6()
9=="**56r   c           	        \        4       pR F  p\        VP                  VP                  W P                  R7      p\        VP                  VP                  W P                  VP
                  R7      p\        VP                  VP                  4       \        VP                  VP                  RR7       \        VP                  ^ RR7       \        VP                  ^ RR7       K  	  R# )r   r   )r   rq  rw  r   N)r   r   r   )re   r   r   ry   r   r~   r   r4   r   r   r   )r6   r   r   rz  ry  s   &    r   test_numerical_jacSparseMixin.test_numerical_jac@  s     /C%aeeQTT3{{KI&qttSZZ)J 9IKKEBINNAE:JOOQU; 0r   c           
        \        4       p\        VP                  R RR.RVP                  .4       EF$  w  r#\	        VP
                  VP                  W!P                  \        P                  3V P                  VR7      p\	        VP
                  VP                  V\        P                  ) VP                  3V P                  VR7      p\	        VP
                  VP                  W!P                  VP                  3V P                  VR7      p\        VP                  ^ RR7       \        VP                  ^ RR7       \        VP                  ^ RR7       EK'  	  R# )r   r   r   N)rA  r   rq  r  r   )re   r   r   r~   r   r   ry   r{   r&   rd  r   r|   r   r   )r6   r   r   rq  res_1res_2res_3s   &      r   test_with_boundsSparseMixin.test_with_boundsL  s    !(	9d3dAJJ5G"IC!qttS$${{>E "qttS266'144{{?E "qttS$${{?E E,,ae<E,,ae<E,,ae<<"Ir   c           	         \        4       pVP                  R R p\        \        \        VP
                  VP                  W P                  R7       R # )Nrq  r   rI   )re   r~   r   r   r   r   ry   r   )r6   r   r~   s   &  r   test_wrong_jac_sparsity#SparseMixin.test_wrong_jac_sparsity^  s9     ::cr?j-#+KK	Ar   c           
     @   \        R R7      p\        VP                  VP                  VP                  V P
                  R7      p\        VP                  RRR7       \        \        \        VP                  VP                  VP                  V P
                  RR7       R# )	rk   rv  r   rL   rw  r   r  )r   r  N
re   r   r   ry   r   r   r   r   r   r   r  s   &  r   test_linear_operator SparseMixin.test_linear_operatord  sc    J/AEE144t{{C#E2j-aee![[G	=r   c           
     V   \        4       p\        VP                  VP                  VP                  V P
                  R R7      p\        VP                  RRR7       \        RR7      p\        \        \        VP                  VP                  VP                  V P
                  R R7       R# )r   )r   r   rL   rw  r   rk   rv  Nr  r  s   &  r   test_x_scale_jac_scale"SparseMixin.test_x_scale_jac_scalek  sp     AEE144t{{$)+#E2J/j-aee![[%	9r   r   N)r>   r?   r@   rA   rr  r{  r  r  r  r  r9  r:  r<  r  r  r  r  rB   rC   rD   s   @r   rn  rn    s\     *71C
7
< [[2= ="A=9 9r   rn  c                   >   a  ] tR tRt o R tR tR tR tR tRt	V t
R# )	LossFunctionMixiniv  c           	         \          F8  p\        \        R VV P                  R7      p\	        VP
                  ^ RR7       K:  	  \        \        \        \        R RV P                  R7       R# )r   lossr   V瞯<r   hingeN)LOSSESr   r   r   r   r   r   r   r6   r  r   s   &  r   test_optionsLossFunctionMixin.test_optionsw  sN    DSt'+{{4CCEE151 
 	j-c"4;;	8r   c                    \          FI  p\        \        R VV P                  R7      p\	        VP
                  \        VP                  4      4       KK  	  R# )r   r  N)r  r   r   r   r   r   r   r  s   &  r   test_funLossFunctionMixin.test_fun  s<     DSt'+{{4C+cee"45 r   c           	     B   \         P                  ! R .4      p\        \        V\        R^V P
                  R7      p\        VP                  ^V,          V^,          ^,           ,          4       \        \        V\        R^V P
                  R7      p\        VP                  ^V,          4       \        \        V\        R^V P
                  R7      p\        VP                  ^V,          V^,          ^,           ,          ^V^,          ^,           ^,          ,           R,          ,          4       \        \        V\        R^V P
                  R7      p\        VP                  ^V,          V^,          ^,           ,          ^V^,          ^,           ^,          ,           ,          4       \        \        V\        R^V P
                  R7      p\        VP                  ^V,          V^,          ^,           ,          ^V^,          ^,           ^,          ,           ,          4       \        \        V\        \        ^V P
                  R7      p\        VP                  ^V,          V^,          ^,           ,          ^V^,          ^,           ^,          ,           R	,          ,          4       R# )
r   linearr  r   r   hubersoft_l1r   cauchyarctanNgUUUUUU?)
r&   r'   r   r   r"   r   r   r   r   r   )r6   r   r   s   &  r   	test_gradLossFunctionMixin.test_grad  s    HHcUOKKh%&t{{<SXXq1u1q12KKg%&t{{<SXXq1u%KKi%&t{{<AA*a1a4!8a-.?#-EE	G KKh%&t{{<!a%1a4!8"4QTAXM8I"JKKKh%&t{{<!a%1a4!8"4QTAXM8I"JKKKm%&t{{<AA*a1a4!8a-.?3-GG	Ir   c           
     N   R pV^,          ^,           p\        \        V\        R^V P                  R7      p\	        VP
                  ^V,          4       \        \        V\        R^V P                  R7      p\	        VP
                  ^V,          \        R,          ,          4       \        \        V\        R^
^R7      p\	        VP
                  ^V,          4       \        \        V\        R^V P                  R7      p\        VP
                  ^V,          ^V^,          ,           R,          ,          4       \        \        V\        R^V P                  R7      p\        VP
                  ^V,          \        R,          ,          4       \        \        V\        R^
^V P                  R7      pV^
,          p\        VP
                  ^V,          ^V^,          ,
          R,          ,          ^V^,          ,           ,          4       \        \        V\        R	^V P                  R7      p\        VP
                  ^V,          \        R,          ,          4       \        \        V\        R	R
^V P                  R7      pV^,          p\        VP
                  ^V,          ^^V^,          ,          ,
          R,          ,          ^V^,          ,           ,          4       \        \        V\        \        ^R7      p\        VP
                  ^V,          \        R,          ,          4       \        \        V\        \        ^^R7      pV^,          p\        VP
                  ^V,          ^V^,          ^,          ,
          R,          ,          ^V^,          ,           R,          ,          4       R# )r   r  r  r  r   )r  f_scaler   r  r  )r  r  r   r   r  g      4@)r  r   Ng      g)	r   r   r"   r   r   r   r   r   r   )r6   r   r   r   fss   &    r   test_jacLossFunctionMixin.test_jac  s    qD1HKKh%&t{{<SWWa!e$ KKg%&t{{<SWWa!ec3h./ KKg$&4SWWa!e$ KKi%&t{{<Q!ad(U):!:; KKh%&t{{<Qc!12 KKh$&4;;HVQ!b!e)c)9!9QQY!GH KKh%&t{{<Qc!12 KKh$(1T[[JVQ!a"a%i-#)=!=RU!KL KKm%&(Qc!12 KK!.AGUARUQY 44BE	T7JJ	Lr   c                V   R EF!  p\        ^R VRR7      pRRRVP                  3 F  p\        VP                  VP                  VV P
                  R7      p\        VP                  ^ RR7       \         F  pVR	8X  d   K  \        VP                  VP                  W5VV P
                  R
7      p\        VP                  ^ RR7       \        \        VP                  VP                  ,
          4      \        VP                  VP                  ,
          4      8  4       K  	  K  	  EK$  	  R# )rg   iy )r   r   r   r   r   r   r   r  )r   r  r  r   N)rg   r   )r   r   r   r   r   r   r   r   r  r   r   r   r   )r6   r   r   r   res_lsqr  
res_robusts   &      r   test_robustness!LossFunctionMixin.test_robustness  s    E)!S%XFA!9dAEE:'qtt/3{{< 2 2ADA"Dx' !.qtt#{{",J $J$9$914HD!78 QWW!456 7 #	 ;  r   r   N)r>   r?   r@   rA   r  r  r  r  r  rB   rC   rD   s   @r   r  r  v  s'     86I>BLH7 7r   r  c                       ] tR tRtRtRtR# )
TestDogboxi  dogboxr   N)r>   r?   r@   rA   r   rB   r   r   r   r  r    s    Fr   r  c                   *   a  ] tR tRt o RtR tRtV tR# )TestTRFi  trfc           	         \        4       pR FK  p\        VP                  VP                  VP                  RRV/R7      p\        VP                  ^ RR7       KM  	  R# )Tr  
regularizer  rw  r   N)TF)re   r   r   ry   r   r   r   )r6   r   r  r   s   &   r   test_lsmr_regularization TestTRF.test_lsmr_regularization  sK     'JqttQUU5,8*+EGCCHHae4 (r   r   N)r>   r?   r@   rA   r   r  rB   rC   rD   s   @r   r  r    s     F5 5r   r  c                   N   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V tR# )TestLMi  r   c           	     @    \        \        \        \        R RRR7       R# )r   r   r@  N)r`  r   r   r   r   r   r5   s   &r   test_bounds_not_supported TestLM.test_bounds_not_supported  s    j-+d	<r   c                F    R^.p\        \        \        \        VRR7       R# )r   r   r   NrY   )r   r   r   rO   r  s   & r   test_m_less_n_not_supported"TestLM.test_m_less_n_not_supported  s    !Wj-1G!	#r   c           	         \        4       p\        \        \        VP                  VP
                  VP                  R R7       R# )r   r   Nre   r   r   r   r   ry   r   r   s   & r   test_sparse_not_supported TestLM.test_sparse_not_supported  s+     j-aee!	#r   c           	     B    \        \        \        \        R ^.RR7       R# )r   r   r  Nr  r5   s   &r   test_jac_sparsity_not_supported&TestLM.test_jac_sparsity_not_supported  s    j-c$%3t	5r   c           	         \        R R7      p\        \        \        VP                  VP
                  VP                  RR7       R# )rk   rv  r   r   Nr  r   s   & r   !test_LinearOperator_not_supported(TestLM.test_LinearOperator_not_supported"  s-    J/j-aee!	#r   c           	         \        \        R RRR7      p\        VP                  RRR7       \	        \
        \         \        R RRR7       R	# )
r   r  r   r  rL   r   r   r  )r   r  N)r   r   r   r   r   r   r   s   & r   	test_lossTestLM.test_loss'  s7    K8DIs.j-c!	1r   c           	         R  p\         P                  ! 4       ;_uu_ 4        \         P                  ! RR\        4       \	        \
        ^ .RVR7       RRR4       R#   + '       g   i     R# ; i)c                     Q h)Fr   r(   s   &r   callback5TestLM.test_callback_with_lm_method.<locals>.callback/  s    5r   r   z@Callback function specified, but not supported with `lm` method.r   )ry   r   r  N)r   r   r   r   r   r   )r6   r  s   & r   test_callback_with_lm_method#TestLM.test_callback_with_lm_method.  sP    	 $$&&##R
 +1#dXN '&&&s   1AA-	r   N)r>   r?   r@   rA   r   r  r  r  r  r  r  r  rB   rC   rD   s   @r   r  r    s4     F<#
#
5#
1
O 
Or   r  c                  V    \        \        R 4      p \        V P                  ^ RR7       R# )r   r  r   N)r   r   r   r   )r   s    r   r   r   ;  s    
S
)CCEE15)r   c                  `  a
 . o
R  V
3R llp V
3R lpR V
3R llpV
3R lpW.pVV.pR R R .p\        WF4       F  w  rxS
P                  4        V! V4      p	\        S
4      ^ 8  g   Q hS
R
,          P                  ^ 8  g   Q hV	P                  R8w  g   Q h\        S
R
,          P                  V	P                  4       K  	  \        WV4       F\  w  rxS
P                  4        V! V4      p	\        S
4      ^ 8  g   Q hS
R
,          P                  ^8X  g   Q hV	P                  R8X  d   K\  Q h	  R	# )c                $    V ^8  d   QhR\         /# r   intermediate_resultr   )formats   "r   __annotate__#test_callback.<locals>.__annotate__F  s     , ,^ ,r   c                 *   < SP                  V 4       R # rm   )r3  r  resultss   &r   my_callback_optimresult.test_callback.<locals>.my_callback_optimresultF  s    *+r   c                 X   < \        4       p^Vn        Wn        SP                  V4       R# )r;   F)r   nitr   r3  r   rr  s   & r   my_callback_x$test_callback.<locals>.my_callback_xI  s&    qr   c                $    V ^8  d   QhR\         /# r  r   )r  s   "r   r  r  P  s      +r   c                 2   < SP                  V 4       \        hrm   )r3  StopIterationr  s   &r   &my_callback_optimresult_stop_exception=test_callback.<locals>.my_callback_optimresult_stop_exceptionP  s    *+r   c                 `   < \        4       p^Vn        Wn        SP                  V4       \        hr:   )r   r  r   r3  r  r  s   & r   my_callback_x_stop_exception3test_callback.<locals>.my_callback_x_stop_exceptionU  s)    qr   c                 (    \        \        R RV R7      # )r   r  r   r  r   r   r  s   &r   rp   test_callback.<locals>.<lambda>c  s    {C08:r   c                 *    \        \        R RRV R7      # )r   r  )r   rA  r  )g              @r  r  s   &r   rp   r	  e  s    {C.9HNr   c                 (    \        \        R RV R7      # )r   r  r  r  r  s   &r   rp   r	  g  s    {C08:r   NrI   rY   )r   clearlenr  r   r   r   )r  r  r   r  callbacks_nostopcallbacks_stopcalls
mycallbackcallr   r  s             @r   test_callbackr  A  s0    G, , 
 0?<24N
	:	N	:E $$4<
:7|ar{"""zzRsuu- = $N:
:7|ar{!###zzR ;r   c                  Z    R F$  w  rp\        \        \        \        RVWRR7       K&  	  R # )Nr   r   )r)  r%  r*  r   ))NvIh%<=r  )r  Nr  )r  r  Nr  )r%  r)  r*  s      r   test_small_tolerances_for_lmr    s,    3D 	j-c4	93r   c                    aa \         P                  P                  R 4      p \         P                  ! ^ ^^d\         P                  R7      pV P                  ^d\         P                  R7      pR oV3R loV3R lp\        SRR.W3R7      pVP                  ^8  g   Q h\        VRR.RW3R	R
/R7      p\        VP                  VP                  RR7       R# )i  ri   )r   rj   c                 x    V ^ ,          V ^,          V,          ,           P                  \        P                  4      # r$   astyper&   float32)r   r   s   &&r   functest_fp32_gh12991.<locals>.func  s'    !qtax''

33r   c                 \   < S! W4      V,
          P                  \        P                  4      # rm   r  )r   r   rb   r  s   &&&r   errtest_fp32_gh12991.<locals>.err  s     Q
Q&&rzz22r   c                 L   < \         P                  ! S! WV4      ^,          4      # r!   )r&   sum)r   r   rb   r   s   &&&r   msetest_fp32_gh12991.<locals>.mse  s    vvc!lAo&&r   r   )r   cobyqafinal_tr_radiusgư>)r   r   r   g9̗?r   Nr   )
r&   rv   rw   rz   r  r   r4   r   r   r   )r   r   rb   r$  r   res2r   r  s         @@r   test_fp32_gh12991r)    s     ))


%C
Aq#RZZ0A

2::
.A43' dD\
7C 88a<<	sV"D)D CEE466-r   c                    a R oRp V3R lpRp\        WR^ \        P                  3R7      p\        VP                  VP
                  \        P                  ! ^ 4      \        P                  ! \        P                  4      4      w  rEVP                  ^8X  g   Q h\        P                  P                  VP
                  V,          \        P                  R7      V8  g   Q hR# )g-q=gyYs=c                 $   < V S,
          ^,          # r!   r   )r   answers   &r   chi2%test_gh_18793_and_19351.<locals>.chi2  s    &1}r   r  )ry   r*  rA  )ordN)
r   r&   rd  r   r   r   
atleast_1dr   linalgr   )initial_guessr-  r*  r   scaling_r,  s         @r   test_gh_18793_and_19351r5    s    FM D
UArvv;
OC #355#((#%==#3R]]2665JLJG::??99>>#((W,"&&>9D@@@r   c                  t  aa \         P                  ! R .^B,          . RNR NR NR NR NR NRNRNR NR NRNRNRNRNR NR NR NRNR NR NRNRNR NRNRNRNRNR NR NRNRNRNRNRNRNR	NRNR	NRNRNR
NRNRNRNRNR
NRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNR NR!NR"NR#NR$NR%NR&NR'NR(NR)NR*NR+N,           4      o\         P                  ! ^ SP                  4      R,,          oVV3R- lp . R2OpR3\         P                  ^
R.33p\        WR/VR07      pVP                  '       g   Q hR1# )4rL   r   r   r   g      @r   r  rL  g      "@g      @g      *@g      &@rB  g      ,@g      3@g      .@g      2@g      :@g      @@g      =@g      <@g      B@g     A@g     E@g      J@g      M@g      L@g     P@g     J@g      R@g      V@g     @S@g     W@g     W@g      U@g     U@g     @Y@g     Z@g      [@g     ]@g      X@g     \@g     @a@g      a@rg   c                 r   < V w  rpV\         P                  ! VSV,
          ,          4      ,          S,
          # rm   )r&   r   )paramsABry   xdataydatas   &   r   exponential_wrapped*test_gh_19103.<locals>.exponential_wrapped  s.    b266!urz*++e33r   gfffff4@r  )r   rA  N)r   r   r   )r   r   r   )r&   r'   r   r   rd  r   r   )r=  ry   rA  r   r;  r<  s       @@r   test_gh_19103r?    s    HHbTBY 	"
	"	"	"	"	"	" "	"$&	"(*	",.	"02	"
	"	"	"	"	"	" "	"$&	"(*	",.	"02	" 		" 	" 	" 	" 	" 	" !#	" %'	" )+	" -/	" 13	" 			" 		" 		" 		" 		" 		" !#		" %(		" *,		" .0		" 25		"
 		"
 	"
 	"
 	"
  	"
 "%	"
 '*	"
 ,/	"
 14	"
 69	"
 ;>	" 		" 	" 	" 	"  	" "%	" '*	" ,/	" 14	" 69	" ;>	" 		" 	" 	" 	"  	" "%	" '*	" ,/	" 14	" 6:	" <@	" 		" 	" 	" 	"  $	" &*	" 	 	E IIa$s*E4 
BRVVR./F
+f
MC;;;;r   r$   )rL   )@r   	itertoolsr   multiprocessingr   numpyr&   numpy.linalgr   numpy.testingr   r   r   r9  r	   r   scipy.sparser
   r   scipy.sparse.linalgr   scipy.optimizer   r   r   !scipy.optimize._lsq.least_squaresr   scipy.optimize._lsq.commonr   r   r   r   r   r"   r)   r,   r/   r1   rJ   rM   rO   rR   rT   rW   rc   re   r   r   listkeysr  r   r>  rn  r  r  r  r  r   r  r  r)  r5  r?  r   r   r   <module>rL     sF        ) )  * , 0 : : @ U U )"9! !  
%.0 0f > 
 %%'	(M?	:h0 h0Vg@ g@Tc9 c9LE7 E7PK6G 5ik3D 5+OY +O\*@ F9%.PA4r   