
    Ug              	          d Z ddlZddlmZ ddlmZmZmZ ddl	m
Z
mZ ddlZddlmZ d Zd Zd	 Zd
 Zd Zd Zej                            d          d             Zej                            deeej        eej        g          ej                            deeej        eej        g          d                         ZdS )z1Test functions for linalg._solve_toeplitz module
    N)levinson)solvetoeplitzsolve_toeplitz)assert_equalassert_allclose)raisesc                      t           j                            d          } dD ]Z}|                     |          }|                                 dk     r|d|                     |          z  z   }|                     |          }|                                 dk     r|d|                     |          z  z   }|                     |          }|                                 dk     r|d|                     |          z  z   }t          ||f|          }t          t          ||          |          }t          ||           t          ||          }t          t          |          |          }t          ||           \d S )N  )         
   g      ?              ?rb)	nprandomRandomStaterandnrandr   r   r   r   )r   ncr   yactualdesireds          e/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/scipy/linalg/tests/test_solve_toeplitz.pytest_solve_equivalencer       s^   Y""4((F ) )LLOO;;==3Ba((ALLOO;;==3Ba((ALLOO;;==3Ba((A  1q))a(((!,,(((  Q'''Q''((((') )    c                     t           j                            d          } |                     d          }|                     d          }dD ]}dD ]{} | j        | |z   }t	          ||f|          }t          t          ||          |          }t          |j        |           t          |j        |           t          ||           |d S )Nr      )r   r   ))r#   )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    Y""4((FQAQA - -/ 	- 	-Ff%.A#QqEQ///FHQ!,,,a00Gv...///FG,,,,	-- -r!   c                      g d} g d}g d}t          | |f|          }t          t          | |          |          }t          ||           d S )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   sb    		A

A		AQqE1%%FHQ!$$$a((GFG$$$$$r!   c                  "   t           j                            d          } d}|                     |          }|                     |          }|                     |          }d|d<   t	          t           j        j        t          ||f|           d S )Nr   r#   r   r   r   r   r   r   assert_raiseslinalgLinAlgErrorr   )r   r   r   r   r   s        r   test_zero_diag_errorr3   <   s    Y""4((F	AQAQAQAAaD")'A!% % % % % %r!   c                      t           j                            d          } g d}|                     d          }t	          t           j        j        t          ||           d S )Nr   )r   r   r   r   r   r/   )r   r   r   s      r   test_wikipedia_counterexampler5   H   sS     Y""4((F		AQA")'a@@@@@@r!   c            	      T   t           j                            d          } |                     d          }|                     d          dz   }dg}dg}t	          dd          D ]|}|                    t          |d |dz
           |d|                   d                    |                    t          |d |dz
           |d|                   d                    }t          j        |dd	d         |d d         f          }t          j        |dd	d                                         |d d         f          }t          ||dd                    \  }}	t          ||dd                    \  }}
t          ||	d d                    t          ||
d d                    d S )
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    Y""4((F
,,r

C
,,r

R
C##1b\\ P P"">#f!f+QqS#J#J#J2#NOOO"">#f!f+QqS#J#J#J2#NOOOOR"Ws3B3x 899JR"W!2!2!4!4c#2#h ?@@J
c!""g...HAu
c!""g...HAu'ss444'ss44444r!   z!Instability of Levinson iteration)reasonc                  "   t           j                            d          } d}dt          j        |          dz  z  }|                     |          }t          ||          }t          t          |          |          }t          ||           d S )Nr   d   g?r   r   )	r   r   r   aranger   r   r   r   r   )r   r   r   r   	solution1	solution2s         r   test_unstablerN   g   s     Y""4((FA	!a AQAqA&&&Ihqkk1%%IIy)))))r!   dt_cdt_bc                    t          j        g |           }t          j        g |          }t          ||          }|j        dk    sJ |j        t          t          j        ddg|           t          j        d|                    j        k    sJ t          j        d|          }t          ||          }|j        dk    sJ |j        |j        k    sJ d S )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7d????7nRXq!fD%A%A%A&(gat&<&<&<> >>CD D D D 	t$$$A	1		B8v8qw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 1 1 1 1 1 8 8 8 8 8 8 8 8 8 8 7 7 7 7 7 7 7 7  * * * * * *) ) )2- - -% % %	% 	% 	%A A A5 5 5, =>>* * ?>*& #ubj'2<!PQQ#ubj'2<!PQQ  RQ RQ  r!   