
    ^Mh              	          d Z ddlZddlmZ ddlmZ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ej                            dee	g          d             Z dS )z1Test functions for linalg._solve_toeplitz module
    N)levinson)solvetoeplitzsolve_toeplitzmatmul_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          f/var/www/html/test/jupyter/venv/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_errorr4   <   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   r0   )r   r   r   s      r    test_wikipedia_counterexampler6   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_coeffsrH   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_unstablerO   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%   rS   onesempty)rP   rQ   r   r   xx1s         r    
test_emptyrY   {   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"   func                    t           j                            d          }|                    d          }|                    d          }|                    d          }d}t          j        t
          |          5   | ||           d d d            n# 1 swxY w Y   t          j        t
          |          5   | ||f|           d d d            d S # 1 swxY w Y   d S )Nl   ! )r   r   r$      z:Beginning in SciPy 1.17, multidimensional input will be...)match)r   r   default_rngpytestwarnsFutureWarning)rZ   rngr   r   b_or_xmessages         r    test_nd_FutureWarningre      sW    )


0
0C

9A

9AZZ^^FJG	m7	3	3	3  	Q              	m7	3	3	3  	aVV			                 s$   <BBB;CCC)!__doc__numpyr   scipy.linalg._solve_toeplitzr   scipy.linalgr   r   r   r   numpy.testingr   r	   r_   r
   r1   r!   r(   r.   r4   r6   rH   markxfailrO   parametrizeintfloatfloat32complex	complex64rY   re    r"   r    <module>rt      s        1 1 1 1 1 1 I I I I I I I I I I I I 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  ABB
 
 CB
 
 
r"   