
    Џkh: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y)
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  j                         rJ t        j                  |      |dz   k(  r:t        |dt        j                  |      z  t        j                  |      z  k        r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                  |	      j                         sJ t        t        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        fS |	}|
}| |k  rI||	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  kD  st        j                  |      rt+        |	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        rt        j                  |d      |k(  rt        j                  |d      |dz   k(  sJ t        j                  |      t        j
                  |      z  j                         rJ t        j                  |      |dz   k(  r:t        |dt        j                  |      z  t        j                  |      z  k        r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                  |	      j                         sJ t        t        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|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/teggl/fontify/venv/lib/python3.12/site-packages/scipy/_lib/pyprima/cobyla/update.py	updatexfcr9      sy    D ggfoOwwsAH !###1}}zex!|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wwt}1,SBHHTN@RUWU`U`aeUf@f9f5gggwwt}1,S$"++VZJ[9[5\\\wwsA(*rwwsA(Q,/NNN{{3##%%%8CAyyL 12;a?@@@wwtQ8+a0@H0LLL{{4 $$&&&SIXI&d333 }tT3l::GHxAuH%(^fT%(^Q&??
a(*55#UAXAxKAAyyLRWWQ16888a Dq)x1s5z>:;; D66#gdC9H9$569IIJKDcDjBHHTNAyyL)*	FF3wy#a(l2CDrvvhGWWXY	trxx	7JDD t|U!q%xU.8vtTSVX\.]+dCt  wwvq!_49KxZ[|9[[[HHV$r{{6'::??AAAwwt}1,SBHHTN@RUWU`U`aeUf@f9f5gggwwt}1,S$"++VZJ[9[5\\\wwsA(*rwwsA(Q,/NNN{{3##%%%8CAyyL 12;a?@@@wwtQ8+a0@H0LLL{{4 $$&&&SIXI&d3t?P7PPPdFD$..    c                    t        j                  |      dz
  }t        r| dkD  sJ t        j                  |      |dz   k(  r:t        |dt        j                  |      z  t        j
                  |      z  k        rJ t        j                  |      |dz   k(  r4t        t        j                  |      t        j
                  |      z        rJ t        j                  |      dz
  }|| |z  z   }t        |      }|||   k  st        |||   k  |||   k  z        r2t         j                  j                  |||kD        j                         }t        r7|dk\  r||dz   k  sJ ||k(  s#||   ||   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    wwt}q H axxwwt}1,SBHHTN@RUWU`U`aeUf@f9f5gggwwt}1,S$"++VZJ[9[5\\\ 774=1D

CXF D	S$d"3s4y8H!IJ uu{{4sV|{5<<> qyTHqL000x3t9s8}#<TcRZmA[`dei`jmqrzm{`{||Kr:   c                 .   d}|j                   d   }|j                   d   }t        r)|dk\  sJ |dk\  sJ | dkD  sJ t        j                  |d      |k(  rt        j                  |d      |dz   k(  sJ t        j                  |      t        j
                  |      z  j                         rJ t        j                  |      |dz   k(  r:t        |dt        j                  |      z  t        j                  |      z  k        r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                  |      j                         sJ t        t        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        }	t        | ||      }
|j                         }|j                         }d|
cxk  r|k  rn n|d d |fxx   |d d |
f   z  cc<   |d d |
f   j                         }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  kD  st        j                  |      rt+        |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|
cxk  r|k  r:n n7|||
g   ||
|g<   |d d ||
gf   |d d |
|gf<   |||
g   ||
|g<   n
t,        }	|}|}t        r8t        | ||      |k(  s|	t,        k(  sJ t        j                  |d      |k(  rt        j                  |d      |dz   k(  sJ t        j                  |      t        j
                  |      z  j                         rJ t        j                  |      |dz   k(  r:t        |dt        j                  |      z  t        j                  |      z  k        r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                  |      j                         sJ t        t        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|	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       s   6 D ll1oOyy|H !###1}}axxwwvq!_49KxZ[|9[[[HHV$r{{6'::??AAAwwt}1,SBHHTN@RUWU`U`aeUf@f9f5gggwwt}1,S$"++VZJ[9[5\\\wwsA(*rwwsA(Q,/NNN{{3##%%%8CAyyL 12;a?@@@wwtQ8+a0@H0LLL{{4 $$&&&SIXI&d333 D D$%D
 hhjGyy{HD8 	AxKC4L(q$w<$$&AtGAyyLRWWX!}=??? "$Q//T1W 66#gdC9H9$569IIJKDDcDjBHHTNAyyL)*	FF3wy#a(l2CDrvvhGWWXY	trxx	7JDD
 t|x%)8T*:%;D$!"*0Xt4D1D*EF1tX&&'%)8T*:%;D$!"  dD)X5AR9RRRwwvq!_49KxZ[|9[[[HHV$r{{6'::??AAAwwt}1,SBHHTN@RUWU`U`aeUf@f9f5gggwwt}1,S$"++VZJ[9[5\\\wwsA(*rwwsA(Q,/NNN{{3##%%%8CAyyL 12;a?@@@wwtQ8+a0@H0LLL{{4 $$&&&SIXI&d3t?P7PPP4sD$..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:   