§
    fŠtjÁ$  ã                   ó‚   — 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dS )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          r‡|dk    sJ d|› �¦   «         ‚|dk    sJ d|› �¦   «         ‚t          |¦  «        dk    sJ d	|› �¦   «         ‚t	          t          j        |
¦  «        ¦  «        sJ d
|› �¦   «         ‚|	dk    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                              ¦   «         }|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          k    r|#} nu||k     rm||         ||         k     r[||         ||         c||<   ||<   ||         ||         c||<   ||<   |dd…||gf         |dd…||gf<   ||dd…|f<   |	 ||d|dz   …f<   �Œ_t          j        |¦  «        }$|                     ¦   «         rt)          |dd…d|…f         ¦  «        }t          �r³|$|k    sJ d|› �¦   «         ‚|j        |dz   k    sJ d|› �¦   «         ‚|j        ||dz   fk    sJ d|› �¦   «         ‚t          j        |¦  «                             ¦   «         s&t          j        |¦  «                             ¦   «         rJ d|› �¦   «         ‚|j        |dz   k    rUt/          |dk     ¦  «        sBt/          t          j        |¦  «        ¦  «        s!t/          t          j        |¦  «        ¦  «        rJ d|› �¦   «         ‚|j        |dz   k    rBt/          t          j        |¦  «        ¦  «        s!t/          t          j        |¦  «        ¦  «        rJ d|› �¦   «         ‚|j        ||dz   fk    sJ d|› �¦   «         ‚t          j        |¦  «                             ¦   «         sJ d|› �¦   «         ‚t	          t          j        t          |dd…d|…f         ¦  «        d¬¦  «        dk    ¦  «        sJ d|› �¦   «         ‚|j        ||fk    sJ d|› �¦   «         ‚t          j        |¦  «                             ¦   «         sJ d|› �¦   «         ‚t          j        |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%                                        úb/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/scipy/_lib/pyprima/cobyla/initialize.pyÚinitxfcrS      sR  € ð €FØ€Fõ ”g˜gÑ&Ô&€OØ"Ð.�RŒW�T‰]Œ]ˆ]°A€FØ Ñ&€GÝŒw�r‰{Œ{€Hõ ð 2Ø !Ò#Ð#Ð#Ð%7¨vÐ%7Ð%7Ñ#Ô#Ð#Ø˜1Š}ˆ}ˆ}Ð0¨Ð0Ð0‰}Œ}ˆ}Ý�6‰{Œ{˜aÒÐÐÐ!PÈÐ!PÐ!PÑÔÐõ •2”;˜r‘?”?Ñ#Ô#Ð=Ð=Ð%=°VÐ%=Ð%=Ñ=Ô=Ð#Ø˜ŠzˆzˆzÐ1¨Ð1Ð1‰zŒzˆzõ €Dõ Œ&�˜8 A™:Ñ
&Ô
&¨Ñ
/€CØ€Cˆˆˆˆ8ˆÑõ Œ6�(ÑÔ˜fÑ$€Dõ ”˜ !™­4Ð0Ñ0Ô0€Iõ Œ8�H˜Q‘JÑÔ¥'Ñ)€DÝŒ8�H˜Q‘JÑÔ¥'Ñ)€DÝŒX�¨°©
Ð3Ñ4Ô4µwÑ>€Fõ �8˜a‘<Ñ Ô ð &#ñ &#ˆØ����8�Ô×!Ò!Ñ#Ô#ˆà�Š6ˆ6ØˆAØˆAØˆFˆFà�A‘ˆAØˆaˆDˆDŒD�F‰NˆDˆD‰DÝ  ¨¨G°T¸4Ñ@Ô@‰IˆAˆvÝ”•r”y  FÑ+Ô+Ñ,Ô,ˆõ 	ˆVÐ% v¨q°&¸!¸QÀÀvÑNÔNÐNõ 	�˜!˜U A u¨e°U¸FÀGÑLÔLÐLð ˆ	�!‰ØˆˆQ‰Øˆˆqˆqˆq�!ˆt‰ØˆˆQ‰õ ! ¨¨E°4¸¸GÀQÑGÔGˆØ•lÒ"Ð"ØˆDØˆEð ˆxŠ<ˆ<˜D œG d¨8¤nÒ4Ð4Ø&*¨8¤n°d¸1´gÐ#ˆD�‰G�T˜(‘^Ø&*¨8¤n°d¸1´gÐ#ˆD�‰G�T˜(‘^Ø'-¨a¨a¨a°(¸A°Ð.>Ô'?ˆF�1�1�1�q˜(�mÐ#Ñ$Ø ˆC����8�ÑØ"˜7ˆC��4�A�a‘C�4�‰Lùå	Ô	˜)Ñ	$Ô	$€Bà‡}‚}�„ð &å�3�q�q�q˜)˜8˜)�|Ô$Ñ%Ô%ˆõ ñ VØ�VŠ|ˆ|ˆ|Ð5¨VÐ5Ð5‰|Œ|ˆ|ØŒ~ ¨A¡Ò-Ð-Ð-Ð/YÐQWÐ/YÐ/YÑ-Ô-Ð-ð Œ| °¸A±Ð>Ò>Ð>Ð>Ð@cÐ[aÐ@cÐ@cÑ>Ô>Ð>Ý”H˜VÑ$Ô$×(Ò(Ñ*Ô*Ðv­b¬k¸&Ñ.AÔ.A×.EÒ.EÑ.GÔ.GÐvÐvÐJvÐntÐJvÐJvÑvÔvÐHØŒy˜H q™LÒ(Ð(µ#°d¸Q²h±-´-Ð(Å3ÅrÄxÐPTÁ~Ä~ÑCVÔCVÐ(ÕZ]Õ^`Ô^iÐjnÑ^oÔ^oÑZpÔZpÐ(Ð(ð  tNð  FLð  tNð  tNÑ(Ô(Ðqð Œy˜H q™LÒ(Ð(µ#µb´h¸t±n´nÑ2EÔ2EÐ(ÍÍRÌ[ÐY]ÑM^ÔM^ÑI_ÔI_Ð(Ð(ð  c`ð  X^ð  c`ð  c`Ñ(Ô(Ð`àŒy˜X x°!¡|Ð4Ò4Ð4Ð4Ð6WÈvÐ6WÐ6WÑ4Ô4Ð4ÝŒ{˜3ÑÔ×#Ò#Ñ%Ô%Ð@Ð@Ð'@¸Ð'@Ð'@Ñ@Ô@Ð%Ý•2”6�#˜c ! ! ! Y h Y ,Ô/Ñ0Ô0°qÐ9Ñ9Ô9¸AÒ=Ñ>Ô>ÐjÐjÐ@jÐbhÐ@jÐ@jÑjÔjÐ>ØŒz˜h¨Ð1Ò1Ð1Ð1Ð3SÈ6Ð3SÐ3SÑ1Ô1Ð1ÝŒ{˜4Ñ Ô ×$Ò$Ñ&Ô&ÐBÐBÐ(B¸&Ð(BÐ(BÑBÔBÐ&ÝŒ{˜3˜q˜q˜q ) 8 )˜|Ô,¨tÑ3µR´V¸HÑ5EÔ5EÈCÐVYÐZÑZÔZð  	VÕbeÐfoÑbpÔbpð  	Vð  	Vð  sVð  IKð  sVð  sVð  NTð  sVð  sVñ  	Vô  	VÐpà�f˜d C¨¨t°R¸Ð=Ð=ó    c                 ó6
  — | 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                       ¦   «         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          j        t          |dd…d|…f         ¦  «        d¬¦  «        dk    ¦  «        sJ ‚t          j        |¦  «        |dz   k    sJ ‚d}t          |dz   ¦  «        D ]k}||         ra||k     r|dd…|f         |dd…|f         z   }n|dd…|f         }t          ||         ||||         ||||	|
| dd…|f         |¦  «        \  }}}	}
}Œlt          �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                       ¦   «         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         ¦  «                             ¦   «         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_   –   sY  € ð ”l 1”o€OØŒy˜Œ|€HÝ�%‰jŒj€Gõ ñ 2Ø !Ò#Ð#Ð#Ð#Ø˜1Š}ˆ}ˆ}ˆ}Ø˜!Š|ˆ|ˆ|ˆ|ÝŒw�w Ñ"Ô" oÒ5Ð5½"¼'À'È1Ñ:MÔ:MÐQXÒ:XÐ:XÐ:XÐXÝŒw�u‰~Œ~ Ò(Ð(Ð(Ð(ÝŒw�u˜aÑ Ô  HÒ,Ð,µ´¸ÀÑ1BÔ1BÀgÒ1MÐ1MÐ1MÐMÝŒw�u‰~Œ~ Ò(Ð(Ð(Ð(ÝŒ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ÑÔ×#Ò#Ñ%Ô%Ð%Ð%Ð%Ý•2”6�#˜c ! ! ! Y h Y ,Ô/Ñ0Ô0°qÐ9Ñ9Ô9¸AÒ=Ñ>Ô>Ð>Ð>Ð>ÝŒw�yÑ!Ô! X°¡\Ò1Ð1Ð1Ð1ð €EÝ�8˜A‘:ÑÔð Rð RˆØ�QŒ<ð 	RØ�8Š|ˆ|Ø˜˜˜˜1˜”I  A A A x KÔ 0Ñ0��à˜˜˜˜1˜”I�Ý2:¸4À¼7ÀDÈ'ÐSWÐXYÔSZÐ\]Ð_dÐfkÐmrÐtyð  |Bð  CDð  CDð  CDð  FGð  CGô  |Hð  JQñ  3Rô  3RÑ/ˆE�5˜% ¨øõ ñ 
MØ˜ÒÐÐÐÝŒw�w Ñ"Ô" oÒ5Ð5½"¼'À'È1Ñ:MÔ:MÐQXÒ:XÐ:XÐ:XÐXÝ”H˜W Q Q Q¨¨¨ YÔ/Ñ0Ô0µ2´;¸wÀqÀqÀqÈ&È5È&ÀyÔ?QÑ3RÔ3RÑR×WÒWÑYÔYÐYÐYÐYÝŒw�u‰~Œ~ Ò(Ð(Ð(Ð(Ý�u˜V˜e˜V”} q­2¬8°E¸&¸5¸&´MÑ+BÔ+BÑ'BÅRÄ[ÐQVÐW]ÐX]ÐW]ÔQ^ÑE_ÔE_Ñ'_Ò_Ñ`Ô`Ð`Ð`Ð`ÝŒw�u˜aÑ Ô  HÒ,Ð,µ´¸ÀÑ1BÔ1BÀgÒ1MÐ1MÐ1MÐMÝ”H˜U 1 1 1 f u f 9Ô-Ñ.Ô.×3Ò3Ñ5Ô5Ð5Ð5Ð5åŒw�u‰~Œ~ Ò(Ð(Ð(Ð(Ý•r”x  f u f¤Ñ.Ô.µ´¸UÀ6ÀEÀ6¼]Ñ1KÔ1KÑKÑLÔLÐ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      sä   ððð ð /Ð .Ð .Ð .Ð .Ð .Ø .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø &Ð &Ð &Ð &Ð &Ð &Ø %Ð %Ð %Ð %Ð %Ð %Ø Ð Ð Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !Ø %Ð %Ð %Ð %Ð %Ð %à Ð Ð Ð ð}>ð }>ð }>ð@Að Að Að Að ArT   