L ilddlZddlZddlZddlmZddlmZmZejejgZ ejejgZe ezZdZdZGddZy)N)assert_allclose)linalgsparsec|j|}tj|tjr||j|dzz}|j |S)Ny?)randomnp issubdtypecomplexfloatingastype)shapedtyperngAs c/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/scipy/linalg/tests/test_batch.py get_randomr sJ 5A }}UB../  5!B& & 88E?c|j|j|}tj|j dd}|j |j j||z}||z|zS)Nsize)rr rconjswapaxesstandard_normalr )r r atolrrAtnoises rget_nearly_hermitianrsk 5  'A B# $B   QWW  - 4 4U ;d BE r6E>rceZdZddddddddZej j dedZej j ded Z ej j ded Z ej j ded Z ej j d e je je je j e j"e j$e j&e j(e j$e j*e j,e j.g ej j ded Zej j dedZej j dedZej j dedZej j dedZej j dedZej j dedZej j dedZej j de j@dfe jBdfe jDdfgej j dedZ#ej j dddgej j dedZ$ej j d e jJe jLe jNgej j dedZ(ej j dgdej j dedZ)ej j dd d!gd"d#ggej j ded$Z*ej j d%d d&gej j d'd(d)gej j ded*Z+ej j d'd(d)gej j ded+Z,ej j d e jZe j\gej j ded,Z/ej j d-ddgej j ded.Z0ej j d/ddgej j ded0Z1ej j ded1Z2ej j d2ddgej j d3e jfdfe jfdfe jhdfe jjdfgej j ded4Z6ej j d5ddgej j ded6Z7ej j ded7Z8ej j d e jrgej j ded8Z:ej j de jvdfe jxdfe jzdfe j|dfe j~d9fe jd:fgej j ded;ZAej j ded<ZBej j ded=ZCej j d e je jgej j ded>ZFej j ded?ZGej j ded@ZHej j dedAZIej j de jdfe jdfgej j deLdBZMej j dCgdej j dedDZNej j dCgdej j dedEZOej j dFdGgdHgdIfgej j dCgdej j dedJZPej j dCgdej j dedKZQej j dLddgej j dCgdej j dedMZRej j dCgdej j dedNZSej j dCgdej j dedOZTej j dCgdPej j dedQZUej j dedRZVdSZWy)T TestBatchNT)core_dimn_outkwargsr broadcast check_kwargsc |in|}ttj|jj } t |t s|fn|}||i|} |rQ|ditt| ||} t| | D]%\} } tjj| | '|dk(r| fn| }|rtj|}|djd| }t|dD]t|dD]fd|D}||i|}|dk(rtj|fnt d|D}t|D]H}t!||f||tj||f||jk(rHJtt#D])}|||j$n|}||j$|k(r)J| S)Nr"rc3,K|] }|f ywN).0arrayijs r z'TestBatch.batch_test..?s=UU1a4[=sc3FK|]}tj|ywr*)rasarray)r,refks rr0z'TestBatch.batch_test..Bs>$RZZ->s!r+)listinspect signature parameterskeys isinstancetupledictziprtesting assert_equalbroadcast_arraysr ranger2rlenr )selffunarraysr#r$r%r r&r'r7res2res1out1out2res batch_shape arrays_ijrefk out_dtyper.r/s @@r batch_testzTestBatch.batch_test s~6'++C0;;@@BC ",VU";&F%f% Ac*f56A&AD!$o 4 d ''d3 4!tg ((&1FQioojy1 {1~& BA;q>* B=f= 9//-2aZ 3)>#>>uBA#CF1a4L#a&988CF1a4L1SV\\AAAB  B Bs3x -A(- A 5Iq6<<9, ,, - rr ctjjd}|jdj|}|j t j |y)NTAH4fCrU)rr default_rngr rOr expm_condrBr rrs rtest_expm_condzTestBatch.test_expm_condMsDii##$:; JJ| $ + +E 2 ((!,rctjjd}td|d|}|j t j |td}tj|rJtj|sJyNrQrRga2U0*3?gMbP?rr%) rrrVrrOr issymmetricr;allanyrBr rrrIs rtest_issymmetriczTestBatch.test_issymmetricSeii##$:; udC @oof00!DdOoL66#;vvc{{rctjjd}td|d|}|j t j |td}tj|rJtj|sJyr[) rrrVrrOr ishermitianr;r_r`ras rtest_ishermitianzTestBatch.test_ishermitian[rcrcLtjjd}|jdj|}|j t j |tddd}t j |dd}tjj||y)NrQ)rSrTrUrU)MNr")r%r#) rrrVr rOrdiagsvdr;r=r>rBr rrrFrEs r test_diagsvdzTestBatch.test_diagsvdcswii##$:; JJy ! ( ( /v~~qQRST~~aA& d+rrCctjjd}td||}|tj k(r|dtj d|zz}|j||y)NrQrRr rrTrUr )rrrVrrsqrtmeyerOrBrCr rrs r test_matmatzTestBatch.test_matmatls] ii##$:; |5c : &,, AbffQe,,,A Qrctjjd}td||}|j t j |y)NrQrSrTrUrhro)rrrVrrOr null_spacerXs rtest_null_spacezTestBatch.test_null_space|s9ii##$:; |5c : ))1-rctjjd}td||}|j t j |ttjy)NrQr!rUrTrTro)funcr]) rrrVrrOrfunmr;sinrXs r test_funmzTestBatch.test_funmsDii##$:; |5c :  Qt/@Arctjjd}td||}|j t j |ddi}t j |d}tjj||y)NrQrzrotg?r]) rrrVrrOrfractional_matrix_powerr=r>rls rtest_fractional_matrix_powerz&TestBatch.test_fractional_matrix_powersiii##$:; |5c :v==q#cS--a5 d+rcftjjd}td||}|dtjdzz}|j t j|}t j|}t||D]%\}}tjj||'y)Nl 8 *k"XtlTCrRrorTrU) rrrVrrrrOrlogmr<r=r>)rBr rrrFrEres1ires2is r test_logmzTestBatch.test_logmsii##$JK |5c : "&&) Ov{{A.{{1~dO 2LE5 JJ # #E5 1 2rctjjd}td||}|j t j |dtdy)NrQrRror!T) return_rankr$r%)rrrVrrOrpinvr;rXs r test_pinvzTestBatch.test_pinvsBii##$:; |5c :  Qa8NOrctjjd}td||}|j t j |d|j t j |dddiy) NrQrRror!r$separateTr)rrrVrrOrmatrix_balancerXs rtest_matrix_balancezTestBatch.test_matrix_balances\ii##$:; |5c : --q: --q:dBSTrc Ltjjd}td||}tjt ddDcgc]}tj ||c}jd}|jtj|dycc}w) NrQ)rUrUrorTr!rTrUrUr!r) rrrVrr2r@triureshaperOr bandwidth)rBr rrrMs rtest_bandwidthzTestBatch.test_bandwidthsvii##$:; vU 4 JJuR|g-q=rr\r") rrrVrr qr_multiplyqrfloat32 complex64r) rBrr rrcrIqrrLrs rtest_qr_multiplyzTestBatch.test_qr_multiplysii##$:; |5c : t5c 2  AF3yy|1!eR\\ ::tA$/A-ruvdimr)rT)rUrSr!)rUrTr!ctjjd}|\}}td||}t|||}t|||}t j |\} } t j | | ||} tdD]n} | | | | }} |jdk(r||fn || || f\}}t j | |||}t| d| |dt| d| |dpy)NrQrUrSrTrorUr"r) rrrVrrr qr_updater@ndimr)rBrr rudimvdimruvrrrIr.qiriuiviref_is rtest_qr_updatezTestBatch.test_qr_updatesii##$:; d y3 7 t5c 2 t5c 2yy|1q!Q*q 1AqT1Q4B vv{aV1qt FB$$RR4E CF1IuQx 0 CF1IuQx 0  1rr)rUrTrSkdimr+rUctjjd}td||}t|||}|j dd|}t j |\}} t j|| ||} tdD]z} || | | } } |jdk(r|n|| }|jdk(r|n|| }t j| | ||}t| d| |dt| d| |d|y) NrQrUrSrSrorrSrrUr") rrrVrintegersrr qr_insertr@rr)rBrrr rrrrMrrrIr.rrkirrs rtest_qr_insertzTestBatch.test_qr_insertsii##$:; y3 7 t5c 2 LLADL )yy|1q!Q*q 1AqT1Q4BffkqtBffkqtB$$RR4E CF1IuQx 0 CF1IuQx 0  1rctjjd}td||}|j dd|}t j |\}}t j|||}tdD]c} || || } } |jdk(r|n|| } t j| | | } t|d| | dt|d| | dey)NrQrrorrUrr") rrrVrrrr qr_deleter@rr)rBrr rrrMrrrIr.rrrrs rtest_qr_deletezTestBatch.test_qr_deletesii##$:; y3 7 LLADL )yy|1q!Q'q 1AqT1Q4BffkqtB$$RR0E CF1IuQx 0 CF1IuQx 0  1rctjjd}td||}|j ||dy)NrQrRror!rrrss r test_schur_luzTestBatch.test_schur_lu rrcalc_qctjjd}td||}|rdnd}|j t j ||t|y)NrQrRror!r")rr)rrrVrrOr hessenbergr;)rBrr rrr$s rtest_hessenbergzTestBatch.test_hessenbergsOii##$:; |5c : ))1E$fBUVr eigvals_onlyctjjd}td||}|rdnd}|j t j ||t|y)NrQrRror"r!rr)rrrVrrOr eig_bandedr;)rBrr rrr$s rtest_eig_bandedzTestBatch.test_eig_bandedsVii##$:; |5c :!q ))1E#>  @rctjjd}td||}|j t j |y)NrQrRro)rrrVrrOreigvals_bandedrXs rtest_eigvals_bandedzTestBatch.test_eigvals_banded!s9ii##$:; |5c : --q1rtwo_in fun_n_noutc`tjjd}|\}}td|d|}td|d|}|dtjdj |zz}|r||fn|f} |dk(r|t jk(r tdni} |j|| || y) NrQr"rTrUrUrr!r"rUrUrUr"Trr) rrrVrrrr reighr;rO) rBrrr rrCr$rBargsr%s r test_eighzTestBatch.test_eigh's ii##$:; U ua = ua = "&&)""5)) )1vaT-2aZCr compute_expmctjjd}td||}td||}|rdnd}|j t j ||f|t|y) NrQrrorr!r")rr)rrrVrrOr expm_frechetr;)rBrr rrEr$s rtest_expm_frechetzTestBatch.test_expm_frechet5shii##$:; |5c : |5c :!q ++aV5#>  @rcvtjjd}td||}td||}|j t j ||fd\}}}tdd||f||}tdd||f||}t j ||jddt||fk(sJy) NrQ)r"rTrUrTro)r!r"rUrTrr"rTr!) rrrVrrOrsubspace_anglesr min)rBr rrrrirjKs rtest_subspace_angleszTestBatch.test_subspace_angles?sii##$:; |5c : |5c : ..A71a 1a|5c : 1a|5c :%%a+11aC1I5FFFFrctjjd}td||}|j ||y)NrQr!rTrUrSrorrss r test_svdvalszTestBatch.test_svdvalsKs5ii##$:; |5c : QrrUrhctjjd}|\}}td||}td||}|j |||f|y)NrQrrorr)rBrr rrCr$rrs rtest_two_generic_matrix_inputsz(TestBatch.test_two_generic_matrix_inputsRsTii##$:; U |5c : |5c : aV51rctjjd}d\}}td||}|dd|d|f|dd||df|d|dd|f|d|d|dff\}}}} t j |||} t j |||| f} t | | D]%\} } tjj| | 'tdD]g}tdD]W}t j |||f||}t | |D]*\} }tjj| ||f|,Yiy)NrQ)rTrU)r!rT rro.r!rT) rrrVrrcossinr<r=r>r@)rBr rprXx11x12x21x22rIrLres_irr/rMref_jkref_ijks r test_cossinzTestBatch.test_cossin`s\ii##$:;1 ~U <RaR! naRaR nQR! naQR n>S#smmAq!$mmS#sC01SM 2LE5 JJ # #E5 1 2q BA1X BqAw15&)#v&6BNE7JJ++E!Q$KAB B Brctjjd}td||}td||}td||}|j t j |||fy)NrQrro)rrrVrrOrsolve_sylvester)rBr rrrCs rtest_sylvesterzTestBatch.test_sylvesterrs[ii##$:; |5c : |5c : |5c : ..Aq :rc tjjd}td||}td||}t d|d|}t d|d|}|dtj dzz}|dtj dzz}|dtj dzz}|dtj dzz}tj d}tj d} |j|||||f|j||||||f|j||||||| f|||||} |||||| } tjj| | y) NrQrrorr rrrS)rSrS)s) rrrVrrrrzerosrOr=r) rBrCr rabrrerrIrLs rtest_arezTestBatch.test_arezsBii##$:; |5c : |5c : U L U L "&&) O "&&) O "&&) O "&&) O FF1I HHV  aAq\* aAq!_- aAq!Q/0!Q1o!Q1" ""3,rctjjd}td||}t j |\}}|j tj||fdy)NrQrror!r)rrrVrrschurrOrsf2csf)rBr rrTZs r test_rsf2cszTestBatch.test_rsf2cssPii##$:; |5c :||A1 Aa8rctjjd}td||}d|ddddf<|j t j |y)NrQ)rSrUrTrhror.r)rrrVrrOrcholesky_banded)rBr rabs rtest_cholesky_bandedzTestBatch.test_cholesky_bandedsHii##$:;  Es ;3A: ..3rctjjd}td||}td||}td||}tj|d}tj|d}tj|d}|j t j|||fd d } t j|||} t| | y) NrQ)r"rTr"rTro)r!r"rTrh)r"r"rTr!)r!rTr"rT)r!rTrTrh)r!rTrTr!F)r'r&) rrrVr broadcast_torOr block_diagr) rBr rr r ra2b2c2rLrIs rtest_block_diagzTestBatch.test_block_diagsii##$:; |5c : |5c : |5c :__Q - __Q - __Q -oof//"b"+0EC1a(S!rctjjd}|\}}td||}td||}|j |||fd|dy)NrQ)rTrUrSro)rTrUrUr"F)r#r$r&r)rBrr rrCr$dr s rtest_eigh_tridiagonalzTestBatch.test_eigh_tridiagonalsX ii##$:; U y3 7 y3 7 aVauNrbdimctjjd}td||}t|||}t j ||}t |dk(r*|dtjf}|dtjf}t||z|z ddt|tjj ||d y NrQrror".rgTqs*>r\gTqs*>) rrrVrrsolverAnewaxisr)rBr!r rrr xs r test_solvezTestBatch.test_solvesii##$:; |5c : t5c 2 LLA  t9>#rzz/"A#rzz/"AA 162299??1a0t#rzz/"A#rzz/"AA 162299??1a0taqAw''!*/Qqt''!*/Qqt))2r(Bq!tHcB!Q$-  . .rctjjd}td|d|}|dtjdzz}t j |}t|||}t j||}t|dk(r*|dtjf}|dtjf}t||z|z dd t|tj j||d y) NrQrrrrSror".rr\>) rrrVrrrr cho_factorr cho_solverAr%rr$)rBr!r rr c_and_lowerr r&s rtest_cho_solvezTestBatch.test_cho_solvesii##$:; U L "&&) O''* t5c 2   [! , t9>#rzz/"A#rzz/"AA 140299??1a0taqAw--r!Q$x.?E!Q$- . .rctjjd}td||}d|dddddf<t|||}t j ||}t dD]U}t dD]E}t|dkr|n|||f} t j |||f| } t|||f| GWy)NrQr/rorrr!rT) rrrVrr solveh_bandedr@rAr) rBr!r rrr r&r.r/r2r5s rtest_solveh_bandedzTestBatch.test_solveh_bandedsii##$:; |5c :!Q( t5c 2  A &q .A1X .t9>aqAw**1QT7C8!Q$- . .rctjjd}td||}tj|}t|||}t j ||d}t|dk(r*|dtjf}|dtjf}|tjtjfvrdnd }t||z|z d | t|tj j||d |z y) NrQrroTr?r".g|=g-C6*?rr\rS) rrrVrtrilrsolve_triangularrAr% complex128float64rr$)rBr!r rrr r&rs rtest_solve_triangularzTestBatch.test_solve_triangular)sii##$:; |5c : GGAJ t5c 2  # #Aq 5 t9>#rzz/"A#rzz/"A"--!<r)r)rUrT)r!rTrUrTchtjjd}td||}t|||}t j ||}|d}t |dk(r*|dtjf}|dtjf}t||z|z ddt |d k(sJy) NrQrrorr".r8r\rU) rrrVrrlstsqrAr%r)rBr!r rrr rIr&s r test_lstsqzTestBatch.test_lstsq8sii##$:; |5c : t5c 2ll1a  F t9>#rzz/"A#rzz/"AA 1403x1}}rctjjd}td||}|j t j |tddy)NrQrvrorTi sketch_sizerr])rrrVrrOrclarkson_woodruff_transformr;rXs r test_clarkson_woodruff_transformz*TestBatch.test_clarkson_woodruff_transformFsKii##$:; |5c : ::A#v>  @rc8tjjd}tdtj|}t j |}d}tjt|5tj|d|dddy#1swYyxYw)NrQrvroz1Batch support for sparse arrays is not available.)matchrTrQ) rrrVrrKr coo_arraypytestraisesNotImplementedErrorrrS)rBrrmessages r'test_clarkson_woodruff_transform_sparsez1TestBatch.test_clarkson_woodruff_transform_sparseMsxii##$:; |2::3 ?   Q E ]].g > J  . .qaS I J J Js .BB)X__name__ __module__ __qualname__rOrXmark parametrizefloatingrYrbrfrmrinvrqsignmsinmcosmtanhmsinhmcoshmrpinvhorthrtrxr~rrrrrcholeskyldlr9rrpolarrrqrrrrrrr)rrrrreigvalsheigvalsrrrsvdvalsrorthogonal_procrustes khatri_raosolve_continuous_lyapunovsolve_discrete_lyapunovqzordqzrrrsolve_continuous_aresolve_discrete_arer rrreigh_tridiagonaleigvalsh_tridiagonal real_floatingr r'r,r6r<rCrFrLrOrTr\r+rrr r s* 341TQU!+Z [[Wh/-0-  [[Wh/0 [[Wh/0 [[Wh/,0, [[UVZZv||%+[[&++v||%+\\6<<%+[[&,, %MN [[Wh/  0 N   [[Wh/.0.  [[Wh/B0B  [[Wh/,0, [[Wh/ 20 2 [[Wh/P0P  [[Wh/U0U  [[Wh/606  [[[FOOQ+?&**a,2,=,=q+A+CD [[Wh/-0D- [[\E4=9 [[Wh/X0:X  [[UV\\699fii$HI [[Wh/)0J)  [[V%AB [[Wh/ .0C . [[Wd|i5K&LM [[Wh/ 10N 1 [[VdI%67 [[Vb$Z0 [[Wh/ 1018 1 [[Vb$Z0 [[Wh/ 101 1 [[UV\\63C3C$DE [[Wh/)0F)  [[Xt}5 [[Wh/W06W  [[^eT]; [[Wh/@0<@ [[Wh/202  [[Xt}5 [[\V[[!,N-3__a,@6>>STBU,WX [[Wh/?0X6? [[^eT]; [[Wh/@0<@ [[Wh/ G0 G [[UV^^$45 [[Wh/ 06  [[[F,H,H!+L,2,=,=q+A,2,L,La+P,2,J,JA+N,2IIq>,2LL!+< +>?  [[Wh/20 ?2 [[Wh/B0B" [[Wh/;0; [[UV%@%@%+%>%>%@A [[Wh/-0A-( [[Wh/909  [[Wh/404  [[Wh/"0"$ [[[F,C,CQ+G,2,G,G+K+MN [[Wm4O5NO [[V%AB [[Wh/ =0C = [[V%AB [[Wh/ =0C = [[Y)Z1H(IJ [[V%AB [[Wh/ .0CK .@ [[V%AB [[Wh/ =0C = [[Wudm4 [[V%AB [[Wh/ .0C5 . [[V%AB [[Wh/ .0C . [[V%AB [[Wh/ ?0C ? [[V%AB [[Wh/ 0C  [[Wh/@0@ Jrr )r5rXnumpyr numpy.testingrscipyrrrrKr}rrJcomplex_floatingrbrrr r+rrrs^ ) RZZ( LL"--0 + + vJvJr