
    Pi                        d dl Z d dlZd dlZd dlmZ d dlmZ d dlm	Z	 d dl
mZmZ ej        dej        dej        dej        diZd Zg Ze                                D ]GZg Z ee          rej        j        gZe                     ej        eeej        	                     H ee          ZddZej                            dej        eef          ej                            dej        ej        ej        ej        g          ej                            dd          ej                            dd          d                                                 Z ej        j!        ej                            de          ej                            dd          d                                     Z"ej                            dd          ej                            dedd                   d                         Z#ej        j        ej        $                                d                         Z%ej                            dddg          ej                            dej        ej        f          d                         Z&ej                            dej        ej        ej        ej        f          d             Z'dS )     N)assert_allclose)raises)_svdp)	csr_array	csc_arrayg-C6?g:0yE>c                 <    t          j        |           j        dk    S )Nc)npdtypekindr   s    z/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/scipy/sparse/linalg/tests/test_propack.pyis_complex_typer      s    8E??3&&    )marksid皙?c	                    t           |         }	|t          j                            d          }t          j                            d          }
t	          |          rQdd|
                    | |g          z  z   dz
  d|
                    | |g          z  z                       |          }n1dd|
                    | |g          z  z                       |          }d||j        d|z  dz
  k    <    ||          }t          j        	                    |d	          \  }}}t          |||||	|
          \  }}}}|                                dk    rAt          j        ||d          }t          j        ||d          }t          j        ||          }t          |d |         ||	|	           t          t          j        |                                j        |z            t          j        | |          |	|	           t          t          j        |                                |j        z            t          j        | |          |	|	           d S )Nr   
   sizey              @y              $@   Ffull_matrices)kwhichirl_modetolrngSM   )rtolatol)TOLSr
   randomdefault_rngr   uniformastypereallinalgsvdr   upperrollr   absconjTeye)nmconstructorr   r   r   r   fr    r   rng2MMspu1sigma1vt1u2sigma2vt2_s                       r   
check_svdprA   %   s,   
u+C
{i##A&& 9  ##Du @21a&1111$,,QF,33345;VE]] 	
 "t||!Q|000088??AafrAvz
+a..CimmAUm;;OBsaeh#&C1 1 1BQ {{}}WRAgc1a  ## F2A2JSs;;;; BF27799;+,,bfQll3OOOOBF388::-..q!3SQQQQQQr   ctorr   irl)TFr   )LMr!   c                 "   t           j                            d          }d\  }}}|dk    rL|sJd}t          t          |          5  t          ||| |||||           d d d            d S # 1 swxY w Y   d S t          ||| |||||           d S )Nl   WV{1 )r         r!   z#`which`='SM' requires irl_mode=True)match)r    )r
   r&   r'   assert_raises
ValueErrorrA   )	rB   r   rC   r   r    r3   r4   r   messages	            r   	test_svdprL   G   s    )

 0
1
1CGAq!}}S}7:W555 	B 	Bq!T5!S%SAAAA	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	1auae======s   A++A/2A/)FTc                    t           j        dt           j        dt           j        dt           j        di|          }t
          j                            t                    }d}t
          j        	                    ||          }t          j
        |d          5 }t          |           r.|d                                                             |           }n-|d                                                             |           }d d d            n# 1 swxY w Y   d	}t          |||t           j                            d
                    \  }	}
}}t          |           rdn|}|	d d d |f         }	|d |d d f         }|
d |         }
t#          t          j        |	j        d                   |	                                j        |	z  |           t#          t          j        |j        d
                   ||                                j        z  |           t           j                            |                                          \  }}}|d d d |f         }|d |         }|d |d d f         }|t          j        |          z  |z  }|	t          j        |
          z  |z  }t#          t           j                            ||z
            d
|           d S )NgC8
!?g&.>gMbP?zpropack_test_data.npzT)allow_pickle	A_complexA_real   r   )r   r       r"   r$   )r
   float32float64	complex64
complex128ospathdirname__file__joinloadr   itemr)   r   r&   r'   r   r2   shaper0   r1   r+   r,   todensediagnorm)r   rC   r$   path_prefixrelative_pathfilenamedataAr   usvhr@   sv_checku3s3vh3A3recons                      r   test_examplesrq   W   s    	
F

D
d
t	
 D '//(++K ,Mw||K77H		-	-	- 45!! 	4[!&&((//66AAX##%%,,U33A	4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 	A1s	0E0Ea0H0HIIIKAq"a %U++2rrH	!!!YhY,A	IXIqqqL	B	)8)A BF171:&&
QTBBBBBF28A;''bggiik)9EEEE )--		,,KBC	AAAyyL	B	IXIB
ixil
C	bgbkk	C	B

NREBINN2:..======s   A+DDDshifts)Nir   r"   r   F      c           	         t           j                            d          }d\  }}|                    ||f          }| l| dk     s|t          |dz
  | z
  |          k    rLt	          j        t                    5  t          ||| d|z  d|           d d d            d S # 1 swxY w Y   d S t          ||| d|z  d|           d S )Nr   rs   r   r"   r   T)rr   kmaxr   r    )r
   r&   r'   minpytestr   rJ   r   )rr   r   r    r3   r   rg   s         r   test_shiftsrz      s/    )


"
"CDAq

Aq6A

C!F
A4F4F0F0F]:&& 	I 	I!QvAaC$CHHHH	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	a6!dDDDDDDs   7BB!$B!c                  >   t           j                            d          } d\  }}|                     ||f                              t           j                  }t          ||d dd|           \  }}}}t          ||ddd|           \  }}	}
}t          ||	           d S )Nr   rv   r!   T)rr   r   r   r        )r
   r&   r'   r)   rU   r   r   )r    r3   r   rg   r:   s1r<   r@   r=   s2r?   s              r   test_shifts_accuracyr      s     )


"
"CDAq

Aq6!!"*--A1aD4SQQQNBC1a$3OOONBC Br   r   FTc                    t           j                            d          }d\  }t          j        fdt	          |          D             |          }t           j                            |d          \  }}}t          |dd| |	          \  }}	}
}t          |	|t          |         
           t          t          j
        |j        d                   |j        |z  t          |         
           t          t          j
        |
j        d                   |
|
j        z  t          |         
           t          t          j        |j        |z            t          j
                  t          |         
           t          t          j        ||
j        z            t          j
                  t          |         
           d S )Nl   mac{1 )rQ      c                 H    g | ]fd t                    D             S )c                 &    g | ]}d |z   d z   z  S )r"    ).0jis     r   
<listcomp>z0test_thin_hilbert.<locals>.<listcomp>.<listcomp>   s%    555q1A	?555r   )range)r   r   r3   s    @r   r   z%test_thin_hilbert.<locals>.<listcomp>   s5    HHH!5555E!HH555HHHr   r   Fr   r   rD   r   r   r   r    rS   r"   r   )r
   r&   r'   arrayr   r+   r,   r   r   r%   r2   r_   r1   r/   )r   r   r    r4   rg   uussvvrh   ri   vtr@   r3   s               @r   test_thin_hilbertr      sv    )

 0
1
1CDAq 	HHHHuQxxHHHPUVVVAq66JBBQdX3GGGKAq"aArU,,,, BF171:&&ad5kBBBBBF28A;''bdeEEEE BF24!8$$bfQiid5kBBBBBF29%%rvayytE{CCCCCCr   c                    t           j                            d          }d\  }}|                    ||f                              |           }| t           j        t           j        fv r:| | d          |                    ||f                              |           z  z  }t           j                            |d          \  }}}t          |ddd	|
          \  }}	}
}t          |	|t          |                     t          t          j        |j        d                   |                                j        |z  t          |                     t          t          j        |
j        d                   |
|
                                j        z  t          |                     t          t          j        |                                j        |z            t          j        |          t          |                     t          t          j        ||
                                j        z            t          j        |          t          |                     d S )Nl   d={1 )rG   d   r   y              ?Fr   rG   rD   Tr   rS   r"   r   )r
   r&   r'   r(   r)   rV   rW   r+   r,   r   r   r%   r2   r_   r0   r1   r/   )r   r    r4   r3   rg   r   r   r   rh   ri   r   r@   s               r   test_fat_randomr      s   
)

 0
1
1CDAq!Q  ''..Ar}---	UU2YY1a&1188????q66JBBQdTsCCCKAq"aArU,,,, BF171:&&
QT%[IIIIBF28A;''bggiik)9ULLLL BF27799;?++RVAYYT%[IIIIBF2		+,,bfQiid5kJJJJJJr   )r   N)(rX   ry   numpyr
   numpy.testingr   r   rI   scipy.sparse.linalg._svdpr   scipy.sparser   r   rT   rU   rV   rW   r%   r   _dtypeskeysdtype_flavourr   markslowappendparam__name__tuplerA   parametrizer   rL   xslowrq   rz   xfailr   r   r   r   r   r   <module>r      s   				      ) ) ) ) ) ) * * * * * * + + + + + + - - - - - - - -
 JJL$M4	' ' ' YY[[ < <ME}%% #!"NN<6<U#0#9; ; ; < < < <
%..R R R RD "(Iy!ABB2:rz#%<#@ A A..,//> > 0/ /.A A CB
> '**..,> ,> /. +* ,>^ #<=='"1"+..E E /. >=E     eT]332:rz":;;D D <; 43D& 2:rz2<"WXXK K YXK K Kr   