
    -i                         S SK r S SKrS SKrS SKJr  S SKJr  S SKJ	r	  S SK
Jr  S SKJrJr  S r\R                   R#                  S/ S	Q5      S
 5       rS rg)    N)fmin_ncg)ConvergenceWarning)Bunch)assert_allclose)_check_optimize_result
_newton_cgc                   ^^ [         R                  R                  U 5      nUR                  SS9m[         R                  " S5      nU4S jnU4S jmU4S jnUU4S jn[         R
                  " [         R                  " [        XSTUSS	9S
   5      S:*  5      (       d   e[        [        XSTUSS	9S
   [        X2TUS9SS9  g )N)
   r
   )sizer
   c                 N   > TR                  U 5      nSUR                  U5      -  $ Ng      ?)dot)xAxAs     T/var/www/html/venv/lib/python3.13/site-packages/sklearn/utils/tests/test_optimize.pyfunctest_newton_cg.<locals>.func   s#    UU1XbXXb\!!    c                 X   > TR                   R                  TR                  U 5      5      $ NTr   r   r   s    r   gradtest_newton_cg.<locals>.grad   s    sswwquuQx  r   c                    > UR                  TR                  R                  TR                  U R                  5       5      5      5      $ r   )r   r   all)r   pr   s     r   hesstest_newton_cg.<locals>.hess   s-    uuQSSWWQUU1557^,--r   c                     > T" U 5      U4S j4$ )Nc                 X   > TR                   R                  TR                  U 5      5      $ r   r   r   s    r   <lambda>3test_newton_cg.<locals>.grad_hess.<locals>.<lambda>   s    !##''!%%("3r    )r   r   r   s    r   	grad_hess!test_newton_cg.<locals>.grad_hess   s    Aw333r   g|=)tolr   gHz>)fx0fprimefhess_pgh㈵>)atol)
nprandomRandomStatenormalonesr   absr   r   r   )global_random_seedrngr+   r   r    r'   r   r   s         @@r   test_newton_cgr7      s     ))

 2
3C


!A	B"!.4
 66"&&IT25I!LMQUUVVVV9D"$7:4tT:r   verbose)r         c                   ^^ [         R                  " S5      m[         R                  " SS/[        S9m[	        UU4S jUU4S jUU4S j[         R
                  " TR                  S   5      US9  U R                  5       nUS:X  a  UR                  S	:X  d   eO/ S
QnU H  nXBR                  ;   a  M   e   US:  a  / SQnU H  nXBR                  ;   a  M   e   US:  Ga  [         R                  " SS/SS//5      S-  m[         R                  " SS/5      m[        R                  " [        5         [	        UU4S jUU4S jUU4S j[         R                  " SS/5      US9  SSS5        U R                  5       n/ SQnU H  nXBR                  ;   a  M   e   [         R                  " SS/SS//5      m[         R                  " SS/5      m[        R                  " [        5         [	        UU4S jUU4S jUU4S jTUSS9  SSS5        U R                  5       nS/nU H  nXBR                  ;   a  M   e   [         R                  " S5      m[         R                  " SS/5      m[        R                  " [        5         [	        UU4S jUU4S jUU4S j[         R                  " SS/5      USS9  SSS5        U R                  5       nS /nU H  nXBR                  ;   a  M   e   [         R                  " / S!Q5      m[         R                  " / S"Q5      m[        R                  " [        5         [	        UU4S# jUU4S$ jUU4S% j[         R                  " T5      USSS&9  SSS5        U R                  5       nS'/nU H  nXBR                  ;   a  M   e   gg! , (       d  f       GNC= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       Ns= f)(z0Test the std output of verbose newton_cg solver.r:   r9   )dtypec                     > TU -  T-
  U4S j4$ )Nc                    > TU -  $ r   r&   zr   s    r   r$   <test_newton_cg_verbosity.<locals>.<lambda>.<locals>.<lambda>2   s	    !a%r   r&   r   r   bs    r   r$   *test_newton_cg_verbosity.<locals>.<lambda>2   s    QUQY8r   c                 &   > SU -  T-  U -  TU -  -
  $ r   r&   rB   s    r   r$   rD   3   s    sQw{QQ.r   c                    > TU -  T-
  $ r   r&   rB   s    r   r$   rD   4   s    q1uqyr   r   )r'   r   r   r+   r8    )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                     > TU -  T-
  U4S j4$ )Nc                    > TU -  $ r   r&   r?   s    r   r$   rA   Z   	    !a%r   r&   rB   s    r   r$   rD   Z       QUQY$@r   c                 &   > SU -  T-  U -  TU -  -
  $ r   r&   rB   s    r   r$   rD   [       sQw{QQ6r   c                    > TU -  T-
  $ r   r&   rB   s    r   r$   rD   \       q1uqyr          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                     > TU -  T-
  U4S j4$ )Nc                    > TU -  $ r   r&   r?   s    r   r$   rA   p   rL   r   r&   rB   s    r   r$   rD   p   rM   r   c                 &   > SU -  T-  U -  TU -  -
  $ r   r&   rB   s    r   r$   rD   q   rO   r   c                    > TU -  T-
  $ r   r&   rB   s    r   r$   rD   r   rQ   r   )r'   r   r   r+   r8   maxiterztiny_|p| = eps * ||p||^2c                     > TU -  T-
  U4S j4$ )Nc                    > T* U -  $ r   r&   r?   s    r   r$   rA      s    1"q&r   r&   rB   s    r   r$   rD      s    QUQY0@$Ar   c                 &   > SU -  T-  U -  TU -  -
  $ r   r&   rB   s    r   r$   rD      rO   r   c                    > TU -  T-
  $ r   r&   rB   s    r   r$   rD      rQ   r      z9Inner CG solver iteration 0 fell back to steepest descent)gMbP?r9   g     @@)rR   r9   rI   c                     > TU -  T-
  U4S j4$ )Nc                    > TU -  $ r   r&   r?   s    r   r$   rA      rL   r   r&   rB   s    r   r$   rD      rM   r   c                 &   > SU -  T-  U -  TU -  -
  $ r   r&   rB   s    r   r$   rD      rO   r   c                    > TU -  T-
  $ r   r&   rB   s    r   r$   rD      rQ   r   )r'   r   r   r+   r8   rW   maxinnerz*Inner CG solver stopped reaching maxiter=1)r/   eyearrayfloatr   zerosshape
readouterroutpytestwarnsRuntimeWarningr   diag	ones_like)capsysr8   capturedmsgmr   rC   s        @@r   test_newton_cg_verbosityrr   +   sB    	q	A
!Qu%A8. 88AGGAJ   "H!|||r!!!
 A$$$  !|
 A$$$  !| HHsAhA'(4/HHc3Z  \\.)@6(88T1I& * $$&
 A$$$ 
 HHsAhI/0HHdAY\\,-@6( . $$&&
 A$$$  FF1IHHdAY\\.)A6(88S#J' * $$&G
 A$$$  GGN#HH^$\\,-@6(<<? . $$&8
 A$$$ g  *), .-* *)& .-s0   43N#+N54O93O#
N25
O
O
O'c                     [        5       n SU l        SU l        SU l        [        R
                  " 5          [        R                  " S5        [        SU 5        S S S 5        SU l        SU l        [        R                  " [        5       n[        SU 5        S S S 5        [        W5      S:X  d   eUS   R                  R                  S   nSU;   d   eU R                  U;   d   eSU;  d   eS	U;   d   e[        R                  " [        5       n[        SU SS
9  S S S 5        [        U5      S:X  d   eUS   R                  R                  S   nSU;   d   eU R                  U;   d   eSU;   d   eS	U;   d   eSU l        SU l        SU l        [        R                  " [        5       n[        SU SS
9  S S S 5        [        U5      S:X  d   eUS   R                  R                  S   nSU;   d   eU R                  U;   d   eSU;  d   eS	U;   d   eg ! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN%= f! , (       d  f       N= f)Nr9   r   OKerrorlbfgsz+STOP: TOTAL NO. OF ITERATIONS REACHED LIMITz-lbfgs failed to converge after 1 iteration(s)z!Increase the number of iterationszscale the data)max_iterr:   ABNORMALr
   z-lbfgs failed to converge after 2 iteration(s))r   nitstatusmessagewarningscatch_warningssimplefilterr   ri   rj   r   lenargs)resultrecordwarn_msgs      r   test_check_optimizer      s3   WF FJFMFN		 	 	"g&w/ 
# FMBFN	(	)Vw/ 
* v;!ay  %%a(H:hFFF>>X%%%.h>>>x''' 
(	)Vw; 
* v;!ay  %%a(H:hFFF>>X%%%.(:::x''' FJFMFN	(	)Vw< 
* v;!ay  %%a(H:hFFF>>X%%%.h>>>x'''W 
#	" 
*	) 
*	) 
*	)s/   #HH&H8(I

H#&
H58
I

I)r|   numpyr/   ri   scipy.optimizer   sklearn.exceptionsr   sklearn.utils._bunchr   sklearn.utils._testingr   sklearn.utils.optimizer   r   r7   markparametrizerr   r   r&   r   r   <module>r      sO       # 1 & 2 E< I.y% /y%x4(r   