§
    fŠtj:6  ã                   ó`   — d Z ddlmZ ddlmZ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d	„ ZdS )
a  
This module contains subroutines concerning the update 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)ÚDAMAGING_ROUNDINGÚINFO_DEFAULT)ÚisinvÚmatprodÚoutprodÚinprodÚinvÚprimasumé    Nc                 óè  — d}t          j        |¦  «        }t          j        |	d¦  «        }t          �r"|dk    sJ ‚|dk    sJ ‚| dk    r	| |dz   k    sJ ‚t          t          j        |¦  «        t          j        |¦  «        z  ¦  «        rJ ‚t          j        |¦  «        t          j        |¦  «        z  rJ ‚t          j        |¦  «        |k    r!t          t          j        |¦  «        ¦  «        sJ ‚t          j        |¦  «        t          j        |¦  «        z  rJ ‚t          j        |d¦  «        |k    rt          j        |d¦  «        |dz   k    s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 ‚t          j        |¦  «        |dz   k    r6t          t          j        |¦  «        t          j        |¦  «        z  ¦  «        rJ ‚t          j        |	d¦  «        |k    rt          j        |	d¦  «        |dz   k    sJ ‚t          j        |	¦  «                             ¦   «         sJ ‚t          t          t          |	dd…d|…f         ¦  «        d¬¦  «        dk    ¦  «        sJ ‚t          j        |
d¦  «        |k    rt          j        |
d¦  «        |k    sJ ‚t          j        |
¦  «                             ¦   «         sJ ‚t          |	dd…d|…f         |
|¦  «        sJ ‚| €||||	|
t          fS |	}|
}| |k     r[||	dd…| f<   |
| dd…f         t          |
| dd…f         |¦  «        z  }|
t          t          |
|¦  «        |¦  «        z  }
||
| dd…f<   n‹|	dd…|fxx         |z  cc<   |	dd…d|…fxx         t          j        ||df¦  «        j        z  cc<   t          |
|¦  «        }t          |
d¬¦  «        }|
t          ||dt%          |¦  «        z
  z  ¦  «        z  }
d}t          j        t          t          |
|	dd…d|…f         ¦  «        t          j        |¦  «        z
  ¦  «        ¦  «        }|d|z  k    st          j        |¦  «        r�t+          |	dd…d|…f         ¦  «        }t          j        t          t          ||	dd…d|…f         ¦  «        t          j        |¦  «        z
  ¦  «        ¦  «        }||k     s(t          j        |¦  «        rt          j        |¦  «        s|}
|}||k    r/||| <   ||dd…| f<   ||| <   t-          |||||	|
¦  «        \  }}}}	}
}nt.          }|}	|}
t          �rCt          j        |d¦  «        |k    rt          j        |d¦  «        |dz   k    s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 ‚t          j        |¦  «        |dz   k    r6t          t          j        |¦  «        t          j        |¦  «        z  ¦  «        rJ ‚t          j        |	d¦  «        |k    rt          j        |	d¦  «        |dz   k    sJ ‚t          j        |	¦  «                             ¦   «         sJ ‚t          t          t          |	dd…d|…f         ¦  «        d¬¦  «        dk    ¦  «        sJ ‚t          j        |
d¦  «        |k    rt          j        |
d¦  «        |k    sJ ‚t          j        |
¦  «                             ¦   «         sJ ‚t          |	dd…d|…f         |
|¦  «        s|t.          k    sJ ‚|	|
||||fS )zi
    This function revises the simplex by updating the elements of SIM, SIMI, FVAL, CONMAT, and CVAL
    é   r   N©Úaxisçš™™™™™¹?)ÚnpÚsizer   ÚanyÚisnanÚisneginfÚisposinfÚallÚisfiniter   Úabsr   r   r	   r   r   ÚtileÚTÚsumÚmaxÚeyer
   Ú
updatepoler   )ÚjdropÚconstrÚcpenÚcstrvÚdÚfÚconmatÚcvalÚfvalÚsimÚsimiÚitolÚnum_constraintsÚnum_varsÚsim_oldÚsimi_oldÚ
simi_jdropÚsimidÚsum_simiÚerriÚ	simi_testÚ	erri_testÚinfos                          ú^/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/scipy/_lib/pyprima/cobyla/update.pyÚ	updatexfcr9      sä  € ð €Dõ ”g˜f‘o”o€OÝŒw�s˜A‰Œ€Hõ ñ 4Ø !Ò#Ð#Ð#Ð#Ø˜1Š}ˆ}ˆ}ˆ}Ø˜Šzˆz˜e x°!¡|Ò3Ð3Ð3Ð3Ý•r”x Ñ'Ô'­"¬+°fÑ*=Ô*=Ñ=Ñ>Ô>Ð>Ð>Ð>Ý”H˜U‘O”O¥b¤k°%Ñ&8Ô&8Ñ8Ð9Ð9Ð9ÝŒw�q‰zŒz˜XÒ%Ð%­#­b¬k¸!©n¬nÑ*=Ô*=Ð%Ð%Ð=Ý”H˜Q‘K”K¥"¤+¨a¡.¤.Ñ0Ð1Ð1Ð1ÝŒw�v˜qÑ!Ô! _Ò4Ð4½¼ÀÈÑ9KÔ9KÈxÐZ[É|Ò9[Ð9[Ð9[Ð[Ý”H˜VÑ$Ô$¥r¤{°6Ñ':Ô':Ñ:×?Ò?ÑAÔAÐAÐAÐAÝŒw�t‰}Œ} ¨1¡Ò,Ð,µS¸ÀÅBÄHÈTÁNÄNÑ@RÕUWÔU`ÐaeÑUfÔUfÑ@fÒ9fÑ5gÔ5gÐ,Ð,ÐgÝŒw�t‰}Œ} ¨1¡Ò,Ð,µS½¼À$¹¼Í"Ì+ÐVZÑJ[ÔJ[Ñ9[Ñ5\Ô5\Ð,Ð,Ð\ÝŒw�s˜A‰Œ (Ò*Ð*­r¬w°s¸A©¬À(ÈQÁ,Ò/NÐ/NÐ/NÐNÝŒ{˜3ÑÔ×#Ò#Ñ%Ô%Ð%Ð%Ð%Ý•8�C  A A A y¨ y LÔ 1Ñ2Ô2¸Ð;Ñ;Ô;¸aÒ?Ñ@Ô@Ð@Ð@Ð@ÝŒw�t˜QÑÔ 8Ò+Ð+µ´¸¸aÑ0@Ô0@ÀHÒ0LÐ0LÐ0LÐLÝŒ{˜4Ñ Ô ×$Ò$Ñ&Ô&Ð&Ð&Ð&Ý�S˜˜˜˜I˜X˜I˜Ô&¨¨dÑ3Ô3Ð3Ð3Ð3ð €}Ø�t˜T 3¨­lÐ:Ð:à€GØ€HØˆxÒÐØˆˆAˆAˆAˆuˆH‰Ø˜%   ˜(”^¥f¨T°%¸¸¸°(¬^¸QÑ&?Ô&?Ñ?ˆ
Ø•�  aÑ(Ô(¨*Ñ5Ô5Ñ5ˆØ#ˆˆU�A�A�AˆX‰ˆàˆAˆAˆAˆxˆKÐÐÔ˜AÑÐÐÑØˆAˆAˆAˆy�ˆyˆLÐÐÔ�RœW Q¨°1¨Ñ6Ô6Ô8Ñ8ÐÐÑÝ˜˜aÑ Ô ˆÝ˜D qÐ)Ñ)Ô)ˆØ•˜˜x¨1­s°5©z¬z©>Ñ:Ñ;Ô;Ñ;ˆð €DÝŒ6•#•g˜d C¨¨¨¨9¨H¨9¨Ô$5Ñ6Ô6½¼ÀÑ9IÔ9IÑIÑJÔJÑKÔK€DØˆc�D‰jÒÐ�BœH T™NœNÐÝ˜˜A˜A˜A˜y ˜y˜LÔ)Ñ*Ô*ˆ	Ý”F�3�w y°#°a°a°a¸¸(¸°lÔ2CÑDÔDÅrÄvÈhÑGWÔGWÑWÑXÔXÑYÔYˆ	Ø�tÒÐ¥¤¨¡¤Ðµr´xÀ	Ñ7JÔ7JÐØˆDØˆDð ˆt‚|€|ØˆˆU‰Ø!ˆˆqˆqˆq�%ˆxÑØˆˆU‰å.8¸¸vÀtÈTÐSVÐX\Ñ.]Ô.]Ñ+ˆ��d˜C  t tå ˆØˆØˆõ ñ 
QÝŒw�v˜qÑ!Ô! _Ò4Ð4½¼ÀÈÑ9KÔ9KÈxÐZ[É|Ò9[Ð9[Ð9[Ð[Ý”H˜VÑ$Ô$¥r¤{°6Ñ':Ô':Ñ:×?Ò?ÑAÔAÐAÐAÐAÝŒw�t‰}Œ} ¨1¡Ò,Ð,µS¸ÀÅBÄHÈTÁNÄNÑ@RÕUWÔU`ÐaeÑUfÔUfÑ@fÒ9fÑ5gÔ5gÐ,Ð,ÐgÝŒw�t‰}Œ} ¨1¡Ò,Ð,µS½¼À$¹¼Í"Ì+ÐVZÑJ[ÔJ[Ñ9[Ñ5\Ô5\Ð,Ð,Ð\ÝŒw�s˜A‰Œ (Ò*Ð*­r¬w°s¸A©¬À(ÈQÁ,Ò/NÐ/NÐ/NÐNÝŒ{˜3ÑÔ×#Ò#Ñ%Ô%Ð%Ð%Ð%Ý•8�C  A A A y¨ y LÔ 1Ñ2Ô2¸Ð;Ñ;Ô;¸aÒ?Ñ@Ô@Ð@Ð@Ð@ÝŒw�t˜QÑÔ 8Ò+Ð+µ´¸¸aÑ0@Ô0@ÀHÒ0LÐ0LÐ0LÐLÝŒ{˜4Ñ Ô ×$Ò$Ñ&Ô&Ð&Ð&Ð&Ý�S˜˜˜˜I˜X˜I˜Ô&¨¨dÑ3Ô3ÐP°tÕ?PÒ7PÐ7PÐ7PÐPà��d˜F D¨$Ð.Ð.ó    c                 ó†  — t          j        |¦  «        dz
  }t          rµ| dk    sJ ‚t          j        |¦  «        |dz   k    r=t          |dt          j        |¦  «        z  t          j        |¦  «        z  k     ¦  «        rJ ‚t          j        |¦  «        |dz   k    r6t          t          j        |¦  «        t          j        |¦  «        z  ¦  «        rJ ‚t          j        |¦  «        dz
  }|| |z  z   }t          |¦  «        }|||         k     s&t          |||         k     |||         k    z  ¦  «        r7t           j                             |||k    ¬¦  «         	                    ¦   «         }t          rO|dk    r	||dz   k     sJ ‚||k    s8||         ||         k     s&||         ||         k    r||         ||         k     sJ ‚|S )zŠ
    This subroutine identifies the best vertex of the current simplex with respect to the merit
    function PHI = F + CPEN * CSTRV.
    r   r   )Úmask)
r   r   r   r   r   r   ÚminÚmaÚarrayÚargmin)r#   r(   r)   r.   ÚjoptÚphiÚphimins          r8   ÚfindpolerD   s   sÄ  € õ Œw�t‰}Œ}˜qÑ €Hõ ð ]Ø�aŠxˆxˆxˆxÝŒw�t‰}Œ} ¨1¡Ò,Ð,µS¸ÀÅBÄHÈTÁNÄNÑ@RÕUWÔU`ÐaeÑUfÔUfÑ@fÒ9fÑ5gÔ5gÐ,Ð,ÐgÝŒw�t‰}Œ} ¨1¡Ò,Ð,µS½¼À$¹¼Í"Ì+ÐVZÑJ[ÔJ[Ñ9[Ñ5\Ô5\Ð,Ð,Ð\õ Œ7�4‰=Œ=˜1Ñ€DØ
�˜‘Ñ
€CÝ�‰XŒX€Fð ��D”	ÒÐ�S $¨¨d¬Ò"3¸¸sÀ4¼yÒ8HÑ!IÑJÔJÐõ Œu�{Š{˜4 s¨V¢|ˆ{Ñ5Ô5×<Ò<Ñ>Ô>ˆõ ð }Ø�qŠyˆy˜T H¨q¡LÒ0Ð0Ð0Ð0Ø�xÒÐ 3 t¤9¨s°8¬}Ò#<Ð#<ÀÀTÄÈcÐRZÌmÒA[ÐA[Ð`dÐeiÔ`jÐmqÐrzÔm{Ò`{Ð`{Ð`{Ð|Ø€Kr:   c                 óV  — d}|j         d         }|j         d         }t          �rP|dk    sJ ‚|dk    sJ ‚| dk    sJ ‚t          j        |d¦  «        |k    rt          j        |d¦  «        |dz   k    s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 ‚t          j        |¦  «        |dz   k    r6t          t          j        |¦  «        t          j        |¦  «        z  ¦  «        rJ ‚t          j        |d¦  «        |k    rt          j        |d¦  «        |dz   k    sJ ‚t          j        |¦  «         	                    ¦   «         sJ ‚t          t          t          |d d …d |…f         ¦  «        d¬¦  «        dk    ¦  «        sJ ‚t          j        |d¦  «        |k    rt          j        |d¦  «        |k    sJ ‚t          j        |¦  «         	                    ¦   «         sJ ‚t          |d d …d |…f         ||¦  «        sJ ‚t          }	t          | ||¦  «        }
|                     ¦   «         }|                     ¦   «         }d|
cxk    r|k     r‘n nŽ|d d …|fxx         |d d …|
f         z  cc<   |d d …|
f                              ¦   «         }d|d d …|
f<   |d d …d |…fxx         t          j        ||df¦  «        j        z  cc<   t          |d¬¦  «         ||
d d …f<   t          j        t          t'          ||d d …d |…f         ¦  «        t          j        |¦  «        z
  ¦  «        ¦  «        }d}|d|z  k    st          j        |¦  «        r�t+          |d d …d |…f         ¦  «        }t          j        t          t'          ||d d …d |…f         ¦  «        t          j        |¦  «        z
  ¦  «        ¦  «        }||k     s(t          j        |¦  «        rt          j        |¦  «        s|}|}||k    rFd|
cxk    r|k     r8n nA|||
g         ||
|g<   |d d …||
gf         |d d …|
|gf<   |||
g         ||
|g<   nt,          }	|}|}t          �ret          | ||¦  «        |k    s|	t,          k    sJ ‚t          j        |d¦  «        |k    rt          j        |d¦  «        |dz   k    s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 ‚t          j        |¦  «        |dz   k    r6t          t          j        |¦  «        t          j        |¦  «        z  ¦  «        rJ ‚t          j        |d¦  «        |k    rt          j        |d¦  «        |dz   k    sJ ‚t          j        |¦  «         	                    ¦   «         sJ ‚t          t          t          |d d …d |…f         ¦  «        d¬¦  «        dk    ¦  «        sJ ‚t          j        |d¦  «        |k    rt          j        |d¦  «        |k    sJ ‚t          j        |¦  «         	                    ¦   «         sJ ‚t          |d d …d |…f         ||¦  «        s|	t,          k    sJ ‚||||||	fS )Nr   r   r   r   )Úshaper   r   r   r   r   r   r   r   r   r   r   r   r   rD   Úcopyr   r   r   r   r   r
   r   )r#   r'   r(   r)   r*   r+   r,   r-   r.   r7   rA   r/   r0   Úsim_joptr4   r5   r6   s                    r8   r    r    �   sa  € ð6 €Dð ”l 1”o€OØŒy˜Œ|€Hõ ñ 4Ø !Ò#Ð#Ð#Ð#Ø˜1Š}ˆ}ˆ}ˆ}Ø�aŠxˆxˆxˆxÝŒw�v˜qÑ!Ô! _Ò4Ð4½¼ÀÈÑ9KÔ9KÈxÐZ[É|Ò9[Ð9[Ð9[Ð[Ý”H˜VÑ$Ô$¥r¤{°6Ñ':Ô':Ñ:×?Ò?ÑAÔAÐAÐAÐAÝŒw�t‰}Œ} ¨1¡Ò,Ð,µS¸ÀÅBÄHÈTÁNÄNÑ@RÕUWÔU`ÐaeÑUfÔUfÑ@fÒ9fÑ5gÔ5gÐ,Ð,ÐgÝŒw�t‰}Œ} ¨1¡Ò,Ð,µS½¼À$¹¼Í"Ì+ÐVZÑJ[ÔJ[Ñ9[Ñ5\Ô5\Ð,Ð,Ð\ÝŒw�s˜A‰Œ (Ò*Ð*­r¬w°s¸A©¬À(ÈQÁ,Ò/NÐ/NÐ/NÐNÝŒ{˜3ÑÔ×#Ò#Ñ%Ô%Ð%Ð%Ð%Ý•8�C  A A A y¨ y LÔ 1Ñ2Ô2¸Ð;Ñ;Ô;¸aÒ?Ñ@Ô@Ð@Ð@Ð@ÝŒw�t˜QÑÔ 8Ò+Ð+µ´¸¸aÑ0@Ô0@ÀHÒ0LÐ0LÐ0LÐLÝŒ{˜4Ñ Ô ×$Ò$Ñ&Ô&Ð&Ð&Ð&Ý�S˜˜˜˜I˜X˜I˜Ô&¨¨dÑ3Ô3Ð3Ð3Ð3õ €Dõ �D˜$ Ñ%Ô%€Dð
 �hŠh‰jŒj€GØ�yŠy‰{Œ{€HØˆDÐÐÒÐ�8ÒÐÐÐÐð 	ˆAˆAˆAˆxˆKÐÐÔ˜C    4 œLÑ(ÐÐÑØ�q�q�q˜$�w”<×$Ò$Ñ&Ô&ˆØˆˆAˆAˆAˆtˆG‰ØˆAˆAˆAˆy�ˆyˆLÐÐÔ�RœW X°¸!¨}Ñ=Ô=Ô?Ñ?ÐÐÑõ " $¨QÐ/Ñ/Ô/Ð/ˆˆT�1�1�1ˆW‰õ Œ6•#•g˜d C¨¨¨¨9¨H¨9¨Ô$5Ñ6Ô6½¼ÀÑ9IÔ9IÑIÑJÔJÑKÔK€DØ€DØˆc�D‰jÒÐ�BœH T™NœNÐÝ˜˜A˜A˜A˜y ˜y˜LÔ)Ñ*Ô*ˆ	Ý”F�3�w y°#°a°a°a¸¸(¸°lÔ2CÑDÔDÅrÄvÈhÑGWÔGWÑWÑXÔXÑYÔYˆ	Ø�tÒÐ¥¤¨¡¤Ðµr´xÀ	Ñ7JÔ7JÐØˆDØˆDð
 ˆt‚|€|Ø�ÐÐÒÐ�xÒÐÐÐÐØ%)¨8°TÐ*:Ô%;ˆD�$˜Ð!Ñ"Ø*0°°°°X¸tÐ4DÐ1DÔ*EˆF�1�1�1�t˜XÐ&Ð&Ñ'Ø%)¨8°TÐ*:Ô%;ˆD�$˜Ð!Ñ"øå ˆØˆØˆõ ñ QÝ˜˜d DÑ)Ô)¨XÒ5Ð5¸ÕARÒ9RÐ9RÐ9RÐRÝŒw�v˜qÑ!Ô! _Ò4Ð4½¼ÀÈÑ9KÔ9KÈxÐZ[É|Ò9[Ð9[Ð9[Ð[Ý”H˜VÑ$Ô$¥r¤{°6Ñ':Ô':Ñ:×?Ò?ÑAÔAÐAÐAÐAÝŒw�t‰}Œ} ¨1¡Ò,Ð,µS¸ÀÅBÄHÈTÁNÄNÑ@RÕUWÔU`ÐaeÑUfÔUfÑ@fÒ9fÑ5gÔ5gÐ,Ð,ÐgÝŒw�t‰}Œ} ¨1¡Ò,Ð,µS½¼À$¹¼Í"Ì+ÐVZÑJ[ÔJ[Ñ9[Ñ5\Ô5\Ð,Ð,Ð\ÝŒw�s˜A‰Œ (Ò*Ð*­r¬w°s¸A©¬À(ÈQÁ,Ò/NÐ/NÐ/NÐNÝŒ{˜3ÑÔ×#Ò#Ñ%Ô%Ð%Ð%Ð%Ý•8�C  A A A y¨ y LÔ 1Ñ2Ô2¸Ð;Ñ;Ô;¸aÒ?Ñ@Ô@Ð@Ð@Ð@ÝŒw�t˜QÑÔ 8Ò+Ð+µ´¸¸aÑ0@Ô0@ÀHÒ0LÐ0LÐ0LÐLÝŒ{˜4Ñ Ô ×$Ò$Ñ&Ô&Ð&Ð&Ð&å�S˜˜˜˜I˜X˜I˜Ô&¨¨dÑ3Ô3ÐP°tÕ?PÒ7PÐ7PÐ7PÐPà�4˜˜s D¨$Ð.Ð.r:   )Ú__doc__Úcommon.constsr   Úcommon.infosr   r   Úcommon.linalgr   r   r   r	   r
   r   Únumpyr   r9   rD   r    © r:   r8   ú<module>rO      s¸   ððð ð &Ð %Ð %Ð %Ð %Ð %Ø :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ø JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JØ Ð Ð Ð ð`/ð `/ð `/ðD'ð 'ð 'ðTD/ð D/ð D/ð D/ð D/r:   