o
    Ö­jk  ã                   @   s  d dl mZmZmZ d dlmZmZmZmZm	Z	m
Z
mZmZmZmZmZmZmZ d dlmZmZmZ d dlmZ d dlmZ d dlZd dlmZmZ ejjdd	„ ƒZ d
d„ Z!dd„ Z"dd„ Z#ej $deeg¡ej $dddg¡dd„ ƒƒZ%ej $deeg¡ej $dddg¡dd„ ƒƒZ&dS )é    )Úassert_array_almost_equalÚassert_allcloseÚassert_)ÚarrayÚeyeÚzerosÚ
empty_likeÚemptyÚtril_indices_fromÚtrilÚtriu_indices_fromÚspacingÚfloat32Úfloat64Ú	complex64Ú
complex128)ÚrandÚrandintÚseed)Úldl)ÚComplexWarningN)ÚraisesÚwarnsc                  C   s^   t dƒ} ttt| d d …d d…f ƒ ttƒ� t| d ƒ W d   ƒ d S 1 s(w   Y  d S )Né   é   ù              ð?)r   Úassert_raisesÚ
ValueErrorr   r   r   )ÚA© r   ú_/var/www/html/CropPilot/venv/lib/python3.10/site-packages/scipy/linalg/tests/test_decomp_ldl.pyÚ	test_args   s
   
"ÿr!   c                  C   sP   t dtd�} tt dƒƒ\}}}t|t| ƒƒ t|t| ƒƒ t|tg td�ƒ d S )N)r   r   ©Údtype)r	   Úcomplexr   r   r   r   Úint)ÚaÚlÚdÚpr   r   r    Útest_empty_array   s
   r*   c            	      C   sØ  t g d¢g d¢g d¢g d¢gƒ} t g d¢g d¢g d¢g d¢gƒ}t g d	¢g d
¢g d¢g d¢g d¢gƒ}t g d¢g d¢g d¢g d¢g d¢gƒ}t g d¢g d¢g d¢g d¢gƒ}|||fD ]4}t|ƒ\}}}t| |¡ |j¡|tdƒdd� t|dd�\}}}t| |¡ |j¡|tdƒdd� q[t| dd�\}}}t| |¡ |j¡| tdƒdd� t| ddd�\}}}t| |¡ |j¡| tdƒdd� t| ¡ jdd�\}}}tt| |¡ | ¡ j¡| ƒtdƒtdƒdd� d S )N)yö(\�ÂõØ¿¸…ëQ¸æ¿ù�Âõ(\�@{®Gázä¿ùq=
×£pÀ®Gáz®Àùffffff@q=
×£pí?)r+   y¸…ëQ¸!@ö(\�Âõü?ù)\�Âõ(À�Âõ(\�â?ùHáz®G@q=
×£pù¿)r,   r.   y¤p=
×£À¸…ëQ¸ž¿ù¤p=
×£ø¿áz®GáÀ)r-   r/   r0   yìQ¸…ëá¿¸…ëQ¸¾?)g      @é
   é   é   )g      $@r   é   r2   )g      ð?r4   é   é	   )g      2@r2   r6   r   )g      J@éa   ép   ék   é2   )g     @X@ér   éY   éb   é   )g      \@r<   é@   é!   é   )g     ÀZ@r=   r@   é<   éI   )g      I@r>   rA   rC   éM   )ç       @r   éüÿÿÿr   é   )rE   éþÿÿÿrH   r1   éøÿÿÿ)g      ÀrH   rA   rI   rF   )g        r1   rI   rA   éúÿÿÿ)g      @rI   rF   rJ   r1   )yÃõ(\�Âõ¿        ù                rK   rK   )yHáz®Gù?ÍÌÌÌÌÌì¿y=
×£p½!À        rK   rK   )y®Gáz®@áz®GáÊ?yq=
×£pý¿¸…ëQ¸ž?y…ëQ¸…À        rK   )yHáz®G@      ø¿y{®Gázü¿áz®Gáò¿y)\�Âõ(¼?)\�Âõ(¼¿yq=
×£pý¿        g     @�@r   )ÚatolÚrtolF©Úlower©Ú	hermitian©rO   rQ   )rG   rG   )	r   r   r   ÚdotÚTr   Úconjr   r   )	r&   ÚbÚcr(   ÚeÚxr'   r)   Úur   r   r    Útest_simple   sP   ýýüüý"$""$
ÿr[   c            	      C   sþ   t dƒ tdƒD ]t} tddƒ}tdƒrt||ƒnt||ƒt||ƒd  }|| ¡ j }|t|ƒtddƒ 7 }t|d	d
�}t|dd
�}t	|dd�\}}}t
t||d d …f | ƒ d| › d�ƒ t	|dd�\}}}t
t||d d …f | ƒ d| › d�ƒ qd S )NéÒ  r1   r2   éd   r   r   é   ç    €„.Aéÿÿÿÿ)Úkr   rN   zSpin z failed)r   Úranger   r   rU   rT   r   r
   r   r   r   Úany)	Ú_ÚnrY   Úl_indÚu_indrZ   r(   r)   r'   r   r   r    Útest_permutationsI   s   
*(*ðrh   r#   re   é   é–   c           
      C   sÀ   t dƒ d| › d|› �}t| | ƒ |¡}||j }|t| |d�|tddƒƒ 7 }t|ƒ\}}}t|dd�\}}}|tu r>d	nd
}	t| 	|¡ 	|j¡||	|d� t| 	|¡ 	|j¡||	|d� d S )Nr\   zFailed for size: ú	, dtype: r"   r^   r_   r   rN   g-Cëâ6?ç»½×Ùß|Û=©rM   Úerr_msg)
r   r   ÚastyperT   r   r   r   r   r   rS   )
re   r#   ÚmsgrY   r'   Úd1r)   rZ   Úd2rM   r   r   r    Ú$test_ldl_type_size_combinations_real^   s   
"rs   c                 C   s’  t dƒ d| › d|› �}d| › d|› �}t| | ƒdt| | ƒ   |¡}|| ¡ j }|t| |d�|tddƒƒ 7 }t|ƒ\}}}t|d	d
�\}}	}|tu rOdnd}
t	| 
|¡ 
| ¡ j¡||
|d� t	| 
|	¡ 
| ¡ j¡||
|d� t| | ƒdt| | ƒ   |¡}||j }|t| |d�|tddƒƒ 7 }t|d	d�\}}}t|d	d	d�\}}	}t	| 
|¡ 
|j¡||
|d� t	| 
|	¡ 
|j¡||
|d� d S )Nr\   zHer failed for size: rk   zSym failed for size: r   r"   r^   r_   r   rN   g-Cëâ6*?rl   rm   rP   rR   )r   r   ro   rU   rT   r   r   r   r   r   rS   )re   r#   Úmsg1Úmsg2rY   r'   rq   r)   rZ   rr   rM   r   r   r    Ú'test_ldl_type_size_combinations_complexo   s$   ""
"rv   )'Únumpy.testingr   r   r   Únumpyr   r   r   r   r	   r
   r   r   r   r   r   r   r   Únumpy.randomr   r   r   Úscipy.linalgr   Úscipy._lib._utilr   Úpytestr   r   r   ÚmarkÚthread_unsafer!   r*   r[   rh   Úparametrizers   rv   r   r   r   r    Ú<module>   s$    <
	+