o
    gw                     @   s   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d Z	dd Z
d	d
 Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd  Zd!d" Zd#d$ Zd%d& Zd'd( ZdS ))    N)exp)assert_assert_equal)rootc                     s0  d} d}t ttddddt ttddddt ttdd	d	dt ttd
d	d	dt ttddddt ttddddt ttddddt t	t
ddddt t	t
ddddt ttddddg
}tg dg dddgD ]\}|D ]  d } fdd}|f} d | }t||   |tj|||  }dt   }	 }
tjdd t|||t d| d d |
|	|d d!d"}W d    n1 sw   Y  t| tj||j|||j|j|jg	}t|j| t|j d d k| t|j d# k| ttj||j||k| qjqcd S )$Ngh㈵>-C6?i     )Fx0nnitnfevi'     i     i  d      c         i        )      ?绽|=g    _Bcruzchengr
   c                    s    d |  | S )Nr    xr
   problemxscaleyscaler   a/home/ubuntu/cloudmapper/venv/lib/python3.10/site-packages/scipy/optimize/tests/test__spectral.py<lambda>)   s    z"test_performance.<locals>.<lambda>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   r   )e_ae_rtable_1r+   r
   funcr-   r	   r'   r*   r)   solerr_msgr   r   r!   test_performance
   sT   	( rM   c                  C   s`   dd } d}d}t | ||dd}t|j tj| |}tj| |j}t||| k d S )Nc                 S   s   | d d d S )Nr   r%                  @r   )zr   r   r!   rJ   B   s   ztest_complex.<locals>.funcrN   r   r,   )tolr/   )r   r   rF   r?   rA   rB   r   )rJ   r	   r&   rK   f0fxr   r   r!   test_complexA   s   
rS   c                  C   s   d
dd} d}t jd t || ||}||| t dt |   }tt j|	 dk t |d }| ||d | ||d	 | | |d | | |d	 d S )Nr   c              	      st    fdd}t j }t j||d }t|t|dd|ddd}t|j tt j||j|k d S )	Nc                    s     |  S N)dot)r   Abr   r!   r"   X   s    zAtest_linear_definite.<locals>.check_solvability.<locals>.<lambda>g     @@r   isD  )r'   r&   r(   r+   r,   )r.   r/   )	r?   rA   solverB   r   r0   r   rF   r   )rW   rX   r+   rJ   xpepsrK   r   rV   r!   check_solvabilityW   s   
z/test_linear_definite.<locals>.check_solvabilityZ   i  r%   r   r   r   )r   )
r?   randomseedarangereshapediagr   rA   eigvalsrC   )r\   r
   rW   rX   r   r   r!   test_linear_definiteP   s   
	 rd   c                  C   sf   dd } t tfD ](}tddg}tjddg|d}t| ||fdd}t|j t|j	j
|j
 qd S )Nc                 S   s   | | S rT   r   )r   argr   r   r!   fq   s   ztest_shape.<locals>.fr   )dtyper,   )r-   r/   )floatcomplexr?   zerosonesr   r   rF   r   r   shape)rf   dtr   re   rK   r   r   r!   
test_shapep   s   
rn   c                 C   sd   t |g}t d|d }t| d d d |d< |t| dd  d | dd    |dd < |S )Nr   r%   r   r?   rj   r`   r   r   r
   gir   r   r!   r1      s
   ,r1   c                 C   s"   t | g}|| | d   |S Nr%   r?   emptyfillr
   r	   r   r   r!   r2         r2   c                 C   sd   t |g}t d|d }t| d d |d< d| t| dd  | d d  d  |dd < |S )Nr   r%   r   g?ro   rp   r   r   r!   r3      s
   0r3   c                 C   s"   t | g}|d| d   |S )Nr%   r   rt   rw   r   r   r!   r4      rx   r4   c                 C   s0  t |d d t|g}d| d d d  d| dd d d   d| dd d d   d| dd d   d	 |d d d< d
| d d d  d| dd d d   d| dd d d   d| dd d   | dd d  d| dd d d   d |dd d< d| dd d  d| dd d d   |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   r?   rj   )r   r
   rq   r   r   r!   F_4   s   ^2r{   c                 C   s(   t | d d tg d| d  }|S )Nrz   r   )ry         ?ry   r   r?   arrayrw   r   r   r!   x0_4   s   r   c                 C   sd   d}t d|d d | }| dd|d|  |d d d f |  |d d d f |  jdd    S )Ng?r%   r|   r   )axis)r?   r`   sum)r   r
   cmur   r   r!   r5      s   Hr5   c                 C      t | gS rT   r?   rk   r
   r   r   r!   r6         r6   c                 C   s   t |d d dd }t|g}d| dd d d  d |d d d< t| d d d  t| dd d   d |dd d< || dd d |dd d< |S )	Nrz   r   c                 S   sd   d|  d }d| d  d| d   d|   d d | d	k || d	k< d|  d | dk || dk< |S )
Nr|   r   irz   ix  i  i  i  ry   r   )tvr   r   r!   phi   s   8zF_7.<locals>.phig     @r%   r   gqh ?)r   r?   rj   r   )r   r
   r   rq   r   r   r!   r7      s   $6r7   c                 C   s$   t | d d tg d| d  S )Nrz   r   )gMbP?r   r%   r}   r   r   r   r!   r8      s   r8   c                 C   s   t |g}t d|}| d d d | d d d  |d< | dd d  d || dd d  d  | dd  d d  |dd< | d d  d || d d  d  |d< |S )Nr   r   rz   r%   ry   )r?   rj   r`   rp   r   r   r!   r9      s   $J*r9   c                 C   r   rT   r   r   r   r   r!   r:      r   r:   c                 C   s   t d|  | |  S rs   )r?   logr   r   r   r!   r;      s   r;   c                 C   r   rT   r   r   r   r   r!   r<      r   r<   )r=   numpyr?   r   numpy.testingr   r   scipy.optimizer   rM   rS   rd   rn   r1   r2   r3   r4   r{   r   r5   r6   r7   r8   r9   r:   r;   r<   r   r   r   r!   <module>   s.    7 
