L i ddlZddlZddlZddlZddlmZmZmZm Z m Z ddlm Z ddlm Z mZmZmZmZmZmZmZmZmZmZmZmZmZmZddlZddlmZm Z m!Z!m"Z" ddlm#Z$e egZ&eegZ'e&e'zZ(dZ)dZ*Gd d Z+Gd d Z,Gd dZ-GddZ.d"dZ/GddZ0GddZ1GddZ2GddZ3GddZ4dZ5ejljoddd Z8d!Z9y#e%$rdZ$YwxYw)#N) assert_equalassert_almost_equalassert_assert_array_almost_equalassert_allclose)raises)float32float64 complex64 complex128arangetriutrilzeros tril_indicesonesmoddiagappendeyenonzero)_fblasget_blas_funcstoeplitzsolve)_cblasc tdtjdtjdtjdtjdf\}}}t |j dt |j dt,t |jdt |jdtd}t |j d td tj }t |j d td d }t |j d td tj }t |j dtd tjdtj tjdtj f}t |j dy)N)axpyrrr F)dtypeorderCzcblasrotgdgemmr"cr) rnpemptyr r rtypecoder& module_name clongdoubler )f1f2f3s b/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/scipy/linalg/tests/test_blas.pytest_get_blas_funcsr5s?  & C 8 & S 9 ; JBBc"c" R^^W-R^^W-  Bc" bll 3Bc" c *Bc" bnn 5Bc" & ;& =? Bc"ctdtj\}}|jdk(sJ|jdk(sJtdtj\}}}||usJ||usJy)N)nrm2dotr*r+)r9dotcdotu)rr,r r.r )fghs r4test_get_blas_funcs_aliasr?Esg / >DAq ::   ::  4BJJGGAq! 6M6 6M6r6ceZdZdZy)TestCBLAS1SimplecdD]4}tt|dzd}|t|gdgddgd6dD]4}tt|dzd}|t|gd gddgd 6y Nsdrr )r rGa) cz)rF@rG)rLy$@rN)getattrr&rselfpr<s r4 test_axpyzTestCBLAS1Simple.test_axpyR 2Aqx.Ay %a :&C&0 2  2  6Aqx.Ay %a J!&D&4 6  6r6N)__name__ __module__ __qualname__rUr6r4rArAPs 6r6rAcHeZdZdZdZdZdZdZdZdZ dZ d Z d Z y ) TestFBLAS1SimplecdD]4}tt|dzd}|t|gdgddgd6dD]4}tt|dzd}|t|gd gddgd 6yrCrQfblasrrRs r4rUzTestFBLAS1Simple.test_axpycrVr6cdD]4}tt|dzd}|t|gddgdzgd6dD]4}tt|dzd}|t|gddgdzgd6y)NrDcopy)rGrIrGrO)rG@y@@r^rRs r4 test_copyzTestFBLAS1Simple.test_copyqs FAqx.Ay %a A3q5&99 E  F  NAqx.Ay %a s1u&=} M  Nr6cdD]-}tt|dzd}|t|gdd/dD]-}tt|dzd}|t|gdd/y)NrDasumrGrI )scdz@ri@rQr_rrRs r4 test_asumzTestFBLAS1Simple.test_asum}ss 3Aqx.Ay * r 2  3  7Aqx.Ay . 12 6  7r6cndD]0}tt|dzd}|t|gdgdd2y)NrDr9rh)r rIrFrqrRs r4test_dotzTestFBLAS1Simple.test_dots< >Aqw-Ay *i 8" =  >r6cndD]0}tt|dzd}|t|gdgdd2y)NrOr;rmr rGrFy"@rqrRs r4test_complex_dotuz"TestFBLAS1Simple.test_complex_dotus> EAqx.Ay .)  FAqx.Ay .* =u E  Fr6cdD]@}tt|dzd}|t|gdtjdBdD]@}tt|dzd}|t|gdtjdBy)NrDr8rh2)r+r%rkrlrm)rQr_rmathsqrtrRs r4 test_nrm2zTestFBLAS1Simple.test_nrm2s >Aqx.Ay * tyy} =  > ( BAqx.Ay . 1499R= A  Br6cBdD]0}tt|dzd}|t|dgdgd2dD]0}tt|dzd}|t|dgdgd 2d D]0}tt|dzd}|t|d gdgd 2y) NrDscalr rh)i rOrnrm)rty(y(@"@)cszdrG)y"@iy"@(r^rRs r4 test_scalzTestFBLAS1Simple.test_scals EAqx.Ay %a:&6 D  E  PAqx.Ay %aN&;=N O  P  NAqx.Ay %a>&:EF BN"-$.r6r\ceZdZdZej j dZdZdZ dZ dZ dZ dZ d Zd Zd Zd Zd ZdZdZdZy)TestFBLAS2Simplec HdD]L}tt|dzd}|t|ddggdgdgt|ddggdgddgdgNdD]L}tt|dzd}|t|d d ggdgd gt|d d ggdgdd gd gNy)NrDgemvrGrirIrOrnroHB@H5r^rRs r4 test_gemvzTestFBLAS2Simple.test_gemvs HAqx.Ay %aQC52$&7# ? %aQC52$A3&?# G  H  1Aqx.Ay %adVHrd&;gY G %adVHrdAt&D'.i 1  1r6c dD]~}tt|dzd}|t|dddgddgddgddggt|dgd ddgddgd d gd d ggt|dddgddgddgddggddgdd ggdD]X}tt|dzd}|t|dddgddgddgddggt|dgdddgddgd d gd d ggZdD]_}dD]X}tt||zd}|t|dddgddgddgddggt|dgdddgddgd d gd d ggZay)NrDgerrFr rGrbrrcrErjrNrJrMrOgeru?rnrdr)rrPrn)rgercr^)rSrTr<names r4test_gerzTestFBLAS2Simple.test_gers PAqw-Ay %aAq6Aq6&:aVaV)!A|b"X*F,-q6B8b"X*FH  H Hr6c x tjddd}tj|ddtjf|z}tj|dddtjf|dddz}tjdddd }tjdd dj d }tj|ddtjf|z}tj|dddtjf|dddz}tj|ddtjf|j z}tj|dddtjf|dddj z} tjtjd |tjd fj} tdddgD]\} } tt| dzd} | t| d||| t| d|d|j| t| d|ddd || t| d|ddd || tjd| dk(rdndd}| d||d}t||| | d||}t||ut|d |z| t!t"| d|d!t!t"| d|d"t!t"| d|d"t!t"| d|d#t!t"| d|d#t!t"| d|dt!t"| d|tjd$ddtd%ddgD]\} } tt| dzd} | t| d||| t| d|d|j| t| d| d dd || t| d| d&dd || tjd| d'k(rdnd d}| d||d}t||| | d||}t||ut|d |z| t!t"| d|d!t!t"| d|d"t!t"| d|d"t!t"| d|d#t!t"| d|d#t!t"| d|dt!t"| d|tjd$ddtd%ddgD]\} } tt| d(zd} | t| d||| t| d|d|jj | t| d| d dd || t| d| d&dd | | tjd| d'k(rdnd d}| d||d}t||| | d||}t||ut|d |z| t!t"| d|d!t!t"| d|d"t!t"| d|d"t!t"| d|d#t!t"| d|d#t!t"| d|dt!t"| d|tjd$ddy))NrFrIr(r*rHr!@FendpointrMDrbrDHz>+=syr?rtolTlowerr )incxoffxnrrbrbsr<r!rK overwrite_a@rJrGrrrrrOr+her)r,r rnewaxislinspaceviewconjc_rravelziprQr_rTr assert_raises Exception)rSrresx resx_reverserr%resz resz_reverserehz rehz_reversewrTrr<rKbs r4 test_syr_herzTestFBLAS2Simple.test_syr_her s IIa# &wwqBJJ'!+,wwq2rzz!12QttW<= KK3U 3 IIa# & + +C 0wwqBJJ'!+,wwq2rzz!12QttW<= wwqBJJ'!&&(23wwq2rzz!12QttW\\^CD EE"((1+q"((1+- . 4 4 64$/ NGAtqw-Ay Ac1It$ 7 Ac1D1466 E Ac111:Dt L Ac12A;(t 5Sc3?A#qA40A At$ /#qAA AQJ  AqvD 1 )QQQ 7 )QQQ 7 )QQR 8 )QQ" 5 )QQ! 4 )QQa 8 )QQ"((632L M3 N64$/ NGAtqw-Ay Ac1It$ 7 Ac1D1466 E Ac111:Dt L Ac12A;(t 5Sc3?A#qA40A At$ /#qAA AQJ  AqvD 1 )QQQ 7 )QQQ 7 )QQR 8 )QQ" 5 )QQ! 4 )QQa 8 )QQ"((632L M3 N64$/ NGAtqw-Ay Ac1It$ 7 Ac1D1466;;=t L Ac111:Dt L Ac12A;(t 5Sc3?A#qA40A At$ /#qAA AQJ  AqvD 1 )QQQ 7 )QQQ 7 )QQR 8 )QQ" 5 )QQ! 4 )QQa 8 )QQ"((632L M3 Nr6c ,tjddd}tjddd}tj|ddtjf|z|ddtjf|zz}tj|dddtjf|dddz|dddtjf|dddzz}tjddd d }t d d dgD]\}}t t|dzd}|t|d||||t|d||d|ddddf|t|d||d|j|t|d||dddd||t|d||ddddd|ddddf|t|d||dddd||tjd|dk(rdndd} |d||| d} t| |||d ||| !} t| | ut| d|z|tt|d||d"tt|d||d#tt|d||d#tt|d||d$tt|d||d%tt|d||d%tt|d||dtt|d||dtt|d||dtt|d||tjd&dd!y)'NrFrIr(r*rMrHrrrFrrDrrsyr2rrrGrTrr rrrincyoffyrrrrrrrrr<r!rrrJrrrrr)r,r rrrrrQr_rrrrrr) rSrrresxy resxy_reverseqrTrr<rKrs r4 test_syr2zTestFBLAS2Simple.test_syr2ks IIa# & IIa# &!RZZ-(1,qBJJ/?!/CCD$B$ "2 3a"g ="#DbD"**$4"5$B$"?!@A  KK3U 34$/" 8GAtqx.Ay Ac1aL%d ; Ac1a1-uRaR!V}4 H Ac1at4eggD I Ac1aaaabI! . Ac1aaaabAN!"1"bqb&M 6 Ac1abqrK) 6Sc3?A#q!qd3A Au4 0#q!q!A AQJ  AqwT 2 )QQ : )QQ : )QQ ; )QQ : )QQ : )QQ ; )QQR 8 )QQQ 7 )QQ ; )QQHHVS#6 8C" 8r6c tjdddjd}tjdddjd}|ddtjf|j z|ddtjf|j zz}tj |}|dddtjf|dddj z}||dddtjf|dddj zz }tj |}tj tjd|tjdfj}tj tjd|tjdfj}td d d gD])\}}tt|d zd} | t| d ||||t| d ||d|ddddf|t| d ||d|jj |t| d ||dddd||t| d ||ddddd|ddddf|t| d ||dddd||tjd|dk(rdndd} | d ||| d} t| ||| d||| } t| | ut| d|z|tt | d ||dtt | d ||dtt | d ||d tt | d ||d!tt | d ||d"tt | d ||d "tt | d ||d tt | d ||dtt | d ||d#tt | d ||tjd$dd,y)%NrFrMr(r*rrrHrbrOrrher2rrrGrTrrrrrr+r!rrrJrrrIrrrrr r)r,r rrrrrrrrrQr_rrrrr) rSrrrruvrTrr<rKrs r4 test_her2zTestFBLAS2Simple.test_her2s~ IIa# & + +C 0 IIa3 ' , ,S 1!RZZ- 1668+a2:: .>.II$B$ *+a"glln< 4R4+,q2w||~==  . EE"((1+q"((1+- . 4 4 6 EE"((1+q"((1+- . 4 4 64$/# 8GAtqx.Ay Ac1aL%d ; Ac1a1-uRaR!V}4 H Ac1at4egglln!% ' Ac1aaaaaH! . Ac1aaaaa1M!"1"bqb&M 6 Ac1abqrJ) 6Sc3?A#q!qd3A Au4 0#q!q!A AQJ  AqwT 2 )QQ : )QQ : )QQ ; )QQ : )QQ : )QQ ; )QQR 8 )QQQ 7 )QQ ; )QQHHVS#6 8E# 8r6c tjjd}ttD]\}}d}d}d}d}t t |j|dzt||z dz t |j|dzt||z dz }|j|}t||zdz|f|} |d| dddf<|d| ddd f<|d | d ddf<|d | d ddf<|j|j|} |j|j|} |d |d} } td|\}|||||| | | | |  }| |j| z| | zz}t|||||||| | | | | d }| |jj| z| | zz}t||y)NrLrIrFr r*)rr)rrFr)rr r)rFrrGrbr)gbmv) mrkuklalpharKrrbeta) rrrrrrKrrrtrans) r,random default_rng enumerateDTYPESrrrastyperr9rr)rSrngindr"rrrrAAbrrrrfuncry2s r4 test_gbmvzTestFBLAS2Simple.test_gbmvsii##D)#F+ .JCAABB 2a4 0%"Q-@ 2a4 0%"Q-@BAA2a|51B$Bq"1"uI4Bq!A#vJ4Bq!A#vJ$Bq"1"uI 1 $$U+A 1 $$U+A(E"I4E"9E:EDQ2"ERQT+Bq!D1H,B %b" -Q2"ERQT4B#dQh.B %b" -= .r6c tjjd}ttD]\}}d}d}t ||f|}t |dz|f|}|j||t |t |f<td|dzD]?}|j||z } | |t ||z t ||f<| |d|z |df<A|j|}|dkr||jzn||jjz}t||dddf<|j|j|} |j|j|} |d|d} } |dkDrtd |\}ntd |\}||| || | | }| |j| z| | zz}t||y) Nrrr r*rFrH?rG)hbmv)sbmv)krrKrrr)r,rrrrrr rangerrrrrr9r)rSrrr"rrrrind2temprrrrrrrs r4test_sbmv_hbmvzTestFBLAS2Simple.test_sbmv_hbmvsii##D)#F+ .JCAAq!fE*A!Qxu-B'*jjmAfQi" #a1  *zz!D&)59&4.&q/12%)2d7DE>" *A7ACCAFFHJJAQBr1uI 1 $$U+A 1 $$U+A+uQx4EQw&y>&y>"QTBBq!D1H,B %b" -3 .r6c Htjjd}ttt zD]\}}d}|j||fj |}|dkDr||j||fdzz }|j |}|dkr||jzn||jjz}t|\}}|||f}|j|j |} |j|j |} td|zj |} td|zj |} |d|d}} |dkDrtd| \}ntd | \}||| || | | }| |j| z|| zz}t||||dz | || | |dd|| }| |dd dd fzj| ddd|| dddzz}t|ddd|t|d| dy)NibarGrFrrbr r)hpmvr*)spmv)rraprrr) rrrrrrrrrrrH)r,rrrrCOMPLEX_DTYPESrrrrr rrr9rr)rSrrr"rrr+rAprrxlongylongrrrrrs r4test_spmv_hpmvzTestFBLAS2Simple.test_spmv_hpmv sii##H-#F>$9: 1JCA Aq6"))%0AQwSZZA'**A7ACCAFFHJJA?DAq1a4B 1 $$U+A 1 $$U+A1Q3K&&u-E1I$$U+E+uQx4EQw&y>&y>2adCBq!D1H,B %b" -!5tu"1116B!CRC"H+%**5A;7$qt!t:LLB %bAh 3 1uQx 09 1r6ctjjd}ttt zD]\}}d}|j||fj |}|dkDr||j||fdzz }|j |}|dkr||jzn||jjz}t|\}}|||f}|j|j |} t t zt|dd} |dkDrCtd|\} | | dddfj| dddfjz|z} n4td |\} | | dddfj| dddfz|z} | || || } td |}| |||f<|dkDr| jn| |||f<t|| y) NrrGrFrrbg@)hprr*)spr)rrrrrGrG)r,rrrrr rrrrrrr9rr)rSrrr"rrr+r r rrrrry1fs r4 test_spr_hprzTestFBLAS2Simple.test_spr_hpr)sii##D)#F>$9: /JCA Aq6"))%0AQwSZZA'**A7ACCAFFHJJA?DAq1a4B 1 $$U+AN*CQK8=EQw&xu=Qq$wZ^^AdAgJOO,=>>B&xu=Qq$wZ^^AdAgJ77!;23Be,CC1I%(1W "C1I %c2 ./ /r6ctjjd}ttD]\}}d}|j||fj |}|dkDr||j||fdzz }|j |}|dkr||j zn||jj z}t|\}}|||f}|j|j |} |j|j |} |d} |dkDrtd|\} ntd|\} | j| dddfj| dddfjz} || z| jj z}| || | | | }td |}||||f<|gd j|gd gd f<t||y)NrrGrFrr )hpr2r*)spr2)rrrrrr)rFrGrb)rFr r )rrrF) r,rrrrrrrrrr9rr)rSrrr"rrr+r r rrrrrrrrs r4test_spr2_hpr2zTestFBLAS2Simple.test_spr2_hpr2Dsii##D)#F+ /JCA Aq6"))%0AQwSZZA'**A7ACCAFFHJJA?DAq1a4B 1 $$U+A 1 $$U+A!HEQw&y>&y> qDz~~aajoo.?@@AQ#B!qR8Be,CC1I(*9 (:(:(C4634<  2"9E:EDR1%BqB %b" -R11-B&+AhAfQi" #qB %b" -R11A6BB %b" -R11A6B"B %b" -E" .r6c 6tjjd}ttD]\}}d}d}|j|j |}t ||f|}t|dzD]1}|j||z |t||z t||f<3|dkDrI|t|xxd|j|dz|z||dzzdzz j |zz cc<t |dz|f|} t|dzD]} t|| | | dz | df<td |\} | || | } t||} t| | | || |d } |d|t|t|f<t||} t| | | || |dd } t|j|} t| | | || |dd } t|jj|} t| | y) NrrrGr*rFrr r)tbsvrrr)r,rrrrrrrr rrrrrrrrs r4 test_tbsvzTestFBLAS2Simple.test_tbsvsii##D)#F+" .JCAA 1 $$U+Aq!fE*AQqSz E36::ae3D&3-Q/0 EQw'!* cjj!A#q!QqS'1*1E&F&M&Me&T!TT !Qxu-BQqSz 2#'S>C4634<  2"9E:EDR1%Bq!B %b" -R11-B&+AhAfQi" #q!B %b" -R11A6BqssAB %b" -R11A6Bqvvxzz1%B %b" -E" .r6cvtjjd}ttD]\}}d}|j|j |}|dkrt |j||f}n3t |j||f|j||fdzz}t|\}}|||f} td|\} | || |} |j|} t| | | || |d } |d|t|t|f<|j|} t| | | || |dd } |jj|} t| | | || |dd } |jjj|} t| | y) Nrrr r)tpmvr*rrrrFrrrrrrrrr)r,rrrrrrrrr9rr rr rSrrr"rrrr+r r rrrs r4 test_tpmvzTestFBLAS2Simple.test_tpmvsii##D)#F+ .JCA 1 $$U+AQwQF+,QF+cjj!Q.@.CCD ?DAq1a4B"9E:EDbA&BqB %b" -bAA.B&+AhAfQi" #qB %b" -bAAQ7BB %b" -bAAQ7B"B %b" -; .r6cjtjjd}ttD]\}}d}|j|j |}|dkrt |j||f}n3t |j||f|j||fdzz}|t|z }t|\}}|||f} td|\} | || |} t||} t| | | || |d } |d|t|t|f<t||} t| | | || |dd } t|j|} t| | | || |dd } t|jj|} t| | y) Nrrr r)tpsvr*r(rFr)r*)r,rrrrrrrrrrrr rrr+s r4 test_tpsvzTestFBLAS2Simple.test_tpsvsii##D)#F+ .JCA 1 $$U+AQwQF+,QF+cjj!Q.@.CCD QKA?DAq1a4B"9E:EDbA&Bq!B %b" -bAA.B&+AhAfQi" #q!B %b" -bAAQ7BqssAB %b" -bAAQ7Bqvvxzz1%B %b" -; .r6c>tjjd}ttD]k\}}d}|j||ft |zj |}|jdj |}td|\}|||}t|j|} t|| |||d}|d|t|t|f<t|j|} t|| |||dd}t|jj|} t|| |||dd }t|jjj|} t|| ny) NrrG)trmvr*rKrrFrKrrrKrrrr )r,rrrrrrrrr9rr rr rSrrr"rrrrrrs r4 test_trmvzTestFBLAS2Simple.test_trmvsSii##D)#F+ .JCAQF#CF*2259A 1 $$U+A"9E:EDQBaQB %b" -QQ'B&+AhAfQi" #aQB %b" -QQa0Baq!B %b" -QQa0Ba!!%%a(B %b" -+ .r6cntjjd}ttD]\}}d}|j||ft |zj |}|j|j |}td|\}|||}tt||} t|| |||d}tt||} t|| |||d}|d|t|t|f<tt||} t|| |||dd }tt|j|} t|| |||dd }tt|jj|} t|| y) Nr)trsvr*r2rF)rKrrr3r4r )r,rrrrrrrrrrrr rrr5s r4 test_trsvzTestFBLAS2Simple.test_trsvssii##D)#F+ .JCAQF#CF*2259A 1 $$U+A"9E:EDQBtAw"B %b" -Qa(BtAw"B %b" -QQ'B&+AhAfQi" #tAw"B %b" -QQa0BtAwyy!$B %b" -QQa0BtAw||~''+B %b" -3 .r6N)rWrXrYrpytestmark thread_unsaferrrrrrrrrr"r%r,r/r6r:rZr6r4rrsy 1" [[HH@^N@+8Z08d .D.:1@/6/8$.L$.L.B.B.2.r6rceZdZdZy)TestFBLAS3Simplec DdD]K}tt|dzd}|t|ddgdgdggt|ddgdgddgdgMdD]K}tt|dzd}|t|d d gdgd ggt|d d gdgdd gd gMy)NrDr)rGrirrIrrOrnrorrrr^rRs r4 test_gemmzTestFBLAS3Simple.test_gemm's FAqx.Ay %aA3ow ? %aA3a!&=u E  F  OAqx.Ay %aTFRD&9WI; G %aTFRD!bT&BWI N  Or6N)rWrXrYrArZr6r4r?r?%s Or6r?c#PK|D]}tt||zd}||yw)z;Just a helper: return a specified BLAS function w/typecode.N)rQr_)rpsrTr<s r4 _get_funcrD6s4  E1T64 ( 9  s$&c$eZdZdZdZdZdZy) TestBLAS3Symmctjddgddgg|_tjgdgdg|_tjd|_tjgdgdg|_y) Nrr)rrH@)rHr)r rG)rrJg @)rIrHg"@)r,arrayrKrrr+trSs r4 setup_methodzTestBLAS3Symm.setup_methodAsgB88%&<(*+=')*r6c tdD]}||j|j|jdd}t ||j ||jj |jd|jdd}t ||j ||j|jj d|jj dd}t ||j j y)NsymmrrKrr+rrrFrKrrr+rr)rKrsider+rr)rDrKrr+rrLrrSr<ress r4 test_symmzTestBLAS3Symm.test_symmJs6" 5Adff$&&DC %c466 2dffhh$&&TVV2BOC %c466 2dffqDFFHH2'C %c46688 4 5r6c ttdd}|+tt|fi|j|j dddyy)NdsymmrF)rKrrrS)rQr_rrrKrrSr<s r4test_summ_wrong_sidez"TestBLAS3Symm.test_summ_wrong_sideVsD E7D ) = )Q CTVV45q+B C r6cbttdd}|||j|j|jdd}t j ||jsJ||j|jd|jdd}t j ||jrJyy)zSYMM only considers the upper/lower part of A. Hence setting wrong value for `lower` (default is lower=0, meaning upper triangle) gives a wrong result. rXNrrQrFrR)rQr_rKrr+r,allcloserLrTs r4test_symm_wrong_uploz"TestBLAS3Symm.test_symm_wrong_uplo^s E7D ) =dff$&&DC;;sDFF+ ++dffa466"MC{{3/ /// r6N)rWrXrYrNrVrZr]rZr6r4rFrF?s* 5C 0r6rFceZdZdZdZdZy) TestBLAS3Syrkctjddgddgddgg|_tjgdgdgdg|_tjd d gd d gg|_y) NrrHrrI)rrHr)rH@)rrc*@@@rd)r,rKrKrLttrMs r4rNzTestBLAS3Syrk.setup_methodmsnB898%&<()+,((RHI'(r6ctdD]s}||jd}ttj|tj|j ||jdd}ttj |tj |j tj|j j}||jdd|}ttj|tj|j |z||jdd}ttj|tj|jvy)NsyrkrrKrrF)rKrr)rKrrr+)rKrr) rDrKrr,rrLrrshapergrSr<r+c0s r4 test_syrkzTestBLAS3Syrk.test_syrkws6" DADFF"%A %bggaj"''$&&/ BDFF"A.A %bggaj"''$&&/ B&BDFF"24A %bggaj"''$&&)2D EDFF"A.A %bggaj"''$''2B C Dr6c ttdd}|3tt|fi|jdt j ddyy)Ndsyrkr)rIrc)rKrr+)rQr_rrrKr,rrYs r4test_syrk_wrong_czTestBLAS3Syrk.test_syrk_wrong_csF E7D ) = )Q B02+A B r6N)rWrXrYrNrnrqrZr6r4r_r_ls( D$Br6r_ceZdZdZdZdZy)TestBLAS3Syr2kctjddgddgddgg|_tjddgddgddgg|_tjgdgdgd g|_tjddgdd gg|_y) NrrHrarrIr)rHrJrI)rJrHrH)rIrHrfr)r,rKrKrrLrgrMs r4rNzTestBLAS3Syr2k.setup_methodsB898%&B88r7$%=(')*((RHG%&r6c`tdD]}||j|jd}tt j |t j |j ||j|jdd}tt j|t j|j t j|j j}||j|jdd|}tt j |t j |j |z||j|jdd}tt j |t j |jy)Nsyr2krrKrrrF)rKrrr)rKrrrr+)rKrrr) rDrKrrr,rrLrrrkrgrls r4 test_syr2kzTestBLAS3Syr2k.test_syr2ks 7# DADFFdffB/A %bggaj"''$&&/ BDFFdffBa8A %bggaj"''$&&/ B&BDFFdffBR2>A %bggaj"''$&&)2D EDFFdffBa8A %bggaj"''$''2B C Dr6c ttdd}|>tt|fi|j|j dt jddyy)Ndsyr2kr)r8rc)rKrrr+)rQr_rrrKrr,rrYs r4test_syr2k_wrong_cz!TestBLAS3Syr2k.test_syr2k_wrong_csO E8T * = )Q D0446020A+C D r6N)rWrXrYrNrxr{rZr6r4rsrss & D Dr6rsc:eZdZdZdZdZdZdZdZdZ dZ y ) TestSyHez2Quick and simple tests for (zc)-symm, syrk, syr2k.cDtjddgddgg|_y)NrHyr)r,rKsigma_yrMs r4rNzTestSyHe.setup_methods$xx"d"%r!,- r6ctddD]U}||j|jd}ttj|tj ddgWy)NrPzcrrwrFrHrDrrr,rrrTs r4 test_symm_zczTestSyHe.test_symm_zcsO64( FAdlldll"=C %bggclBGGQG4D E Fr6ctddD]U}||j|jd}ttj|tj ddgWy)NhemmrrrwrFrrTs r4 test_hemm_zczTestSyHe.test_hemm_zcsN64( EAdlldll"=C %bggclBGGQFO D Er6ctddD]J}||jd}ttj|tj ddgLy)NrirrrjrHrrTs r4 test_syrk_zrzTestSyHe.test_syrk_zrsI64( GAdll"-C %bggclBGGRH4E F Gr6ctddD]J}||jd}ttj|tj ddgLy)NherkrrrjrFrrTs r4 test_herk_zrzTestSyHe.test_herk_zrsH64( EAdll"-C %bggclBGGQFO D Er6c tddD]X}||j|jd}ttj|dtj ddgzZy)NrvrrrwrrHrrTs r4 test_syr2k_zrzTestSyHe.test_syr2k_zrsT7D) JAdlldll"=C %bggclBrwwBx7H4H I Jr6c tddD]X}||j|jd}ttj|dtj ddgzZy)Nher2krrrwrrFrrTs r4 test_her2k_zrzTestSyHe.test_her2k_zrsS7D) HAdlldll"=C %bggclBrww1v4F G Hr6N) rWrXrY__doc__rNrrrrrrrZr6r4r}r}s.<-F E G E J Hr6r}cleZdZdZdZej jdedZ dZ dZ dZ y) TestTRMMz!Quick and simple tests for dtrmm.c*tjddgddgg|_tjgdgdg|_tjgdgdgdgd gd |_tjd d gddgddgddgddggd |_y)NrrrarIrbrJrerfra)rFrFr rG)rrFrbrI)rrrFr)rrrrFr<)r#rFrbr rIrGrrLrcrMr)r,rKrKra2b2rMs r4rNzTestTRMM.setup_methodsB:9&'=(*+((L(((*256((QFQFQFQFQGD!$&r6dtype_c td|}tt|d|j|j|d|jj ||jj |d}|jj d}t||j|jd|d|fzddtj|jzy) Ntrmmr*rrF)rSrHd)ratol) rrrrrrrkrr,finfoeps)rSrrrUrs r4 test_sidezTestTRMM.test_sidesfF3isDGGTWW=3v.v0F GGMM! TWWtwwrr2A2v6R &!1!5!55 7r6cttdd}|F|d|j|j}t j gdgdg}t ||yy)Ndtrmmr)rdg0@grrQr_rKrr,rKrrSr<resultexpecteds r4test_abzTestTRMM.test_absR E7D ) =r466466*Fxx!.!01H %fh 7 r6cttdd}|H|d|j|jd}t j gdgdg}t ||yy)NrrTrr)rJrarHrrs r4 test_ab_lowerzTestTRMM.test_ab_lowersT E7D ) =r4664666Fxx!/!12H %fh 7 r6cRttdd}|dD]}|jj}|d|j||}t |j jduxrtj||dut||jtj|jj}|d|j|d}t |j jduxrtj||dut||yy)Nr)TFr) overwrite_bFT) rQr_rrarKrflags f_contiguousr,may_share_memoryrasfortranarrayr)rSr<overwrbcopyrs r4test_b_overwriteszTestTRMM.test_b_overwrites s E7D ) =' , 2tvvu&A 00E9D++E6:eCEUDFF+  ,%%dffkkm4Er4665d;F EKK,,4?''v6$> @ %eV 4 r6N) rWrXrYrrNr;r< parametrizerrrrrrZr6r4rrs>+ & [[Xv.7/7885r6rc ztjjd}ttD]\}}tj |j dz}td|\}|jdj|}|jdj|}|d}tt||||tt|||j|d}d } |d }|d kr |j| | ft| z}n6|j| | f|j| | fd zzt| z}|j|}t|} t|} |j| |fj|} |j|| fj|} |||| }t| j |j t#| || z}t%||||||| d}t#| j|| z}t%||||||| d }t#| j'j|| z}t%||||||| d}|d| t)| t)| f<t#| || z}t%||||||| dd}t#| j'j|| j'jz}t%||j'j||||| ddd}|d| t)| t)| f<t#| j'j|| j'jz}t%||j'j|y)Nri)trsmr*)rbrIrrFrcrLgr r)rrKr)r)rrKrtrans_a)rrKrr)rrKrrrS)rrKrrrSr)r,rrrrrrrrrrrrrrrrkrrrr )rrr"tolrrBrrrAuAlB1B2rx2s r4 test_trsmr!s ))   %C'13 Uhhuo!!$&y6 JJv  % %e , JJv  % %e ,aiua3iuacc15  d  7 Aq6"SV+AQF#cjj!Q&8&;;s1vEA HHUO !W !W ZZA  & &u - ZZA  & &u - b )RXXrxx( 2uRx BS) b! 4 244r "BS) b! 4 2779;;b )BS) bq 1#(86!9fQi  2uRx BS) bqq 9 2779;;bggikk 1 2BGGIKKc2 bqq B#(86!9fQi  2779;;bggikk 1 2BGGIKKc2c13r6Fzgh-16930)runreasonctjdd}tjjj |ddd}t jd}t||y)NrrMrIrGrHi) r,repeatscipylinalgblasdnrm2r~rr)ractualrs r4test_gh_169309rWsK "aA \\   $ $Q1b 1Fyy~HFH%r6ctjdd}d}ttj5t j jj|dd|dddy#1swYyxYw)NrrMrHrIrG) r,rrr_ __fblas_errorrrrr)rrs r4test_dnrm2_neg_incxr`sZ "aA D u** +/ 1a.///s -A((A1)sdzc):r~r;numpyr, numpy.random numpy.testingrrrrrrrr r r r r rrrrrrrrrrr scipy.linalgrr_rrrrr& ImportError REAL_DTYPESr rr5r?rAr\rr?rDrFr_rsr}rrr<xfailrrrZr6r4rs:  GG* II, Z( ~ %$#N66"r.r.lK .K .\OO"*0*0Z!B!BJ$D$DP%H%HP=5=5@33lu$&&&&/U" EsC99DD