Ë
    0Ò^j•)  ã                   óH   — d Z ddlmZ ddlmZmZmZmZmZm	Z	 ddl
Zd„ Zd„ Zy)a  
This module contains subroutines concerning the geometry-improving of the interpolation set.

Translated from Zaikun Zhang's modern-Fortran reference implementation in PRIMA.

Dedicated to late Professor M. J. D. Powell FRS (1936--2015).

Python translation by Nickolai Belakovski.
é   )Ú	DEBUGGING)ÚisinvÚmatprodÚinprodÚnormÚprimasumÚ	primapow2é    Nc                 ó4  — d}t        j                  |d«      }t        �rO|dk\  sJ ‚t        j                  |«      |k(  rt        t        j                  |«      «      sJ ‚||k\  r|dkD  sJ ‚t        j                  |d«      |k(  rt        j                  |d«      |dz   k(  sJ ‚t        j                  |«      j                  «       sJ ‚t        t        j
                  t        |dd…d|…f   «      d¬«      dkD  «      sJ ‚t        j                  |d«      |k(  rt        j                  |d«      |k(  sJ ‚t        j                  |«      j                  «       sJ ‚t        |dd…d|…f   ||«      sJ ‚t        j                  t        j                  |d«      «      }| rWt        t        |dd…d|…f   t        j                  ||df«      j                  z
  «      d¬«      |d| t        ||z  «      ||<   n't        t        |dd…d|…f   «      d¬«      |d| d||<   t        j                  d|t        t        j                  ||dz  «      «      z  «      }	t        ||«      }
|	t        t        j                  g |
¢dt        |
«      z
  ‘«      «      z  }| sd||<   d|t        j                   |«      <   d}t#        |dkD  «      rt        j$                  |«      }| r|€t        j$                  |«      }t        r'|�d|cxk  r	|dz   k  sJ ‚ J ‚||k  s| sJ ‚|dk\  s| rJ ‚|S )aä  
    This function finds (the index) of a current interpolation point to be replaced with
    the trust-region trial point. See (19)-(22) of the COBYLA paper.
    N.B.:
    1. If XIMPROVED == True, then JDROP > 0 so that D is included into XPT. Otherwise,
       it is a bug.
    2. COBYLA never sets JDROP = NUM_VARS
    TODO: Check whether it improves the performance if JDROP = NUM_VARS is allowed when
    XIMPROVED is True. Note that UPDATEXFC should be revised accordingly.
    gš™™™™™¹?r
   é   N)Úaxisé
   éÿÿÿÿ)ÚnpÚsizer   ÚallÚisfiniteÚmaxÚabsr   Úzerosr   r	   ÚtileÚTÚmaximumr   ÚarrayÚisnanÚanyÚargmax)Ú	ximprovedÚdÚdeltaÚrhoÚsimÚsimiÚitolÚnum_varsÚdistsqÚweightÚsimidÚscoreÚjdrops                úr/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/scipy/_external/pyprima/cobyla/geometry.pyÚ
setdrop_trr,      sé  € ð €Dô �w‰w�s˜A‹€Hö Ø˜1Š}Ðˆ}Ü�w‰w�q‹z˜XÒ%¬#¬b¯k©k¸!«nÔ*=Ð=Ð=Ø˜Š|  a¢Ð'Ð'Ü�w‰w�s˜A‹ (Ò*¬r¯w©w°s¸A«À(ÈQÁ,Ò/NÐNÐNÜ�{‰{˜3Ó×#Ñ#Ô%Ð%Ð%Ü”2—6‘6œ#˜c¢! Y h Y ,Ñ/Ó0°qÔ9¸AÑ=Ô>Ð>Ð>Ü�w‰w�t˜QÓ 8Ò+´·±¸¸aÓ0@ÀHÒ0LÐLÐLÜ�{‰{˜4Ó ×$Ñ$Ô&Ð&Ð&Ü�Sš˜I˜X˜I˜Ñ&¨¨dÔ3Ð3Ð3ô~ �X‰X”b—g‘g˜c 1“oÓ&€FÙÜ$¤Y¨s²1°i°x°i°<Ñ/@Ä2Ç7Á7È1ÈxÐYZÈmÓC\×C^ÑC^Ñ/^Ó%_ÐfgÔhˆˆy�ÐÜ# A a¡C›=ˆˆxÒä$¤Y¨s²1°i°x°i°<Ñ/@Ó%AÈÔJˆˆy�ÐØˆˆxÑä�Z‰Z˜˜6¤I¬b¯j©j¸¸eÀB¹hÓ.GÓ$HÑHÓI€Fô �D˜!Ó€EØ”SœŸ™Ð"? EÐ"?¨1¬x¸«Ñ+>Ð"?Ó@ÓAÑA€Eñ Øˆˆh‰ð  €EŒ"�(‰(�5‹/Ñà€Eô ˆ5�1‰9„~Ü—	‘	˜%Ó ˆá�e�mÜ—	‘	˜&Ó!ˆõ Øˆ}  eÔ!:¨h¸©lÒ!:Ð;Ð;Ð!:Ð;Ð;Ø˜Ò ¡IÐ-Ð-Ø˜Šz¡Ð*Ð*ð €Ló    c	           
      óˆ  — |�t        j                  |d«      nd}	t        j                  |d«      }
t        j                  |d«      }t        �r­|
|	cxk\  rdk\  sJ ‚ J ‚|dk\  sJ ‚|dkD  sJ ‚|dkD  sJ ‚t        j                  |d«      |k(  rt        j                  |d«      |k(  sJ ‚t        j                  |«      j	                  «       sJ ‚t        j                  |«      |dz   k(  r4t        t        j                  |«      t        j                  |«      z  «      rJ ‚t        j                  |d«      |
k(  rt        j                  |d«      |dz   k(  sJ ‚t        j
                  t        j                  |«      t        j                  |«      z  «      rJ ‚t        j                  |«      |dz   k(  r:t        |dt        j                  |«      z  t        j                  |«      z  k  «      rJ ‚d| cxk  r|k  sJ ‚ J ‚|| dd…f   }||t        |«      z  z  }t        |d| ||   z
  |«      }t        j                  ||
f«      }|�|j                  n||dd…d|	…f<   t        ||	d…d|…f   t        j                  ||	d…|f   |df«      j                  z
  |«      j                  |dd…|	d…f<   t        j                  t        j                  d|dd…|f   t        ||«      z   «      «      }t        j                  t        j                  d|dd…|f   t        ||«      z
  «      «      }t        ||«       ||z  z   t        ||«      ||z  z   k  r|dz  }t        rkt        j                  |«      |k(  rt	        t        j                  |«      «      sJ ‚d|z  t         j                   j                  |«      cxk  r	d|z  k  sJ ‚ J ‚|S )zÑ
    This function calculates a geometry step so that the geometry of the interpolation set is improved
    when SIM[: JDROP_GEO] is replaced with SIM[:, NUM_VARS] + D. See (15)--(17) of the COBYLA paper.
    Nr
   r   r   gÍÌÌÌÌÌì?gš™™™™™ñ?)r   r   r   r   r   r   r   Úisposinfr   r   r   r   r   r   Úappendr   Úlinalg)r*   ÚamatÚbvecÚconmatÚcpenÚcvalÚdelbarÚfvalr#   Úm_lconÚnum_constraintsr%   r   ÚgÚAÚcvpdÚcvnds                    r+   Úgeostepr?   ¥   sg  € ð "&Ð!1ŒR�W‰W�T˜1Ô°q€FÜ—g‘g˜f aÓ(€OÜ�w‰w�t˜QÓ€Hö Ø &Ô-¨AÒ-Ð-Ñ-Ð-Ð-Ø˜1Š}Ðˆ}Ø˜ŠzÐˆzØ�aŠxˆˆxÜ�w‰w�t˜QÓ 8Ò+´·±¸¸aÓ0@ÀHÒ0LÐLÐLÜ�{‰{˜4Ó ×$Ñ$Ô&Ð&Ð&Ü�w‰w�t‹} ¨1¡Ò,´S¼¿¹À$»Ì"Ï+É+ÐVZÓJ[Ñ9[Ô5\Ð\Ð\Ü�w‰w�v˜qÓ! _Ò4¼¿¹ÀÈÓ9KÈxÐZ[É|Ò9[Ð[Ð[Ü—6‘6œ"Ÿ(™( 6Ó*¬R¯[©[¸Ó-@Ñ@ÔAÐAÐAÜ�w‰w�t‹} ¨1¡Ò,´S¸ÀÄBÇHÁHÈTÃNÑ@RÔUW×U`ÑU`ÐaeÓUfÑ@fÑ9fÔ5gÐgÐgØ�EÔ$˜HÒ$Ð$Ñ$Ð$Ð$ð 	ˆU’AˆX‰€AØ�!”d˜1“g‘+Ñ€Aô 	��Y�h� $ x¡.Ñ0°$Ó7€AÜ
�‰�(˜OÐ,Ó-€AØ"Ð.�D—F’F°D€A‚aˆˆ&ˆ€j�MÜ˜V F¡G¨Y¨h¨YÐ$6Ñ7ÜŸ'™' &¨©°(Ð):Ñ";¸hÈ¸]ÓK×MÑMñNØPTóVßVWÑVWð ‚aˆ‰€j�Mô �6‰6”"—)‘)˜A˜v¢a¨ kÑ2´W¸QÀ³]ÑBÓCÓD€DÜ�6‰6”"—)‘)˜A˜v¢a¨ kÑ2´W¸QÀ³]ÑBÓCÓD€DÜˆq�!‹€}�t˜d‘{Ñ"¤V¨A¨q£\°D¸4±KÑ%?Ò?Ø	ˆR‰ˆõ Ü�w‰w�q‹z˜XÒ%¬#¬b¯k©k¸!«nÔ*=Ð=Ð=ð �V‰|œbŸi™iŸn™n¨QÓ/Ô?°3¸±<Ò?Ð?Ñ?Ð?Ð?Ø€Hr-   )Ú__doc__Úcommon.constsr   Úcommon.linalgr   r   r   r   r   r	   Únumpyr   r,   r?   © r-   r+   ú<module>rE      s$   ðñõ &ß M× MÛ òPój=r-   