
    (ph&                         S SK r S SKrS SKJr  S SK Jr  S SKJrJrJ	r	J
r
JrJr  S SKJr  S SKJrJrJrJrJr  S SKJr   " S S	5      r " S
 S5      r " S S5      r " S S5      rg)    N)assert_array_almost_equal)raises)array	transposedot	conjugate
zeros_likeempty)random)choleskycholesky_bandedcho_solve_banded
cho_factor	cho_solve)assert_no_overwritec            	       P   \ rS rSrS rS rS rS rS r\	R                  R                  S 5       r\	R                  R                  S\\\R"                  \\R&                  /5      \	R                  R                  S	\\\R"                  \\R&                  /5      S
 5       5       rSrg)TestCholesky   c                     / SQ/ SQ/ SQ/n[        U5      n[        [        [        U5      U5      U5        [        U5      n[        U[        U5      5      n[        [        USS9U5        g )N         r   	   r   r   r         lowerr   r   r   r   selfacs      Z/var/www/html/venv/lib/python3.13/site-packages/scipy/linalg/tests/test_decomp_cholesky.pytest_simpleTestCholesky.test_simple   sV    	9-QK!#ilA"6:aL9Q< !(1A"6:    c                     / SQ/ SQ/ SQ/n[        USS9n[        [        [        U5      U5      U5        [        U5      n[        U[        U5      5      n[        [        USSS9U5        g )Nr   r   r   Fcheck_finiter   r    r,   r!   r"   s      r&   test_check_finiteTestCholesky.test_check_finite   s[    	9-QU+!#ilA"6:aL9Q< !(1AE"JANr)   c                 J   [        / SQ/ SQ/ SQ/5      n[        [        [        U5      5      U5      n[	        U5      n[        [        [        U5      5      U5      n[        X$5        [        U5      n[        U[        [        U5      5      5      n[        [	        USS9U5        g )N)y      @      ?y      @      @   )r   y       @       @y       @      @)r   r   y      @      @r   r   )r   r   r   r   r   r   )r#   mr$   r%   a1s        r&   test_simple_complex TestCholesky.test_simple_complex    s}    ?O\BC	)A,'+QK9Q<(!,!!(aL9Yq\*+!(1A"6:r)   c                 p   Sn[        S5       H  n[        X/5      n[        U5       H  nSSX4U4   -   -  X4U4'   M     [        [        U5      U5      n[	        U5      n[        [        U5      U5      n[        XW5        [        U5      n[        U[        U5      5      n[        [	        USS9U5        M     g )N   r   皙?r   r   )ranger   r   r   r   r   r#   nkr2   ir$   r%   r3   s           r&   test_randomTestCholesky.test_random*   s    qAvA1Xba4j/Q$ IaL!$AAYq\1%B%a,!AAy|$A%hq&:A> r)   c           	         Sn[        S5       H  n[        X/5      S[        X/5      -  -   n[        U5       H  nSS[        X4U4   5      -   -  X4U4'   M     [        [	        [        U5      5      U5      n[        U5      n[        [	        [        U5      5      U5      n[        XW5        [	        U5      n[        U[	        [        U5      5      5      n[        [        USS9U5        M     g )Nr7   r                 ?r8   r   r   )r9   r   absr   r   r   r   r   r:   s           r&   test_random_complex TestCholesky.test_random_complex8   s    qAvr&!.00A1XbQ!tWo.Q$ Iil+Q/AAYy|,a0B%a,!AAy1./A%hq&:A> r)   c                     Sn[         R                  " U[         R                  SS9n[         R                  " / SQ/ SQ/ SQ/ SQ/5      US S2S S24'   [	        US	S
S9  g )Ni  F)dtypeorder)   r   )rJ   rI   r   )r   rL   r1   r   )rK   r   r   r1   rI   FT)r,   overwrite_a)npeyefloat64r   r   )r#   r;   xs      r&   test_int_overflowTestCholesky.test_int_overflowF   s[     q66!2::S1q88^+**, -q!RaRy
 48r)   dtdt_bc           	      ,   [        SUS9n[        U5      nUR                  S:X  d   eUR                  [        [        R
                  " SUS95      R                  :X  d   eUS4n[        R                  " / US9n[        XV5      nUR                  S:X  d   eUR                  [        [        R
                  " SUS9S4[        R                  " SUS95      R                  :X  d   e[        SUS9n[        XV5      nUR                  S:X  d   eUR                  [        [        R
                  " SUS9S4[        R                  " SUS95      R                  :X  d   e[        / 5      n[        / /5      n	/ n
/ /nXX4 H  n[        [        [        U5        M     g )Nr   r   rG   r   Tr   )r
   r   shaperG   rN   rO   asarrayr   onesr   assert_raises
ValueError)r#   rT   rU   r$   r%   c_and_lowerbrQ   r3   a2a3a4s               r&   
test_emptyTestCholesky.test_emptyU   sw    &#QKww&   ww(266!2#67=====$iJJr&k%ww$ww)RVVAR%8$$?%'WWQd%;==BUC 	C C &%k%ww&   ww)RVVAR%8$$?%'WWQd%;==BUC 	C C 2YB4[T2"A*h2 #r)    N)__name__
__module____qualname____firstlineno__r'   r.   r4   r>   rC   pytestmarkxslowrR   parametrizeintfloatrN   float32complex	complex64rd   __static_attributes__rf   r)   r&   r   r      s    ;O;?? [[9 9 [[TC

GR\\#RS[[Vc5"**gr||%TU3 V T3r)   r   c            	          \ rS rSrSrS rS rS rS rS r	\
R                  R                  S\\\R                   \\R$                  /5      \
R                  R                  S	\\\R                   \\R$                  /5      S
 5       5       rSrg)TestCholeskyBandeds   z1Tests for cholesky_banded() and cho_solve_banded.c                    [        / SQ/ SQ/ SQ/ SQ/5      n[        / SQ/ SQ/5      n[        USSS9n[        U5      nUS	   U[        [	        S
5      5      [        [	        S
5      5      4'   USSS 24   US'   [        U[        UR                  U5      5        [        / SQ5      n[        US4USS9n[        U/ SQ5        g )N      @      ?        r|   r{   rz         ?r|   r|   r~   rz   皙?r|   r|   r   rz         r{   r~   r   rz   rz   rz   rz   Fr-   rK   rI   r   r   r   r   r   r   r   r   r|   r~   @r   r+   r|   r|   r{   r{   	r   r   r	   listr9   r   r   Tr   r#   r$   abr%   ufacr`   rQ   s          r&   r.   $TestCholeskyBanded.test_check_finitev   s    '''') *
 )(* +Be%@!}/0uT%(^T%(^+,%&q!"uX!"!!S%67&'aZ?!!%9:r)   c                    [        / SQ/ SQ/ SQ/ SQ/5      n[        / SQ/ SQ/5      n[        USS9n[        U5      nUS	   U[        [	        S
5      5      [        [	        S
5      5      4'   USSS 24   US'   [        U[        UR                  U5      5        [        / SQ5      n[        US4U5      n[        U/ SQ5        g )Nry   r}   r   r   r   r   Fr   rK   rI   r   r   r   r   r   r   r   s          r&   test_upper_real"TestCholeskyBanded.test_upper_real   s    '''') *
 )(* +Be,!}/0uT%(^T%(^+,%&q!"uX!"!!S%67&'aZ+!!%9:r)   c                    [        / SQ/ SQ/ SQ/ SQ/5      n[        / SQ/ SQ/5      n[        USS9n[        U5      nUS	   U[        [	        S
5      5      [        [	        S
5      5      4'   USSS 24   US'   [        U[        UR                  5       R                  U5      5        [        / SQ5      n[        US4U5      n[        U/ SQ5        g )Nry   r}   r|   r~   rz          ɿr|   r|           ?rz   )r   r{   r~   r   r   Fr   rK   rI   r   r   r   )r|   r~   y      @ɿy      @?r   
r   r   r	   r   r9   r   r   conjr   r   r   s          r&   test_upper_complex%TestCholeskyBanded.test_upper_complex   s    '')(* +
 +(* +Be,!}/0uT%(^T%(^+,%&q!"uX!"!!S%=>23aZ+!!%9:r)   c                    [        / SQ/ SQ/ SQ/ SQ/5      n[        / SQ/ SQ/5      n[        USS9n[        U5      nUS	   U[        [	        S
5      5      [        [	        S
5      5      4'   USS S24   US'   [        U[        XDR                  5      5        [        / SQ5      n[        US4U5      n[        U/ SQ5        g )Nry   r}   r   r   r   )r{   r~   r   r   Tr   r   rI   r   r   r   r   r   r   r   r#   r$   r   r%   lfacr`   rQ   s          r&   test_lower_real"TestCholeskyBanded.test_lower_real   s    '''') *
 ()+ ,Bd+!}/0tT%(^T%(^+,%&q"1"uX!"!!Svv%67&'aY*!!%9:r)   c                    [        / SQ/ SQ/ SQ/ SQ/5      n[        / SQ/ SQ/5      n[        USS9n[        U5      nUS	   U[        [	        S
5      5      [        [	        S
5      5      4'   USS S24   US'   [        U[        XDR                  5       R                  5      5        [        / SQ5      n[        US4U5      n[        U/ SQ5        g )Nry   r}   r   r   r   )r{   r~   r   r   Tr   r   rI   r   r   r   )r|   y              ?y        ffffff@gffffff@)r|   r|   rA   r{   r   r   s          r&   test_lower_complex%TestCholeskyBanded.test_lower_complex   s    '')(* +
 (*, -Bd+!}/0tT%(^T%(^+,%&q"1"uX!"!!Syy{}}%=>()aY*!!%:;r)   rT   rU   c                 *   [        SUS9n[        U5      nUR                  S:X  d   e[        [        R                  " SS/SS//US95      nUR
                  UR
                  :X  d   eUS4n[        R                  " / US9n[        Xg5      nUR                  S:X  d   e[        US4[        R                  " SUS95      R
                  n	UR
                  U	:X  d   e[        SUS9n[        Xg5      nUR                  S:X  d   eUR
                  U	:X  d   eg )NrW   rX   r   r   TrY   r   )	r
   r   rZ   rN   r   rG   r[   r   r\   )
r#   rT   rU   r   cbr2   cb_and_lowerr`   rQ   dtype_nonemptys
             r&   rd   TestCholeskyBanded.test_empty   s    6$R xx6!!!BHHq!fq!f%5R@Axx177"""DzJJr&\-ww$)1d)RWWQd5KLRRww.(((&%\-ww&   ww.(((r)   rf   N)rg   rh   ri   rj   __doc__r.   r   r   r   r   rk   rl   rn   ro   rp   rN   rq   rr   rs   rd   rt   rf   r)   r&   rv   rv   s   s    ;;&;&;&;&<& [[TC

GR\\#RS[[Vc5"**gr||%TU) V T)r)   rv   c                   2    \ rS rSrS rS rS rS rS rSr	g)	TestOverwrite   c                 &    [        [        S/5        g N)r   r   )r   r   r#   s    r&   test_choleskyTestOverwrite.test_cholesky   s    Hvh/r)   c                 &    [        [        S/5        g r   )r   r   r   s    r&   test_cho_factorTestOverwrite.test_cho_factor   s    J1r)   c                 f   ^ [        / SQ/ SQ/ SQ/5      n[        U5      m[        U4S jS/5        g )N)r   rK   r   )rK   r   rK   )r   rK   r   c                    > [        TU 5      $ )N)r   r`   xchos    r&   <lambda>.TestOverwrite.test_cho_solve.<locals>.<lambda>   s    ia&8r)   r   )r   r   r   r#   rQ   r   s     @r&   test_cho_solveTestOverwrite.test_cho_solve   s*    :{J78!}84&Ar)   c                 &    [        [        S/5        g )N)r   r   )r   r   r   s    r&   test_cholesky_banded"TestOverwrite.test_cholesky_banded   s    OfX6r)   c                 `   ^ [        / SQ/ SQ/5      n[        U5      m[        U4S jS/5        g )N)r   rK   rK   )r   r   r   c                     > [        TS4U 5      $ )NF)r   r   s    r&   r   5TestOverwrite.test_cho_solve_banded.<locals>.<lambda>   s    &6e}a&Hr)   r   )r   r   r   r   s     @r&   test_cho_solve_banded#TestOverwrite.test_cho_solve_banded   s,    ;	*+q!H!F	$r)   rf   N)
rg   rh   ri   rj   r   r   r   r   r   rt   rf   r)   r&   r   r      s    02B
7$r)   r   c                       \ rS rSr\R
                  R                  S\\\	R                  \\	R                  /5      S 5       rSrg)TestChoFactori  rT   c                     [         R                  " SUS9n[        U5      u  p4UR                  S:X  d   e[        [         R                  " SUS95      u  pTUR
                  UR
                  :X  d   eg )NrW   rX   r   )rN   r
   r   rZ   rO   rG   )r#   rT   r$   rQ   r    xxs         r&   rd   TestChoFactor.test_empty  s\    HHV2&a=ww&   rvvar23	ww"(("""r)   rf   N)rg   rh   ri   rj   rk   rl   rn   ro   rp   rN   rq   rr   rs   rd   rt   rf   r)   r&   r   r     s9    [[TC

GR\\#RS# T#r)   r   )rk   numpyrN   numpy.testingr   r   r]   r   r   r   r   r	   r
   numpy.randomr   scipy.linalgr   r   r   r   r   scipy.linalg._testutilsr   r   rv   r   r   rf   r)   r&   <module>r      sW      3 * E E   8b3 b3Jx) x)v$ $*	# 	#r)   