Ë
    0Ò^j<Ÿ  ã                   ó  — d Z ddlZddlmZ ddlmZmZmZm	Z	 ddl
mZmZmZmZmZ ddlmZ ddlmZ dd	lmZmZmZmZmZmZ dd
lmZmZmZ ddlm Z  ddl!m"Z" ddl#m$Z$m%Z% ddl&m'Z'm(Z(m)Z) ddl*m+Z+m,Z, ddl-m.Z.m/Z/ ddl0m1Z1m2Z2 d„ Z3d„ Z4d„ Z5y)zõ
This module performs the major calculations of COBYLA.

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.
é    Né   )Úcheckbreak_con)ÚREALMAXÚEPSÚ	DEBUGGINGÚMIN_MAXFILT)ÚINFO_DEFAULTÚMAXTR_REACHEDÚDAMAGING_ROUNDINGÚSMALL_TR_RADIUSÚCALLBACK_TERMINATE)Úevaluate)Úsavehist)ÚisinvÚmatprodÚinprodÚnormÚprimasumÚ	primapow2)ÚfmsgÚretmsgÚrhomsg)Úredrat)Úredrho)ÚsavefiltÚselectxé   )Ú
updatepoleÚfindpoleÚ	updatexfc)Ú
setdrop_trÚgeostep)ÚtrstlpÚtrrad)ÚinitxfcÚinitfiltc                 ór  — g }g }g }g }d}t        j                  t        j                  |«      t        j                  |«      f«      }t        j                  t        j                  |«      dz   «      }t        }|�t        j                  |«      nd}t        j                  |«      }||z
  }t        j                  |«      }t        rßt        |«      dk  sJ ‚||k\  r|dk\  sJ ‚|dk\  sJ ‚||dz   k\  sJ ‚||k\  r|dkD  sJ ‚t        t        j                  |«      «      sJ ‚d|cxk  r|	cxk  rdk  sJ ‚ J ‚d|cxk  rdcxk  r|k  sJ ‚ J ‚d|k  sJ ‚d|k  sJ ‚d|cxk  r|k  sJ ‚ J ‚|�t        j                  |«      ||fk(  sJ ‚t        t        |«      |cxk  r|k  sJ ‚ J ‚t        | ||||||||
|||||||«      \  } }!}"}#}$}%}&}'t        j                  t        j                  t        j                  |d«      |«      «      }(t        j                  t        j                  |«      t        j                  |(«      f«      })t        j                  t        j                  |(«      «      }*t        j                  t        j                  |«      t        j                  |(«      f«      }+t        |!|||"|%|#| |(|)|*|+«      },|'t        k7  rÁ|'}-t!        |*d|, |(d|, ||«      }.|+dd…|.f   }|*|.   }|)dd…|.f   }|(|.   }/t#        ||-||&|||/|«       t        rk|&|k  sJ ‚t        j                  |«      |k(  rt%        t        j&                  |«      «      rJ ‚t        j&                  |«      st        j(                  |«      rJ ‚||||/|&|||||-f
S |}0|}1t        j                  |t        j                  dt+        |!|%«      «      «      }2d}3d	}4d}5t        j                  dt        j                  d
|z  d«      «      }6d|z  }7t,        }-t/        |7«      D �]�  }8t1        |||!|2|"|1|%|0|#|$«
      }2t3        |2|!|"|%|#|$«      \  }!}"}%}#}$}'|'t4        k(  r|'}- �ndt        t7        t9        |#dd…d|…f   «      d¬«      dt9        |1«      z  k  «      }9t;        |%d| |%|   z
  |$«      }:|�|j<                  n||dd…d|…f<   t;        |!|d…d|…f   t        j>                  |!|d…|f   |df«      j<                  z
  |$«      j<                  |dd…|d…f<   tA        ||!dd…|f    |1|:«      };t        |1tC        |;«      «      }<|<d|0z  k  }3tE        |;|:«       }=|"|   t        jF                  t        jH                  d|!dd…|f   t;        |;|«      z   «      «      z
  }>|=|2|>z  z   }?|?dt        |2d«      z  |0z  kD   }@|3s@r|1dz  }1|1|6|0z  k  �rÛ|0}1�n×|#dd…|f   |;z   }t7        t9        ||#dd…|f   z
  «      «      ||<   t7        t9        |jK                  |d«      |#dd…|f   jK                  |d«      |#dd…d|…f   z   z
  «      d¬«      |d| t        jL                  |«      }A||A   t9        d|z  «      k  r|%A   }|!dd…|Af   }|"|A   }/nntO        | ||||«      \  }}t        jF                  t        jH                  d|«      «      }/|&dz  }&tQ        ||||||/|||«	       tS        |/|||||,|(|*|+||)«      \  },}(}*}+})tU        |d||&|1|||/|«	       |%|   |2|"|   z  z   ||2|/z  z   z
  }BtW        |B|?|«      }4tY        |1|<||	|||4«      }1|1|6|0z  k  r|0}1BdkD  }Ct[        |C|;|1|0|#|$«      }5t]        |5||2|/|;||!|"|%|#|$«      \  }#}$}%}!}"}'|'t4        k(  r|'}- �n>t_        ||&|/|||
|«      }'|'t        k7  r|'}- �n|3xs @xs |4dk  xs |5du }D|Dxr |9 }EDxr |9xr tG        |1|<«      |0k  }FE�rt        t7        t9        |#dd…d|…f   «      d¬«      dt9        |1«      z  k  «      �sÎt        j`                  t7        t9        |#dd…d|…f   «      d¬«      d¬«      }G|1dz  }Htc        |G|||!|2|"|H|%|$«	      };|#dd…|f   |;z   }t7        t9        ||#dd…|f   z
  «      «      ||<   t7        t9        |jK                  |d«      |#dd…|f   jK                  |d«      |#dd…d|…f   z   z
  «      d¬«      |d| t        jL                  |«      }A||A   t9        d|z  «      k  r|%A   }|!dd…|Af   }|"|A   }/nntO        | ||||«      \  }}t        jF                  t        jH                  d|«      «      }/|&dz  }&tQ        ||||||/|||«	       tS        |/|||||,|(|*|+||)«      \  },}(}*}+})tU        |d||&|1|||/|«	       t]        G||2|/|;||!|"|%|#|$«      \  }#}$}%}!}"}'|'t4        k(  r|'}- �nt_        ||&|/|||
|«      }'|'t        k7  r|'}- nåFr±|0|k  rtd        }- nÖtG        d|0z  tg        |0|«      «      }1tg        |0|«      }0t        j                  |t        j                  |2t+        |!|%«      «      «      }2ti        |||&|%|   |0|#dd…|f   |"|   |!dd…|f   |2«	       t3        |2|!|"|%|#|$«      \  }!}"}%}#}$}'|'t4        k(  r|'}- n2|s�Œs ||#dd…|f   |%|   |&|8|"|   |!dd…|f   «      }I|Is�Œ˜tj        }- n |#dd…|f   ;z   }|-td        k(  r£|3r¡tC        ||#dd…|f   z
  «      d|z  kD  r†|&|k  r�tO        | ||||«      \  }}t        jF                  t        jH                  d|«      «      }/|&dz  }&tQ        ||||||/|||«	       tS        |/|||||,|(|*|+||)«      \  },}(}*}+})tU        |d||&|0|||/|«	       t!        |*d|, |(d|, tG        |2|«      |«      }.|+dd…|.f   }|*|.   }|)dd…|.f   }|(|.   }/t#        ||-||&|||/|«       ||||/|&|||||-f
S )zE
    This subroutine performs the actual computations of COBYLA.
    ÚCOBYLAr   Nr   é   r   g     @�@Féÿÿÿÿg      è?g      ø?é
   ©Úaxisé   gš™™™™™¹?g�íµ ÷Æ°>g-Cëâ6?zTrust regionÚGeometryç      à?gü©ñÒMbP?)6ÚnpÚzerosÚsizer   r   ÚabsÚallÚisfiniteÚshapeÚminr   r%   ÚminimumÚmaximumr&   r	   r   r   ÚanyÚisnanÚisposinfÚfcratior
   ÚrangeÚgetcpenr   r   r   r   r   ÚTÚtiler#   r   r   ÚmaxÚappendÚreshapeÚargminr   r   r   r   r   r$   r!   r    r   Úargmaxr"   r   r   r   r   )JÚcalcfcÚiprintÚmaxfiltÚmaxfunÚamatÚbvecÚctolÚcweightÚeta1Úeta2ÚftargetÚgamma1Úgamma2ÚrhobegÚrhoendÚconstrÚfÚxÚmaxhistÚcallbackÚxhistÚfhistÚchistÚconhistÚsolverÚAÚdistsqÚcpenminÚm_lconÚnum_constraintsÚm_nlconÚnum_varsÚ	evaluatedÚconmatÚcvalÚsimÚsimiÚfvalÚnfÚsubinfoÚcfiltÚconfiltÚffiltÚxfiltÚnfiltÚinfoÚkoptÚcstrvÚrhoÚdeltaÚcpenÚshortdÚratioÚjdrop_trÚgamma3ÚmaxtrÚtrÚadequate_geoÚgÚdÚdnormÚprerefÚprerecÚpreremÚtrfailÚjÚactremÚ	ximprovedÚ
bad_trstepÚimprove_geoÚ
reduce_rhoÚ	jdrop_geoÚdelbarÚ	terminatesJ                                                                             úp/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/scipy/_external/pyprima/cobyla/cobylb.pyÚcobylbr“      s†  € ð €EØ€EØ€EØ€Gð €FÜ
�‰”"—'‘'˜!“*œbŸg™g f›oÐ.Ó/€AÜ�X‰X”b—g‘g˜a“j 1‘nÓ%€Fô €Gð #Ð.ŒR�W‰W�TŒ]°A€FÜ—g‘g˜f“o€OØ Ñ&€GÜ�w‰w�q‹z€Hõ Ü�6‹{˜aÒÐÐØ &Ò(¨V°qª[Ð8Ð8Ø˜1Š}Ðˆ}Ø˜ A™Ò%Ð%Ð%Ø˜Ò F¨Q¢JÐ.Ð.Ü”2—;‘;˜q“>Ô"Ð"Ð"Ø�DÔ$˜DÔ$ 1Ò$Ð$Ñ$Ð$Ð$Ø�6Ô&˜AÔ& Ò&Ð&Ñ&Ð&Ð&Ø�DŠyÐˆyØ�GŠ|Ðˆ|Ø�GÔ%˜vÒ%Ð%Ñ%Ð%Ð%Øˆ|œrŸx™x¨›~°&¸(Ð1CÒCÐCÐCÜ”; Ó'¨7Ô<°fÒ<Ð<Ñ<Ð<Ð<ô =DÀFÈFØˆf�d˜D $¨¨7°F¸AØˆU�E˜7 Gó=-Ñ9€Iˆv�t˜S $¨¨b°'ô �H‰H”R—Z‘Z¤§
¡
¨7°AÓ 6¸Ó?Ó@€EÜ�h‰hœŸ™ ›¬¯©°«Ð8Ó9€GÜ�H‰H”R—W‘W˜U“^Ó$€EÜ�H‰H”b—g‘g˜a“j¤"§'¡'¨%£.Ð1Ó2€EÜ�V˜T 7¨D°$¸¸YÈÈwØ˜Eó#€Eð ”,ÒØˆô �u˜V˜e�} e¨F¨U m°W¸dÓCˆØ’!�T�'‰NˆØ�$‰KˆØš˜D˜Ñ!ˆØ�d‘ˆäˆv�t˜V R¨¨A¨u°fÔ=åØ˜’<Ð�<Ü—7‘7˜1“: Ò)´#´b·h±h¸q³kÔ2BÐBÐBÜŸ™ œ¤r§{¡{°1¤~Ð6Ð6ð �!�V˜U B¨¨u°e¸WÀdÐJÐJð €CØ€EÜ�:‰:�gœrŸz™z¨%´¸ÀÓ1FÓGÓH€DØ€FØ€EØ€Hô �Z‰Z˜œ2Ÿ:™: d¨V¡m°SÓ9Ó:€Fð �‰K€EÜ€Dô �E‹ló \ˆô �t˜T 6¨4°°u¸dÀCÈÈdÓSˆô 2<¸DÀ&È$ÐPTØ<?Àó2GÑ.ˆ��d˜C  wð Ô'Ò'ØˆDÚô œ8¤I¨c²!°Y°h°Y°,Ñ.?Ó$@ÀqÔIÈQÔQZÐ[`ÓQaÑMaÑaÓbˆô �T˜)˜8�_ t¨H¡~Ñ5¸Ó=ˆØ"&Ð"2˜Ÿš¸ˆŠ!ˆWˆfˆWˆ*‰Ü ¨©°°(°Ð(:Ñ!;ÜŸ'™' &¨©°(Ð):Ñ";¸hÈ¸]ÓK×MÑMñ"NØPTóVßVWÑVWð 	
Š!ˆV‰Wˆ*‰ô �1�vša ˜kÑ*Ð*¨E°1Ó5ˆÜ�Eœ4 ›7Ó#ˆð ˜3 ™9Ñ$ˆô ˜˜A“,�ˆØ�h‘¤"§&¡&¬¯©°1°fºQÀ¸[Ñ6IÌGÐTUÐWXËMÑ6YÓ)ZÓ"[Ñ[ˆð
 ˜$ ™-Ñ'ˆØ˜v¬¨D°!«Ñ4°sÑ:Ñ:Ð;ˆá‘Vð �S‰LˆEØ˜ ™Ó$Ø’ð ’A�x�KÑ  1Ñ$ˆAÜ'¬	°!°cº!¸X¸+Ñ6FÑ2FÓ(GÓHˆF�8ÑÜ (¬°1·9±9¸XÀqÓ3IØ’Q˜�[Ñ!×)Ñ)¨(°AÓ6¸ºQÀ	ÀÀ	¸\Ñ9JÑJñ4Ló *MØSTô!VˆF�9�HÐä—	‘	˜&Ó!ˆAØ�a‰yœI d¨V¡mÓ4Ò4Ø˜‘G�Ø¢ 1 ™�Ø˜Q™‘ô % V¨Q°¸¸tÓD‘	��6ÜŸ™œrŸy™y¨¨FÓ3Ó4�Ø�a‘�ä˜ ! U¨A¨u°e¸UÀFÈGÔTä6>¸uÀdÈGÐUVØ?@À%ÈÐPUØ?DÀfÈgó7WÑ3��u˜e U¨Gô �˜¨°°U¸A¸qÀ%ÈÔPð ˜8‘n t¨d°8©nÑ'<Ñ<ÀÀTÈEÁ\ÑAQÑRˆFô ˜6 6¨4Ó0ˆEô< ˜% ¨¨d°F¸FÀEÓJˆEØ˜˜s™
Ò"Ø�ð  ™
ˆIô
 " )¨Q°°s¸CÀÓFˆHô 6?¸xÈÐQUÐW\Ð^_ÐabÐdjÐlpÐrvÐx{ð  ~Bó  6CÑ2ˆC��t˜V T¨7àÔ+Ò+Ø�Úô % V¨R°¸¸aÀÈ!ÓLˆGØœ,Ò&Ø�Úð ÒG˜vÒG¨°!©ÒG°xÀ4Ð7Gˆ
à Ò5¨Ð%5ˆàÒM LÒM´S¸ÀÓ5FÈ#Ñ5Mˆ
òl œs¤8¬I°cº!¸Y¸h¸Y¸,Ñ6GÓ,HÈqÔ#QÐUVÔYbÐchÓYiÑUiÑ#iÕjô: Ÿ	™	¤(¬9°Sº¸I¸X¸I¸Ñ5FÓ+GÈaÔ"PÐWXÔYˆIð ˜1‘WˆFÜ˜	 4¨¨v°t¸TÀ6È4ÐQUÓVˆAð ’A�x�KÑ  1Ñ$ˆAÜ'¬	°!°cº!¸X¸+Ñ6FÑ2FÓ(GÓHˆF�8ÑÜ (¬°1·9±9¸XÀqÓ3IØ’Q˜�[Ñ!×)Ñ)¨(°AÓ6¸ºQÀ	ÀÀ	¸\Ñ9JÑJñ4Ló *MØSTô!VˆF�9�HÐä—	‘	˜&Ó!ˆAØ�a‰yœI d¨V¡mÓ4Ò4Ø˜‘G�Ø¢ 1 ™�Ø˜Q™‘ô % V¨Q°¸¸tÓD‘	��6ÜŸ™œrŸy™y¨¨FÓ3Ó4�Ø�a‘�ä˜ ! U¨A¨u°e¸UÀFÈGÔTä6>¸uÀdÈGÐUVØ?@À%ÈÐPUØ?DÀfÈgó7WÑ3��u˜e U¨Gô
 �˜ V¨R°¸¸1¸eÀVÔLä5>¸yÈ&ÐRVÐX]Ð_`ÐbcÐekÐmqÐswÐy|ð  Có  6DÑ2ˆC��t˜V T¨7àÔ+Ò+Ø�Úô % V¨R°¸¸aÀÈ!ÓLˆGØœ,Ò&Ø�Ùñ
 Ø�fŠ}Ü&�ÙÜ˜˜c™	¤6¨#¨vÓ#6Ó7ˆEÜ˜˜fÓ%ˆCô —:‘:˜g¤r§z¡z°$¼ÀÈÓ8MÓ'NÓOˆDä�6˜6 2 t¨H¡~°s¸CÂÀ8ÀÑ<LÈdÐS[ÉnÐ^dÒefÐhpÐepÑ^qÐswÔxÜ5?ÀÀfÈdÐTXÐZ]Ð_cÓ5dÑ2ˆF�D˜$  T¨7àÔ+Ò+Ø�Ùó Ù  ¢Q¨ [Ñ!1°4¸±>À2ÀrÈ4ÐPXÉ>Ð[aÒbcÐemÐbmÑ[nÓoˆIÛÜ)�Ùðy
\ðB 	ŠAˆxˆKÑ˜1Ñ€AØ”ÒÙÜ��Sš˜H˜Ñ%Ñ%Ó&¨°&©Ò8Ø�ŠKô ˜V Q¨°°tÓ<‰	ˆˆ6Ü—‘”r—y‘y  FÓ+Ó,ˆØ
ˆa‰ˆÜ�˜!˜U A u¨e°U¸FÀGÔLÜ.6°u¸dÀGÈQÐPQÐSXÐZ_ÐafÐhmÐouÐw~Ó.Ñ+ˆˆu�e˜U GäˆV�^ V¨R°°a¸¸EÀ6ÔJô �5˜˜%�= %¨¨ -´°T¸7Ó1CÀTÓJ€DØŠa�ˆg‰€AØˆd‰€AØ’Q˜�WÑ€FØ�$‰K€Eô ˆ6�4˜  Q¨¨5°&Ô9Øˆa�˜  E¨5°%¸À$ÐFÐFó    c
                 ó¸	  — |j                  «       }|j                  «       }|j                  «       }|j                  «       }|	j                  «       }	t        j                  t        j                  |d«      t        j                  |d«      f«      }
d}|�t        j                  |«      nd}t        j                  |d«      }t        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        j                  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 ‚||k\  r|dkD  sJ ‚t        }t        |dz   «      D �]J  }t!        ||||||	«      \  }}}}}	}|t"        k(  r �n't%        |d| ||   z
  |	«      }| �| j&                  n| |
dd…d|…f<   t%        ||d…d|…f   t        j(                  ||d…|f   |df«      j&                  z
  |	«      j&                  |
dd…|d…f<   t+        |
|dd…|f    ||«      }t-        ||«       }||   t        j                  t        j.                  d|dd…|f   t%        ||
«      z   «      «      z
  }|dkD  r|dk  s n5t        |t1        d|z  |z  t2        «      «      }t5        |||«      |k(  s�ŒK n t        rU||k\  r|dkD  sJ ‚|z  z   dkD  s>|t"        k(  s5|dk\  r0t        j6                  ||«      dkD  rt        j                  |«      rJ ‚|S )z¥
    This function gets the penalty parameter CPEN so that PREREM = PREREF + CPEN * PREREC > 0.
    See the discussions around equation (9) of the COBYLA paper.
    r   r   Nr,   éþÿÿÿ)Úcopyr1   r2   r3   r   r<   Úisneginfr;   r=   r6   r5   rC   r4   r   r	   r?   r   r   r   rA   rB   r#   r   rD   r8   r   r   r:   )rL   rM   ri   rz   rj   ry   rm   rx   rk   rl   ra   Úitolrd   re   rg   ru   Úiterr‚   rƒ   r…   r†   s                        r’   r@   r@   2  s�  € ð �[‰[‹]€FØ�9‰9‹;€DØ�9‰9‹;€DØ
�(‰(‹*€CØ�9‰9‹;€Dô 	�‰”"—'‘'˜#˜q“/¤2§7¡7¨6°1Ó#5Ð6Ó7€AØ€Dð #Ð.ŒR�W‰W�TŒ]°A€FÜ—g‘g˜f aÓ(€OÜ�w‰w�s˜A‹€Hö Ø !Ò#Ð#Ð#Ø˜1Š}Ðˆ}Ø�aŠxˆˆxÜ�w‰w�v˜qÓ! _Ò4¼¿¹ÀÈÓ9KÈxÐZ[É|Ò9[Ð[Ð[Ü—H‘H˜VÓ$¤r§{¡{°6Ó':Ñ:×?Ñ?ÔAÐAÐAÜ�w‰w�t‹} ¨1¡Ò,Ü�D˜1œrŸx™x¨›~Ñ-´·±¸DÓ0AÑAÑAÔBð	Cð Cä�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�t˜QÓ 8Ò+´·±¸¸aÓ0@ÀHÒ0LÐLÐLÜ�{‰{˜4Ó ×$Ñ$Ô&Ð&Ð&Ü�Sš˜I˜X˜I˜Ñ&¨¨dÔ3Ð3Ð3Ø˜Š|  a¢Ð'Ð'ô €Dô" �h ‘lÓ#ó #ˆä.8¸¸vÀtÈTÐSVØ9=ó/?Ñ+ˆ��d˜C  tð Ô$Ò$Úô �D˜˜(�O d¨8¡nÑ4°dÓ;ˆØ"&Ð"2˜Ÿš¸ˆŠ!ˆWˆfˆWˆ*‰Ü ¨©°°(°Ð(:Ñ!;ÜŸ'™' &¨©°(Ð):Ñ";¸hÈ¸]ÓK×MÑMñ"NØPTóVßVWÑVWð 	
Š!ˆV‰Wˆ*‰ô �1�vša ˜kÑ*Ð*¨E°1Ó5ˆô ˜˜A“,�ˆØ�h‘¤"§&¡&¬¯©°1°fºQÀ¸[Ñ6IÌGÐTUÐWXËMÑ6YÓ)ZÓ"[Ñ[ˆð ˜’
˜v¨šzÙô �4œ˜R &™[¨6Ñ1´7Ó;Ó<ˆä�D˜$ Ó%¨Ô1ÙðG#õT Ø�tŠ|  q¢Ð(Ð(Ø˜˜v™Ñ%¨Ò)¨TÔ5FÒ-FØ˜1’¤§¡¨F°FÓ!;¸aÒ!?ÌÏÉÐTZÔH[ð	\ð \ð €Kr”   c                 ó  — t         rHt        j                  |«      dk\  sJ ‚t        j                  | d«      t        j                  |«      k(  sJ ‚t        j                  |  d¬«      }t        j                  |  d¬«      }t        |«      }t	        |«      }t        |d|z  k  «      rQ||k  rLt        j                  t        j                  |d«      |z
  |d|z  k  t        j                  ¬«      }||z
  |z  }nd}t         r|dk\  sJ ‚|S )zÀ
    This function calculates the ratio between the "typical change" of F and that of CONSTR.
    See equations (12)-(13) in Section 3 of the COBYLA paper for the definition of the ratio.
    r   r,   r0   r   )ÚwhereÚinitial)r   r1   r3   r8   rC   r;   r:   Úinf)ri   rm   ÚcminÚcmaxÚfminÚfmaxÚdenomÚrs           r’   r>   r>   ¦  sé   € õ Ü�w‰w�t‹} Ò!Ð!Ð!Ü�w‰w�v˜qÓ!¤R§W¡W¨T£]Ò2Ð2Ð2ô �6‰6�6�' Ô"€DÜ�6‰6�6�' Ô"€DÜˆt‹9€DÜˆt‹9€DÜ
ˆ4�#˜‘*ÑÔ $¨¢+Ü—‘”r—z‘z $¨Ó*¨TÑ1¸ÀÀdÁ
Ñ9JÔTV×TZÑTZÔ[ˆð �D‰[˜EÑ!‰àˆõ Ø�AŠvˆˆvà€Hr”   )6Ú__doc__Únumpyr1   Úcommon.checkbreakr   Úcommon.constsr   r   r   r   Úcommon.infosr	   r
   r   r   r   Úcommon.evaluater   Úcommon.historyr   Úcommon.linalgr   r   r   r   r   r   Úcommon.messager   r   r   Úcommon.ratior   Úcommon.redrhor   Úcommon.selectxr   r   Úupdater   r   r    Úgeometryr!   r"   Útrustregionr#   r$   Ú
initializer%   r&   r“   r@   r>   © r”   r’   ú<module>r¶      s`   ðñó Ý .ß @Ó @÷8õ 8å &Ý %ß M× Mß 1Ñ 1Ý !Ý "ß .ß 3Ñ 3ß )ß &ß )òQGòjqóh$r”   