
    i                     p    S r SSKrSSKrSSKJrJrJrJrJrJ	r	  SSK
JrJrJrJrJrJrJr   " S S5      rg)z!Test functions for linalg module
    N)arangearraydotfloat64linalg	transpose)assert_assert_almost_equalassert_array_almost_equalassert_array_equalassert_array_lessassert_equalassert_raisesc                   H   \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 r\R                  R                  SSS/5      S 5       r\R                  R                  SSS/S-  \R$                  " S5      /5      S 5       r\R                  R)                  SS9S 5       rS rSrg)TestRegression   c                     [        / SQ5      n[        S[        S9nUR                  S5      nUS-  n[        R
                  " U5      u  p4UR                  5         UR                  5         [        X15        g )N)yӝ'Y@        yF.<2/3        yʹLTW9>/@yʹLTW9>/y=J&        ytV)忷B$@ytV)忷B$yZynFr62@        y(3%@        y:@        yCr~        yYqs`<        yt&Aۼ           dtype)   r      )r   r   r   reshaper   eigsortr   )selfrvaavaves        T/var/www/ias/venv/lib/python3.13/site-packages/numpy/linalg/tests/test_regression.pytest_eig_buildTestRegression.test_eig_build   s_     , - 7'*IIhFA
	
!"*    c                 z    / SQn[        / SQ/ SQ/ SQ/5      n[        R                  " U5      u  p4[        X15        g )N)g"&Q@ggdV@g7Z@)g'UlS@4h@%pJ/@)r&   g+>V@研qi0)r'   r(   gJ%~X@)r   r   eighr   )r   rvalscovvalsvecss        r!   test_eigh_buildTestRegression.test_eigh_build,   s9    8<<<> ? [[%
!$.r$   c                     [        SS/SS/SS/SS//5      nUR                  u  p#[        R                  " U5      u  pEn[	        [        US S 2US 24   5      U5      n[        U[        R                  " S5      5        g )N              ?       @      @)   r5   )	r   shaper   svdr   r   r   npzeros)r   r   mnusvhbs           r!   test_svd_buildTestRegression.test_svd_build7   so    B8b"XBx"b:;ww::a=b	!AqrE(#Q'!!RXXf%56r$   c                 Z    [        [        [        R                  [	        / SQ5      S5        g )N)r2   r3   r4   fro)r   
ValueErrorr   normr   )r   s    r!   test_norm_vector_badarg&TestRegression.test_norm_vector_badargA   s     	j&++u\/BEJr$   c                     [        SS/SS//SS9n[        USS9n[        R                  " U5      n[        R                  " U5      n[        X45        g )NgC$ 3@g&ug.ܷ#@z>f8r   z<f8)r   r   choleskyr   )r   r   r?   apbps        r!   test_lapack_endian!TestRegression.test_lapack_endianF   sS    Y
+,.5:<!5!__Q__Q2"r$   c                 p    [         R                  " SS5      n[         R                  R                  U5        g )Ni  B   )r8   eyer   r7   )r   xs     r!   test_large_svd_32bit#TestRegression.test_large_svd_32bitP   s"    FF4
		ar$   c           
         S H  n[         [        4 H  n[        R                  " XS9n[        R
                  " USS9n[        R                  " [        R                  " U5      S:  5      n[        US5        [        [        R                  R                  U5      S5        [        S[        R                  R                  USS95        [        R                  " U5      n[        XF5        M     M     g )	N))      )rV   rV   )rV   rU   r   F)
compute_uvg      ?   r5   ord)floatcomplexr8   onesr   r7   count_nonzeroabsoluter   matrix_rankr   rE   svdvalsr   )r   r6   tr   wc	w_svdvalss          r!   test_svd_no_uvTestRegression.test_svd_no_uvU   s    +EG^GGE+JJqU3$$R[[^c%9:Q"RYY2215q9!!RYY^^A1^%=>"NN1-	)!7 $ ,r$   c                 "   [         R                  " [         R                  " SS/5      SS/[        S9n[        R                  " U5      n[        USS/5        [        UR                  [         R                  " S5      :H  5        [        R                  " USS9n[        USS/5        [        UR                  [         R                  " S5      :g  5        [        R                  " USS9n[        USS/5        [        UR                  [         R                  " S5      :H  5        [        [        [        R                  USS9  [        [        [        R                  USS9  [        [        [        R                  U[         R                  S9  [        [        [        R                  U[         R                  * S9  [        [        [        R                  USS9  [        [        [        R                  US	S9  [        [        [        R                  US
S9  [         R                  " [         R                  " SS/5      SS// SQ/[        S9n[        R                  " U5      n[        USS/5        [        UR                  [         R                  " S5      :H  5        [        R                  " USS9n[        USS/5        [        UR                  [         R                  " S5      :H  5        [        [        [        R                  USS9  [        [        [        R                  U[         R                  S9  [        [        [        R                  U[         R                  * S9  [        [        [        R                  USS9  [        [        [        R                  USS9  [        [        [        R                  US	S9  [        [        [        R                  USS9  [        [        [        R                  US
S9  [        [        [        R                  USS9  g )Nr   rX   r   r   rY   r5   rC   nuc)r   r   r   rU   )r8   r   objectr   rE   r   r	   r   r   rD   inf	TypeError)r   
testvectorrE   
testmatrixs       r!   test_norm_object_array%TestRegression.test_norm_object_arrayc   s   XXrxxA/A6fE
{{:&4!Q(

bhhy112{{:1-4!Q(

bhhy112{{:1-4!Q(

bhhy112j&++zuEj&++zuEj&++zrvvFj&++zwGj&++zqAj&++zrBj&++zrBXX!Q 0!Q779@FH
 {{:&4!Q(

bhhy112{{:514!Q(

bhhy112ijeDj&++zrvvFj&++zwGj&++zqAj&++zqAj&++zrBija@ijbAj&++zqAr$   c                 |   SnSn[         R                  R                  X5      S[         R                  R                  X5      -  -   n[         R                  R                  X5      S[         R                  R                  X5      -  -   nUR                  U5      n[        R
                  " X5S S9u  pgp[        Xd5        g )N   F                 ?)rcond)r8   randomrandnr   r   lstsqr   )
r   sizen_rhsGr<   r?   u_lstsqresranksvs
             r!   test_lstsq_complex_larger_rhs,TestRegression.test_lstsq_complex_larger_rhs   s    IIOOD'"ryyt/J*JJIIOOD(2		0L+LLEE!H!'a$!?d!'-r$   upperTFc                     [         R                  R                  [         R                  " S5      US9nUR                  S:X  d   eg )N)r   r   )r   r   )r8   r   rI   r9   r{   )r   r   r   s      r!   test_cholesky_empty_array(TestRegression.test_cholesky_empty_array   s6     ii  &!1 ?xx1}}r$   rtolr1   rV   rV   c                     [         R                  " S5      n[         R                  R                  X!S9nUR                  S:X  d   eg )N)rV   rU   r5   )r   r   )r8   r9   r   r`   r6   )r   r   rQ   r   s       r!   test_matrix_rank_rtol_argument-TestRegression.test_matrix_rank_rtol_argument   s;     HHYii##A#1yyD   r$   z-test is already testing threads with openblas)reasonc                    [         R                  " S[         R                  S9n[         R                  " USU-  45      R                  n[         R
                  " SS/SS//5      n[         R                  " SU-  U45      R                  n[        S5       H9  nX#-  n[         R                  " Xd5      ) R                  5       nUS:w  d  M4   S5       e   g )Ni  r   ir   rX      zHunexpected result from matmul, probably due to OpenBLAS threading issues)	r8   r   r   vstackTr   rangeisclosesum)r   rQ   srcmatrixexpectediresult
mismatchess           r!   test_openblas_threading&TestRegression.test_openblas_threading   s    
 IIfBJJ/iiC!G%''Aq6Aq6*+99cAgq\*,,sA\F::f77<<>JQA  @ Au	 r$   c                     [         R                  " S5      S-  nUS[         R                  " [         R                  " U5      S5      -  -   n[         R                  R                  U5      n[        US5        g )Ni N  iP  rv   i90  gmUG@)r8   r   rollflipr   rE   r
   )r   r   r?   rE   s       r!   test_norm_linux_arm"TestRegression.test_norm_linux_arm   sT    IIeu$RWWRWWQZ///yy~~a D"34r$    N)__name__
__module____qualname____firstlineno__r"   r.   r@   rF   rL   rR   rf   rq   r   pytestmarkparametrizer   r8   r9   r   thread_unsafer   r   __static_attributes__r   r$   r!   r   r      s    +.	/7K
#
8+BZ
. [[WtUm4 5
 [[VcC519bhhtn%EF! G! [[&UVA WA5r$   r   )__doc__r   numpyr8   r   r   r   r   r   r   numpy.testingr	   r
   r   r   r   r   r   r   r   r$   r!   <module>r      s3      @ @  k5 k5r$   