L iJ76ddlZddlZddlmZmZmZmZmZmZm Z m Z ddl m Z ddl mZmZmZmZmZmZmZddlZddlmZddlmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)ddl*m+Z+ddl,m-Z-m.Z.dd l/m0Z0ejejbejdfZ3ejhejjejlfZ7e3e7zZ8d Z9Gd d Z:Gd dZ;GddZ<GddZ=GddZ>GddZ?d,dZ@GddZAGddZBGddZCejjddejjd eefd!ZFGd"d#ZGGd$d%ZHGd&d'ZIGd(d)ZJGd*d+ZKy)-N)arangearraydotzerosidentity conjugate transposefloat32)random) assert_equalassert_almost_equalassert_assert_array_almost_equalassert_allcloseassert_array_equalsuppress_warnings)raises)solveinvdetlstsqpinvpinvhnorm solve_banded solveh_bandedsolve_triangularsolve_circulant circulant LinAlgError block_diagmatrix_balanceqr LinAlgWarningassert_no_overwrite)check_free_memoryIS_MUSL) HAS_ILP64c|}|tjk(rtj}n#|tjk(rtj}tj |j S)z;Get the epsilon for dtype, possibly downcast to BLAS types.)np longdoublefloat64 clongdouble complex128finfoeps)dtypdts c/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/scipy/linalg/tests/test_basic.py _eps_castr5sE B R]] ZZ r~~  ]] 88B<  c "eZdZdZdZdZdZdZdZdZ dZ e jjd eeej"eej&ge jjd eeej"eej&gd Zy ) TestSolveBandedcdtgdgdgdgdg}tgdgdgdgdg}d \}}tgd }|jd d }td d gddgd dgd dgg}tgdgdgdgdg}||||fD]'} t||f|| } tt || | )y)N?rrrr<rBrr<r@rBrCr?r<rGr>rCrFrrBrErrrBrC$@rI@g,@rErCrBr>r?rCrrrrrrrCrrCrrrreshaperrr selfaablub4b4by1b4by2b4by4bxs r4 test_realzTestSolveBanded.test_real(s ?! !# $O""!#$1 ) * 2q!1vQx1v1v |###%&eUE* 4AaVR+A %c!Qi 3 4r6cdtgdgdgdgdg}tgdgdgdgdg}d \}}tgd }|jd d }td d gddgd dgd dgg}tgdgdgdgdg}||||fD]'} t||f|| } tt || | )y)Nr:r=)@rCr<rerDrIr<r@rerJrK)rerErrrMrOrIrPy,@rErCrBr>r?rQrR)rrr?rTrUrWs r4 test_complexzTestSolveBanded.test_complex@s ?!"!# $$"""$%1 * + 2q!1vQx1v1v |$##%&eUE* 4AaVR+A %c!Qi 3 4r6ctgdgdgdg}tj|dddfdtj|dddfdztj|dddfdz}tgd}|jdd}tddgd d gdd gdd gg}tgd gd gdgdg}||||fD]%}t d||}t t |||'y)NrHrJrKrrCrBrErNr>r?rQrRrSrTrCrCrr+diagrVrrr rXrZrYr]r^r_r`rarbs r4test_tridiag_realz!TestSolveBanded.test_tridiag_realXs  O!!#$ GGBq!"uIq !BGGBq!tHa$8 8277@B1crc6 Br?rQrRrSrTrkrlrns r4test_tridiag_complexz$TestSolveBanded.test_tridiag_complexls  $!!#$ GGBq!"uIq !BGGBq!tHa$8 8277?A!SbS&z2e ejBgej4j7deeej>e ejBgdZ"y)TestSolveHBandedcztgdgdgdg}tgd}t||}t|gdyNrIrIrPrPr;r;r;rxrxrxrxr;rxr;rPrIr;rIrIrrrrXrZrarbs r4 test_01_upperzTestSolveHBanded.test_01_uppers@(((*+ & ' "a !!%9:r6ctgdgdgdg}tddgddgddgddgg}t||}tddgddgddgddgg}t||y) Nrrrr;@rxrPrIrrXrZrarbexpecteds r4 test_02_upperzTestSolveHBanded.test_02_uppers(((*+ C::::  "a 3****&' "!X.r6ctgdgdgdg}tgdjdd}t||}t|tgdjddy)NrrrrrErCrrrVrrrs r4 test_03_upperzTestSolveHBanded.test_03_uppers_(((*+ & ' / /A 6 "a !!U+;%<%D%DR%KLr6c~tgdgdgdg}tgd}t||d}t|gdy)Nrr;r;r;rrPrPrIrIrTlowerrrrs r4 test_01_lowerzTestSolveHBanded.test_01_lowersB(((*+ & ' "at ,!!%9:r6ctgdgdgdg}tddgddgddgddgg}t||d }td dgdd gd dgd d gg}t||y) Nrrrr;rrxrPTrrIrrs r4 test_02_lowerzTestSolveHBanded.test_02_lower s(((*+ C::::  "at ,3****&' "!X.r6ctgdgdgdgt}tgdt}t||}t|gdy)Nrrrrrrrr rrrs r4test_01_float32z TestSolveHBanded.test_01_float32"sE(((*18: &g 6 "a !!%9:r6ctgdgdgdgt}tddgddgddgddggt}t||}td dgdd gd dgd d gg}t||y) Nrrrrr;rrxrPrIrrs r4test_02_float32z TestSolveHBanded.test_02_float320s(((*18: C::::'. / "a 3****&' "!X.r6cztgdgdgdg}tgd}t||}t|gdy)Nrrrrr)@@@?@?)rIr;r;rIrrs r4test_01_complexz TestSolveHBanded.test_01_complexEs@(.(*+ . / "a !!%9:r6ctgdgdgdg}tddgddgdd gd d gg}t||}td d gd d gd d gd d gg}t||y)Nrrrr@@rry@@rrhrIr;rrs r4test_02_complexz TestSolveHBanded.test_02_complexSs(.(*+ D$<E?D>":  "a 3+***&' "!X.r6cttgdgdg}tgd}t||}t|gdy)Nrr;r;rxrxrxr;rxr;rIr;rIrrs r4test_tridiag_01_upperz&TestSolveHBanded.test_tridiag_01_upperhs3 O_5 6 / " "a !!_5r6ctgdgdg}tddgddgddgg}t||}tddgddgddgg}t||y)Nrrr;rxrPrIrrs r4test_tridiag_02_upperz&TestSolveHBanded.test_tridiag_02_upperssx O#%& C:::  "a 3***&' "!X.r6ctgdgdg}tgdjdd}t||}t|tgdjddy)NrrrrErCrrrs r4test_tridiag_03_upperz&TestSolveHBanded.test_tridiag_03_uppersR O_5 6 / " * *2q 1 "a !!U?%;%C%CB%JKr6cxtgdgdg}tgd}t||d}t|gdy)Nrr;r;rrTrrrrs r4test_tridiag_01_lowerz&TestSolveHBanded.test_tridiag_01_lowers: O#%& / " "at ,!!_5r6ctgdgdg}tddgddgddgg}t||d}tddgddgddgg}t||y) Nrrr;rxrPTrrIrrs r4test_tridiag_02_lowerz&TestSolveHBanded.test_tridiag_02_lowersz O#%& C:::  "at ,3***&' "!X.r6ctgdgdgt}tgdt}t||}t|gdy)Nrrrrrrrs r4test_tridiag_01_float32z(TestSolveHBanded.test_tridiag_01_float32s7 O_5W E / 1 "a !!_5r6ctgdgdgt}tddgddgddggt}t||}tddgddgddgg}t||y)Nrrrr;rxrPrIrrs r4test_tridiag_02_float32z(TestSolveHBanded.test_tridiag_02_float32s~ O#%,35 C:::&- / "a 3***&' "!X.r6cttgdgdg}tgd}t||}t|gdy)Nrrrr)rrr)rIr;r;rrs r4test_tridiag_01_complexz(TestSolveHBanded.test_tridiag_01_complexs5 '9 : ' ( "a !!_5r6ctgdgdg}tddgddgddgg}t||}td d gd d gd d gg}t||y) Nrrr@rrrrxrIrhr;rrs r4test_tridiag_02_complexz(TestSolveHBanded.test_tridiag_02_complexsz '#%& C;G$C=" # "a 3+**&' "!X.r6cxtgdgdg}tgd}t||d}t|gdy)NrrrFrsrrrs r4ruz"TestSolveHBanded.test_check_finites5 O_5 6 / " "ae 4!!_5r6ctgdgdg}tddgddgg}ttt||ttt|ddgttt|dgy)Nrrr;rxrP)rryrzr)rXrZras r4test_bad_shapesz TestSolveHBanded.test_bad_shapessb O#%& C:: j-Q7j-c3Z@j-cU;r6ctdgggdg}t|gdgt|jt jdy)NrCrCrBrQr~r)rrr rr+)rXrbs r4rzTestSolveHBanded.test_1x1s7 A3%) -1/0QWWbhhtn-r6cVgdgdgdg}gd}t||}t|gdyr)rrrs r4rz+TestSolveHBanded.test_native_list_argumentss0"""$ ! "a !!%9:r6rrc@tjgg|}tjg|}t||}|jdk(sJ|jt tj d|tjd|jk(sJtjd|}t||}|jdk(sJ|jt tj d|tjd|jk(sJy)NrrrCr) r+rrrrrrrrrs r4rzTestSolveHBanded.test_emptysXXrd% ( HHRt $ "a ww$ww%q 68NOUUUUU HHV4 ( "a ww&   ww%q 68NOUUUUUr6N)#rrrrrrrrrrrrrrrrrrrrrrurrrrrrrrr+r rrrrr6r4rrs ;/* M ;/* ;/* ;/* 6/" L 6/" 6/" 6/" 6<. ; [[WsE2::w &UV [[Vc5"**gr||%TU VVW Vr6rc 6eZdZdZej j dZdZdZ dZ dZ dZ dZ d Zd Zd Zd Zd ZdZdZdZdZdZdZdZej j5dddgdZdZdZej j ej j5dddZej j ej j5dddZd Z d!Z!d"Z"d#Z#d$Z$d%Z%ej jMd&'d(Z'ej j ej j5d)e(e)e*jVe,e*jZgej j5d*e(e)e*jVe,e*jZgd+Z.d,Z/ej j5d-e*j`e*jbgej j5dgd.ej j5d/d0d1gej j5d2d3d4gej j5d5d3d4gej j5d6d3d4gd7Z2y8)9 TestSolvecBtjjdyNr+r seedrXs r4 setup_methodzTestSolve.setup_method tr6cddgddgg}t|ddg}tt||ddgddgddgg}ddg}t||}tt||ddgy)NrCr;r333333?rrr)rXrYx0ras r4test_20Feb04_bugzTestSolve.test_20Feb04_bugstVc1X  1q"g !#a*q!f5Vc1X  G 1a[!#a*q!f5r6cddgddgg}ddgddggddgddgddggfD]$}t||}tt|||&y)NrCr<r>r?rrBrrXrYrarbs r4 test_simplezTestSolve.test_simple(siWsAh q6Aq6"a&q6C8$ 4Aa A %c!Qi 3  4r6ctddgddggd}ddgddgddggdd gtddgdfD]$}t||}tt|||&y) NrBrer?DrhrrCr)rrrrrs r4test_simple_complexzTestSolve.test_simple_complex1su Aq6B7#S )q'8aV$b'A$ 4A a A %c!Qi 3  4r6cddgddgg}dD]8}ddgddggddgfD]'}t||d|}tt|||):y) NrBrQrrrCrCrposassume_arrrXrYrrarbs r4test_simple_poszTestSolve.test_simple_pos;smVaV  8E1v1v&!f 8!Qe<)#a)Q7  8 8r6c~ddgddgg}ddgddgddggfD]&}t||d}tt|||(y)NrrBr?rhrrr rrs r4test_simple_pos_complexbz"TestSolve.test_simple_pos_complexbDs\VaV q'8aV$ 4AaU+A %c!Qi 3  4r6cddgddgg}dD]8}ddgddggddgfD]'}t||d|}tt|||):y) NrBrQrrCrsymrrr s r4test_simple_symzTestSolve.test_simple_symLsmVaW  8E1v1v&!f 8!Qe<)#a)Q7  8 8r6c~ddgddgg}ddgddgddggfD]&}t||d}tt|||(y)NrrBrhrrr rrs r4test_simple_sym_complexbz"TestSolve.test_simple_sym_complexbUs\VaW q'8aV$ 4AaU+A %c!Qi 3  4r6cddgddgg}ddgddgddgddggfD]&}t||d }tt|||(y) NrrrrhrrCrBrr rrs r4test_simple_sym_complexz!TestSolve.test_simple_sym_complex]cYr #q'a&8aV$ 4AaU+A %c!Qi 3  4r6cddgddgg}dD];}ddgddggddgddgfD]'}t||d| }tt|||)=y) NrBrQrrrCrrhherrrr s r4test_simple_her_actuallysymz%TestSolve.test_simple_her_actuallysymfstVaW  8E1v1v&!f1g 8!Qe<)#a)Q7  8 8r6cddgddgg}ddgddgddgddggfD]&}t||d }tt|||(y) NrrrrrhrrCrBrr rrs r4test_simple_herzTestSolve.test_simple_herprr6cd}t||gt||gdzz}t||fd}t|}t|t|dzz}t d|D]}|dd|f}t |||dd|f< t ||y)NrBrhrrr)r rrrrrr)rXnAXAinvRirs r4test_nils_20Feb04zTestSolve.test_nils_20Feb04ys  Aq6N61a&>", , 1a&# 1v QK B &1 "A!Q$AAqkAadG " "!T*r6cd}t||g}t|D]}dd|||fzz|||f<tdD]1}t|dg}t||}tt |||3y)Nr<皙?r?rQr rangerrrrXrrYr$rarbs r4 test_randomzTestSolve.test_randoms  Aq6Nq &A"Qq!tW*oAadG &q 4A1vAa A %c!Qi 3 4r6cd}t||gdt||gzz}t|D]}dd|||fzz|||f<tdD]1}t|dg}t||}tt |||3y)Nr<rhr(rBrQr)r+s r4test_random_complexzTestSolve.test_random_complexs  Aq6NR&!Q.0 0q &A"Qq!tW*oAadG &q 4A1vAa A %c!Qi 3 4r6c0d}t||g}t|D]9}tdd|||fzz|||f<t|D]}|||f|||f<;tdD]2}t|g}t||d}t t |||4y)Nr<r(r?rr )r r*absrrrrXrrYr$jrarbs r4test_random_symzTestSolve.test_random_syms  Aq6Nq "A"b1a4j/*AadG1X "AqD'!Q$ " "q 4As AaU+A %c!Qi 3 4r6cd}t||g}|dt||gzz}t|D]B}tdd|||fzz|||f<t|D]}t|||f|||f<Dt|gdt|gzz}tdD]&}t ||d}t t |||(y)Nr<rhr(rerBrr )r r*r0rrrrr1s r4test_random_sym_complexz!TestSolve.test_random_sym_complexs  Aq6N 61a&>! !q -A"b1a4j/*AadG1X -#AadG,!Q$ - - A3K61#; &q 4AaU+A %c!Qi 3 4r6cddgddgg}ddgddggddgddgddggfD]&}t||d}tt|||(y) NrCr<r>r?rrBFrsrrs r4ruzTestSolve.test_check_finitesiWsAh q6Aq6"QFq6C8$& 4Aa/A %c!Qi 3 4r6cd}gd}t||}t|j|t|jdk(dy)NrCrrQz'Scalar_a_1D_b test returned wrong shape)rrravelrrrs r4test_scalar_a_and_1D_bz TestSolve.test_scalar_a_and_1D_bs:   !QK!!'')Q/4!JKr6ctjgdgdgdgdg}tjddgddgd d gd d gg}t||}t|tjgd gdgjy)N)?g ףp= @gffffff@g{Gz)gh@gprgWgw)gHzG?gQg333333gp= ף)g(\gQgzGg?g ףp= #@gQx2@g@g l@gp= ף?g(\*gzGgףp= )r;rErQr)rQrBr?rC)r+rrrTrs r4 test_simple2zTestSolve.test_simple2s HH/8113 4 HHtUm'Vnen& ' !QK!!RXX/;/=&>>?a Ar6c tjgdgdgdgdg}tjddgddgd d gd d gg}t||}t|tjd dgddgddgddggy)N)yq= ףpffffff@yQ?\(\ @y(\y ףp= ?q= ףp)y333333333333,y̌@@y*@y)@+@)yRQ Qy(\Gz@yQyQ??)yHzG@(\?yQ῅Q?y(\Gzy\(\q= ףp?y(\B:@p= I@yRQ?@y33333P@33333Uy33333c@ffffff,y(\O9@y333333q= ף0>@y(\?(\@y{Gz333333@??yy@y@?yy@y@)r+rrrrs r4test_simple_complex2zTestSolve.test_simple_complex2s HHHMIIK L HH|[1#]3#\2!;/1 2 !QK!!RYY16170@14e 0>&? @r6r rrctjgdgdgdgdg}tjddgddgd d gd d gg}|d k(r |jn|jj}||z}tj||tj dtj df<t ||d}t |||}t||t |||d}t||y)N)gq= ףpy)\(?)\(y{GzzGyHzG@)rgQyq= ףpQ?yGz@zG?)rrg= ףp!yHzG?)rrrg(\yףp= @\(\$yGz<@RCy)\(# ףp= @y ףp=8 yp= ף 0yQ@zGQy)\(@Q@yRA(\2@rr?generalr Tr)r+rr=conjrmrrr)rXr rYraa2a3rrbs r4test_symmetric_hermitianz"TestSolve.test_symmetric_hermitians HHB9/&( ) HH{L1"L1#[1!=13 4 %QSS1668:: V)+299Q<1 %&BI. !Q *!!S) "a($ 7!!S)r6cdtjddjdd}ttj|dz tj dd}t |gdttj|dz tj dd}t |gdy) NrC rQ rr )"@r<r;rr+rrVrtrilrrrXr rbs r4test_pos_and_symzTestSolve.test_pos_and_symsw IIa  $ $Q * "''!*Q, U ;!!]3 "''!*Q, U ;!!]3r6c tjgdgdgdgdgdgdgdgdgdg }tjddddf}ttt ||y)N) rCrrrrrrCrrC) rCrCrCrrrrCrrC) rrCrCrrrrCrrC) rCrrCrCrCrCrrr) rCrCrCrCrCrCrCrCrCrJ)r+rrryr rrXrYras r4test_singularityzTestSolve.test_singularitysV HH1111111113 4 IIaLD !k5!Q/r6 structure) diagonal tridiagonallower triangularupper triangular symmetric hermitianpositive definiterCbandedNcBtjjd}d}tjdd|}tj|}|j|}d}t j t|5t|||dddy#1swYyxYw) NlEj]rIr2sizezIll-conditioned matrix...matchr ) r+r default_rnglogspacermrwarnsr$r)rXrSrngrdr ramessages r4test_ill_condition_warningz$TestSolve.test_ill_condition_warning s ii##L1  KK2q ! GGAJ JJAJ - \\-w 7 , !Q + , , ,s =BB) rTrUrVrWrXrYrZrCNc2d}tj||f}tj|}tjt d5tj d5t|||ddddddy#1swYxYw#1swYyxYw)NrIsingularr`ignore)allr )r+rrrrr errstater)rXrSrr ras r4test_exactly_singular_gh22263z'TestSolve.test_exactly_singular_gh22263sw  HHaV  GGAJmmKz: ,BKKH Kj%BGGAJ?r6c4tttdddy)NrCzxcvr r}rs r4test_assume_a_keywordzTestSolve.test_assume_a_keyword@sj%A?r6z5Failure on OS X (gh-7500), crash on Windows (gh-8064)reasonc*ddg}gd}tjtjtjtjg}t j |||D]2\}}}|tjtjfv}|dk(r|s2d|d|d|}tjj||j|} tjj|j|} |r5| dtjj||zj|z} |d k(r| | jz} nj|dk(r| | jjz} nG|d k(rB| jjj| d tj|zz} |tjtjfvrd nd } |dvr'|tjtjfvr| dz} t| | |} t| j| | | |z| |z||d k(s|tjtjfvst| | |d} t| j| | | |z| |z|5y)NrId)genrrrrzFailed for size: z , assume_a: z,dtype: rhrrr(-q=gư>)rrrr atolrerr_msgT)r ru)r+r r-rr/ itertoolsproductr randnrxr=rDrrrr) rXsizes assume_asdtypesr_r r is_complexrrYratolrbs r4'test_all_type_size_routine_combinationsz1TestSolve.test_all_type_size_routine_combinationsCs9S 0 **bjj",, F%.%6%6ui7=&?) 1 !D(E2<<"??J5 *4& XJG!!&)G d+2259A %,,U3ABIIOOD$77??FF5 GU" NU"FFHJJNN1%BFF4L(88 RZZ$??%TC00RZZ662ICaX.A AEE!Ha!$t!$t$+ - 5 U2<<35==3B&B!QdCa!%(4Z%(4Z(/1M) 1r6dt_arc<tjd|}tjd|}t||}|jdk(sJttjd|tj d|j }|j |k(sJyNrrrrB)r+rrr_rrrrXrrrYrarb dt_nonemptys r4rzTestSolve.test_emptytsy HHV4 ( HHQd # !QKvv{{BFF1D12771D3IJPP ww+%%%r6ctjd}ggg}t||}t|jdk(dt|j dk(dyNrBrzReturned array is not empty)rBrz#Returned empty array shape is wrong)r+rrrr_rrs r4test_empty_rhszTestSolve.test_empty_rhssJ FF1I H !QK! :;6!#HIr6r) rTrUr[rVrWrXrYr[rCrrrnrhsr)rruTF overwritefortranctjjd}|dk(sdnd}|j|f|z} |j||f} tj|tjr6| |j|f|zdzz} | |j||fdzz} |dk(r*tj tj | } n]|dk(rtj | } nA|d k(rtj| } n%|d k(rtj tj | tj tj | d d ztj tj | d d z} n|dk(r+tjtj | d d } nq|dvr| | jz} n]|dvr| | jjz} n;|dvr7| | jz} | tj | jd z } |rtj| } | jd} | j} tj|tjr9|r7d} tjt| 5t!| | |||dddyt!| | ||||}tj"j!|r | jn| | }t%|||dk7rt't!| | |||st'| | t'| | yy#1swYyxYw)Nlq~ur[rr<r^rhrTrVrWrUrErCrB>rrX>rrY>rrZaxisr )orderz#scipy.linalg.solve can currently...r`) overwrite_a overwrite_bru)rrrur rt)r+r rb issubdtypecomplexfloatingrmrMtriur=rDsumasfortranarraycopyrrryrlinalgrr )rXrr rrurrrerrar A_copyb_copyrgresrs r4test_structure_detectionz"TestSolve.test_structure_detectionsii##O4)Ar JJQD4KJ ( JJQFJ # == 2 2 3CJJQD4KJ0255ACJJQFJ+b00A z ! #A + + A + + A  &$772771b>2./772771a=!,-A !1 r*A - -ACCA - -AFFHJJA 5 5ACCA A' 'A !!!$Ac" == 2 2 3 ;G2'B -a y!+- - AqiY)H>iioo*fhh&&IS! x  vv*Es K F # F #% - s 5MMN)3rrrrrr thread_unsaferrrr rrrrrrr&r,r.r3r5rur:r>rArrGrOrRrhrnrrrvr{r~rrskiprrrr+r rrrrr-r/rrr6r4rrs [[ 6 6448484484 + 44 4 44L A@" [[Z%8*9*.4 0 [[ [[[NO, O , [[ [[[DE, E ,( 6) 4@@ [[:;-1;-1^ [[ [[Vc5"**gr||%TU [[Vc5"**gr||%TU&VV&J [[Wrzz2==&AB [[Z*JK [[Vb$Z0 [[\D%=9 [[[4-8 [[Yu 6;$79:1 KC;$r6rc eZdZdZdZdZejjde e e je e jgejjde e e je e jgdZdZy) TestSolveTriangularcDtddgddgg}ddg}t||d}t|ddgt|j|d}t|ddgt||dd}t|ddgt d}t||dd}t|d d gddggy ) : solve_triangular on a simple 2x2 matrix. rCrrBTrFrrtransr;N)rrrr=rrXr rasols r4rzTestSolveTriangular.test_simples Aq6Aq6" # Fq!40!#1v.qssAU3!#Bx0q!4q9!#Bx0 QKq!4q9!#S As8'<=r6cttddgddgg}td}t||dd}t|dd gdd ggt j dd g}t||dd}t|ddgd d ggt||dd}t|ddgdd ggt||dd}t|ddgdd ggt|j |dd}t|ddgdd ggt|j |dd}t|ddgd d ggt|j |dd}t|ddgdd ggy)zA solve_triangular on a simple 2x2 complex matrix r@rrhrBTrCry?yппr?@yy??y?yпFrN)rrrrr+rmr=rs r4rz'TestSolveTriangular.test_simple_complexsW D!9r1g& ' QKq!4q9!#(;aX'FG GGT4L !q!4q9!#A'@Aq!4q9!#J!V'EFq!4q9!#[(9Av;'GHqssAU!<!#J!V'EFqssAU!<!#A'@AqssAU!<!#Q$'@Ar6chtddgddgg}ddg}t||dd}t|ddgy)rrCrrBTF)rrtN)rrrrs r4ruz%TestSolveTriangular.test_check_finitesB Aq6Aq6" # Fq!4eD!#1v.r6rrc<tjd|}tjd|}t||}|jdk(sJttjd|tj d|j }|j |k(sJyr)r+rrr_rrrrs r4rzTestSolveTriangular.test_empty s HHV4 ( HHQd # Q "vv{{& FF1D !2771D#9 % ww+%%%r6ctjd}ggg}t||}t|jdk(dt|j dk(dyr)r+rrrr_rrs r4rz"TestSolveTriangular.test_empty_rhssK FF1I H Q "! :;6!#HIr6N)rrrrrrurrrrrr+r rrrrrr6r4rrs~>*B:/ [[Vc5"**gr||%TU [[Vc5"**gr||%TU &VV &Jr6rceZdZdZdZdZdZdZdZe jjde e ejeej"gdZy ) TestInvcBtjjdyrrrs r4rzTestInv.setup_method"rr6cddgddgg}t|}tt||tjdgdgdgdg}t|}tt||tjdy)NrCrBrQr?rr?rr@rFrI)rrrr+rrXrYa_invs r4rzTestInv.test_simple%sbVaV A!#a-;  : .A!#a-;r6cd}tdD][}t||g}t|D]}dd|||fzz|||f<t|}tt ||t |]y)Nr<r?r(r*r rrrrrXrr$rYrs r4r,zTestInv.test_random-sw q 3A1vA1X *b1a4j/!Q$ *FE %c!Um&.qk 3  3r6cbddgddgg}t|}tt||ddgddggy)NrCrBrQrrrrrrs r4rzTestInv.test_simple_complex7s:VaW A!#a-1a&1a&1ABr6cd}tdD]l}t||gdt||gzz}t|D]}dd|||fzz|||f<t|}tt ||t |ny)Nr<r?rer(rrs r4r.zTestInv.test_random_complex<s q 3A1vr&!Q.00A1X *b1a4j/!Q$ *FE %c!Um&.qk 3  3r6cfddgddgg}t|d}tt||ddgddggy)NrCrBrQr?Frsrrrs r4ruzTestInv.test_check_finiteFs=VaV AE*!#a-1a&1a&1ABr6r3ctjd|}t|}|jdk(sJ|jttj d|jk(sJyr)r+rrr_rr)rXr3rYrs r4rzTestInv.test_emptyKsS HHV2 &AzzQ{{c"&&""56<<<<r?rTF)rCrrr&)rMr>r? lapack_driverrrrrBexpected efficient rank 2, got rdriver: r) REAL_DTYPESr+rrlapack_driversrrrrrr5r) rXrrYr)rbtrraroutrbr%s r4test_simple_exactzTestLstsq.test_simple_exacts  LE1b'C8,E:A!*!9!9 L !.LI3LVVXHHRu5VVX#B2?0909; FFQ"A! EG'Aq 1-/)BHH2E-E-/)BHH2E-E2:=/0JLLL L Lr6c  tD]}tjddgddgddgg|}tjgd|}tjD]4}dD]+}|j }|j }t ||||| }|d } |d k(r+tj||j| z dz} n|d} |d} t| dk(d | ttt|| |z dzjd | dt|jzdt|jzd|t| ddt|jzdt|jzd|.7y)NrCrBr?rrQrrr$r(rr"r*rrr+rrr)gm۶mۿgm۶m?)r,r+rrr-rrrrrrr0r5r) rXrrYrar)rrrr/rb residualsr%s r4test_simple_overdetzTestLstsq.test_simple_overdets  HE1a&1a&1a&1?A%0A!*!9!9 H !.HIBBBm,5,57CAA$/$&FFAaL1+<$= $'F AAAF&EaS$IJ#CQQ(:$;$?$?Q$?$G$-)+i.A)A)+i.A)A.6}o,F H $A'M)+i.A)A)+i.A)A.6}o,FH'H H Hr6c @tD]}tjddgddgddgg|}tjgd|}tjD]D}dD];}|j }|j }t ||||| }|d } |d k(r;||j| z } tj| | jz} n|d } |d} t| dk(d | ttt|| |z dzjd | dt|jzdt|jzd|t| ddt|jzdt|jzd|>Gy)NrrBr?rrQr)rCrrQr$r(rr"rCr*rrr+r2)yu{޿ E(B?yӽu{?(YJV?)COMPLEX_DTYPESr+rrr-rrrrrDrrr0r5r) rXrrYrar)rrrr/rbrr3r%s r4test_simple_overdet_complexz%TestLstsq.test_simple_overdet_complex,s# DE4)aVaV4EBAU3A!*!9!9 D !.DIBBBm,5,57CAA$/!%%(l$&FF3+;$< $'F AAAF&EaS$IJ#CQQ(:$;$?$?Q$?$G$-)+i.A)A)+i.A)A.6}o,F H $ !$L%')BHH*=%=%')BHH*=%=*2=/(B D+D D Dr6c tD]}tjgdgdg|}tjddg|}tjD]}dD]}|j }|j }t |||||}|d} |d} t| dk(d | t| d d t|jzd t|jzd | y)NrrrrCrBr$r(rr*)gqqgqq?gdq?rr+r2) r,r+rrr-rrrrr5r) rXrrYrar)rrrr/rbr%s r4test_simple_underdetzTestLstsq.test_simple_underdetMs  HE)Y/u=A!Qu-A!*!9!9 H !.HIBBBm,5,57CAAAAAF&EaS$IJ#A(;)+i.A)A)+i.A)A.6}o,F HH H Hr6rr)r<rr)rr$c 2tjjd}tj|j||g|}t |D]}dd|||fzz|||f<t dD]}tj|j|dg|}|j } |j } t | | |||} | d} | d } t| |k(d |d | |tjurJtt|| |d t| jzd t| jzd |tt|| |dt| jzdt| jzd |"y)Nrrr<r(r?rQr(rrBexpected efficient rank , got ir+r2) r+r RandomStateasarrayr*rrrr rrr5rrXrrr)rrerYr$rarrr/rbr%s r4test_random_exactzTestLstsq.test_random_exactcs ii##D) JJszz1a&) 7q +AC!AqD'M*AadG +q >A 3::q!f-U;ABBB&3$-$-/CAAAA AF6qc:#  "a)Q"Yrxx%88"Yrxx%88$,]O"< >  a)Q#i&99#i&99$,]O"< >) >r6z$may segfault on Alpine, see gh-17630rc `tjjd}tj|j||gd|j||gzz|}t |D]}dd|||fzz|||f<t dD]}tj|j|dg|}|j } |j } t | | |||} | d } | d} t| |k(d |d | |tjurJtt|| |d t| jzd t| jzd |tt|| |dt| jzdt| jzd |"y)Nrrhrr<r(rBrQr(rr;r<ir+r2r=) r+r r>r?r*rrrrrrr5rr@s r4test_random_complex_exactz#TestLstsq.test_random_complex_exacts ii##D) JJszz1a&)Bszz1a&/A,AA" $q +AC!AqD'M*AadG +q >A 3::q!f-U;ABBBm$-$-/CAAAA AF6qc:#  $a)Q"Yrxx%88"Yrxx%88$,]O"< >  a)Q#i&99#i&99$,]O"< >' >r6ctjjd}tD]K}dD]B\}}tj D](}dD]}tj |j||g|}t|D]}dd|||fzz|||f<tdD]}tj |j|dg|} |j} | j} t| | ||| } | d } | d }t||k(d |d |t| t|| d dt| jzdt| jzd|"+ENy)Nr)r<)rrBr$rr<r(r?rQr(rrBr;r<rrr+r2)r+r r>r,rr-r?r*rrrrrr5rrXrerrmr)rrYr$rarrr/rbr%s r4test_random_overdetzTestLstsq.test_random_overdetsii##D)  NE. NA%.%=%=NM%2N JJszz1a&'9G!&q;A&(C!AqD'M&:AadG;!&qNA " 3::q!f+=U KA!"B!"B"'B6C4=4=#?C!$AA #AA#AF.FqcJ++,#-/0+*+\!Qa-H/1Ibhh4G/G/1Ibhh4G/G4<]O2L NN NN N Nr6ctjjd}tD]b}dD]Y\}}tj D]?}dD]6}tj |j||gd|j||gzz|}t|D]}dd|||fzz|||f<tdD]}tj |j|d g|} |j} | j} t| | ||| } | d } | d}t||k(d |d |t| t|| ddt| jzdt| jzd|9B\ey)NrrEr$rhrr<r(rBrQr(rr;r<rCrGrr+r2)r+r r>r6rr-r?r*rrrrrr5rrHs r4test_random_complex_overdetz%TestLstsq.test_random_complex_overdetsii##D)# JE. JA%.%=%=JM%2J JJszz1a&'9Bszz1a&?Q @' @ : :s D44D>c dD]\}}tj|}ttj||\}}}}t |tj|df|ddz|drtj dn#tj j|ddz}t ||t|dk(dt |tj dy)N))rrBr))rr?rR)r?r)r?)rS)r?rBrCrrrrBzexpected rank 0) r+rrrr rrrr) rXa_shapeb_shaperarbresiduesranksresidues_should_bes r4rzTestLstsq.test_emptys!3 , GW A#('):A#> Axq BHHgaj]WQR[%@A B4;AJ"((4.')yy~~aa~'@!'C  #5 6 DAI0 1 BHHTN + ,r6rrcLtjd|}tjd|}t||\}}}}|jdk(sJttjd|tj d|dj } |j | k(sJyr)r+rrr_rrr) rXrrrYrarbrVrWrXrs r4r zTestLstsq.test_empty_dtypes HHV4 ( HHQd #$Q{8T1vv{{BFF1D12771D3IJ1MSS ww+%%%r6N)rrrr-r0r4r7r9rrrr,rAskipifr(r6rCrJrLrurrrr+r rrr rr6r4rrs6NL2H:DBH, [[Wk2 [[S), [[_n= [[[-8>9>-3>@ [[(NO [[Wn5 [[S), [[_n= [[[-8>9>-6P >@N8J<@@ , [[Vc5"**gr||%TU [[Vc5"**gr||%TU&VV&r6rceZdZdZdZdZdZdZdZdZ dZ d Z e jjd eej"eej&gd Zy ) TestPinvcBtjjdyrrrs r4rzTestPinv.setup_method!rr6ctgdgdgdgt}t|}tt ||t j dyNrrrrrQrrrrrr+rrXrYa_pinvs r4test_simple_realzTestPinv.test_simple_real$s6 9i4E Ba!#a."&&)ڿrlrms r4test_simple_rowszTestPinv.test_simple_rows@sK Aq6Aq6Aq6*% 8a@?AB!&(3r6ctgdgdgdg}t|d}tt||t j dy)Nr)r?rrrFrsrQ)rrrrr+rrbs r4ruzTestPinv.test_check_finiteGs7 9j*5 6ae,!#a."&&)g?rIrrgMb@?rgvIh%,=g;O@{Gz?r) r#r+r rqrrVrrrrr) rXrq_a_mrYrra_padiff1adiff2s r4test_atol_rtolzTestPinv.test_atol_rtolTs( "))..A&'1iio%%a+ HHJ$3T+S1qsS3&  v.5A v.FC3T-S1qsS3& v.DA v.DAr6r3ctjd|}t|}|jdk(sJ|jttj d|jk(sJyr)r+rrr_rrrXr3rYrcs r4rzTestPinv.test_emptyosU HHV2 &a{{a||tBFF1B$78>>>>>r6N)rrrrrdrrnrprrrururrrrrr+r rrrrr6r4r]r] sg= =444= 4B6 [[TE2::w #MN?O?r6r]ceZdZdZdZdZdZdZdZdZ e jjde ejeej"gd Zy ) TestPinvSymmetriccBtjjdyrrrs r4rzTestPinvSymmetric.setup_methodyrr6ctgdgdgdgt}tj||j}t |}t tj||tjdyr`)rrr+rr=rrrrbs r4rdz"TestPinvSymmetric.test_simple_real|sN 9i4E B FF1accNq!"&&F"3RVVAY?r6cNtgdgdgdgt}tj||j}tj j |\}}}|dxxdzcc<tj||z|}t|}t|}t||y)NrrrhrrrE) rrr+rr=rsvdrrr)rXrYr\rXvtrca_pinvhs r4test_nonpositivez"TestPinvSymmetric.test_nonpositives} 9i35 A FF1accN99==#1b !  FF1q5" a(!&'2r6cLtgdgdgdgtdtgdgdgdgtzz}tj||j j }t |}ttj||tjd yrf) rrr+rrDr=rrrrbs r4rz%TestPinvSymmetric.test_simple_complexsz Iy*5 Iy'I-2"444 FF1affhjj !q!"&&F"3RVVAY?r6ctgdgdgdgt}tj||j}t |j }ttj||tjdyr`) rrr+rr=rtolistrrrbs r4ruz+TestPinvSymmetric.test_native_list_argumentsU 9i4E B FF1accNqxxz"!"&&F"3RVVAY?r6ctjgdgdgdg}t|}t||z|z|dt||z|z|dy)N)rCrEr)rErBrE)rrErCrry)r+rrr)rXrYps r4test_zero_eigenvaluez&TestPinvSymmetric.test_zero_eigenvaluesJ HHj+z: ; !HA 151A 151r6c|d}ttjj||\}}tjgddg|dz zz}|j |z|z}tjgddg|dz zz}|j |z|z}d}d}t ||d }||z|z|z } ||z|z|z } tt| |d tt| d d t ||| }||z|z|z } ||z|z|z } tt| dd tt| dd y)Nrp)r?rQrBrCvk ?gﭣ>gu>r@)r?rQrBrCrrIrIrwg1?rxr(rrgdy=ry-C6?) r#r+r rqrmr=rrr) rXrr{r|rYr}rrr~rrs r4rz TestPinvSymmetric.test_atol_rtols2 "))..A&'1 GG2gY!_D E CC!GaKgg/2$!*<=ccCi!m!ADr*S1qsS3& V d5V e%8ADt,S1qsS3&V d5V d5r6r3ctjd|}t|}|jdk(sJ|jt tj d|jk(sJyr)r+rrr_rrrrs r4rzTestPinvSymmetric.test_emptysU HHV2 &q{{a||tBFF1B$78>>>>>r6N)rrrrrdrrrurrrrrrr+r rrrrr6r4rrws_@ 3@@ 266 [[TE2::w #MN?O?r6rscale)g#B ;r;@xDpinv_ctjddgddgg|z}tjdtj|z }||}t||y)NrCrg|=r;)r+rrmr)rrrbrx_invs r4test_auto_rcondrsQ 1a&1e*%&.AwwrBGGAJ'H !HEE8$r6cxeZdZdZdZdZdZdZdZe jje dd Z y ) TestVectorNormsctjdD]}tjgd|}tdtj|j j dz}tt|tjd|tt|dtjd|tjd D]}tjgd |}tdtj|j j dz}tt|tjd|tt|dtjd|y) NAllFloatrrrr<rGrrBComplex)rhrey@) r+rrmaxr0r1realrrsqrt)rXrrbrs r4 test_typeszTestVectorNorms.test_typess\\*- ?E%0AeRXXe_0055:;C DGRWWR[s ; DAJ # >  ? \\), ?EU3AeRXXe_0055:;C DGRWWR[s ; DAJ # >  ?r6cRtdgt}tt||y)Nrr)rr r rrzs r4 test_overflowzTestVectorNorms.test_overflows  4& (DGQ'r6ctdgdgdzzt} tt|dz ddy#t$rd}t t|dz d | YywxYw) N@rCi'rrrzryzO: Result should equal either 0.0 or 0.5 (depending on implementation of snrm2).rI)r)rr rrAssertionErrorr )rXrYrs r4 test_stablezTestVectorNorms.test_stablesc 3%1#e)#7 3 A DGcM3T : A.C Q# sC @  As6%AAcdttgdddttgdddy)N)rCrrQrrBrrQ)r rrs r4test_zero_normzTestVectorNorms.test_zero_norms$T)Q'+T)Q'+r6ctjddgddgggdzd}tt|dddggdztt|ddd gdzgdzy) NrBrCrQr?rfr5D+ @6f~@r)r+rrrrzs r4 test_axis_kwdzTestVectorNorms.test_axis_kwdsc HH1v1v&'!+S 1QQ:z*B)Ca)GHQ*bTAXJN;r6ctjddgddgggdzd}t|dd}t|dd gggdzt |j d k(tt|dddd gd gggdzy) NrBrCrQr?rfT)rkeepdimsrr)rBrCrBrwg@)r+rrrrrrQs r4test_keepdims_kwdz!TestVectorNorms.test_keepdims_kwds HH1v1v&'!+S 1 T *j*567!;<9$%QD9bTB4L>A;MNr6z64-bit BLAS requiredrctdtjdgtj}d|d<t |}~t |dy)NihB)free_mblrrCrEr;)r'r+rr-rr)rXrbrs r4test_large_vectorz!TestVectorNorms.test_large_vectors?%( HHeWBJJ /"1g S!r6N)rrrrrrrrrrrr[r)rrr6r4rrsN ?( A,< O [[I .DE"F"r6rc$eZdZdZdZdZdZy)TestMatrixNormsc tjjddD]\}}tjtjtj tj tjfD]f}dtjj||j|z}tj|jtjrF|dtjj||zzj|}tj }ntj}dddddd tjtj fD]}t|| }tjj|| }tj ||rHtjj|j|| }t#||iy) Nr)rk)rCrQ)rQrC)r?r?r)rr?rIy$@frorCrErB)ord)r+r rr r-rr/int64rrxrrrrrrallcloser) rXrrIrr t_highractualdesireds r4test_matrix_normsz!TestMatrixNorms.test_matrix_norms sO tB 9DAqZZR\\2=="((R 9A.55a88=="*<*<=S299??1a#888@@CA]]FZZF"E1b!R"&&I9E!!/F iinnQEn:G;;vw7"$))..&1Au."M'89 9 9r6c tjddgddgggdzd}t|tjd}ttj|ddtjd }t|dd }t ||t ||t ||t |j|jcxk(xr|jk(nct|dd}ttj|dddd }t|tjd }t ||t ||t ||t |j|jcxk(xr|jk(ycy) NrBrCrQr?rfr&)rrrr)r+rrrswapaxesrrr)rXrYrarrfs r4rzTestMatrixNorms.test_axis_kwd s HH1v1v&'!+S 1 V , Q1%266 ?  '111177-agg-.  ' Q1%16 : V ,111177-agg-.-.r6c tjddjdddd}t|tjdd }t|d d d }t ||t |j|jk(y) NxrfrrBrQr?rr&T)rrrrCr)r+rrVrrrrr)rXrYrars r4rz!TestMatrixNorms.test_keepdims_kwd1sf IIc % - -aAq 9 Vd ;  61177"#r6ctjd}tt|dtt|dtjdtt|dtjdtjd }tt|dtt|dtjd tt|dtjdy) NrrIrrrT)rrk)rrQr8)r+rrrrrzs r4rzTestMatrixNorms.test_empty8s HHV Q$QQ$8Q.0@A HHV Q$QQ$8Q.0@Ar6N)rrrrrrrrr6r4rr s9(/"$ Br6rcBeZdZdZdZdZdZdZdZdZ dZ d Z y ) TestOverwritec(ttddgyNrQrQr8)r&rrs r4 test_solvezTestOverwrite.test_solveEEFD>2r6c(ttddgyr)r&rrs r4test_solve_triangularz#TestOverwrite.test_solve_triangularHs,vtn=r6c"tdddgy)Nctd||S)NrM)r)rZras r4z1TestOverwrite.test_solve_banded..Ls,vr1*Er6)r?r@r@r%rs r4test_solve_bandedzTestOverwrite.test_solve_bandedKsE#TN ,r6c(ttddgy)N)rBr@r)r&rrs r4test_solveh_bandedz TestOverwrite.test_solveh_bandedOsMFD>:r6c&ttdgyNr)r&rrs r4test_invzTestOverwrite.test_invRC&*r6c&ttdgyr)r&rrs r4test_detzTestOverwrite.test_detUrr6c(ttddgy)N)rQrBr8)r&rrs r4 test_lstsqzTestOverwrite.test_lstsqXrr6c&ttdgyr)r&rrs r4 test_pinvzTestOverwrite.test_pinv[sD6(+r6c&ttdgyr)r&rrs r4 test_pinvhzTestOverwrite.test_pinvh^sEF8,r6N) rrrrrrrrrrrrrr6r4rrDs/3>,;++3,-r6rc "eZdZdZdZdZdZdZdZdZ dZ e jjd eeej"eej&ge jjd eeej"eej&gd Zy ) TestSolveCirculantctjgd}tjgd}t||}tt ||}t ||yN)rCrBrQr)rCrErCr)r+rrrrrrXrrarbys r4 test_basic1zTestSolveCirculant.test_basic1dsD HH\ " HH] # Aq ! )A, "1r6ctjgd}tjdjdd}t ||}t t ||}t||y)NrCrBrrpr?rQr+rrrVrrrrrs r4 test_basic2zTestSolveCirculant.test_basic2ksP HH^ $ IIbM ! !!Q ' Aq ! )A, "1r6c*tjgd}tjdjddd}t ||}t t ||jddj|j}t||y)Nrr?rQrBrE) r+rrrVrrrrrrs r4 test_basic3zTestSolveCirculant.test_basic3ssl HH^ $ IIbM ! !!Q * Aq ! )A, !R 0 1 9 9!'' B1r6ctjgd}tjdjdddz}t ||}t t ||}t||y)N)rrrrrr?rBy?rrs r4rizTestSolveCirculant.test_complex{sV HH& ' IIaL A & - Aq ! )A, "1r6ctjjd}|jd}|jd}t ||}t t ||}t||y)Ni1r])r+r r>rrrrr)rXrerrarbrs r4test_random_b_and_cz&TestSolveCirculant.test_random_b_and_csVii##E* IIbM IIbM Aq ! )A, "1r6ctjgd}tjgd}t||d}tt ||\}}}}t ||t tt||y)NrCrCrr)rCrBrQr?r)rj)r+rrrrrryr )rXrrarbrrrnkrXs r4 test_singularz TestSolveCirculant.test_singulars\ HH\ " HH\ " Aq7 3y|Q/3Q1k?Aq9r6ctjgdggdgg}tjgdgdgdg}t||d}t|jdtj |}t t|d j|j|ddd ddf<t t|dj|j|dddddf<t||t||dd }t|jd ttj|d d |ttj|dd |jd}t|jdt||y)N)rEg@rQg @)rCr@r@g@)rrrCrCr)rCrErrrC)baxis)r?rBrQrrE)routaxis)rBrQr?rB)caxis) r+rrr r empty_likerrr9r=rmoveaxisr)rXrrarbrs r4test_axis_argsz!TestSolveCirculant.test_axis_argss+ HH()N+;< = HHlL-@ A Aq *QWWi(==#!)AaDJJL"9133?Aq!)AaDJJL"9133?Aq8$ Aq2 6QWWi( Ar1-x8 BKK1a0!##Q ?QWWi(8$r6cngd}gd}t||}tt||}t||yr)rrrrrs r4rz-TestSolveCirculant.test_native_list_argumentss2   Aq ! )A, "1r6dt_crctjg|}tjg|}t||}|jdk(sJ|jttj d|tj d|jk(sJtjd|}t||}|jdk(sJ|j|jk(sJy)NrrrQr)r+rrrrrrr)rXrrrrarbx1s r4rzTestSolveCirculant.test_emptys HHRt $ HHRt $ Aq !ww$ww/"))AT*B*,''!4*@BBG%H HH HHV4 ( Q "xx6!!!xx177"""r6N)rrrrrrrirrrrrrrrrr+r rrrrr6r4rrbs:%2 [[Vc5"**gr||%TU [[Vc5"**gr||%TU #VV #r6rceZdZdZdZdZdZdZdZdZ e jjde eej eej$gd Zy ) TestMatrix_Balancec.tttdy)NzSome string for fail)ryrzr"rs r4test_string_argz"TestMatrix_Balance.test_string_argsj.2HIr6c ttttjddgdtj ggttttjddgdtj ggy)NrCrBrQ)ryrzr"r+rrnanrs r4test_infnan_argz"TestMatrix_Balance.test_infnan_argsTj.hhABFF 45 7j.hhABFF 45 7r6c ttjddgddgg\}}ttjtj tj |dgy)Nr=rCrr)r"r+rrdifflog2rm)rXr|rs r4 test_scalingzTestMatrix_Balance.test_scalingsNbhhq D!9'=>?1  34qc:r6ctjgdgdgdg}t|\}}tt ||j ||y)N)rCrr)rCrCrz)rgY@rC)r+rr"rrr)rXr rbrs r4test_scaling_orderz%TestMatrix_Balance.test_scaling_orders> HHlL-@ Aa 1a *A.r6cttjddgddggd\}\}}ttjtj |dgt |tjdy)Nr=rCrseparaterrB)r"r+rr rrrr)rXr|rzs r4 test_separatez TestMatrix_Balance.test_separates^"288dAYq ,B#C,-/ 6AqRWWRWWQZ(1#.299Q<(r6c\ttjdtjtjdtjd}t |d\}\}}t |tj |t |tjgdy)N)rBrBrrCr)rrCr@rr?rQrB)r!r+rrMr"r ones_liker)rXr rbrrs r4test_permutationz#TestMatrix_Balance.test_permutationsn rwwv(@wwv ("1q1 6Aq2<<?+288$9:;r6c (tjgdgdgdgdgdgtjgdgdgdgdgtjgd gd gd gd gf}|D]}t|\}}t|d \}\}}tj|}tj|j d||<t |tj||ddft t||j||y)N)rIrIrIrI>)rIrIrIrIrI)rPrPrIrIrI)rIrIrrIrI)rrIrIrI)rIrrIrI)r;rIrrI)rIr;rIr)rrIr;rI)rrr;)rrrrI)rrr;rrCrr) r+rr"rrrrrmrr)rXcasesr rbrrXrips r4test_perm_and_scalingz(TestMatrix_Balance.test_perm_and_scalings5///5 78 -,-,./ ,...01$ 3A!!$DAq&q15IAv1q!BIIaggaj)BqE Arwwqz"a%0 1 E!QKOOA. 2  3r6r3ctjd|}t|\}}|jdk(sJ|jdk(sJttjd|\}}|j |j k(sJ|j |j k(sJt|d\}\}}|jdk(sJ|jdk(sJ|jdk(sJt|d\}\} } |j |j k(sJ|j | j k(sJ|j | j k(sJy)NrrrrBTr)r+rr"r_rr) rXr3rYrarb_nt_nrpermscale_nperm_ns r4rzTestMatrix_Balance.test_emptys" HHV2 &a 1vv{{vv{{!"&&""56Sww#))###ww#))###)!d;=E4vv{{zzQyyA~~!/D!A gvww#))###{{gmm+++zzV\\)))r6N)rrrr r rrrrr rrrrrr+r rrrrr6r4rrs_J7 ;/ ) <38 [[TC GR\\#RS*T*r6rr)Lrnumpyr+rrrrrrr r numpy.randomr numpy.testingr r rrrrrrrry scipy.linalgrrrrrrrrrrrrr r!r"r#r$scipy.linalg._testutilsr&scipy._lib._testutilsr'r(scipy.linalg.blasr)r-r,r,rr/r.r6DTYPESr5r8rrrrrrrr]rrrrrrrrrrr6r4r/sBBB*===== 8<'zz2::r}}5 ,, r~~> ~ %cVcVLIVIVX t$t$n OJOJd/=/=dTTnj&j&Z T?T?nK?K?\"344-0%15%9"9"x7B7Bt--