o
    hk                     @   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   V/var/www/vscode/kcb/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(\@{Gzq=
ףpGzffffff@q=
ףp?)r+   yQ!@(\?)\((\?HzG@q=
ףp)r,   r.   yp=
ףQp=
ףzG)r-   r/   r0   yQῸ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   )yHzG?y=
ףp!        rK   rK   )yGz@zG?yq=
ףpQ?yQ        rK   )yHzG@      y{GzzGy)\(?)\(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$    <
	+