
    tKg                         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y)    N)exp)assert_assert_equal)rootc                     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"                  j%                   |||            z  z   }dt'        z  z        z  }	z  }
t        j(                  d      5  t+        |||t        d|d   dz   |
|	|      d !      }d d d        t-        |t        j"                  j%                   |j.                  |            ||j0                  |j2                  |j4                  g	      }|j0                  sJ |       |j4                  d   dz   k  sJ |       |j2                  d"   k  sJ |       t        j"                  j%                   ||j.                  |            |k  rJ |         y # 1 sw Y   xY w)#Ngh㈵>-C6?i     )Fx0nnitnfevi'     i     i  d      c         i        )      ?绽|=g    _Bcruzchengr   c                 (     d   | z  |      z  S )Nr
    )xr   problemxscaleyscales     g/home/alanp/www/video.onchill/myenv/lib/python3.12/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stu!!4sts4stt"5 	sts2strr3sts4sts4stt"5t115#G* (1'8'8.0A(# GA<4Dq!F*BGGAJ$v-biinnT"a[6Q0QQEF6M6&= AAIVmG(+4$#'QeGFOVWDW0794?$A #,	- , gryy~~d355RSn7USWWchh8G ;;'';88wv22;G;277gen,5g5,99>>$suua.1U:CGC:7 ( ,+s   -&KKc                  $   d } d}d}t        | ||d      }t        |j                         t        j                  j                   | |            }t        j                  j                   | |j                              }t        |||z  k         y )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   sm    	BD
tRT)
4CCKK	R	!B	SUU	$BB$r'Mr$   c                     d	d} d}t         j                  j                  d       t        j                  ||z        j	                  ||      }|||z  t        j
                  dt        j                  |      z         z  z   }t        t         j                  j                  |      j                         dkD         t        j                  |      dz  } | ||d        | ||d        | | |d        | | |d       y )
Nr   c           
      |     fd}t         j                  j                         }t         j                  j                   ||            dz  }t	        |t        |dd|      d      }t        |j                         t        t         j                  j                   ||j                              |k         y )Nc                 ,    j                  |       z
  S N)dot)r   Abs    r"   r#   z=test_linear_definite.<locals>.check_solvability.<locals>.funcc   s    558a<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    	 YY__Q"iinnT"X&,!s5kR

 			tCEE{+s2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 	A IINN4
		!A#q!$A	AaC"''!biil*+++ABIIa $$&*+
		!sAaF#aG$ qb!V$qb!W%r$   c                  *   d } t         t        fD ]  }t        j                  ddg      }t        j                  ddg|      }t        | ||fd      }t        |j                         t        |j                  j                  |j                          y )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      sq     gHHaUOggqe2&1asfY7SUU[[!''* 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      sm    
!A
		!QqSAqtax=1AaDs1QR519~!"%&AabEHr$   c                 `    t        j                  | g      }|j                  | | dz
  z         |S Nr'   rA   emptyfillr   r   s     r"   r4   r4      s*    	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      sm    
!A
		!QqSAqt9q=AaDE3qu:#2&*+AabEHr$   c                 `    t        j                  | g      }|j                  d| dz  z         |S )Nr'   r   r}   r   s     r"   r6   r6      s)    	1#BGGAadFO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      sS   Q
!A 1SqS6\C!ADqD'1*,,sQqt!tWaZ/??#!$Q$-ORUUAc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                 ^    t        | dz  d       t        j                  g d| dz  z        }|S )Nr   r   )r         ?r   r   rA   arrayr   s     r"   x0_4r      s,    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  j                  d      z  z
  z  z
  S )Ng?r'   r   r   )axis)rA   re   sum)r   r   cmus       r"   r7   r7      sr    A
))Aqs
c
!1	$Bq!a1gAdFAAdFb!A F FA F NNNOOOr$   c                 .    t        j                  | g      S rZ   rA   rr   r   s    r"   r8   r8          77A3<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	kD     || d	kD  <   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:!AccF1SqS6'lS!ADqD']*V3AaddG!ADqD'lAaddGHr$   c                 Z    t        | dz  d       t        j                  g d| dz  z        S )Nr   r   )gMbP?r   r'   r   r   s    r"   r:   r:      s(    Q88MQT*++r$   c                 "   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2wzk!ma!B
l1n,quaxz9AaG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    66!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      sr       / ?DD!&H
+ 
	
P
,r$   