Ë
    0Ò^jÁ$  ã                   ó€   — d Z ddlmZ ddlmZmZ ddlmZ ddlm	Z	 ddl
mZ ddlmZ ddlmZ dd	lmZ d
dlZd„ Zd„ Zy)zó
This module contains subroutines for initialization.

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.
é   )Úcheckbreak_con)Ú	DEBUGGINGÚREALMAX)ÚINFO_DEFAULT)Úevaluate)Úsavehist)Úinv)Úfmsg)Úsavefilté    Nc                 ó  — d}d}t        j                  |«      }|�t        j                  |«      nd}||z
  }t        j                  |
«      }t        rm|dk\  s
J d|› �«       ‚|dk\  s
J d|› �«       ‚t        |«      dk  s
J d	|› �«       ‚t	        t        j
                  |
«      «      s
J d
|› �«       ‚|	dkD  s
J d|› �«       ‚t        }t        j                  ||dz   «      |	z  }|
|dd…|f<   t        j                  |«      |	z  }t        j                  |dz   t        ¬«      }t        j                  |dz   «      t        z   }t        j                  |dz   «      t        z   }t        j                  ||dz   f«      t        z   }t        |dz   «      D �]-  }|dd…|f   j                  «       }|dk(  r|}|} |}!n$|dz
  }||xx   |	z  cc<   t        | ||||«      \  } }!t        j                  t        j                  d|!«      «      }"t!        |d|||	| ||"|!«	       t#        |||| ||"||!|«	       d||<   | ||<   |!|dd…|f<   |"||<   t%        |||"|| ||«      }#|#t        k7  r|#} na||k  sŒÖ||   ||   k  sŒâ||   ||   c||<   ||<   ||   ||   c||<   ||<   |dd…||gf   |dd…||gf<   ||dd…|f<   |	 ||d|dz   …f<   �Œ0 t        j&                  |«      }$|j	                  «       rt)        |dd…d|…f   «      }t        �ry|$|k  s
J d|› �«       ‚|j                  |dz   k(  s
J d|› �«       ‚|j*                  ||dz   fk(  s
J d|› �«       ‚t        j,                  |«      j/                  «       s#t        j0                  |«      j/                  «       r
J d|› �«       ‚|j                  |dz   k(  rJt/        |dk  «      s<t/        t        j,                  |«      «      st/        t        j2                  |«      «      r
J d|› �«       ‚|j                  |dz   k(  r<t/        t        j,                  |«      «      st/        t        j2                  |«      «      r
J d|› �«       ‚|j*                  ||dz   fk(  s
J d|› �«       ‚t        j
                  |«      j	                  «       s
J d|› �«       ‚t	        t        j                  t        |dd…d|…f   «      d¬«      dkD  «      s
J d|› �«       ‚|j*                  ||fk(  s
J d|› �«       ‚t        j
                  |«      j	                  «       s
J d|› �«       ‚t        j4                  |dd…d|…f   |z  t        j                  |«      dd¬«      st	        |«      rJ dd› d|› �«       ‚|||||||$|fS ) ze
    This subroutine does the initialization concerning X, function values, and
    constraints.
    ÚCOBYLAÚ
INITIALIZENr   zM >= 0 é   zN >= 1 é   z$IPRINT is 0, 1, -1, 2, -2, 3, or -3 zX0 is finite zRHOBEG > 0 )ÚdtypeÚInitializationTzNF <= MAXFUN zEVALUATED.size == Num_vars + 1 zCONMAT.shape = [M, N+1] z!CONMAT does not contain NaN/-Inf zOCVAL.shape == Num_vars+1 and CVAL does not contain negative values or NaN/+Inf z2FVAL.shape == Num_vars+1 and FVAL is not NaN/+Inf zSIM.shape == [N, N+1] zSIM is finite ©ÚaxiszSIM(:, 1:N) has no zero column zSIMI.shape == [N, N] zSIMI is finite gš™™™™™¹?)ÚrtolÚatolzSIMI = SIM(:, 1:N)^éÿÿÿÿú )ÚnpÚsizer   ÚabsÚallÚisfiniter   ÚeyeÚzerosÚboolr   ÚrangeÚcopyr   ÚmaxÚappendr
   r   r   Úcount_nonzeror	   ÚshapeÚisnanÚanyÚisneginfÚisposinfÚallclose)%ÚcalcfcÚiprintÚmaxfunÚconstr0ÚamatÚbvecÚctolÚf0ÚftargetÚrhobegÚx0ÚxhistÚfhistÚchistÚconhistÚmaxhistÚsolverÚsrnameÚnum_constraintsÚm_lconÚm_nlconÚnum_varsÚinfoÚsimÚsimiÚ	evaluatedÚfvalÚcvalÚconmatÚkÚxÚjÚfÚconstrÚcstrvÚsubinfoÚnfs%                                        út/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/scipy/_external/pyprima/cobyla/initialize.pyÚinitxfcrS      s9  € ð €FØ€Fô —g‘g˜gÓ&€OØ"Ð.ŒR�W‰W�TŒ]°A€FØ Ñ&€GÜ�w‰w�r‹{€Hõ Ø !Ò#Ð7 w¨v¨hÐ%7Ó7Ð#Ø˜1Š}Ð0 ¨ xÐ0Ó0ˆ}Ü�6‹{˜aÒÐPÐ#GÈÀxÐ!PÓPÐô ”2—;‘;˜r“?Ô#Ð= }°V°HÐ%=Ó=Ð#Ø˜ŠzÐ1˜[¨¨Ð1Ó1ˆzô €Dô �&‰&�˜8 A™:Ó
&¨Ñ
/€CØ€CŠˆ8ˆÑô �6‰6�(Ó˜fÑ$€Dô —‘˜ !™¬4Ô0€Iô �8‰8�H˜Q‘JÓ¤'Ñ)€DÜ�8‰8�H˜Q‘JÓ¤'Ñ)€DÜ�X‰X�¨°©
Ð3Ó4´wÑ>€Fô �8˜a‘<Ó ó &#ˆØ’�8�Ñ×!Ñ!Ó#ˆà�Š6ØˆAØˆAØ‰Fà�A‘ˆAØˆa‹D�F‰N‹DÜ  ¨¨G°T¸4Ó@‰IˆAˆvÜ—‘”r—y‘y  FÓ+Ó,ˆô 	ˆVÐ% v¨q°&¸!¸QÀÀvÔNô 	�˜!˜U A u¨e°U¸FÀGÔLð ˆ	�!‰ØˆˆQ‰ØˆŠq�!ˆt‰ØˆˆQ‰ô ! ¨¨E°4¸¸GÀQÓGˆØ”lÒ"ØˆDÙð ˆx‹<˜D ™G d¨8¡nÓ4Ø&*¨8¡n°d¸1±gÐ#ˆD�‰G�T˜(‘^Ø&*¨8¡n°d¸1±gÐ#ˆD�‰G�T˜(‘^Ø'-ªa°(¸A°Ð.>Ñ'?ˆF’1�q˜(�mÐ#Ñ$Ø ˆC’�8�ÑØ"˜7ˆC��4�A�a‘C�4�‹LðM&#ôP 
×	Ñ	˜)Ó	$€Bà‡}�}„ä�3’q˜)˜8˜)�|Ñ$Ó%ˆö Ø�VŠ|Ð5˜}¨V¨HÐ5Ó5ˆ|Ø�~‰~ ¨A¡Ò-ÐYÐ1PÐQWÐPXÐ/YÓYÐ-ð �|‰| °¸A±Ð>Ò>ÐcÐBZÐ[aÐZbÐ@cÓcÐ>Ü—H‘H˜VÓ$×(Ñ(Ô*¬b¯k©k¸&Ó.A×.EÑ.EÔ.GÐvÐLmÐntÐmuÐJvÓvÐHØ�y‰y˜H q™LÒ(´#°d¸Q±h´-Ä3ÄrÇxÁxÐPTÃ~ÔCVÔZ]Ô^`×^iÑ^iÐjnÓ^oÔZpð  	Nð  vEð  FLð  EMð  tNó  	NÐqð �y‰y˜H q™LÒ(´#´b·h±h¸t³nÔ2EÌÌRÏ[É[ÐY]ÓM^ÔI_ð  	`ð  eWð  X^ð  W_ð  c`ó  	`Ð`à�y‰y˜X x°!¡|Ð4Ò4ÐWÐ8NÈvÈhÐ6WÓWÐ4Ü�{‰{˜3Ó×#Ñ#Ô%Ð@¨¸°xÐ'@Ó@Ð%Ü”2—6‘6œ#˜c¢! Y h Y ,Ñ/Ó0°qÔ9¸AÑ=Ô>ÐjÐBaÐbhÐaiÐ@jÓjÐ>Ø�z‰z˜h¨Ð1Ò1ÐSÐ5JÈ6È(Ð3SÓSÐ1Ü�{‰{˜4Ó ×$Ñ$Ô&ÐB¨/¸&¸Ð(BÓBÐ&Ü�{‰{˜3šq ) 8 )˜|Ñ,¨tÑ3´R·V±V¸HÓ5EÈCÐVYÕZÔbeÐfoÔbpð  	Vð  uHð  IKð  HLð  LMð  NTð  MUð  sVó  	VÐpà�f˜d C¨¨t°R¸Ð=Ð=ó    c                 ór	  — | j                   d   }|j                   d   }t        |	«      }t        �r{|dk\  sJ ‚|dk\  sJ ‚|dk\  sJ ‚t        j                  |d«      |k(  rt        j                  |d«      |k(  sJ ‚t        j                  |«      |k(  sJ ‚t        j                  |
d«      |k(  rt        j                  |
d«      |k(  sJ ‚t        j                  |	«      |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        j                  t        |dd…d|…f   «      d¬«      dkD  «      sJ ‚t        j                  |«      |dz   k(  sJ ‚d}t        |dz   «      D ]R  }||   sŒ	||k  r|dd…|f   |dd…|f   z   }n	|dd…|f   }t        ||   ||||   ||||	|
| dd…|f   |«      \  }}}	}
}ŒT t        �rŸ||k  sJ ‚t        j                  |d«      |k(  rt        j                  |d«      |k(  sJ ‚t        j
                  |dd…d|…f   «      t        j                  |dd…d|…f   «      z  j                  «       rJ ‚t        j                  |«      |k(  sJ ‚t        |d| dt        j
                  |d| «      z  t        j                  |d| «      z  k  «      rJ ‚t        j                  |
d«      |k(  rt        j                  |
d«      |k(  sJ ‚t        j
                  |
dd…d|…f   «      j                  «       rJ ‚t        j                  |	«      |k(  sJ ‚t        t        j
                  |	d| «      t        j                  |	d| «      z  «      rJ ‚|S )ak  
    This function initializes the filter (XFILT, etc) that will be used when selecting
    x at the end of the solver.
    N.B.:
    1. Why not initialize the filters using XHIST, etc? Because the history is empty if
    the user chooses not to output it.
    2. We decouple INITXFC and INITFILT so that it is easier to parallelize the former
    if needed.
    r   r   Nr   )r'   Úlenr   r   r   r(   r*   r)   r+   r   r   r$   r   r"   r   )rI   r3   ÚcweightrH   rG   rD   rF   ÚcfiltÚconfiltÚffiltÚxfiltr?   rB   ÚmaxfiltÚnfiltÚirK   s                    rR   Úinitfiltr_   –   ss  € ð —l‘l 1‘o€OØ�y‰y˜‰|€HÜ�%‹j€Gö Ø !Ò#Ð#Ð#Ø˜1Š}Ðˆ}Ø˜!Š|Ðˆ|Ü�w‰w�w Ó" oÒ5¼"¿'¹'À'È1Ó:MÐQXÒ:XÐXÐXÜ�w‰w�u‹~ Ò(Ð(Ð(Ü�w‰w�u˜aÓ  HÒ,´·±¸ÀÓ1BÀgÒ1MÐMÐMÜ�w‰w�u‹~ Ò(Ð(Ð(Ü�w‰w�v˜qÓ! _Ò4¼¿¹ÀÈÓ9KÈxÐZ[É|Ò9[Ð[Ð[Ü—H‘H˜VÓ$¤r§{¡{°6Ó':Ñ:×?Ñ?ÔAÐAÐAÜ�w‰w�t‹} ¨1¡Ò,´S¸ÀÄBÇHÁHÈTÃNÑ@RÔUW×U`ÑU`ÐaeÓUfÑ@fÑ9fÔ5gÐgÐgÜ�w‰w�t‹} ¨1¡Ò,´S¼¿¹À$»Ì"Ï+É+ÐVZÓJ[Ñ9[Ô5\Ð\Ð\Ü�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�yÓ! X°¡\Ò1Ð1Ð1ð €EÜ�8˜A‘:Óò RˆØ�Q‹<Ø�8Š|Øš˜1˜‘I ¢A x KÑ 0Ñ0‘àš˜1˜‘I�Ü2:¸4À¹7ÀDÈ'ÐSWÐXYÑSZÐ\]Ð_dÐfkÐmrÐtyð  |Bò  CDð  FGð  CGñ  |Hð  JQó  3RÑ/ˆE�5˜% ©ðRö Ø˜ÒÐÐÜ�w‰w�w Ó" oÒ5¼"¿'¹'À'È1Ó:MÐQXÒ:XÐXÐXÜ—H‘H˜W¢Q¨¨¨ YÑ/Ó0´2·;±;¸wÂqÈ&È5È&ÀyÑ?QÓ3RÑR×WÑWÔYÐYÐYÜ�w‰w�u‹~ Ò(Ð(Ð(Ü�u˜V˜e�} q¬2¯8©8°E¸&¸5°MÓ+BÑ'BÄRÇ[Á[ÐQVÐW]ÐX]ÐQ^ÓE_Ñ'_Ñ_Ô`Ð`Ð`Ü�w‰w�u˜aÓ  HÒ,´·±¸ÀÓ1BÀgÒ1MÐMÐMÜ—H‘H˜U¢1 f u f 9Ñ-Ó.×3Ñ3Ô5Ð5Ð5ä�w‰w�u‹~ Ò(Ð(Ð(Ü”r—x‘x  f u Ó.´·±¸UÀ6ÀE¸]Ó1KÑKÔLÐLÐLà€LrT   )Ú__doc__Úcommon.checkbreakr   Úcommon.constsr   r   Úcommon.infosr   Úcommon.evaluater   Úcommon.historyr   Úcommon.linalgr	   Úcommon.messager
   Úcommon.selectxr   Únumpyr   rS   r_   © rT   rR   ú<module>rk      s4   ðñõ /ß .Ý 'Ý &Ý %Ý Ý !Ý %ã ò}>ó@ArT   