§
    fŠtjK  ã                   óL   — 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dS )
z)Bounded-variable least-squares algorithm.é    N)ÚnormÚlstsq)ÚOptimizeResulté   )Úprint_header_linearÚprint_iteration_linearc                 óz   — | |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       úV/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/scipy/optimize/_lsq/bvls.pyÚcompute_kkt_optimalityr   	   s9   € à�‰L€EØ˜1Š}€HÝ”f˜Q˜xœ[Ñ)Ô)€Eˆ(�OÝŒ6�%‰=Œ=Ðó    c	           
      ór
  — | j         \  }	}
|                     ¦   «         }t          j        |
¦  «        }||k    }||         ||<   d||<   ||k    }||         ||<   d||<   |dk    }| }t          j        |¦  «        \  }|                      |¦  «        |z
  }dt          j        ||¦  «        z  }|}| j                             |¦  «        }d }d }d}|dk    rt          ¦   «          |j        dk    �r¯|dk    r#t          ||¦  «        }t          |||||¦  «         |dz  }||                              ¦   «         }| d d …|f         }||                      ||z  ¦  «        z
  }t          |||¬¦  «        d         }|||         k     }|||         k    }||z  }t          j        |¦  «        r||         }||         ||<   d||<   d||<   t          j        |¦  «        r||         }||         ||<   d||<   d||<   ||          }||          ||<   |                      |¦  «        |z
  }dt          j        ||¦  «        z  } || z
  }| }| j                             |¦  «        }t          ||         |z
  ¦  «        }t          j        |¦  «        r
||          }nn|j        dk    �°¯|€|
}||z  }d }!t          ||¦  «        }t          ||¦  «        D �]O}|dk    rt          |||||¦  «         ||k     rd}!|!� �n(t          j        ||z  ¦  «        }"d||"<   	 |dk    }| }t          j        |¦  «        \  }||         }#|#                     ¦   «         }||         }$||         }%| d d …|f         }||                      ||z  ¦  «        z
  }t          |||¬¦  «        d         }t          j        ||$k     ¦  «        \  }t          j        ||%k    ¦  «        \  }t          j        ||f¦  «        }|j        dk    r¢t          j        |$|         |#|         z
  |%|         |#|         z
  f¦  «        ||         |#|         z
  z  }&t          j        |&¦  «        }'||'         }(|&|'         })|#d|)z
  z  }#|#|)|z  z  }#|#||<   |'|j        k     rd|||(         <   nd|||(         <   n|}#|#||<   n�Œ‹t          |#|z
  ¦  «        }|                      |¦  «        |z
  }dt          j        ||¦  «        z  } || z
  }|||z  k     rd}!| }| j                             |¦  «        }t          ||¦  «        }�ŒQ|!€d}!t%          ||||||dz   |!|¬¦  «        S )	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�D€A€qà�
Š
‰Œ€AÝŒx˜‰{Œ{€Hà�Š7€DØ�Œh€A€d�GØ€HˆT�Nà�Š7€DØ�Œh€A€d�GØ€HˆT�Nà˜1Š}€HØ�€JÝ”
˜8Ñ$Ô$�I€Hà	�Šˆa‰Œ�1‰€AØ•”˜˜1‘”Ñ€DØ€LØ	Œ�Š�‰
Œ
€Aà€KØ€IØ€Ià�!‚|€|ÝÑÔÐð Œ-˜!Ò
Ñ
Ø�aŠ<ˆ<Ý/°°8Ñ<Ô<ˆJÝ" 9¨d°KÀØ#-ñ/ô /ð /ð 	�Q‰ˆ	Ø�x”[×%Ò%Ñ'Ô'ˆ
à�1�1�1�h�;”ˆØ�Q—U’U˜1˜z™>Ñ*Ô*Ñ*ˆÝ�&˜&¨Ð.Ñ.Ô.¨qÔ1ˆà�"�X”,ÒˆØ�"�X”,ÒˆØ�#‰IˆåŒ6�#‰;Œ;ð 	Ø˜3”-ˆCØ˜”WˆAˆc‰FØ"ˆJ�s‰OØˆH�S‰MåŒ6�#‰;Œ;ð 	Ø˜3”-ˆCØ˜”WˆAˆc‰FØ"ˆJ�s‰OØˆH�S‰Mà˜�rŒlˆØ�A�2”ˆˆ#‰à�EŠE�!‰HŒH�q‰LˆØ�œ  1™œÑ%ˆØ˜X‘oˆØˆØŒC�GŠG�A‰JŒJˆÝ˜˜8œ zÑ1Ñ2Ô2ˆ	åŒ6�!‰9Œ9ð 	Ø  ”|ˆHˆHàðU Œ-˜!Ò
Ñ
ðX ÐØˆØ�	Ñ€HàÐõ (¨¨8Ñ4Ô4€JÝ˜9 hÑ/Ô/ð B9ñ B9ˆ	Ø�aŠ<ˆ<Ý" 9¨d°KØ#,¨jñ:ô :ð :ð ˜ÒÐØ!"ÐàÐ)Ø‰Eå”y  X¡Ñ.Ô.ˆØ!"ˆ�Ñð'	à 1’}ˆHØ"˜ˆJÝœ
 8Ñ,Ô,‰IˆHà�x”[ˆFØŸš™œˆJØ˜”lˆGØ˜”lˆGà�q�q�q˜(�{”^ˆFØ˜Ÿš˜q :™~Ñ.Ô.Ñ.ˆFÝ�f˜f¨EÐ2Ñ2Ô2°1Ô5ˆAå”:˜a 'škÑ*Ô*‰DˆCÝ”:˜a 'škÑ*Ô*‰DˆCÝ”	˜3 ˜*Ñ%Ô%ˆAàŒv˜ŠzˆzÝœØ˜C”L 6¨#¤;Ñ.Ø˜C”L 6¨#¤;Ñ.ð$0ñ 1ô 1à45°a´D¸6À!¼9Ñ4DñF�õ ”I˜fÑ%Ô%�Ø˜1œ�Ø˜qœ	�à˜!˜e™)Ñ#�Ø˜% !™)Ñ#�Ø$��(‘à�s”x’<�<Ø13�H˜X fÔ-Ñ.Ð.à12�H˜X fÔ-Ñ.Ð.à�Ø$��(‘ØñO'	õR ˜ *Ñ,Ñ-Ô-ˆ	à�EŠE�!‰HŒH�q‰LˆØ�œ  1™œÑ%ˆØ˜X‘oˆà˜˜t™Ò#Ð#Ø!"ÐØˆàŒC�GŠG�A‰JŒJˆÝ+¨A¨xÑ8Ô8ˆ
‰
àÐ!ØÐåØ
�˜¨*À(Ø˜‰MÐ"4Ø!ð#ñ #ô #ð #r   )N)Ú__doc__Únumpyr
   Únumpy.linalgr   r   Úscipy.optimizer   Úcommonr   r   r   rN   © r   r   ú<module>rU      sŒ   ðØ /Ð /Ø Ð Ð Ð Ø $Ð $Ð $Ð $Ð $Ð $Ð $Ð $Ø )Ð )Ð )Ð )Ð )Ð )à ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?ðð ð ðf#ð f#ð f#ð f#ð f#ð f#r   