
    (phK                     L    S r SSKrSSKJrJr  SSKJr  SSKJ	r	J
r
  S rS	S jrg)
z)Bounded-variable least-squares algorithm.    N)normlstsq)OptimizeResult   )print_header_linearprint_iteration_linearc                 t    X-  nUS:H  n[         R                  " X   5      X#'   [         R                  " U5      $ )z0Compute the maximum violation of KKT conditions.r   )npabsmax)gon_boundg_kktfree_sets       K/var/www/html/venv/lib/python3.13/site-packages/scipy/optimize/_lsq/bvls.pycompute_kkt_optimalityr   	   s2    LE1}HffQ[)EO66%=    c	                 r	   U R                   u  pUR                  5       n[        R                  " U
5      nX:*  nX=   X'   SX'   X:  nXM   X'   SX'   US:H  nU) n[        R                  " U5      u  nU R                  U5      U-
  nS[        R
                  " UU5      -  nUnU R                  R                  U5      nS nS nSnUS:X  a
  [        5         UR                  S:  Ga  US:X  a  [        UU5      n[        UUUUU5        US-  nX   R                  5       nU S S 2U4   nXR                  X-  5      -
  n[        UUUS9S   nUX>   :  nUXN   :  nUU-  n[        R                  " U5      (       a  UU   nUU   UU'   SUU'   SUU'   [        R                  " U5      (       a  UU   nUU   UU'   SUU'   SUU'   UU)    nUU)    UU'   U R                  U5      U-
  nS[        R
                  " UU5      -  n UU -
  nU nU R                  R                  U5      n[        X   U-
  5      n[        R                  " U5      (       a  UU)    nOOUR                  S:  a  GM  Uc  U
nUU-  nS n![        UU5      n[        UU5       GH  nUS:X  a  [        UUUUU5        UU:  a  Sn!U!b    GO[        R                  " UU-  5      n"SUU"'    US:H  nU) n[        R                  " U5      u  nX   n#U#R                  5       nX>   n$XN   n%U S S 2U4   nXR                  X-  5      -
  n[        UUUS9S   n[        R                  " UU$:  5      u  n[        R                  " UU%:  5      u  n[        R                   " UU45      nUR                  S:  a  [        R                   " U$U   U#U   -
  U%U   U#U   -
  45      UU   U#U   -
  -  n&[        R"                  " U&5      n'UU'   n(U&U'   n)U#SU)-
  -  n#U#U)U-  -  n#U#X'   U'UR                  :  a  SXU(   '   OSXU(   '   OUn#U#X'   OGMZ  [        U#U-
  5      nU R                  U5      U-
  nS[        R
                  " UU5      -  n UU -
  nUUU-  :  a  Sn!U nU R                  R                  U5      n[        UU5      nGM     U!c  Sn![%        UUUUUUS-   U!US9$ )	Nr   r   g      ?   )rcondT)xfuncost
optimalityactive_masknitstatusinitial_cost)shapecopyr
   zerosnonzerodotTr   sizer   r   r   anyr   rangeargmaxhstackargminr   )*Abx_lsqlbubtolmax_iterverboser   mnr   r   maskr   
active_setrr   r   r   cost_change	step_norm	iterationr   
x_free_oldA_freeb_freezlbvubvvindcost_newtermination_statusmove_to_freex_freelb_freeub_freealphasii_freealphas*                                             r   bvlsrN      s(   77DA

Axx{H7DhAGHN7DhAGHN1}HJ

8$IH	a1A1DL	
AKII!| --!
a</8<J"9dK#-/ 	Q	[%%'
1h;UU1>**&&.q1",",#I66#;;3-CWAcF"JsOHSM66#;;3-CWAcF"JsOHSMrlA2#EE!HqL1%XoCCGGAJz12	66!99|HU --!
X 	H (84J9h/	a<"9dK#,j: !")yyX.!"1}H"J

8,IH[FJlGlGq({^Fq~..FffE215A::a'k*DC::a'k*DC		3*%AvvzCL6#;.CL6#;.$0 145aD6!94DF IIf%1q	!e)#%!)#$sxx<13Hf-.12Hf-.$O R *,-	EE!HqL1%Xot#!"CCGGAJ+Ax8
E 0H !
*(M"4!# #r   )N)__doc__numpyr
   numpy.linalgr   r   scipy.optimizer   commonr   r   r   rN    r   r   <module>rU      s    /  $ ) ?f#r   