ó
    EñiK  ã                   ó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       ÚU/home/mande/repo/quber/.venv/lib/python3.13/site-packages/scipy/optimize/_lsq/bvls.pyÚcompute_kkt_optimalityr   	   s2   € à‰L€EØ˜1‰}€HÜ—f’f˜Q™[Ó)€E�OÜ�6Š6�%‹=Ðó    c	                 ór	  • U R                   u  pšU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XÎU(   '   OSXÎU(   '   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$ )	Néÿÿÿÿr   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(  € Ø�7‰7�D€Aà�
‰
‹€AÜ�xŠx˜‹{€Hà‰7€DØ‰h€A�GØ€H�Nà‰7€DØ‰h€A�GØ€H�Nà˜1‰}€HØ�€JÜ—
’
˜8Ó$�I€Hà	�‰ˆa‹�1‰€AØ”—’˜˜1“Ñ€DØ€LØ	�‰�‰�‹
€Aà€KØ€IØ€Ià�!ƒ|ÜÔð �-‰-˜!Ô
Ø�a‹<Ü/°°8Ó<ˆJÜ" 9¨d°KÀØ#-ô/ð 	�Q‰ˆ	Ø‘[×%Ñ%Ó'ˆ
à’1�h�;‘ˆØ—U‘U˜1™>Ó*Ñ*ˆÜ�&˜&¨Ñ.¨qÑ1ˆà�"‘,ÑˆØ�"‘,ÑˆØ�#‰Iˆä�6Š6�#�;‰;Ø˜3‘-ˆCØ˜‘WˆAˆc‰FØ"ˆJ�s‰OØˆH�S‰Mä�6Š6�#�;‰;Ø˜3‘-ˆCØ˜‘WˆAˆc‰FØ"ˆJ�s‰OØˆH�S‰Mà˜�r‰lˆØ�A�2‘ˆˆ#‰à�E‰E�!‹H�q‰LˆØœŸš  1›Ñ%ˆØ˜X‘oˆØˆØ�C‰C�G‰G�A‹JˆÜ˜™ zÑ1Ó2ˆ	ä�6Š6�!�9‰9Ø  ‘|‰HàðU �-‰-˜!Ö
ðX ÑØˆØ�	Ñ€HàÐô (¨¨8Ó4€JÜ˜9 h×/ˆ	Ø�a‹<Ü" 9¨d°KØ#,¨jô:ð ˜ÓØ!"ÐàÑ)Úä—y’y  X¡Ó.ˆØ!"ˆ�Ñàà 1‘}ˆHØ"˜ˆJÜŸ
š
 8Ó,‰IˆHà‘[ˆFØŸ™›ˆJØ‘lˆGØ‘lˆGà’q˜(�{‘^ˆFØŸ™˜q™~Ó.Ñ.ˆFÜ�f˜f¨EÑ2°1Ñ5ˆAä—:’:˜a '™kÓ*‰DˆCÜ—:’:˜a '™kÓ*‰DˆCÜ—	’	˜3 ˜*Ó%ˆAà�v‰v˜‹zÜŸšØ˜C‘L 6¨#¡;Ñ.Ø˜C‘L 6¨#¡;Ñ.ð$0ó 1à45°a±D¸6À!¹9Ñ4DñF�ô —I’I˜fÓ%�Ø˜1™�Ø˜q™	�à˜!˜e™)Ñ#�Ø˜% !™)Ñ#�Ø$�‘à�s—x‘x“<Ø13�H fÑ-Ò.à12�H fÑ-Ò.à�Ø$�‘ØòO ôR ˜ *Ñ,Ó-ˆ	à�E‰E�!‹H�q‰LˆØœŸš  1›Ñ%ˆØ˜X‘oˆà˜˜t™Ó#Ø!"ÐØˆà�C‰C�G‰G�A‹JˆÜ+¨A¨xÓ8‹
ñE 0ðH Ñ!ØÐäØ
�˜¨*À(Ø˜‰MÐ"4Ø!ñ#ð #r   )N)Ú__doc__Únumpyr
   Únumpy.linalgr   r   Úscipy.optimizer   Úcommonr   r   r   rN   © r   r   Ú<module>rU      s   ðÙ /Û ß $Ý )ç ?òõf#r   