
    9iO                        S r SSKJr  SSKrSSKJr  SSKJrJ	r	  SSK
Jr  SSKJrJr  SSKJr  SSKrSSKrSS	KJr  S
SKJr  \R.                  \R0                  \R2                  \R4                  \R6                  \R8                  \R:                  S.r\R.                  \R6                  \R8                  \R:                  S.rS r / SQ\ l!        0 \ l"        0 \ l#        0 \ l$        S r%/ SQ\%l!        \R2                  \R4                  S.\%l"        0 \%l#        0 \%l$        S r&/ SQ\&l!        0 \&l"        0 \&l#        0 \&l$        S r'/ SQ\'l!        0 \'l"        0 \'l#        0 \'l$        S r(SS/\(l!        \R2                  \R4                  \R0                  S.\(l"        S1\(l#        1 Sk\(l$        S r)/ SQ\)l!        \R4                  \R2                  \R0                  S.\)l"        S S1\)l#        S1\)l$        S! r*S"S#/\*l!        \R4                  \R2                  \R0                  S.\*l"        0 \*l#        0 \*l$         " S$ S%5      r+ " S& S'5      r, " S( S)5      r- " S* S+5      r. " S, S-5      r/g).z@Unit tests for nonlinear solvers
Author: Ondrej Certik
May 2007
    )assert_N)partial)_nonlinroot)	csr_array)diagdot)invminres   )pressure_network)andersondiagbroydenlinearmixingexcitingmixingbroyden1broyden2krylov)r   r   r   r   c                     [         R                  " U 5      R                  n [        / SQ5      nSnU* U -  U[	        U R                  U -  5      -  U -  -
  nU$ )N)      g      ?r         ?{Gz?)npasarrayTr   float)xdcfs       `/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/scipy/optimize/tests/test_nonlin.pyFr$   "   sN    


1A !AA	
QU1337^#a''AH    )r   r   r   r   r   c                     U $ N r   s    r#   F2r*   0       Hr%   )r   r   r            )r   r   c                     U $ r'   r(   r)   s    r#   F2_luckyr0   ;   r+   r%   )r   r   r   r   r   r   c                 ~    [         R                  " / SQ/ SQ/ SQ/5      n[         R                  " / SQ5      nX-  U-
  $ )N)r           )r   r2   r   )r   r   r2   )r   r         @)r   arrayr   Abs      r#   F3r9   E   s1    
+z:67A
A519r%   )r   r   r   c                     SnXS   -  U S   -  S-
  [         R                  " U S   * 5      [         R                  " U S   * 5      -   SSU-  -   -
  /$ )Ng     @r   r   )r   exp)r   r7   s     r#   	F4_powellr<   Q   sR    AdF1Q4K!ORVVQqTE]RVVQqTE]:a!A#gFGGr%   r2   )r   r   r   r   >   cgsgmrestfqmrr   bicgstabc                 H    [        U S[        R                  " / SQ5      5      $ )Nr,   )r   r   r   r   )r   r   r5   r)   s    r#   F5rC   a   s    Aq"((+;"<==r%   )       @r   r   r   )r   r   r   r>   c           	      ,   U u  p[         R                  " SS/SS//5      n[         R                  " US-   US-  S-
  -  S-   [         R                  " U[         R                  " U5      -  S	-
  5      /5      n[         R                  R                  X45      * $ )
Ng/$gffffff-@g+,?grD0?r   r-         r   )r   r5   sinr;   linalgsolve)r   x1x2J0vs        r#   F6rO   p   s    FB	FD>z*, 
-B
26b!eai(3.&&bffRj1,-/ 	0AIIOOB"""r%   g      gffffff?c                   ~   \ rS rSrSrSS jrSS jr\R                  R                  S 5       r
\R                  R                  S5      S 5       r\R                  R                  S5      \R                  R                  S/ S	Q5      S
 5       5       r\R                  R                  S5      S 5       rS rS rS rSrg)
TestNonlin   z
Check the Broyden methods for a few test problems.

broyden1, broyden2, and newton_krylov must succeed for
all functions. Some of the others don't -- tests in KNOWN_BAD are skipped.

c                 z   U[         S   :X  ae  S H_  nXAR                  ;   a  M  U" XR                  US USSS9n[        [        R
                  " U" U5      5      R                  5       U:  5        Ma     U" XR                  USSS9n[        [        R
                  " U" U5      5      R                  5       U:  5        g )Nr   r?   rA   r>   r   r@      r   )methodline_searchf_tolmaxiterverbose)rX   rY   rZ   )SOLVERSJAC_KSP_BADxinr   r   absolutemax)selfr"   funcrX   rV   r   s         r#   _check_nonlin_funcTestNonlin._check_nonlin_func   s    78$$I]]*EE&d$c1>AaD)--/%78 J EEQ?AaD!%%'%/0r%   c                    US:X  ap  S Hj  nXAR                   ;   a  M  [        XR                  UUSSSU0S.S9n[        [        R
                  " UR                  5      R                  5       U:  5        Ml     [        XR                  UUSSS.S9n[        [        R
                  " UR                  5      R                  5       U:  5        g )	Nr   rT   rU   r   rV   )ftolrY   dispjac_optionsrV   options)re   rY   rf   )ROOT_JAC_KSP_BADr   r]   r   r   r^   funr_   )r`   r"   rV   rX   
jac_methodress         r#   _check_rootTestNonlin._check_root   s    XM
!3!331eeF,1c,-4<j3I$KL CGG,002U:; N 1eeF$)c1EGCGG$((*U23r%   c                     g r'   r(   )r`   akws      r#   _check_func_failTestNonlin._check_func_fail   s    r%   zignore::DeprecationWarningc                 D   [         [        [        [        [        [
        [        4 Hw  n[        R                  5        H\  nX!R                  R                  5       ;   a+  U[        R                  5       ;   a  U R                  X5        MK  U R                  X5        M^     My     g r'   )r$   r*   r0   r9   r<   rC   rO   r[   values	KNOWN_BAD	MUST_WORKrs   rb   )r`   r"   ra   s      r#   test_problem_nonlinTestNonlin.test_problem_nonlin   so    R2y"b9A(;;--//y//11--a6''0 ) :r%   rV   )lgmresr?   rA   r>   r   r@   c           
         ^  ST l         U 4S jn[        R                  " [        [        R                  USSSUS9  [        T R                   5        g )NFc                 Z   > STl         [        R                  " U 5      R                  5       $ )NT)_tol_norm_usedr   r^   r_   )r   r`   s    r#   local_norm_func8TestNonlin.test_tol_norm_called.<locals>.local_norm_func   s"    "&D;;q>%%''r%   r   rU   r   )rV   rX   rY   rZ   tol_norm)r~   nonlinnewton_krylovr$   r]   r   )r`   rV   r   s   `  r#   test_tol_norm_calledTestNonlin.test_tol_norm_called   sF    
 $	( 	QfD%(!&5	7 	##$r%   c                     [         [        [        [        [        [
        [        4 HM  n[         H@  nX!R                  ;   a  U[        ;   a  U R                  X5        M/  U R                  X5        MB     MO     g r'   )r$   r*   r0   r9   r<   rC   rO   r[   rw   rx   rs   rn   )r`   r"   meths      r#   test_problem_rootTestNonlin.test_problem_root   sV    R2y"b9A;;&y(--a6  )   :r%   c                     S n[         R                  " [        R                  R                  5         [
        R                  " US/SS9  S S S 5        g ! , (       d  f       g = f)Nc                     SU -   $ )Ng     @@r(   r)   s    r#   wont_converge5TestNonlin.test_no_convergence.<locals>.wont_converge   s    7Nr%   r   r   )r]   rY   )pytestraisesscipyoptimizeNoConvergencer   r   )r`   r   s     r#   test_no_convergenceTestNonlin.test_no_convergence   s?    	 ]]5>>778  QCC 988s   A
A!c                 h   [         R                  " [        SS9   [        R                  " [
        [
        R                  SSS9  SSS5        [        R                  " [
        [
        R                  SSS S	9  S
 n[        R                  " [
        [
        R                  US9  g! , (       d  f       Ne= f)z
Test for ENH #21986, for behavior of `nonlin.newton_krylov`
Test the following scenarios:
1. Raise warning for invalid inner param
2. No warning for valid inner param
3. No warning for user-provided callable method
z'Please check inner method documentationmatchr   h㈵>)rV   
inner_atolNd   c                     g)N.r(   )_s    r#   <lambda>>TestNonlin.test_warnings_invalid_inner_param.<locals>.<lambda>   s    r%   )rV   inner_maxiterinner_callbackc                     [        X40 UD6$ )z2A dummy user-provided callable method for testing.r   )oprhskwargss      r#   'user_provided_callable_method_enh_21986]TestNonlin.test_warnings_invalid_inner_param.<locals>.user_provided_callable_method_enh_21986   s     ",V,,r%   )rV   )r   warnsUserWarningr   r   r$   r]   )r`   r   s     r#   !test_warnings_invalid_inner_param,TestNonlin.test_warnings_invalid_inner_param   s     \\+ IK  AEE(tLK 	Qhc-;	=	-
 	Q$K	MK Ks   *B##
B1c                     [         R                  " [        SS9   [        R                  " [
        [
        R                  SSS9  S S S 5        g ! , (       d  f       g = f)NzUnknown parameterr   r   r   )rV   invalid_param)r   r   
ValueErrorr   r   r$   r]   r`   s    r#   test_non_inner_prefix TestNonlin.test_non_inner_prefix   s=    ]]:!4   AEE($O	  s   *A
A)r~   N)r   )__name__
__module____qualname____firstlineno____doc__rb   rn   r   markxfailrs   filterwarningsry   parametrizer   r   r   r   r   __static_attributes__r(   r%   r#   rQ   rQ      s    14" [[  [[ <=1 >1 [[ <=[[X (; <%< >% [[ <=* >*DM8Pr%   rQ   c                      \ rS rSrSr\R                  " / SQ5      \R                  " / SQ5      \R                  " / SQ5      \R                  " / SQ5      \R                  " / SQ5      \R                  " / SQ5      \R                  " / S	Q5      \R                  " / S
Q5      /r\ V Vs/ s H
  oS-  S-
  PM     snn rSS jr	S r
S rS rS rS rSrgs  snn f )
TestSecanti  zDCheck that some Jacobian approximations satisfy the secant condition)      ?rD   r4         @      @)rD   r4   r   r   r   )r4   r   r   r   rD   )r   r   r   rD   r4   )      "@r   r   r   r4   )r3   r   r   r   r4   )r   r         @r   r   )r   rD   r   r   r   r   r   c           
      F   U" S0 UD6nUR                  U R                  S   U R                  S   S5        [        [	        U R                  SS U R                  SS 5      5       GH8  u  nu  pgUR                  Xg5        [        [        X%S-   5      5       H}  nU R                  XX-
  S-      U R                  XX-
     -
  n	U R                  XX-
  S-      U R                  XX-
     -
  n
[        [        R                  " XR                  U
5      5      5        M     XR:  d  M  U R                  XR-
  S-      U R                  XR-
     -
  n	U R                  XR-
  S-      U R                  XR-
     -
  n
[        [        R                  " XR                  U
5      5      (       + 5        GM;     g)zd
Check that the given Jacobian approximation satisfies secant
conditions for last `npoints` points.
r   Nr   r(   )setupxsfs	enumeratezipupdaterangeminr   r   allcloserJ   )r`   jac_clsnpointsrr   jacjr   r"   kdxdfs              r#   _check_secantTestSecant._check_secant  sL   
 mm		$''!*dggaj$/"3twwqr{DGGABK#@AIAvJJq3w!,-WWQSU^dggacl2WWQSU^dggacl2B		"67 . |WWQYq[)DGGAI,>>WWQYq[)DGGAI,>>BKKIIbM::; Br%   c                 B    U R                  [        R                  5        g r'   )r   r   BroydenFirstr   s    r#   test_broyden1TestSecant.test_broyden1#  s    6../r%   c                 B    U R                  [        R                  5        g r'   )r   r   BroydenSecondr   s    r#   test_broyden2TestSecant.test_broyden2&  s    6//0r%   c           
      J   [         R                  " SS9nUR                  U R                  S   U R                  S   S 5        [
        R                  " S5      S-  n[        [        U R                  SS  U R                  SS  5      5       H  u  nu  pEXPR                  U   -
  nX@R                  U   -
  nX&[        X'5      -
  S S 2S 4   US S S 24   -  [        Xw5      -  -  nUR                  XE5        [        [
        R                  " UR                  5       USSS	95        M     g )
N皙?alphar   r-   g      $r   绽|=vIh%<=rtolatol)r   r   r   r   r   r   identityr   r   r	   r   r   r   todense)r`   r   Blast_jr   r"   r   r   s           r#   test_broyden1_updateTestSecant.test_broyden1_update)  s    !!,		$''!*dggaj$/KKNf%'DGGABK(EFNFFQWWV_$BWWV_$Bs1z/1d7+bqk9CKGGAJJqBKKqu5IJ Gr%   c           
      \   [         R                  " SS9nUR                  U R                  S   U R                  S   S 5        [
        R                  " S5      S-  n[        [        U R                  SS  U R                  SS  5      5       H  u  nu  pEXPR                  U   -
  nX@R                  U   -
  nX'[        X&5      -
  S S 2S 4   US S S 24   -  [        Xf5      -  -  nUR                  XE5        [        [
        R                  " UR                  5       [        U5      SSS	95        M     g )
Nr   r   r   r-   gr   r   r   r   )r   r   r   r   r   r   r   r   r   r	   r   r   r   r   r
   )r`   r   Hr   r   r"   r   r   s           r#   test_broyden2_updateTestSecant.test_broyden2_update7  s    ""-		$''!*dggaj$/KKNd#'DGGABK(EFNFFQWWV_$BWWV_$Bs1z/1d7+bqk9CKGGAJJqBKKs1vENO Gr%   c                 D    U R                  [        R                  SSSS9  g )Nr   r   )Mw0r   )r   r   Andersonr   s    r#   test_andersonTestSecant.test_andersonE  s    
 	6??aAqAr%   r(   N)r   )r   r   r   r   r   r   r5   r   r   r   r   r   r   r   r   r   ).0r   s   00r#   r   r     s    N
(('
(
(('
(
(('
(
(('
(
(('
(
(('
(
(('
(
(('
(
+B 	BqQ$(B	B<*01KPBs 
 s   (Cr   c                   L    \ rS rSrSrSS jrS rS rS rS r	S r
S	 rS
 rSrg)
TestLineariM  zYSolve a linear equation;
some methods find the exact solution in a finite number of stepsc           
      ,  ^^	 [         R                  R                  S5        [         R                  R                  X"5      mU(       a%  TS[         R                  R                  X"5      -  -   m[         R                  R                  U5      m	U(       a%  T	S[         R                  R                  U5      -  -   m	UU	4S jn[        R
                  " U[         R                  " U5      XSS SS9n[        [         R                  " [        TU5      T	SS95        g )N{                 ?c                 "   > [        TU 5      T-
  $ r'   r	   r6   s    r#   ra   TestLinear._check.<locals>.func[  s    q!9q= r%   ư>r   rY   rX   rW   rZ   r   )
r   randomseedrandnr   nonlin_solvezerosr   r   r	   )
r`   r   NrY   complexrr   ra   solr7   r8   s
           @@r#   _checkTestLinear._checkQ  s    
		sIIOOA!Bryyq,,,AIIOOABryyq)))A	! !!$S(,$KC3K67r%   c                     U R                  [        R                  " SS9SSS5        U R                  [        R                  " SS9SSS5        g Nr   r      )   FT)r
  r   r   r   s    r#   r   TestLinear.test_broyden1b  s<    F''c2BEBF''c2BDAr%   c                     U R                  [        R                  " SS9SSS5        U R                  [        R                  " SS9SSS5        g r  )r
  r   r   r   s    r#   r   TestLinear.test_broyden2g  s<    F((s3RUCF((s3RTBr%   c                     U R                  [        R                  " SSS9SSS5        U R                  [        R                  " SSS9SSS5        g )N2   r   )r   r   r     FT)r
  r   r   r   s    r#   r   TestLinear.test_andersonl  s<    FOOb4b"eDFOOb4b"dCr%   c                     U R                  [        R                  SSSSS9  U R                  [        R                  SSSSS9  g )Nr  r   F
   )inner_mT)r
  r   KrylovJacobianr   s    r#   test_krylovTestLinear.test_krylovq  s:    F))2q%DF))2q$Cr%   c           
        ^^ UU4S jnU4S jn[         R                  " U[        R                  " TR                  S   5      USSS SS9n[        R
                  R                  TU-  TSS9  [         R                  " U[        R                  " TR                  S   5      TSSS SS9n[        R
                  R                  TU-  TSS9  g )Nc                 ,   > TR                  U 5      T-
  $ r'   r   r6   s    r#   ra   'TestLinear._check_autojac.<locals>.funcw  s    558a<r%   c                    > T$ r'   r(   )rN   r7   s    r#   r   &TestLinear._check_autojac.<locals>.jacz  s    Hr%   r   r   r   r   r  )r   r  r   r  shapetestingassert_allclose)r`   r7   r8   ra   r   r	  s    ``   r#   _check_autojacTestLinear._check_autojacv  s    	 	 !!$(<c1(,$K


""1s7AD"9!!$(<a(,$K


""1s7AD"9r%   c                     [        SS/SS//5      n[        R                  " SS/5      nU R                  X5        U R                  SU-  SU-  5        g Nr   r   r=   y      ?       @y       @       @)r   r   r5   r%  r`   r7   r8   s      r#   test_jac_sparseTestLinear.test_jac_sparse  sQ    1v1v&'HHaWA!VqL6Q,7r%   c                     [         R                  " SS/SS//5      n[         R                  " SS/5      nU R                  X5        U R                  SU-  SU-  5        g r(  )r   r5   r%  r)  s      r#   test_jac_ndarrayTestLinear.test_jac_ndarray  sU    HHq!fq!f%&HHaWA!VqL6Q,7r%   r(   N)F)r   r   r   r   r   r
  r   r   r   r  r%  r*  r-  r   r(   r%   r#   r   r   M  s4    H8"B
C
D
D
:88r%   r   c                       \ rS rSrSrSS jrSS jrS rS rS r	S	 r
S
 rS r\R                  R                  S 5       rSrg)TestJacobianDotSolvei  zH
Check that solve/dot methods in Jacobian approximations are consistent
Nc                 @    US-  S-
  [         R                  " X!5      -   $ )Nr   r   )r   r	   )r`   r   r7   s      r#   _funcTestJacobianDotSolve._func  s    !tax"&&,&&r%   c           	        ^^^ [         R                  R                  S5      mSnUU4S jnU4S jnU" XU5      nTR                  U5      n	U" S0 UD6n
U
R	                  XR                  X5      [        U R
                  US95        [        SU-  5       GHb  nU" U5      n[        U
S5      (       Ga`  [         R                  " U
5      n[        U
S5      (       a9  U
R                  U5      n[         R                  R                  X5      nU" XS	5        [        U
S
5      (       aR  U
R                  U5      n[         R                  R                  UR                  R                  5       U5      nU" XS5        [        U
S5      (       a1  U
R                  U5      n[         R                   " X5      nU" UUS5        [        U
S5      (       aJ  U
R#                  U5      n[         R                   " UR                  R                  5       U5      nU" UUS5        [        U
S5      (       aL  [        U
S5      (       a;  U
R                  U5      nU
R                  U
R                  U5      5      nU" UUS5        [        U
S5      (       aL  [        U
S
5      (       a;  U
R#                  U5      nU
R#                  U
R                  U5      5      nU" UUS5        U" U5      nU
R%                  UU R                  UU5      5        GMe     g )Nr   rF   c                  ^   > TR                   " U 6 nT(       a  USTR                   " U 6 -  -   nU$ )Nr   )rand)rq   qr  rngs     r#   r6  -TestJacobianDotSolve._check_dot.<locals>.rand  s.    !A388Q<'Hr%   c                    > [        X-
  5      R                  5       nT[        U5      R                  5       T-  -   nX4:  a  [        U SUS 35      eg )Nz: err g)absr_   AssertionError)rq   r8   msgr    r"   tols        r#   assert_close5TestJacobianDotSolve._check_dot.<locals>.assert_close  sP    AE
 Ac!fjjl3&&Au$uF1Q%%899 r%   )r7   r   	__array__rJ   zsolve vs arrayrsolvezrsolve vs arraymatveczdot vs arrayrmatveczrmatvec vs arrayzdot vs solvezrmatvec vs rsolver(   )r   r  RandomStater6  r   r2  r   r   hasattrr5   rJ   rI   rC  r   conjrD  r	   rE  r   )r`   r   r  r?  rr   r  r6  r@  r7   x0r   r   rN   JdGvGv2JvJv2r   r8  s     ``               @r#   
_check_dotTestJacobianDotSolve._check_dot  sF   ii##C(		: J XXa[mm		"jj'q)AB qsAQAsK((XXc]3((1B))//"0C *:;3))AB))//"$$))+q9C *;<3))AB&&-C S.93	**QB&&a0C S*<=sH%%'#w*?*?ZZ]ii

2/Rn5sI&&73+A+A[[^kk#**R.1R&9:QAJJq$**Q*+C r%   c                 |    U R                  [        R                  SS9  U R                  [        R                  SS9  g NF)r  T)rO  r   r   r   s    r#   r   "TestJacobianDotSolve.test_broyden1  .    ++U;++T:r%   c                 |    U R                  [        R                  SS9  U R                  [        R                  SS9  g rR  )rO  r   r   r   s    r#   r   "TestJacobianDotSolve.test_broyden2  s.    ,,e<,,d;r%   c                 |    U R                  [        R                  SS9  U R                  [        R                  SS9  g rR  )rO  r   r   r   s    r#   r   "TestJacobianDotSolve.test_anderson  s*    76r%   c                 |    U R                  [        R                  SS9  U R                  [        R                  SS9  g rR  )rO  r   DiagBroydenr   s    r#   test_diagbroyden%TestJacobianDotSolve.test_diagbroyden  s.    **E:**D9r%   c                 |    U R                  [        R                  SS9  U R                  [        R                  SS9  g rR  )rO  r   LinearMixingr   s    r#   test_linearmixing&TestJacobianDotSolve.test_linearmixing  rT  r%   c                 |    U R                  [        R                  SS9  U R                  [        R                  SS9  g rR  )rO  r   ExcitingMixingr   s    r#   test_excitingmixing(TestJacobianDotSolve.test_excitingmixing  s.    --u=--t<r%   c                     U R                  [        R                  SSS9  U R                  [        R                  SSS9  g )NFgMbP?)r  r?  T)rO  r   r  r   s    r#   r   TestJacobianDotSolve.test_krylov  s2    --u$G--tFr%   r(   r'   )Fr   )r   r   r   r   r   r2  rO  r   r   r   r[  r_  rc  r   r   thread_unsafer  r   r(   r%   r#   r0  r0    sP    ':,x;<7:;= [[G Gr%   r0  c                   `    \ rS rSrSrS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rSrg)TestNonlinOldTestsi  zTest case for a simple constrained entropy maximization problem
(the machine translation example of Berger et al in
Computational Linguistics, vol 22, num 1, pp 39--72, 1996.)
c                     [         R                  " [        [        R                  SSS9n[	        [         R
                  " U5      S:  5        [	        [         R
                  " [        U5      5      S:  5        g N   r   iterr   &.>)r   r   r$   r]   r   normr`   r   s     r#   r    TestNonlinOldTests.test_broyden1  I    OOAquu2Q7A%&AaD!D()r%   c                     [         R                  " [        [        R                  SSS9n[	        [         R
                  " U5      S:  5        [	        [         R
                  " [        U5      5      S:  5        g rk  )r   r   r$   r]   r   rp  rq  s     r#   r    TestNonlinOldTests.test_broyden2  rs  r%   c                     [         R                  " [        [        R                  SSSS9n[	        [         R
                  " U5      S:  5        g )Nrl  Q?r-   )rn  r   r   Q?)r   r   r$   r]   r   rp  rq  s     r#   r    TestNonlinOldTests.test_anderson  s1    OOAquu2TQ?A%&r%   c                     [         R                  " [        [        R                  SSS9n[	        [         R
                  " U5      S:  5        [	        [         R
                  " [        U5      5      S:  5        g )N<   r   rm  Hz>)r   r   r$   r]   r   rp  rq  s     r#   r_  $TestNonlinOldTests.test_linearmixing  sK    155r=A%&AaD!D()r%   c                     [         R                  " [        [        R                  SSS9n[	        [         R
                  " U5      S:  5        [	        [         R
                  " [        U5      5      S:  5        g )Nr  r   rm  r   )r   r   r$   r]   r   rp  rq  s     r#   test_exciting TestNonlinOldTests.test_exciting  sK    !!!QUU3?A%&AaD!D()r%   c                     [         R                  " [        [        R                  SSS9n[	        [         R
                  " U5      S:  5        [	        [         R
                  " [        U5      5      S:  5        g )N   r   rm  :0yE>)r   r   r$   r]   r   rp  rq  s     r#   r[  #TestNonlinOldTests.test_diagbroyden  sK    q!%%b:A%&AaD!D()r%   c                     [        [        [        R                  SSSS0S.S9n[        [        R
                  " UR                  5      S:  5        [        [        R
                  " UR                  5      S:  5        g )Nr   rl  r   r   nitrg   rh   ro  r   r$   r]   r   r   rp  r   rk   r`   rm   s     r#   test_root_broyden1%TestNonlinOldTests.test_root_broyden1  W    1aeeJ#%wlCECEE"T)*CGG$t+,r%   c                     [        [        [        R                  SSSS0S.S9n[        [        R
                  " UR                  5      S:  5        [        [        R
                  " UR                  5      S:  5        g )Nr   rl  r   r   r  rh   ro  r  r  s     r#   test_root_broyden2%TestNonlinOldTests.test_root_broyden2  r  r%   c           	          [        [        [        R                  SSSSS.S.S9n[        [        R
                  " UR                  5      S:  5        g )	Nr   rl  rw  r-   )r   r   r  rh   rx  )r   r$   r]   r   r   rp  r   r  s     r#   test_root_anderson%TestNonlinOldTests.test_root_anderson#  sD    1aeeJ#%59+BDE 	CEE"T)*r%   c                     [        [        [        R                  SSSS0S.S9n[        [        R
                  " UR                  5      S:  5        [        [        R
                  " UR                  5      S:  5        g )Nr   r{  r   r   r  rh   r|  r  r  s     r#   test_root_linearmixing)TestNonlinOldTests.test_root_linearmixing)  s[    1aeeN#%,3S>;< 	CEE"T)*CGG$t+,r%   c                     [        [        [        R                  SSSS0S.S9n[        [        R
                  " UR                  5      S:  5        [        [        R
                  " UR                  5      S:  5        g )Nr   r  r   r   r  rh   r   r  r  s     r#   test_root_excitingmixing+TestNonlinOldTests.test_root_excitingmixing0  s\    1aee$4#%,3S>;< 	CEE"T)*CGG$t+,r%   c                     [        [        [        R                  SSSS0S.S9n[        [        R
                  " UR                  5      S:  5        [        [        R
                  " UR                  5      S:  5        g )Nr   r  r   r   r  rh   r  r  r  s     r#   test_root_diagbroyden(TestNonlinOldTests.test_root_diagbroyden7  s[    1aeeM#%,3Q<9: 	CEE"T)*CGG$t+,r%   r(   N)r   r   r   r   r   r   r   r   r_  r  r[  r  r  r  r  r  r  r   r(   r%   r#   ri  ri    sC    
*
*
'*
*
*
--+---r%   ri  )0r   numpy.testingr   r   	functoolsr   scipy.optimizer   r   r   scipy.sparser   numpyr   r	   numpy.linalgr
   r   r   scipy.sparse.linalgr   test_minpackr   r   r   r   r   r   r   r   r[   rx   r$   r]   rw   r\   rj   r*   r0   r9   r<   rC   rO   rQ   r   r   r0  ri  r(   r%   r#   <module>r     s\   "   2 "     & * ,,!..#22))+  fooF4H4HJ	 	  
 & 3 3"("7"79  "    
 H
 R	'-':':)/)>)>&,&8&8:	  "
	 L	 > 
"("7"7 & 3 3%113 "j # "("7"7 & 3 3%113  xP xPvIB IBXB8 B8J_G _GDH- H-r%   