
    tKgK                     J    d Z ddlZddlmZmZ ddlmZ ddlm	Z	m
Z
 d Zd	dZy)
z)Bounded-variable least-squares algorithm.    N)normlstsq)OptimizeResult   )print_header_linearprint_iteration_linearc                 v    | |z  }|dk(  }t        j                  | |         ||<   t        j                  |      S )z0Compute the maximum violation of KKT conditions.r   )npabsmax)gon_boundg_kktfree_sets       \/home/alanp/www/video.onchill/myenv/lib/python3.12/site-packages/scipy/optimize/_lsq/bvls.pycompute_kkt_optimalityr   	   s8    LE1}HffQx[)E(O66%=    c	           
      X	   | j                   \  }	}
|j                         }t        j                  |
      }||k  }||   ||<   d||<   ||k\  }||   ||<   d||<   |dk(  }| }t        j                  |      \  }| j                  |      |z
  }dt        j
                  ||      z  }|}| j                  j                  |      }d }d }d}|dk(  r
t                |j                  dkD  rs|dk(  rt        ||      }t        |||||       |dz  }||   j                         }| d d |f   }|| j                  ||z        z
  }t        |||      d   }|||   k  }|||   kD  }||z  }t        j                  |      r||   }||   ||<   d||<   d||<   t        j                  |      r||   }||   ||<   d||<   d||<   ||    }||    ||<   | j                  |      |z
  }dt        j
                  ||      z  } || z
  }| }| j                  j                  |      }t        ||   |z
        }t        j                  |      r||    }nn|j                  dkD  rs||
}||z  }d }!t        ||      }t        ||      D ]  }|dk(  rt        |||||       ||k  rd}!|! nt        j                  ||z        }"d||"<   	 |dk(  }| }t        j                  |      \  }||   }#|#j                         }||   }$||   }%| d d |f   }|| j                  ||z        z
  }t        |||      d   }t        j                  ||$k        \  }t        j                  ||%kD        \  }t        j                   ||f      }|j                  dkD  rt        j                   |$|   |#|   z
  |%|   |#|   z
  f      ||   |#|   z
  z  }&t        j"                  |&      }'||'   }(|&|'   })|#d|)z
  z  }#|#|)|z  z  }#|#||<   |'|j                  k  r	d|||(   <   nd|||(   <   n|}#|#||<   n]t        |#|z
        }| j                  |      |z
  }dt        j
                  ||      z  } || z
  }|||z  k  rd}!| }| j                  j                  |      }t        ||      } |!d}!t%        ||||||dz   |!|      S )	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      sR   77DAq

Axx{H7DhAdGHTN7DhAdGHTN1}HJ

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

8,IHx[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<13HXf-.12HXf-.$(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   