
    bi                        d dl Z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 d dlmZ d dlZd Zd Zd Zd	 Zej8                  j;                  d
eeg      ej8                  j;                  dddg      d               Zej8                  j;                  d
eeg      ej8                  j;                  dddg      d               Zy)    N)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)ComplexWarning)ldlc                     t        d      } t        j                  t              5  t	        | d d d df          d d d        t        j
                  t              5  t	        | dz         d d d        y # 1 sw Y   :xY w# 1 sw Y   y xY w)N                    ?)r   pytestraises
ValueErrorr   warnsr   )As    ]/home/cdr/jupyterlab/.venv/lib/python3.12/site-packages/scipy/linalg/tests/test_decomp_ldl.py	test_argsr      sr    AA	z	" Aa!eH 
n	% AbD	   s   A3A?3A<?Bc                      t        dt              } t        t        d            \  }}}t        |t	        |              t        |t	        |              t        |t        g t                     y )N)r   r   dtype)r
   complexr   r   r	   r   int)aldps       r   test_empty_arrayr)      sO    fG$A%- GAq!aA/aA/ar!56    c                     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 ]  }t        |      \  }}}t        |j                  |      j                  |j                        |t        d      d       t        |d      \  }}}t        |j                  |      j                  |j                        |t        d      d        t        | d      \  }}}t        |j                  |      j                  |j                        | t        d      d       t        | dd      \  }}}t        |j                  |      j                  |j                        | t        d      d       t        |j                         j                  d      \  }}}t        t        |j                  |      j                  |j                         j                        |z
        t        d      t        d      d       y )N)y(\ؿQ(\@{Gzq=
ףpGzffffff@q=
ףp?)r,   yQ!@(\?)\((\?HzG@q=
ףp)r-   r/   yp=
ףQp=
ףzG)r.   r0   r1   yQῸQ?)g      @
         )g      $@r      r3   )g      ?r5      	   )g      2@r3   r7   r   )g      J@a   p   k   2   )g     @X@r   Y   b      )g      \@r=   @   !      )g     Z@r>   rA   <   I   )g      I@r?   rB   rD   M   )       @r   r      )rF   rI   r2   )g      rI   rB   rJ   rG   )g        r2   rJ   rB   )g      @rJ   rG   rK   r2   )y(\                        rL   rL   )yHzG?y=
ףp!        rL   rL   )yGz@zG?yq=
ףpQ?yQ        rL   )yHzG@      y{GzzGy)\(?)\(yq=
ףp        g     @@r   )atolrtolFlower	hermitianrP   rR   )rH   rH   )	r   r   r   dotTr   conjr   r   )	r%   bcr'   exr&   r(   us	            r   test_simpler\      s   A@CAC 	DA 	 	 A 	&%$%#	% 	&A 	 ##"#	% 	&A
 	.18AC 	DA AY Ka&1aaQSS)175>Jau%1aaQSS)175>JK !u%GAq!AEE!HLL%qwu~AF!5E2GAq!AEE!HLL%qwu~AF !&&(**A&GAq!Dqaffhjj1!34eFm a1r*   c            	         t         j                  j                  d      } t        d      D ]  }| j	                  dd      }| j	                  d      r| j                  ||f      dz   n| j                  ||f      dz  }||j                         j                  z   }|t        |      | j	                  dd	      z  z  }t        |d
      }t        |d      }t        |d      \  }}}t        t        ||d d f   |          d| d       t        |d      \  }	}}t        t        |	|d d f   |          d| d        y )N  r2   r3   d   r   r   r          .A)krO   zSpin z failed)nprandomdefault_rngrangeintegersrV   rU   r   r   r   r   r   any)
rng_nrZ   l_indu_indr[   r'   r(   r&   s
             r   test_permutationsro   H   s)   
))


%C2Y =LLC &)ll1oCJJ1v"3::q!f;Mb;P

N	SVCLLC(((!!r*!!q) aq/1aC!Q$''57);<aq/1aC!Q$''57);<!=r*   r"   rl         c                 :   t         j                  j                  d      }d|  d| }|j                  | | f      j                  |      }||j                  z   }|t        | |       ||j                  dd            z  z  }t        |      \  }}}t        |d      \  }}	}|t        u rd	nd
}
t        |j                  |      j                  |j                        ||
|       t        |j                  |	      j                  |j                        ||
|       y )Nr^   zFailed for size: 	, dtype: r!   r`   ra   r   rO   g-C6?绽|=rN   err_msg)rd   re   rf   astyperU   r   rh   r   r   r   rT   )rl   r"   rj   msgrZ   r&   d1r(   r[   d2rN   s              r   $test_ldl_type_size_combinations_realr{   ]   s     ))


%Cqc5'2C

Aq6!!%(A	ACCAQe	U3<<3#78	88A1vHAr11AHAr1G#4DAEE"IMM!##&cBAEE"IMM!##&cBr*   c                    t         j                  j                  d      }d|  d| }d|  d| }|j                  | | f      d|j                  | | f      z  z   j                  |      }||j	                         j
                  z   }|t        | |       ||j                  dd            z  z  }t        |      \  }}}t        |d	
      \  }	}
}|t        u rdnd}t        |j                  |      j                  |j	                         j
                        |||       t        |	j                  |
      j                  |	j	                         j
                        |||       |j                  | | f      d|j                  | | f      z  z   j                  |      }||j
                  z   }|t        | |       ||j                  dd            z  z  }t        |d	      \  }}}t        |d	d	      \  }	}
}t        |j                  |      j                  |j
                        |||       t        |	j                  |
      j                  |	j
                        |||       y )Nr^   zHer failed for size: rs   zSym failed for size: r   r!   r`   ra   r   rO   g-C6*?rt   ru   rQ   rS   )rd   re   rf   rw   rV   rU   r   rh   r   r   r   rT   )rl   r"   rj   msg1msg2rZ   r&   ry   r(   r[   rz   rN   s               r   'test_ldl_type_size_combinations_complexr   n   s     ))


%C#A3iw7D#A3iw7D 
QF	Bszz1a&11	199%@A	!&&(**AQe	U3<<3#78	88A1vHAr11AHAr1I%45DAEE"IMM!&&(**-qtTJAEE"IMM!&&(**-qtTJ 
QF	Bszz1a&11	199%@A	!##AQe	U3<<3#78	88A1"HAr11A+HAr1AEE"IMM!##&dCAEE"IMM!##&dCr*   ) numpyrd   numpy.testingr   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   numpy.exceptionsr   scipy.linalgr   r   r   r)   r\   ro   markparametrizer{   r    r*   r   <module>r      s     M M* * * * ,  7(1V=* 7G"45r3i(C ) 6C 9j"9:r3i(D ) ;Dr*   