
    Ti: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        |          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          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                          x/var/www/development/aibuddy-work/election-extract/venv/lib/python3.11/site-packages/scipy/_lib/pyprima/cobyla/update.py	updatexfcr9      s    D gfooOwsAH  4!####1}}}}zzex!|3333rx''"+f*=*==>>>>>HUOObk%&8&88999wqzzX%%#bk!nn*=*=%%%HQKK"+a..0111wvq!!_449K9KxZ[|9[9[9[9[HV$$r{6':'::??AAAAAwt}}1,,SBHTNN@RUWU`aeUfUf@f9f5g5g,,,wt}}1,,S$"+VZJ[J[9[5\5\,,,wsA(**rwsA(Q,/N/N/N/N{3##%%%%%8CAAAyyL 122;;;a?@@@@@wtQ8++a0@0@H0L0L0L0L{4  $$&&&&&SIXI&d33333 }tT3l::GHxAAAuH%(^fT%(^Q&?&??
a((*555#UAAAXAAAxKAAAAyyLRWQ16688a  Dq)))x1s5zz>:;;; D6#gdC9H9$5669I9IIJJKKDcDjBHTNNAAAyyL)**	F3wy#aaa(l2CDDrvhGWGWWXXYY	trx	7J7JDD t||U!qqq%xU.8vtTSVX\.].]+dCtt   
Qwvq!!_449K9KxZ[|9[9[9[9[HV$$r{6':'::??AAAAAwt}}1,,SBHTNN@RUWU`aeUfUf@f9f5g5g,,,wt}}1,,S$"+VZJ[J[9[5\5\,,,wsA(**rwsA(Q,/N/N/N/N{3##%%%%%8CAAAyyL 122;;;a?@@@@@wtQ8++a0@0@H0L0L0L0L{4  $$&&&&&SIXI&d33Pt?P7P7P7P7PdFD$..    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    wt}}q H  ]axxxxwt}}1,,SBHTNN@RUWU`aeUfUf@f9f5g5g,,,wt}}1,,S$"+VZJ[J[9[5\5\,,, 74==1D

CXXF D	S$d"3s4y8H!IJJ u{{4sV|{55<<>>  }qyyTHqL0000x3t9s8}#<#<TcRZmA[A[`dei`jmqrzm{`{`{`{`{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     rn 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        |          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    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 l1oOy|H  4!####1}}}}axxxxwvq!!_449K9KxZ[|9[9[9[9[HV$$r{6':'::??AAAAAwt}}1,,SBHTNN@RUWU`aeUfUf@f9f5g5g,,,wt}}1,,S$"+VZJ[J[9[5\5\,,,wsA(**rwsA(Q,/N/N/N/N{3##%%%%%8CAAAyyL 122;;;a?@@@@@wtQ8++a0@0@H0L0L0L0L{4  $$&&&&&SIXI&d33333 D D$%%D
 hhjjGyy{{HD8 	AAAxKC4L(qqq$w<$$&&AAAtGAAAyyLRWX!}==?? "$Q////T111W 6#gdC9H9$5669I9IIJJKKDDcDjBHTNNAAAyyL)**	F3wy#aaa(l2CDDrvhGWGWWXXYY	trx	7J7JDD
 t||x%)8T*:%;D$!"*0Xt4D1D*EF111tX&&'%)8T*:%;D$!"   QdD))X55AR9R9R9R9Rwvq!!_449K9KxZ[|9[9[9[9[HV$$r{6':'::??AAAAAwt}}1,,SBHTNN@RUWU`aeUfUf@f9f5g5g,,,wt}}1,,S$"+VZJ[J[9[5\5\,,,wsA(**rwsA(Q,/N/N/N/N{3##%%%%%8CAAAyyL 122;;;a?@@@@@wtQ8++a0@0@H0L0L0L0L{4  $$&&&&&SIXI&d33Pt?P7P7P7P7P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 J J J J J J J J J J J J J J    `/ `/ `/D' ' 'TD/ D/ D/ D/ D/r:   