
    doi              	          S r SSKrSSKJr  SSKJrJrJr  SSK	J
r
Jr  SSKrSSKJr  S rS rS	 rS
 rS rS r\R*                  R-                  SS9S 5       r\R*                  R1                  S\\\R6                  \\R:                  /5      \R*                  R1                  S\\\R6                  \\R:                  /5      S 5       5       rg)z1Test functions for linalg._solve_toeplitz module
    N)levinson)solvetoeplitzsolve_toeplitz)assert_equalassert_allclose)raisesc                  h   [         R                  R                  S5      n S GH  nU R                  U5      nU R	                  5       S:  a  USU R                  U5      -  -   nU R                  U5      nU R	                  5       S:  a  USU R                  U5      -  -   nU R                  U5      nU R	                  5       S:  a  USU R                  U5      -  -   n[        X#4U5      n[        [        X#S9U5      n[        XV5        [        X$S9n[        [        U5      U5      n[        XV5        GM     g )N  )         
   g      ?              ?rb)	nprandomRandomStaterandnrandr   r   r   r   )r   ncr   yactualdesireds          b/var/www/html/land-ocr/venv/lib/python3.13/site-packages/scipy/linalg/tests/test_solve_toeplitz.pytest_solve_equivalencer       s   YY""4(FLLO;;=3Ba((ALLO;;=3Ba((ALLO;;=3Ba((A  q)(!,(  'Q'('     c            	      x   [         R                  R                  S5      n U R                  S5      nU R                  S5      nS Hs  nS Hj  nU R                  " U6 U-   n[	        X4US9n[        [        XS9U5      n[        UR                  U5        [        UR                  U5        [        Xg5        Ml     Mu     g )Nr      )r   r   ))r#   )r#   r   r   r   )
r   r   r   r   r   r   r   r   shaper   )r   r   r   offsetyshaper   r   r   s           r   test_multiple_rhsr'   %   s    YY""4(FQAQA$Ff%.A#QEQ/FHQ,a0Gv./F, % r!   c                  r    / SQn / SQn/ SQn[        X4U5      n[        [        XS9U5      n[        X45        g )N)r   r   r#      )r   r   	      )   r   r#   r   r   )r   r   r   r   )r   r   r   r   r   s        r   test_native_list_argumentsr-   3   s8    AAAQE1%FHQ$a(GF$r!   c                     [         R                  R                  S5      n SnU R                  U5      nU R                  U5      nU R                  U5      nSUS'   [	        [         R
                  R                  [        X#4US9  g )Nr   r#   r   r   r   r   r   r   assert_raiseslinalgLinAlgErrorr   )r   r   r   r   r   s        r   test_zero_diag_errorr3   <   sh    YY""4(F	AQAQAQAAaD"))''!%r!   c                      [         R                  R                  S5      n / SQnU R                  S5      n[	        [         R
                  R                  [        XS9  g )Nr   )r   r   r   r   r   r/   )r   r   r   s      r   test_wikipedia_counterexampler5   H   s@     YY""4(FAQA"))''@r!   c            	      b   [         R                  R                  S5      n U R                  S5      nU R                  S5      S-   nS/nS/n[	        SS5       HM  nUR                  [        US US-
   USU S9S   5        UR                  [        US US-
   USU S9S   5        MO     [         R                  " USS	S2   US S 45      n[         R                  " USS	S2   R                  5       US S 45      n[        XaSS  S9u  p[        XrSS  S9u  p[        X9S S 5        [        XJS S 5        g )
Nr   r   r   r   r   r   r   )r   r   r   r   rangeappendr   concatenateconjr   r   )r   y_dy_zreflection_coeffs_dreflection_coeffs_zi
y_d_concat
y_z_concat_ref_dref_zs              r   test_reflection_coeffsrG   Q   s@    YY""4(F
,,r
C
,,r
R
C##1b\"">#f!+Qq#J2#NO"">#f!+Qq#J2#NO  R"Ws3Bx 89JR"W!2!2!4c#2h ?@J
!"g.HA
!"g.HA's4's4r!   z!Instability of Levinson iteration)reasonc                      [         R                  R                  S5      n SnS[         R                  " U5      S-  -  nU R	                  U5      n[        X#S9n[        [        U5      U5      n[        XE5        g )Nr   d   g?r   r   )	r   r   r   aranger   r   r   r   r   )r   r   r   r   	solution1	solution2s         r   test_unstablerN   g   sb     YY""4(FA		!a AQAq&Ihqk1%II)r!   dt_cdt_bc           	         [         R                  " / U S9n[         R                  " / US9n[        X#5      nUR                  S:X  d   eUR                  [        [         R                  " SS/U S9[         R
                  " SUS95      R                  :X  d   e[         R                  " SUS9n[        X#5      nUR                  S:X  d   eUR                  UR                  :X  d   eg )N)dtype)r   r   r   )r   r   )r   arrayr   r$   rR   onesempty)rO   rP   r   r   xx1s         r   
test_emptyrX   {   s     	4 A
4 AqA77d??77nRXXq!fD%A&(ggat&<>>CeD D D 	t$A		B88v88qwwr!   )__doc__numpyr   scipy.linalg._solve_toeplitzr   scipy.linalgr   r   r   numpy.testingr   r   pytestr	   r0   r    r'   r-   r3   r5   rG   markxfailrN   parametrizeintfloatfloat32complex	complex64rX    r!   r   <module>rh      s     1 8 8 7  *)2-%	%A5, =>* ?*& #ubjj'2<<!PQ#ubjj'2<<!PQ R Rr!   