
    (ph                     n    S r SSKrSSKrSSKJr  SSKJrJrJ	r	J
r
  \" SSS9r\" SSSS	9r " S
 S5      rg)z>
Unit tests for Krylov space trust-region subproblem solver.

    N)get_trlib_quadratic_subproblem)assert_assert_almost_equalassert_equalassert_array_almost_equalg:0yE>ư>)	tol_rel_i	tol_rel_bT)r	   r
   dispc                   d    \ rS rSrS rS rS rS r\R                  R                  S 5       rSrg)	TestKrylovQuadraticSubproblem   c                   ^^ [         R                  " / SQ/ SQ/ SQ/5      m[         R                  " / SQ5      mSn[        SS U4S jS	 U4S
 jS9nUR                  U5      u  p4[	        U[         R                  " / SQ5      5        [        US5        [        [         R                  R                  TR                  U5      UR                  U-  -   T-   5      S5        [        [         R                  R                  U5      U5        SnUR                  U5      u  p4[	        U[         R                  " / SQ5      5        [        US5        [        [         R                  R                  TR                  U5      UR                  U-  -   T-   5      S5        [        [         R                  R                  U5      U5        g )N      ?              @r   g       @r   r   r   g      @)g      @r   r   r   r   c                     gNr    xs    _/var/www/html/venv/lib/python3.13/site-packages/scipy/optimize/tests/test_trustregion_krylov.py<lambda>FTestKrylovQuadraticSubproblem.test_for_the_easy_case.<locals>.<lambda>            c                    > T$ Nr   r   gs    r   r   r   !       r   c                     g r!   r   r   s    r   r   r   "       $r   c                 &   > TR                  U5      $ r!   dotr   yHs     r   r   r   #       aeeAhr   r   funjachesshessp)      r   r   Tr         ?)gb5m1ݿr   gp돬ӳȿ)nparrayKrylovQPsolver   r   r   linalgnormr)   lamselftrust_radiussubprobphits_boundaryr,   r#   s        @@r   test_for_the_easy_case4TestKrylovQuadraticSubproblem.test_for_the_easy_case   sU    HHo%%' ( HH_%  Q** .!6	8
 #==6!!RXX.>%?@]D)		quuQx'++/9A=>	 	BIINN1-|<"==6!!78	:]D)		quuQx'++/9A=>	 	BIINN1-|<r   c                 P  ^^ [         R                  " / SQ/ SQ/ SQ/5      m[         R                  " / SQ5      mSn[        SS U4S jS U4S	 jS
9nUR                  U5      u  p4[	        U[         R                  " / SQ5      5        [        [         R                  R                  TR                  U5      UR                  U-  -   T-   5      S5        [        [         R                  R                  U5      U5        SnUR                  U5      u  p4[	        U[         R                  " / SQ5      5        [        [         R                  R                  TR                  U5      UR                  U-  -   T-   5      S5        [        [         R                  R                  U5      U5        g )Nr   r   r   r   r   c                     gr   r   r   s    r   r   FTestKrylovQuadraticSubproblem.test_for_the_hard_case.<locals>.<lambda>J   r   r   c                    > T$ r!   r   r"   s    r   r   rF   K   r$   r   c                     g r!   r   r   s    r   r   rF   L   r&   r   c                 &   > TR                  U5      $ r!   r(   r*   s     r   r   rF   M   r-   r   r.   )r   r3   r   r   r4   )r   g      r   )
r5   r6   r7   r8   r   r   r9   r:   r)   r;   r<   s        @@r   test_for_the_hard_case4TestKrylovQuadraticSubproblem.test_for_the_hard_case<   s>    HHo%%' ( HH_%  Q** .!6	8
 #==6!!RXX.>%?@		quuQx'++/9A=>	 	BIINN1-|<"==6!!RXX.>%?@		quuQx'++/9A=>	 	BIINN1-|<r   c                   ^^ [         R                  " / SQ/ SQ/ SQ/ SQ/ SQ/5      m[         R                  " / SQ5      mSn[        SS	 U4S
 jS U4S jS9nUR                  U5      u  p4[	        [         R
                  R                  TR                  U5      UR                  U-  -   T-   5      S5        [        U/ SQ5        [        US5        g )N)gno?獞u?,wn)?/K뚘G?)rM   g켮wO@٢yn*?r<8ٿ&Î?)rN   rQ   g6
@ĽCԿ8K?)rO   rR   rT   gc?>ڿ)rP   rS   rU   rV   g-Q?)g*<sA?gE?gM x?gz?g=޿皙?r   c                     gr   r   r   s    r   r   MTestKrylovQuadraticSubproblem.test_for_interior_convergence.<locals>.<lambda>o   r   r   c                    > T$ r!   r   r"   s    r   r   rY   p   r$   r   c                     g r!   r   r   s    r   r   rY   q   r&   r   c                 &   > TR                  U5      $ r!   r(   r*   s     r   r   rY   r   r-   r   r.   r   )g8b҄gO
L?gp4OF̿g qgo-7?F
r5   r6   r7   r8   r   r9   r:   r)   r;   r   r<   s        @@r   test_for_interior_convergence;TestKrylovQuadraticSubproblem.test_for_interior_convergencec   s    HHQSRUS	U V
 HHRS Q** .!6	8
 #==6 			quuQx'++/9A=>	 	"! &? 	@!-7r   c                   ^^ [         R                  " / SQ/ SQ/ SQ/ SQ/ SQ/5      m[         R                  " / SQ5      mSn[        SS	 U4S
 jS U4S jS9nUR                  U5      u  p4[	        [         R
                  R                  TR                  U5      UR                  U-  -   T-   5      S5        [	        [         R
                  R                  U5      U5        [        U/ SQ5        [        US5        g )N)gVaU?`A@5F?9)n@cѿ)ra   g{.<?~:]?)rb   re   g@33 5:I)rc   rf   rh   gйTFKտ)rd   rg   ri   rj   g&Rr   r   r   r   r   rW   r   c                     gr   r   r   s    r   r   KTestKrylovQuadraticSubproblem.test_for_very_close_to_zero.<locals>.<lambda>   r   r   c                    > T$ r!   r   r"   s    r   r   rm      r$   r   c                     g r!   r   r   s    r   r   rm      r&   r   c                 &   > TR                  U5      $ r!   r(   r*   s     r   r   rm      r-   r   r.   r   )giG7㰱?gl$WgZg-O|οgm/Tr]   r<   s        @@r   test_for_very_close_to_zero9TestKrylovQuadraticSubproblem.test_for_very_close_to_zero~   s    HHTTUUV	X Y
 HH'( Q** .!6	8
 #==6 			quuQx'++/9A=>	 	BIINN1-|<!! &3 	4 	"-6r   c                 *  ^^	 [         R                  " S5      * m[         R                  " / SQ5      m	Sn[        SS U	4S jS U4S jS	9nUR	                  U5      u  pEUR                  5       u  pg[        UR                  S
5      [        U5      5        g )N   rk   rW   r   c                     gr   r   r   s    r   r   9TestKrylovQuadraticSubproblem.test_disp.<locals>.<lambda>   s    ar   c                    > T$ r!   r   r"   s    r   r   rv      s    ar   c                     g r!   r   r   s    r   r   rv      s    tr   c                 &   > TR                  U5      $ r!   r(   r*   s     r   r   rv      s    1558r   r.   z  TR Solving trust region problem)	r5   eyer6   KrylovQP_dispr8   
readouterrr   
startswithrepr)
r=   capsysr>   r?   r@   rA   outerrr,   r#   s
           @@r   	test_disp'TestKrylovQuadraticSubproblem.test_disp   sy    VVAYJHH'(!$/$/%3&;	=
 #==6$$&ABDINr   r   N)__name__
__module____qualname____firstlineno__rB   rJ   r^   rq   pytestmarkthread_unsafer   __static_attributes__r   r   r   r   r      s8    (=T%=N867< [[O Or   r   )__doc__r   numpyr5   scipy.optimize._trlibr   numpy.testingr   r   r   r   r7   r{   r   r   r   r   <module>r      sN      BD D *DDI.48:YO YOr   