
    -i:6                     ^    S r SSKJr  SSKJrJr  SSKJrJrJ	r	J
r
JrJr  SSKrS rS rS	 rg)
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                    Sn[         R                  " U5      n[         R                  " U	S5      n[        (       GaP  US:  d   eUS:  d   eU S:  a  XS-   ::  d   e[        [         R                  " U5      [         R
                  " U5      -  5      (       a   e[         R                  " U5      [         R                  " U5      -  (       a   e[         R                  " U5      U:X  a$  [        [         R                  " U5      5      (       d   e[         R                  " U5      [         R                  " U5      -  (       a   e[         R                  " US5      U:X  a  [         R                  " US5      US-   :X  d   e[         R                  " U5      [         R
                  " U5      -  R                  5       (       a   e[         R                  " U5      US-   :X  aA  [        US[         R                  " U5      -  [         R                  " U5      -  :  5      (       a   e[         R                  " U5      US-   :X  a;  [        [         R                  " U5      [         R                  " U5      -  5      (       a   e[         R                  " U	S5      U:X  a  [         R                  " U	S5      US-   :X  d   e[         R                  " U	5      R                  5       (       d   e[        [        [        U	SS2SU24   5      SS9S:  5      (       d   e[         R                  " U
S5      U:X  a  [         R                  " U
S5      U:X  d   e[         R                  " U
5      R                  5       (       d   e[        U	SS2SU24   X5      (       d   eU c
  XgXU
[        4$ U	nU
nX:  aD  XISS2U 4'   XSS24   [        XSS24   U5      -  nU
[        [        X5      U5      -  n
UXSS24'   OwU	SS2U4==   U-  ss'   U	SS2SU24==   [         R                   " XMS45      R"                  -  ss'   [        X5      n[        U
SS9nU
[        UUS[%        U5      -
  -  5      -  n
Sn[         R&                  " [        [        XSS2SU24   5      [         R(                  " U5      -
  5      5      nUSU-  :  d  [         R                  " U5      (       a  [+        U	SS2SU24   5      n[         R&                  " [        [        UU	SS2SU24   5      [         R(                  " U5      -
  5      5      nUU:  d6  [         R                  " U5      (       a  [         R                  " U5      (       d  Un
UnUU::  a#  XXU '   XSS2U 4'   X7U '   [-        X&XxX5      u  pgpn
nO
[.        nUn	Un
[        (       GaU  [         R                  " US5      U:X  a  [         R                  " US5      US-   :X  d   e[         R                  " U5      [         R
                  " U5      -  R                  5       (       a   e[         R                  " U5      US-   :X  aA  [        US[         R                  " U5      -  [         R                  " U5      -  :  5      (       a   e[         R                  " U5      US-   :X  a;  [        [         R                  " U5      [         R                  " U5      -  5      (       a   e[         R                  " U	S5      U:X  a  [         R                  " U	S5      US-   :X  d   e[         R                  " U	5      R                  5       (       d   e[        [        [        U	SS2SU24   5      SS9S:  5      (       d   e[         R                  " U
S5      U:X  a  [         R                  " U
S5      U:X  d   e[         R                  " U
5      R                  5       (       d   e[        U	SS2SU24   X5      (       d  U[.        :X  d   eXXUU4$ )za
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                          S/var/www/html/venv/lib/python3.13/site-packages/scipy/_lib/pyprima/cobyla/update.py	updatexfcr9      s    D ggfoOwwsAH y!###1}}ze!|333rxx'"++f*==>>>>HHUObkk%&8899wwqzX%#bkk!n*=*===HHQK"++a.011wwvq!_49KxZ[|9[[[HHV$r{{6'::??AAAAwwt}1,SBHHTN@RUWU`U`aeUf@f9f5g5gggwwt}1,S$"++VZJ[9[5\5\\\wwsA(*rwwsA(Q,/NNN{{3##%%%%8CAyyL 12;a?@@@@wwtQ8+a0@H0LLL{{4 $$&&&&SIXI&3333 }Tl::GHAuH(^fT(^Q&??
(*55#AXAxKAAyyLRWWQ16888 Dq)x1s5z>:;; D66#gd9H9$569IIJKDcDjBHHTNNAyyL)*	FF3wy#a(l2CDrvvhGWWXY	trxx	7J7JDD t|U!q%xU.8tSV.]+dt  ywwvq!_49KxZ[|9[[[HHV$r{{6'::??AAAAwwt}1,SBHHTN@RUWU`U`aeUf@f9f5g5gggwwt}1,S$"++VZJ[9[5\5\\\wwsA(*rwwsA(Q,/NNN{{3##%%%%8CAyyL 12;a?@@@@wwtQ8+a0@H0LLL{{4 $$&&&&SIXI&33t?P7PPPdD$..    c                 N   [         R                  " U5      S-
  n[        (       a  U S:  d   e[         R                  " U5      US-   :X  aA  [        US[         R                  " U5      -  [         R
                  " U5      -  :  5      (       a   e[         R                  " U5      US-   :X  a;  [        [         R                  " U5      [         R
                  " U5      -  5      (       a   e[         R                  " U5      S-
  nX U-  -   n[        U5      nXeU   :  d  [        XU   :  XUU   :*  -  5      (       a.  [         R                  R                  XU:  S9R                  5       n[        (       a5  US:  a  XCS-   :  d   eXC:X  d   XT   XS   :  d  XT   XS   ::  a
  X   X   :  d   eU$ )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   ss    wwt}q H yaxxwwt}1,SBHHTN@RUWU`U`aeUf@f9f5g5gggwwt}1,S$"++VZJ[9[5\5\\\ 774=1D

CXF D	S$d"34y8H!IJJ uu{{4V|{5<<> yqyTqL00039s}#<cmA[`d`jmqm{`{||Kr:   c                 @   SnUR                   S   nUR                   S   n[        (       Gac  US:  d   eUS:  d   eU S:  d   e[        R                  " US5      U:X  a  [        R                  " US5      US-   :X  d   e[        R                  " U5      [        R
                  " U5      -  R                  5       (       a   e[        R                  " U5      US-   :X  aA  [        US[        R                  " U5      -  [        R                  " U5      -  :  5      (       a   e[        R                  " U5      US-   :X  a;  [        [        R                  " U5      [        R                  " U5      -  5      (       a   e[        R                  " US5      U:X  a  [        R                  " US5      US-   :X  d   e[        R                  " U5      R                  5       (       d   e[        [        [        US S 2S U24   5      SS9S:  5      (       d   e[        R                  " US5      U:X  a  [        R                  " US5      U:X  d   e[        R                  " U5      R                  5       (       d   e[        US S 2S U24   XV5      (       d   e[        n	[        XU5      n
UR                  5       nUR                  5       nSU
s=::  a  U:  a  O  O|US S 2U4==   US S 2U
4   -  ss'   US S 2U
4   R                  5       nSUS S 2U
4'   US S 2S U24==   [        R                   " XS45      R"                  -  ss'   [        USS9* XZS S 24'   [        R$                  " [        ['        XTS S 2S U24   5      [        R(                  " U5      -
  5      5      nSnUSU-  :  d  [        R                  " U5      (       a  [+        US S 2S U24   5      n[        R$                  " [        ['        XS S 2S U24   5      [        R(                  " U5      -
  5      5      nUU:  d6  [        R                  " U5      (       a  [        R                  " U5      (       d  UnUnX::  a7  SU
s=::  a  U:  a)  O  O1X8U
/   X:U/'   US S 2X/4   US S 2X/4'   X(U
/   X*U/'   O
[,        n	UnUn[        (       Gaq  [        XU5      U:X  d  U	[,        :X  d   e[        R                  " US5      U:X  a  [        R                  " US5      US-   :X  d   e[        R                  " U5      [        R
                  " U5      -  R                  5       (       a   e[        R                  " U5      US-   :X  aA  [        US[        R                  " U5      -  [        R                  " U5      -  :  5      (       a   e[        R                  " U5      US-   :X  a;  [        [        R                  " U5      [        R                  " U5      -  5      (       a   e[        R                  " US5      U:X  a  [        R                  " US5      US-   :X  d   e[        R                  " U5      R                  5       (       d   e[        [        [        US S 2S U24   5      SS9S:  5      (       d   e[        R                  " US5      U:X  a  [        R                  " US5      U:X  d   e[        R                  " U5      R                  5       (       d   e[        US S 2S U24   XV5      (       d  U	[,        :X  d   eXX4XY4$ )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       s    6 D ll1oOyy|H y!###1}}axxwwvq!_49KxZ[|9[[[HHV$r{{6'::??AAAAwwt}1,SBHHTN@RUWU`U`aeUf@f9f5g5gggwwt}1,S$"++VZJ[9[5\5\\\wwsA(*rwwsA(Q,/NNN{{3##%%%%8CAyyL 12;a?@@@@wwtQ8+a0@H0LLL{{4 $$&&&&SIXI&3333 D D%D
 hhjGyy{HD8 	AxKC4L(q$w<$$&AtGAyyLRWWX!}=??? "$Q//1W 66#gd9H9$569IIJKDDcDjBHHTNNAyyL)*	FF3wya(l2CDrvvhGWWXY	trxx	7J7JDD
 |x%)T*:%;D!"*0X4D1D*EF1t&&'%)T*:%;D!"  yD)X5AR9RRRwwvq!_49KxZ[|9[[[HHV$r{{6'::??AAAAwwt}1,SBHHTN@RUWU`U`aeUf@f9f5g5gggwwt}1,S$"++VZJ[9[5\5\\\wwsA(*rwwsA(Q,/NNN{{3##%%%%8CAyyL 12;a?@@@@wwtQ8+a0@H0LLL{{4 $$&&&&SIXI&33t?P7PPP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 `/D'TD/r:   