
    ^Mh                         d dl Z d dlZd dlmZ d dlmZmZ d dlmZ d Z	d Z
d Zd Zd	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd ZdS )    N)exp)assert_assert_equal)rootc                  6   d} d}t          t          t          ddd          t          t          t          ddd          t          t          t          dd	d	          t          t          t          d
d	d	          t          t
          t          ddd          t          t          t          ddd          t          t          t          ddd          t          t          t          ddd          t          t          t          ddd          t          t          t          ddd          g
}t          j        g dg dddg          D ]\  }|D ]Ċd         }fd}|f} d         |          z  }t          j        |          | z  z  |t          j                             |||                    z  z   }dt'          z  z            z  }	z  }
t          j        d          5  t+          |||t          d|d         dz   |
|	|          d !          }d d d            n# 1 swxY w Y   t-          |t          j                             ||j        |                    ||j        |j        |j        g	          }|j        s
J |            |j        d         dz   k    s
J |            |j        d"         k    s
J |            t          j                             ||j        |                    |k    s
J |            Ɛd S )#Ngh㈵>-C6?i     )Fx0nnitnfevi'     i     i  d      c         i        )      ?绽|=g    _Bcruzchengr   c                 4     d         | z  |          z  S )Nr
    )xr   problemxscaleyscales     c/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/scipy/optimize/tests/test__spectral.pyfuncztest_performance.<locals>.func0   s"    QZ ; ;;;    r   r   ignore)overr   r      )ftolfatolmaxfevsigma_0	sigma_epsline_searchDF-SANE)argsoptionsmethodr   )dictF_1x0_1F_2x0_2F_6x0_6F_7x0_7F_9x0_9F_10x0_10	itertoolsproductnpsqrtlinalgnormminerrstater   reprr   successr   r   )e_ae_rtable_1r-   r   r#   r/   r   r)   r,   r+   solerr_msgr   r    r!   s                @@@r"   test_performancerN   
   s    C
C 	stt333stu!!444sts444stt"555 	sts222strr333sts444sts444stt"555t11555#G* (1'8...0A( ( D D#  	D 	DGA< < < < < < <4Dq!!F*BGAJJ$v-binnTT"a[[6Q6Q0QQEF6M6&= A AAIVmG(+++ - -4$#'QeGFOVWDW0794?$A $A $A #,	- - -- - - - - - - - - - - - - - - gry~~dd35RSnn7U7USWch8 G ;'''''8wv2222G2227gen,,,g,,,9>>$$sua..11U:::G::::7	DD Ds   41H11H58H5c                  8   d } d}d}t          | ||d          }t          |j                   t          j                             | |                    }t          j                             | |j                            }t          |||z  k               d S )Nc                     | dz  dz
  dz   S )Nr   r'                  @r   )zs    r"   r#   ztest_complex.<locals>.funcM   s    !tax"}r$   rQ   r   r.   )tolr1   )r   r   rH   rA   rC   rD   r   )r#   r   r(   rL   f0fxs         r"   test_complexrV   L   s      	BD
tRT)
4
4
4CCK	R	!	!B	SU	$	$BB$r'Mr$   c                  (   d	d} d}t           j                            d           t          j        ||z                                ||          }|||z  t          j        dt          j        |          z             z  z   }t          t           j                            |          	                                dk               t          j        |          dz  } | ||d            | ||d            | | |d            | | |d           d S )
Nr   c           
           fd}t           j                                       }t           j                             ||                    dz  }t	          |t          |dd|          d          }t          |j                   t          t           j                             ||j                            |k               d S )Nc                 4                         |           z
  S N)dot)r   Abs    r"   r#   z=test_linear_definite.<locals>.check_solvability.<locals>.funcc   s    5588a<r$   g     @@r   isD  )r)   r(   r*   r-   r.   )r0   r1   )	rA   rC   solverD   r   r2   r   rH   r   )r\   r]   r-   r#   xpepsrL   s   ``     r"   check_solvabilityz/test_linear_definite.<locals>.check_solvabilityb   s    	  	  	  	  	  	 Y__Q""innTT"XX&&,!s5kRRR
 
 

 		ttCE{{++s233333r$   Z   i  r'   r   r   r   )r   )
rA   randomseedarangereshapediagr   rC   eigvalsrE   )ra   r   r\   r]   s       r"   test_linear_definiteri   [   s   4 4 4 4 	A INN4
	!A#q!$$A	AaC"'!bill*++++ABIa  $$&&*+++
	!sAaF###aG$$$ qb!V$$$qb!W%%%%%r$   c                     d } t           t          fD ]w}t          j        ddg          }t          j        ddg|          }t          | ||fd          }t          |j                   t          |j	        j
        |j
                   xd S )Nc                     | |z
  S rZ   r   )r   args     r"   fztest_shape.<locals>.f   s    3wr$   r   )dtyper.   )r/   r1   )floatcomplexrA   zerosonesr   r   rH   r   r   shape)rm   dtr   rl   rL   s        r"   
test_shaperu      s       g + +HaUOOgqe2&&&1asfY777SU[!'****+ +r$   c                     t          j        |g          }t          j        d|dz             }t          | d         dz
            dz
  |d<   |t          | dd          dz
            | dd          z
  z  |dd <   |S )Nr   r'   r   rA   rq   re   r   r   r   gis       r"   r3   r3      sx    
!A
	!QqSAqtax==1AaDs1QRR519~~!""%&AabbEHr$   c                 f    t          j        | g          }|                    | | dz
  z             |S Nr'   rA   emptyfillr   r   s     r"   r4   r4      s0    	1#BGGAqsGIr$   c                     t          j        |g          }t          j        d|dz             }t          | d                   dz
  |d<   d|z  t          | dd                    | d d         z   dz
  z  |dd <   |S )Nr   r'   r   g?rw   rx   s       r"   r5   r5      sx    
!A
	!QqSAqt99q=AaDE3qu::#2#&*+AabbEHr$   c                 f    t          j        | g          }|                    d| dz  z             |S )Nr'   r   r}   r   s     r"   r6   r6      s-    	1#BGGAadFOOOIr$   c                    t          |dz  d           t          j        |g          }d| d d d         z  d| dd d         dz  z  z   d| dd d         dz  z  z
  d| dd d         z  z   d	z
  |d d d<   d
| d d d         z  d| dd d         dz  z  z
  d| dd d         dz  z  z   d| dd d         z  z
  | dd d         z
  d| dd d         dz  z  z   dz   |dd d<   d| dd d         z  d| dd d         dz  z  z
  |dd d<   |S )N   r   g333333?g?r'   g@r   g333333#@g333333@gQ?g
ףp=
?gQ	@gHzG@g?gHzG@g      ?g      ?)r   rA   rq   )r   r   ry   s      r"   F_4r      s_   Q
!A 1SSqS6\C!ADqD'1*,,sQqt!tWaZ/??#!$Q$-ORUUAcccFa!f}ta1gqj004!ADqD'1*3DDtaPQPTSTPTg~U14a414a4!+,.23AaddGQqt!tWntAaddGQJ.AaddGHr$   c                 d    t          | dz  d           t          j        g d| dz  z            }|S )Nr   r   )r         ?r   r   rA   arrayr   s     r"   x0_4r      s7    Q	---1a4(	)	)BIr$   c                     d}t          j        d|dz             dz
  |z  }| dd|d|z  z  |d d d f         | z  |d d d f         |z   z                      d          z  z
  z  z
  S )Ng?r'   r   r   )axis)rA   re   sum)r   r   cmus       r"   r7   r7      s~    A
)Aqs

c
!1	$Bq!a1gAAAdFAAAAdFb!A F FA F N NNNOOOr$   c                 ,    t          j        | g          S rZ   rA   rr   r   s    r"   r8   r8          7A3<<r$   c                 <   t          |dz  d           d }t          j        |g          }d| dd d         dz  z  dz
  |d d d<   t          | d d d                    t          | dd d                    z   dz
  |dd d<    || dd d                   |dd d<   |S )Nr   r   c                     d| z  dz
  }d| dz  z  d| dz  z  z   d| z  z   dz
  dz  | d	k             || d	k    <   d| z  dz   | dk             || dk    <   |S )
Nr   r   ir   ix  i  i  i  r   r   )tvs     r"   phizF_7.<locals>.phi   sp    EAI1a4i#ad(*T!V3d:D@!b&I!b&	UQYQ'!q&	r$   g     @r'   r   gqh ?)r   rA   rq   r   )r   r   r   ry   s       r"   r9   r9      s    Q  
 	!A1QTT7A:!AcccF1SSqS6'llS!ADqD']]*V3AaddGc!ADqD'llAaddGHr$   c                 `    t          | dz  d           t          j        g d| dz  z            S )Nr   r   )gMbP?r   r'   r   r   s    r"   r:   r:      s3    Q8MMMQT*+++r$   c                 X   t          j        |g          }t          j        d|          }| d         dz  dz  | d         dz  dz  z   |d<   | dd         dz   dz  || dd         dz  z  dz  z   | dd          dz  dz  z   |dd<   | d         dz   dz  || d         dz  z  dz  z   |d<   |S )Nr   r   r   r'   r   )rA   rq   re   rx   s       r"   r;   r;      s    
!A
	!QAQ4719qtQwqy AaD2wzk!ma!B$
l1n,quaxz9AadGrUAXIaK!AbE1H*Q,&AbEHr$   c                 ,    t          j        | g          S rZ   r   r   s    r"   r<   r<      r   r$   c                 <    t          j        d| z             | |z  z
  S r|   )rA   log)r   r   s     r"   r=   r=      s    6!a%==1Q3r$   c                 ,    t          j        | g          S rZ   r   r   s    r"   r>   r>      r   r$   )r?   numpyrA   r   numpy.testingr   r   scipy.optimizer   rN   rV   ri   ru   r3   r4   r5   r6   r   r   r7   r8   r9   r:   r;   r<   r=   r>   r   r$   r"   <module>r      sy                 / / / / / / / /      ?D ?D ?DD  !& !& !&H
+ 
+ 
+     
    	 	 	  
P P P
    , , ,          r$   