§
    §éUgŠ  ã                   ó˜   — d dl Zd dlZd dlmZ d dlmZ d dlmZ d dl	m
Z
 d„ Zej                             dg d¢¦  «        d	„ ¦   «         ZdS )
é    N)Úfmin_ncg)ÚConvergenceWarning)Úassert_array_almost_equal)Ú
_newton_cgc            	      ó8  ‡‡— t           j                             d¦  «        } |                      d¬¦  «        Št          j        d¦  «        }ˆfd„}ˆfd„Šˆfd„}ˆˆfd„}t          t          ||‰|d	¬
¦  «        d         t          ||‰|¬¦  «        ¦  «         d S )Nr   )é
   r   )Úsizer   c                 ó^   •— ‰                      | ¦  «        }d|                      |¦  «        z  S ©Ng      à?)Údot)ÚxÚAxÚAs     €ú`/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/sklearn/utils/tests/test_optimize.pyÚfuncztest_newton_cg.<locals>.func   s'   ø€ Ø�UŠU�1‰XŒXˆØ�b—X’X˜b‘\”\Ñ!Ð!ó    c                 ó^   •— ‰j                              ‰                     | ¦  «        ¦  «        S ©N©ÚTr   ©r   r   s    €r   Úgradztest_newton_cg.<locals>.grad   s!   ø€ ØŒs�wŠw�q—u’u˜Q‘x”xÑ Ô Ð r   c                 ó¨   •— |                      ‰j                              ‰                      |                      ¦   «         ¦  «        ¦  «        ¦  «        S r   )r   r   Úall)r   Úpr   s     €r   Úhessztest_newton_cg.<locals>.hess   s5   ø€ Ø�uŠu�Q”S—W’W˜QŸUšU 1§5¢5¡7¤7™^œ^Ñ,Ô,Ñ-Ô-Ð-r   c                 ó$   •—  ‰| ¦  «        ˆfd„fS )Nc                 ó^   •— ‰j                              ‰                     | ¦  «        ¦  «        S r   r   r   s    €r   ú<lambda>z3test_newton_cg.<locals>.grad_hess.<locals>.<lambda>   s   ø€  !¤#§'¢'¨!¯%ª%°©(¬(Ñ"3Ô"3€ r   © )r   r   r   s    €€r   Ú	grad_hessz!test_newton_cg.<locals>.grad_hess   s    ø€ Øˆt�A‰wŒwÐ3Ð3Ð3Ð3Ð3Ð3r   g»½×Ùß|Û=)Útol)ÚfÚx0ÚfprimeÚfhess_p)ÚnpÚrandomÚRandomStateÚnormalÚonesr   r   r   )Úrngr$   r   r   r!   r   r   s        @@r   Útest_newton_cgr-   
   sñ   øø€ õ Œ)×
Ò
 Ñ
"Ô
"€CØ�
Š
˜ˆ
Ñ!Ô!€AÝ	Œ�‰Œ€Bð"ð "ð "ð "ð "ð!ð !ð !ð !ð !ð.ð .ð .ð .ð .ð4ð 4ð 4ð 4ð 4ð 4õ Ý�9˜d D¨"°%Ð8Ñ8Ô8¸Ô;Ý�4˜B t°TÐ:Ñ:Ô:ñô ð ð ð r   Úverbose)r   é   é   c           
      óT  ‡‡— t          j        d¦  «        Št          j        ddgt          ¬¦  «        Št	          ˆˆfd„ˆˆfd„ˆˆfd„t          j        ‰j        d         ¦  «        |¬¦  «         |                      ¦   «         }|dk    r|j        d	k    sJ ‚ng d
¢}|D ]}||j        v sJ ‚Œ|dk    rg d¢}|D ]}||j        v sJ ‚Œ|dk    �rØt          j        ddgddgg¦  «        dz  Št          j        ddg¦  «        Št          j
        t          ¦  «        5  t	          ˆˆfd„ˆˆfd„ˆˆfd„t          j        ddg¦  «        |¬¦  «         ddd¦  «         n# 1 swxY w Y   |                      ¦   «         }g d¢}|D ]}||j        v sJ ‚Œt          j        ddgddgg¦  «        Št          j        ddg¦  «        Št          j
        t          ¦  «        5  t	          ˆˆfd„ˆˆfd„ˆˆfd„‰|d¬¦  «         ddd¦  «         n# 1 swxY w Y   |                      ¦   «         }dg}|D ]}||j        v sJ ‚Œt          j        d¦  «        Št          j        ddg¦  «        Št          j
        t          ¦  «        5  t	          ˆˆfd„ˆˆfd„ˆˆfd„t          j        ddg¦  «        |d¬¦  «         ddd¦  «         n# 1 swxY w Y   |                      ¦   «         }d g}|D ]}||j        v sJ ‚Œt          j        g d!¢¦  «        Št          j        g d"¢¦  «        Št          j
        t          ¦  «        5  t	          ˆˆfd#„ˆˆfd$„ˆˆfd%„t          j        ‰¦  «        |dd¬&¦  «         ddd¦  «         n# 1 swxY w Y   |                      ¦   «         }d'g}|D ]}||j        v sJ ‚ŒdS dS )(z0Test the std output of verbose newton_cg solver.r0   r/   )Údtypec                 ó   •— ‰| z  ‰z
  ˆfd„fS )Nc                 ó   •— ‰| z  S r   r    ©Úzr   s    €r   r   z<test_newton_cg_verbosity.<locals>.<lambda>.<locals>.<lambda>+   s   ø€ °!°a±%€ r   r    ©r   r   Úbs    €€r   r   z*test_newton_cg_verbosity.<locals>.<lambda>+   s   ø€ ˜Q ™U Q™Y¨¨¨¨Ð8€ r   c                 ó&   •— d| z  ‰z  | z  ‰| z  z
  S r   r    r7   s    €€r   r   z*test_newton_cg_verbosity.<locals>.<lambda>,   s   ø€ �s˜Q‘w ‘{ Q‘¨¨Q©Ñ.€ r   c                 ó   •— ‰| z  ‰z
  S r   r    r7   s    €€r   r   z*test_newton_cg_verbosity.<locals>.<lambda>-   s   ø€ �q˜1‘u˜q‘y€ r   r   )r!   r   r   r$   r.   Ú )zNewton-CG iter = 1zCheck Convergencezmax |gradient|zSolver did converge at loss = )z(Inner CG solver iteration 1 stopped withzsum(|residuals|) <= tolzLine Searchztry line search wolfe1z!wolfe1 line search was successfulg      ð?é   gêŒ 9Y>)Fç       @c                 ó   •— ‰| z  ‰z
  ˆfd„fS )Nc                 ó   •— ‰| z  S r   r    r5   s    €r   r   z<test_newton_cg_verbosity.<locals>.<lambda>.<locals>.<lambda>S   ó   ø€ ¸!¸a¹%€ r   r    r7   s    €€r   r   z*test_newton_cg_verbosity.<locals>.<lambda>S   ó   ø€  Q¨¡U¨Q¡Y°°°°Ð$@€ r   c                 ó&   •— d| z  ‰z  | z  ‰| z  z
  S r   r    r7   s    €€r   r   z*test_newton_cg_verbosity.<locals>.<lambda>T   ó   ø€ ˜s Q™w¨™{¨Q™°°Q±Ñ6€ r   c                 ó   •— ‰| z  ‰z
  S r   r    r7   s    €€r   r   z*test_newton_cg_verbosity.<locals>.<lambda>U   ó   ø€ ˜q 1™u q™y€ r   ç       ÀN)z%wolfe1 line search was not successfulz-check loss |improvement| <= eps * |loss_old|:z,check sum(|gradient|) < sum(|gradient_old|):z#last resort: try line search wolfe2g      @c                 ó   •— ‰| z  ‰z
  ˆfd„fS )Nc                 ó   •— ‰| z  S r   r    r5   s    €r   r   z<test_newton_cg_verbosity.<locals>.<lambda>.<locals>.<lambda>i   r@   r   r    r7   s    €€r   r   z*test_newton_cg_verbosity.<locals>.<lambda>i   rA   r   c                 ó&   •— d| z  ‰z  | z  ‰| z  z
  S r   r    r7   s    €€r   r   z*test_newton_cg_verbosity.<locals>.<lambda>j   rC   r   c                 ó   •— ‰| z  ‰z
  S r   r    r7   s    €€r   r   z*test_newton_cg_verbosity.<locals>.<lambda>k   rE   r   )r!   r   r   r$   r.   Úmaxiterztiny_|p| = eps * ||p||^2c                 ó   •— ‰| z  ‰z
  ˆfd„fS )Nc                 ó   •— ‰ | z  S r   r    r5   s    €r   r   z<test_newton_cg_verbosity.<locals>.<lambda>.<locals>.<lambda>   s   ø€ ¸1¸"¸q¹&€ r   r    r7   s    €€r   r   z*test_newton_cg_verbosity.<locals>.<lambda>   s   ø€  Q¨¡U¨Q¡YÐ0@Ð0@Ð0@Ð0@Ð$A€ r   c                 ó&   •— d| z  ‰z  | z  ‰| z  z
  S r   r    r7   s    €€r   r   z*test_newton_cg_verbosity.<locals>.<lambda>€   rC   r   c                 ó   •— ‰| z  ‰z
  S r   r    r7   s    €€r   r   z*test_newton_cg_verbosity.<locals>.<lambda>�   rE   r   é   z9Inner CG solver iteration 0 fell back to steepest descent)gü©ñÒMbP?r/   g     @�@)rF   r/   r=   c                 ó   •— ‰| z  ‰z
  ˆfd„fS )Nc                 ó   •— ‰| z  S r   r    r5   s    €r   r   z<test_newton_cg_verbosity.<locals>.<lambda>.<locals>.<lambda>‘   r@   r   r    r7   s    €€r   r   z*test_newton_cg_verbosity.<locals>.<lambda>‘   rA   r   c                 ó&   •— d| z  ‰z  | z  ‰| z  z
  S r   r    r7   s    €€r   r   z*test_newton_cg_verbosity.<locals>.<lambda>’   rC   r   c                 ó   •— ‰| z  ‰z
  S r   r    r7   s    €€r   r   z*test_newton_cg_verbosity.<locals>.<lambda>“   rE   r   )r!   r   r   r$   r.   rK   Úmaxinnerz*Inner CG solver stopped reaching maxiter=1)r'   ÚeyeÚarrayÚfloatr   ÚzerosÚshapeÚ
readouterrÚoutÚpytestÚwarnsÚRuntimeWarningr   ÚdiagÚ	ones_like)Úcapsysr.   ÚcapturedÚmsgÚmr   r8   s        @@r   Útest_newton_cg_verbosityrf   $   s  øø€ õ 	Œˆq‰	Œ	€AÝ
Œ�!�Q��uÐ%Ñ%Ô%€AåØ8Ð8Ð8Ð8Ð8Ø.Ð.Ð.Ð.Ð.Ø Ð Ð Ð Ð ÝŒ8�A”G˜A”JÑÔØðñ ô ð ð × Ò Ñ"Ô"€Hà�!‚|€|ØŒ|˜rÒ!Ð!Ð!Ð!Ð!ð
ð 
ð 
ˆð ð 	%ð 	%ˆAØ˜œÐ$Ð$Ð$Ð$Ð$à�!‚|€|ð
ð 
ð 
ˆð ð 	%ð 	%ˆAØ˜œÐ$Ð$Ð$Ð$Ð$à�!‚|�|õ ŒH�s˜A�h  A Ð'Ñ(Ô(¨4Ñ/ˆÝŒH�c˜3�ZÑ Ô ˆõ Œ\�.Ñ)Ô)ð 	ð 	ÝØ@Ð@Ð@Ð@Ð@Ø6Ð6Ð6Ð6Ð6Ø(Ð(Ð(Ð(Ð(Ý”8˜T 1˜IÑ&Ô&Øðñ ô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð ×$Ò$Ñ&Ô&ˆð
ð 
ð 
ˆð ð 	%ð 	%ˆAØ˜œÐ$Ð$Ð$Ð$Ð$õ ŒH�s˜A�h  I Ð/Ñ0Ô0ˆÝŒH�d˜A�YÑÔˆÝŒ\Õ,Ñ-Ô-ð 	ð 	ÝØ@Ð@Ð@Ð@Ð@Ø6Ð6Ð6Ð6Ð6Ø(Ð(Ð(Ð(Ð(ØØØðñ ô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð ×$Ò$Ñ&Ô&ˆà&ð
ˆð ð 	%ð 	%ˆAØ˜œÐ$Ð$Ð$Ð$Ð$õ
 ŒF�1‰IŒIˆÝŒH�d˜A�YÑÔˆÝŒ\�.Ñ)Ô)ð 		ð 		ÝàAÐAÐAÐAÐAØ6Ð6Ð6Ð6Ð6Ø(Ð(Ð(Ð(Ð(Ý”8˜S #˜JÑ'Ô'ØØðñ ô ð ð		ð 		ð 		ñ 		ô 		ð 		ð 		ð 		ð 		ð 		ð 		øøøð 		ð 		ð 		ð 		ð ×$Ò$Ñ&Ô&ˆàGð
ˆð ð 	%ð 	%ˆAØ˜œÐ$Ð$Ð$Ð$Ð$åŒG�N�N�NÑ#Ô#ˆÝŒH�^�^�^Ñ$Ô$ˆÝŒ\Õ,Ñ-Ô-ð 		ð 		ÝØ@Ð@Ð@Ð@Ð@Ø6Ð6Ð6Ð6Ð6Ø(Ð(Ð(Ð(Ð(Ý”< ‘?”?ØØØðñ ô ð ð		ð 		ð 		ñ 		ô 		ð 		ð 		ð 		ð 		ð 		ð 		øøøð 		ð 		ð 		ð 		ð ×$Ò$Ñ&Ô&ˆà8ð
ˆð ð 	%ð 	%ˆAØ˜œÐ$Ð$Ð$Ð$Ð$ði €|ðf	%ð 	%sH   Ä5EÅEÅ"EÇ"HÈH	ÈH	É:6J<Ê<K ËK Ì35M4Í4M8Í;M8)Únumpyr'   r]   Úscipy.optimizer   Úsklearn.exceptionsr   Úsklearn.utils._testingr   Úsklearn.utils.optimizer   r-   ÚmarkÚparametrizerf   r    r   r   ú<module>rn      s²   ðØ Ð Ð Ð Ø €€€Ø #Ð #Ð #Ð #Ð #Ð #à 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø <Ð <Ð <Ð <Ð <Ð <Ø -Ð -Ð -Ð -Ð -Ð -ðð ð ð4 „×Ò˜ I I IÑ.Ô.ðy%ð y%ñ /Ô.ðy%ð y%ð y%r   