+
    nDj                        ^ RI t ^ RIt^ RIt^ RIHtHtHtHt ^ RIH	t
 ^ RIHtHtHtHtHtHtHtHtHtHt ^ RIt^ RIHtHtHt ^ RIHt  ^ RIHt ]P<                  tRt  ^ R
IH"t# ]#PH                  t]PJ                  ]PL                  .t']PP                  ]PR                  .t*]']*,           t+R t,R t-R t.R t/R t0R t1R+R lt2 ! R R4      t3 ! R R4      t4 ! R R4      t5 ! R R4      t6 ! R R4      t7 ! R R4      t8 ! R R4      t9 ! R  R!4      t:]2! R"R#4      R$ 4       t;]Px                  P{                  R	R%R&7      R' 4       t>]Px                  P{                  ]R(R)7      R* 4       t?R#   ]! d	    RtR	t  ELi ; i  ]! d    Rt# ELi ; i),    N)assert_equalassert_almost_equalassert_array_almost_equalassert_allclose)raises)
arangetriutrilzerostril_indicesonesdiagappendeyenonzero)get_blas_funcstoeplitzsolve)	HAS_ILP64)_fblasTF)	_fblas_64c            
      8   \        R\        P                  ! R\        P                  RR7      \        P                  ! R\        P                  RR7      34      w  rp\        V P                  R4       \        VP                  R4       \        R4      p \        V P                  R4       \        R\        P                  R7      p \        V P                  R	4       \        RRR7      p \        V P                  R	4       \        R\        P                  R7      p \        V P                  R4       \        R \        P                  ! R\        P                  R7      \        P                  ! R\        P                  R7      34      p \        V P                  R4       R
# )axpyF)dtypeorderCzrotgdgemmr   cN)r   r   r      r%   )	r   npempty	complex64
complex128r   typecodeclongdoublefloat64)f1f2f3s      V/data/cameron/venvs/s3viz/lib/python3.14/site-packages/scipy/linalg/tests/test_blas.pytest_get_blas_funcsr1   '   s      	&C	8	&S	9	;
JBB c"c" 
	Bc" 
bll	3Bc"	c	*Bc" 
bnn	5Bc" 
&

;&=?
B c"    c                  $   \        R \        P                  ! ^4      3RR7      p \        '       d"   V P                  \        P
                  8X  g   Q h\        P                  '       g   Q h\        '       d   V P                  R8X  g   Q h \        R \        P                  ! ^4      34      p \        '       d"   V P                  \        P
                  8X  g   Q h\        P                  '       g   Q h\        '       d   V P                  R8X  g   Q hR# R# )r!   	preferredilp64fblas_64N)r   r&   r   r   	int_dtypeint64int32module_namer!   s    r0   !test_get_blas_funcs_ilp_preferredr=   K   s    &266!9,kBD)24>>RXX%@@@@-6Y4z)CCG &266!9,/D)24>>RXX%@@@@-6Y4z)CCG)r2   c                     \         '       dZ   \        R \        P                  ! ^4      3RR7      p V P                  \        P
                  8X  g   Q hV P                  R8X  g   Q hR# \        P                  ! \        4      ;_uu_ 4        \        R \        P                  ! ^4      3RR7       RRR4       R#   + '       g   i     R# ; i)r!   Tr5   r7   N)
r   r   r&   r   r8   r9   r;   pytestr   RuntimeErrorr<   s    r0   test_get_blas_funcs_ilp_truerA   W   s}    yfrvvayl$?~~))):---]]<((6BFF1I<t< )(((   $B66C	c                     \         '       dZ   \        R \        P                  ! ^4      3RR7      p V P                  \        P
                  8X  g   Q hV P                  R8X  g   Q hR# \        P                  ! \        4      ;_uu_ 4        \        R \        P                  ! ^4      3RR7       RRR4       R#   + '       g   i     R# ; i)r!   Fr5   fblasN)
HAS_LP64_FBLASr   r&   r   r8   r:   r;   r?   r   
ValueErrorr<   s    r0   test_get_blas_funcs_ilp_falserG   b   s}    ~frvvayl%@~~)))7***]]:&&6BFF1I<u= '&&&rB   c                      \        R\        P                  R7      w  rV P                  R8X  g   Q hVP                  R8X  g   Q h\        R\        P                  R7      w  rpWJ g   Q hWJ g   Q hR# )nrm2r"   r#   N)rI   dot)rJ   dotcdotu)r   r&   r(   r*   r,   )fghs      r0   test_get_blas_funcs_aliasrP   m   s_    />DA::::4BJJGGA!6M66M6r2   c                   V P                  R4      '       d   V R,          p M!V R9   d   V ^ ,          p MV R9   d
   V ^ ,          p R\        P                  R\        P                  R\        P                  R\        P
                  /pW,          # )	z%Array dtype from a blas-style prefix.i:   NNr   r#   r    s)scdz)cszd)
startswithr&   r)   r(   r,   float32)prefixdt_maps   & r0   _dt_from_prefixr]   x   sl    	<		<	2==#r||S"**c2::VF>r2   c                   Vf   \         R3\        R3.p. pV F  w  rEV F  p\        V4      pVfD   \        P                  ! RVV RV V  2\        P
                  P                  V R2R7      R7      pM1\        WFV ,           4      p	\        P                  ! WV RV V  2R7      pVP                  V4       K  	  K  	  \        P
                  P                  R	V4      # )
a?  Parametrize a test over BLAS prefixes, "sdcz", and over the BLAS modules,
`fblas,fblas_64.

Given a func_name "gemm", this generates a pytest parametrization over up to 8
variants: sgemm, dgemm, cgemm, zgemm, each loaded from `fblas` (i.e. 32-bit LP64
variants) and `fblas_64` (i.e. 64-bit ILP64 variants)..

If a module is not available, the pytest parameter has a skip mark, so that the
test is skipped with a descriptive message.

Parameters
----------
func_name : str
    The base name of a BLAS function, e.g. "gemm"
prefixes : str or sequence
    BLAS prefixes to prepend to `func_name`.
    E.g. ``func_name='gemm', prefixes='cz'`` generates `cgemm` and `zgemm`.
modules : sequence of ``(module, str)`` pairs
    BLAS modules to fetch functions from. By default, use `fblas` (LP64 variant)
    and fblas_64 (ILP64 variant).
NrD   r7   . is not availablereason)idmarks)rc   zf, dtype)
rD   r7   r]   r?   parammarkskipgetattrr   parametrize)
	func_nameprefixesmodulesparamsmodmod_namer[   r   param_rM   s
   &&&       r0   parametrize_blasrq      s    , 7#h
%;<F F#F+E{%"1VHYK8 ++**XJ>O2P*Q C)!34ahZq3TUMM&!  !" ;;"":v66r2   c                   \  a  ] tR t^t o ]! RR4      R 4       t]! RR4      R 4       t]! R. RO4      R 4       t]! RR	4      R
 4       t]! RR4      R 4       t	]! RR4      R 4       t
]! R. RO4      R 4       t]! R. RO4      R 4       t]! RR4      R 4       t]! R. RO4      R 4       tRtV tR# )TestFBLAS1Simpler   sdczc                    \        V! . RO. RO^R7      . RO4       V\        9   d   \        V! . RO. RO^R7      . RO4       R# R# )rS   aNrS   r%      )r%   ry   )   	      )rS                  @ry   )r{   y            $@r}   r   COMPLEX_DTYPESselfrM   r   s   &&&r0   	test_axpyTestFBLAS1Simple.test_axpy   s;    !!IzQ"?",	.N"%a
J!&D&46 #r2   copyc                    \        V! . RO^.^,          4      . RO4       V\        9   d"   \        V! . RO^.^,          4      . RO4       R# R# )ry   N)ry         )ry                 @y      @      @r   r   s   &&&r0   	test_copyTestFBLAS1Simple.test_copy   s=    !!Is1u"5yAN"%as1u&=}M #r2   asumc                p    \        V! . RO4      ^4       V\        9   d   \        V! . RO4      ^4       R# R# ry   Nry   r                 @r         @      )r   r   r   s   &&&r0   	test_asumTestFBLAS1Simple.test_asum   s,    AjM2.N". 126 #r2   rJ   sdc                4    \        V! . RO. RO4      R4       R# )ry   Nr   )r%   r   rS   ir   r   s   &&&r0   test_dotTestFBLAS1Simple.test_dot   s    Aj)4b9r2   rL   czc                4    \        V! . RO. RO4      R4       R# )r   Nr   r%   ry   rS   y      "       @r   r   s   &&&r0   	test_dotuTestFBLAS1Simple.test_dotu   s    Ani8%@r2   rK   c                4    \        V! . RO. RO4      R4       R# )r   Nr   r%   r   rS   y      @      ,r   r   s   &&&r0   	test_dotcTestFBLAS1Simple.test_dotc   s    Anj95Ar2   rI   c                    \        V! . RO4      \        P                  ! ^24      4       V\        9   d+   \        V! . RO4      \        P                  ! ^24      4       R# R# r   )r   mathsqrtr   r   s   &&&r0   	test_nrm2TestFBLAS1Simple.test_nrm2   s<    AjM499R=9N". 1499R=A #r2   scalc                |    \        V! ^. RO4      . RO4       V\        9   d   \        V! ^. RO4      . RO4       R# R# )r%   Nr   )   i
   r   )y              "@iy      "@      (r   r   s   &&&r0   	test_scalTestFBLAS1Simple.test_scal   s2    !!Az"2K@N"%a>&:<LM #r2   swapc                    . RO. ROrCV! W44      w  rV\        WT4       \        Wc4       V\        9   d*   . RO. ROrCV! W44      w  rV\        WT4       \        Wc4       R# R# )r%   Nr   )ry   r{   r   )r   ry   y      @      r   )r   rM   r   xyx1y1s   &&&    r0   	test_swapTestFBLAS1Simple.test_swap   sS    *11!"(!"(N"}qqWFB%b,%b,	 #r2   amaxc                p    \        V! . RO4      ^4       V\        9   d   \        V! . RO4      ^4       R# R# )r%   N)r   r   ry   )y      @      @r   )r   r   r   s   &&&r0   	test_amaxTestFBLAS1Simple.test_amax   s,    Qz]A&N"=)1- #r2    N)rT   r    rU   rV   )rT   r    rW   rX   )isrc   iciz)__name__
__module____qualname____firstlineno__rq   r   r   r   r   r   r   r   r   r   r   __static_attributes____classdictcell____classdict__s   @r0   rs   rs      s    ff%6 &6 ff%N &N
 f457 67
 eT": #: fd#A $A fd#B $B f45B 6B
 f45N 6N
 ff%
- &
- f67. 8.r2   rs   c            
         a ] tR t^t o]! RR4      R 4       t]! RR4      R 4       t]! RR4      R	 4       t]! R
R4      R 4       t]! RR4      R 4       t	]! RR4      R 4       t
]! RR4      R 4       t]! RR4      R 4       t]! RR4      R 4       t]P                  P!                  RRR.4      ]P                  P!                  R]4      R 4       4       t]P                  P!                  RRR.4      ]P                  P!                  R. ]],            U u. uF  p RV 3NK	  	  up O] U u. uF  p RV 3NK	  	  up O4      R 4       4       t]P                  P!                  RRR.4      ]P                  P!                  R. ]],            U u. uF  p RV 3NK	  	  up O] U u. uF  p R V 3NK	  	  up O4      R! 4       4       t]P                  P!                  RRR.4      ]P                  P!                  R]4      R" 4       4       t]! R#R4      R$ 4       t]! R%R4      R& 4       t]! R'R4      R( 4       t]! R)R4      R* 4       t]! R+R4      R, 4       t]! R-R4      R. 4       tR/tVtR0# u up i u up i u up i u up i )1TestFBLAS2Simplegemvrt   c           	         \        V! ^^..R.4      R.4       \        V! ^^..R.^^.4      R.4       V\        9   d6   \        V! RR..R.4      R.4       \        V! RR..R.^R.4      R	.4       R# R# 
ry   r   y              @Nr   iir   y      H      By      H      5r   r   s   &&&r0   	test_gemvTestFBLAS2Simple.test_gemv   s    !!Aurd"3cU;!!AurdAs";cUCN"%adVHrd&;gYG%adVHrdAt&D'.i1 #r2   gerr   c           
     h   \        V! ^^^.^^.4      ^^.^^..4       \        V! ^. RO^^.4      ^^.^^.^^..4       \        V! ^^^.^^.^^.^^..R7      ^^.^	^..4       V\        9   dB   \        V! ^R^.^^.4      RR.^^..4       \        V! ^. RORR.4      ^^.^^.^^..4       R# R# )rS   rv                 ?r   r   Nrx   r   r~   r   r   r   s   &&&r0   test_gerTestFBLAS2Simple.test_ger  s    !!A1v1v"6!Q!Q8HI!!Ay1a&"9$%q6B8b"X">	@!!A1v1v&'VaV$4#69:AB7H	JN"%aB7QF&;(*Bx!Q&8:%a<"b&B()1vBx"b&BD #r2   gerur   c                    \        V! ^R^.^^.4      RR.^^..4       \        V! R. RORR.4      ^^.^^.^^..4       R# )rS   r   r   r   Nr   r   r   r   s   &&&r0   	test_geruTestFBLAS2Simple.test_geru  s[    !!AAwA"7$&8aV"4	6!!Br2h"?$%q6B8b"X">	@r2   gercc                    \        V! ^R^.^^.4      RR.^^..4       \        V! ^. RORR.4      ^^.^^.^^..4       R# )rS   r   r   r   Nr   r   r   s   &&&r0   	test_gercTestFBLAS2Simple.test_gerc  s[    !!AAwA"7$&8aV"4	6!!A|b"X">$%q6B8b"X">	@r2   syrc                   \         P                  ! ^^RR7      p\         P                  ! VR\         P                  3,          V,          4      p\         P                  ! VRRR1\         P                  3,          VRRR1,          ,          4      p\         P                  ! ^ R^RR7      p\         P                  ! ^^	RR7      P                  R4      p\         P                  ! VR\         P                  3,          V,          4      p\         P                  ! VRRR1\         P                  3,          VRRR1,          ,          4      p	\         P                  \         P                  ! ^4      V\         P                  ! ^4      3,          P                  4       p
\         P                  ! V4      P                  p\        V! R	V4      WKR
7       \        V! R	VRR7      VP                  VR
7       \        V! R	V^^^R7      WKR
7       \        V! R	VR^^R7      W[R
7       V\        9   d   \        V! R	V4      WR
7       \        V! R	VRR7      VP                  VR
7       \        V! R	V
^^^R7      WR
7       \        V! R	V
R^^R7      WR
7       \         P                  ! RVR4      pV! R	W|RR7      p\        WVR
7       V! RW|R7      pWJg   Q h\        V^V,          VR
7       MV\         P                  ! RVR4      pV! R	W<RR7      p\        WVR
7       V! RW<R7      pWJg   Q h\        V^V,          VR
7       \        \        VR	V^ R7       \        \        VR	V^R7       \        \        VR	VRR7       \        \        VR	VRR7       \        \        VR	V^R7       \        \        VR	V^R7       \        \        VR	V\         P                  ! RRR4      R7       R# )rS   r    r"   NNNN      !@FendpointD      ?rtolTlowerincxoffxnr   rw   overwrite_a       @rv   r   r   r   rz   r   r   r   r$   )r&   r   r	   newaxislinspaceviewc_r   ravelfinfoepsr   Tr   assert_raises	Exception)r   rM   r   r   resxresx_reverser   r   reszresz_reversewr   rw   bs   &&&           r0   test_syrTestFBLAS2Simple.test_syr  s   IIa#&wwqBJJ'!+,wwq2rzz!12QttW<=KK3U3IIa#&++C0wwqBJJ'!+,wwq2rzz!12QttW<=EE"((1+q"((1+-.446xx""#q	43#q-tvvDA#qqqA6H#qrQ7$	1 N"Ac1It7Ac1D1466EAc111:DLAc12A;(5 ,A#q40AA$/#qA::AqvD1 ,A#q40AA$/#qA::AqvD1iC3iC3iC4iCb1iCa0iC!4iCbhhvsC.HIr2   herc                `   \         P                  ! ^^RR7      p\         P                  ! ^^	RR7      P                  R4      p\         P                  ! VR\         P                  3,          VP                  4       ,          4      p\         P                  ! VRRR1\         P                  3,          VRRR1,          P                  4       ,          4      p\         P                  \         P                  ! ^4      V\         P                  ! ^4      3,          P                  4       p\         P                  ! V4      P                  p\        V! RV4      WXR7       \        V! RVRR	7      VP                  P                  4       VR7       \        V! RV^^^R
7      WXR7       \        V! RVR^^R
7      WhR7       \         P                  ! RVR4      p	V! RWIRR7      p
\        WVR7       V! RWIR7      p
WJg   Q h\        V
^V,          VR7       \        \        VRV^ R7       \        \        VRV^R7       \        \        VRVRR7       \        \        VRVRR7       \        \        VRV^R7       \        \        VRV^R	7       \        \        VRV\         P                  ! RRR4      R7       R# )rS   r    r"   r   r   Nr   r   Tr   r   r   r   r   rv   r   r   r   rz   r   r   r   r$   )r&   r   r   r	   r   conjr   r   r   r   r   r   r   r   r   )r   rM   r   r   r   rehzrehz_reverser  r   rw   r  s   &&&        r0   test_herTestFBLAS2Simple.test_herO  s   IIa#&IIa#&++C0wwqBJJ'!&&(23wwq2rzz!12QttW\\^CDEE"((1+q"((1+-.446xx""#q	43#q-tvv{{}4H#qqqA6H#qrQ7$	1 HHVUC(c1t,d+c1Nzz1T6-iC3iC3iC4iCb1iCa0iC!4iCbhhvsC.HIr2   syr2c                0   \         P                  ! ^^RR7      p\         P                  ! ^^	RR7      p\         P                  ! VR\         P                  3,          V,          VR\         P                  3,          V,          ,           4      p\         P                  ! VRRR1\         P                  3,          VRRR1,          ,          VRRR1\         P                  3,          VRRR1,          ,          ,           4      p\         P                  ! ^ R^RR7      p\         P
                  ! V4      P                  p\        V! RW44      WXR	7       \        V! RW4^R
7      VR,          VR	7       \        V! RW4RR7      VP                  VR	7       \        V! RWw^^^^
R7      WXR	7       \        V! RWw^^^^
^R7      VR,          VR	7       \        V! RWwR^R^
R7      WhR	7       \         P                  ! RVR4      p	V! RW4V	RR7      p
\        WVR	7       V! RW4V	R7      p
WJg   Q h\        V
^V,          VR	7       \        \        VRW4^ R7       \        \        VRW4^R7       \        \        VRW4RR7       \        \        VRW4^ R7       \        \        VRW4^R7       \        \        VRW4RR7       \        \        VRW4RR
7       \        \        VRW4^R
7       \        \        VRW4^R7       \        \        VRW4\         P                  ! RRR4      R7       R# )rS   r    r"   r   Nr   Fr   r   r   r   Tr   r   r   incyoffyr   r   r  r  r   r   r   r   rv   r   r   r  r  rz   Nry   Nr  r   r   r$   )r&   r   r	   r   r   r   r   r   r   r   r   r   )r   rM   r   r   r   resxyresxy_reverseqr   rw   r  s   &&&        r0   	test_syr2TestFBLAS2Simple.test_syr2p  s   IIa#&IIa#&!RZZ-(1,qBJJ/?!/CCD$B$

"2 3a"g ="#DbD"**$4"5$B$"?!@ A KK3U3xx""#qe7#qq)5=tD#q40%''E#q!!!"E	*#q!!!"JfD	2 	#q"12BG%	2 HHVUC(c11$/t,c11zz1U7.iCA6iCA6iCB7iCA6iCA6iCB7iC4iC3iCQ7iC&#s1KLr2   her2c                   \         P                  ! ^^	RR7      P                  R4      p\         P                  ! ^	^RR7      P                  R4      pVR\         P                  3,          VP	                  4       ,          VR\         P                  3,          VP	                  4       ,          ,           p\         P
                  ! V4      pVRRR1\         P                  3,          VRRR1,          P	                  4       ,          pWdRRR1\         P                  3,          VRRR1,          P	                  4       ,          ,          p\         P
                  ! V4      p\         P                  \         P                  ! ^4      V\         P                  ! ^4      3,          P                  4       p\         P                  \         P                  ! ^4      V\         P                  ! ^4      3,          P                  4       p\         P                  ! V4      P                  p	\        V! RW44      WYR7       \        V! RW4^R7      VR,          V	R7       \        V! RW4R	R
7      VP                  P	                  4       V	R7       \        V! RWx^^^^R7      WYR7       \        V! RWx^^^^^R7      VR,          V	R7       \        V! RWxR^R^R7      WiR7       \         P                  ! RVR4      p
V! RW4V
R	R7      p\        WV	R7       V! RW4V
R7      pWJg   Q h\        V^V,          V	R7       \        \        VRW4^ R7       \        \        VRW4^R7       \        \        VRW4RR7       \        \        VRW4^ R7       \        \        VRW4^R7       \        \        VRW4RR7       \        \        VRW4RR7       \        \        VRW4^R7       \        \        VRW4^R
7       \        \        VRW4\         P                  ! RRR4      R7       R# )rS   r    r"   r   r   Nr   r   r   Tr   r  r  r   r   r   rv   r   r   r  r  rz   r  r   r   r   r$   )r&   r   r   r   r  r	   r   r   r   r   r   r   r   r   r   )r   rM   r   r   r   r  r  uvr   rw   r  s   &&&         r0   	test_her2TestFBLAS2Simple.test_her2  s   IIa#&++C0IIa3',,S1!RZZ- 1668+a2::.>.II$B$

*+a"glln<4R4+,q2w||~==.EE"((1+q"((1+-.446EE"((1+q"((1+-.446xx""#qe7#qq)5=tD#q40%'',,.!	# 	#q!!!!D	*#q!!!!qIfD	2 	#q"12AF%	2 HHVUC(c11$/t,c11zz1U7.iCA6iCA6iCB7iCA6iCA6iCB7iC4iC3iCQ7iCc2	4r2   gbmvc                   \         P                  P                  R 4      p^p^p^p^p\        \	        VP                  V^,           4      \        WV,
          ^,
          4      4      \	        VP                  V^,           4      \        WG,
          ^,
          4      4      4      pVP                  V4      p\        Wg,           ^,           V3VR7      p	VR,          V	R&   VR,          V	R&   VR	,          V	R
&   VR,          V	R&   VP                  V4      P                  V4      p
VP                  V4      P                  V4      pV! ^4      V! R4      rTpV! WTWvWWVR7	      pWP                  V
4      ,          W,          ,           p\        VV4       V! WTWvWWV^R7
      pWP                  P                  V4      ,          W,          ,           p\        VV4       R# )  r"   )	mr   kuklalpharw   r   r   beta)
r(  r   r)  r*  r+  rw   r   r   r,  transN)r   r   )r%   :Nr   N)r   rS   )rS   :rS   r   N)r   r%   )r   :r%   r{   N)rS   r   )ry   :Nr   Nr   )
r&   randomdefault_rngr   r   r   astyperJ   r   r   )r   rM   r   rngr   r(  r*  r)  AAbr   r   r+  r,  funcr   y2s   &&&              r0   	test_gbmvTestFBLAS2Simple.test_gbmv  s   ii##D)VCJJr!t,eADFm<CJJr!t,eADFm<>HHUOBE!GQ<u- dG5	tW6
tW6
dG5	JJqM  'JJqM  'Ahb	tAr'UU1X(!"b)ArQ0SSWWQZ$(*!"b)r2   r6   TFr   c           	     .   V'       d   \         M\        pVf&   V'       d   RMRp\        P                  ! V R24       \        P
                  P                  R4      p^p^p\        Wf3VR7      p\        V^,           V3VR7      p	VP                  V4      V\        V4      \        V4      3&   \        ^V^,           4       FG  p
VP                  Wj,
          4      pW\        Wj,
          4      \        W4      3&   WR
V
,
          V
R 13&   KI  	  VP                  V4      pV\        9   d2   WP                  4       P                  ,          p\        RVRR7      w  pM"WP                  ,          p\        RVRR7      w  p\        V4      V	R&   VP                  V4      P                  V4      pVP                  V4      P                  V4      pV! R4      V! ^4      ppV! WWVVR	7      pWP!                  V4      ,          VV,          ,           p\#        VV4       R # )Nr7   rD   r`   r'  r"   r4   r   r6         ?)kr+  rw   r   r   r,  rz   )hbmv)sbmv)rz   r   )r7   rD   r?   rg   r&   r.  r/  r   r   ranger0  r   r  r   r   r   rJ   r   )r   r   r6   rn   ro   r1  r   r;  r2  r3  ind2tempr4  r   r   r+  r,  r   r5  s   &&&                r0   test_sbmv_hbmvTestFBLAS2Simple.test_sbmv_hbmv  s     hU;%*zHKK8*$567ii##D)1&&AaC85) #&**Q-&)VAY
!QqSMD::af%D15fQVnfTo-.!%r$w~ " HHUON"OA"9EMEDHA"9EMEDG5	JJqM  'JJqM  'Dk58tAb>UU1Xq(!"b)r2   zfname,dtypespmvhpmvc                   V'       d   \         M\        pVf&   V'       d   RMRp\        P                  ! V R24       \        P
                  P                  R4      p^pVP                  Ww34      P                  V4      pV\        9   d    WP                  Ww34      R,          ,          pYR8X  d   VP                  MVP                  4       P                  ,          p\        V4      w  rWV	3,          pVP                  V4      P                  V4      pVP                  V4      P                  V4      p\        ^V,          4      P                  V4      p\        ^V,          4      P                  V4      pV! R4      V! ^4      pp\        V3VRR	7      w  pV! VVWVVR
7      pVVP                  V4      ,          VV,          ,           p\!        VV4       V! V^,
          VVWV^^WwR7
      pVVR R1R R13,          ,          P                  VR,          4      VVR,          ,          ,           p\!        VR,          V4       \#        V^,          V^,          4       R # )Nr7   rD   r`   r'  r   rC  r:  r4   r9  )r   r+  apr   r   r,  )
r   r+  r,  r   r   rF  r   r  r   r  :ry   Nr%   rz   )r7   rD   r?   rg   r&   r.  r/  r0  r   r   r  r   r   r   r   rJ   r   r   )r   fnamer   r6   rn   ro   r1  r   r2  r#   rApr   r   xlongylongr+  r,  r4  r   r5  s   &&&&                 r0   test_spmv_hpmvTestFBLAS2Simple.test_spmv_hpmv  s     hU;%*zHKK8*$567ii##D)JJv%%e,N"QF#B&&A	VOQSS3A!tWJJqM  'JJqM  'qs""5)QqS	  'Dk58txuKHAUr!$?QUU1Xq(!"b) AaCu45bqq2aSbSk!&&uT{3dU4[6HH!"T(B/BqE58,r2   sprhprc                2   V'       d   \         M\        pVf&   V'       d   RMRp\        P                  ! V R24       \        P
                  P                  R4      p^pVP                  Ww34      P                  V4      pV\        9   d    WP                  Ww34      R,          ,          pYR8X  d   VP                  MVP                  4       P                  ,          p\        V4      w  rWV	3,          pVP                  V4      P                  V4      p\        P                  ! V4      P                  P                  R4      pVR8X  dL   \        RVR	R
7      w  pWR,          P!                  VR,          P                  4       4      ,          V,           pM<\        RVR	R
7      w  pWR,          P!                  VR,          4      ,          V,           pV! W}WR7      p\#        RVR7      pVVW3&   VR8X  d   VP                  4       MTVW3&   \%        VV4       R # )Nr7   rD   r`   r'  r   rN  g      @rO  r4   r9  )r   r+  rF  r   r"   )rO  r   NNr   )rN  ry   ry   )r7   rD   r?   rg   r&   r.  r/  r0  r   r   r  r   r   r   typer   rJ   r   r   )r   rG  r   r6   rn   ro   r1  r   r2  r#   rH  rI  r   r+  r4  r5  r   y1fs   &&&&              r0   test_spr_hprTestFBLAS2Simple.test_spr_hpr7  s     hU;%*zHKK8*$567ii##D)JJv%%e,N"QF#B&&A	UNQSS

2A!tWJJqM  '%%**3/E>"85LED7'
(9::Q>B"85LED7'
33a7BAr/F%(AD	!&%BGGIRAD	!#r*r2   c                &   V'       d   \         M\        pVf&   V'       d   RMRp\        P                  ! V R24       \        P
                  P                  R4      p^pVP                  Wf34      P                  V4      pV\        9   dQ   WuP                  Wf34      R,          ,          pWwP                  4       P                  ,          p\        R
VRR7      w  pM"WwP                  ,          p\        RVRR7      w  p\        V4      w  rWzV	3,          pVP                  V4      P                  V4      pVP                  V4      P                  V4      pV! ^4      pVP                  4       VR,          P                  VR,          P                  4       4      ,          pW,           VP                  4       P                  ,           pV! WnWVR7      p\        RVR	7      pVVW3&   V. RO,          P                  4       V. RO. RO3&   \        VV4       R # )Nr7   rD   r`   r'  r   r4   r9  )r   r+  r   r   rF  r"   )hpr2)spr2rQ  rR  rS  )rS   ry   r   )rS   r%   r%   )r   r   rS   )r7   rD   r?   rg   r&   r.  r/  r0  r   r  r   r   r   rJ   r   r   )r   r   r6   rn   ro   r1  r   r2  r4  r#   rH  rI  r   r   r+  r!  r5  r   rU  s   &&&                r0   test_spr2_hpr2TestFBLAS2Simple.test_spr2_hpr2Z  s     hU;%*zHKK8*$567ii##D)JJv%%e,N"QF#B&&AOA"9EMEDHA"9EMEDA!tWJJqM  'JJqM  'aJJL1W:>>!G*//*;<<UQVVXZZAa4F%(AD	$&yM$6$6$8Iy !!#r*r2   tbmvc           
        \         P                  P                  R 4      p^
p^pVP                  V4      P                  V4      p\	        WD3VR7      p\        V^,           4       F7  pVP                  WH,
          4      V\        WH,
          4      \        W4      3&   K9  	  V\        9   dm   V\        V4      ;;,          RVP                  V^,           V,          WU^,           ,          ^,          ,
          4      P                  V4      ,          ,          uu&   \	        V^,           V3VR7      p	\        V^,           4       F  p
\        WzR7      W) ^,
          V
R13&   K  	  TpV! WYVR7      pVP                  V4      p\        W4       V! WYV^R7      pV! ^4      V\        V4      \        V4      3&   VP                  V4      p\        W4       V! WYV^^R7      pVP                  P                  V4      p\        W4       V! WYV^^R7      pVP                  4       P                  P                  V4      p\        W4       R# )r'  r"   r   r;  Nr;  rw   r   r;  rw   r   r   r;  rw   r   r   r-  )r&   r.  r/  r0  r   r>  r   r   r   r   rJ   r   r   r  r   rM   r   r1  r   r;  r   r2  supr3  rowr4  r   r5  s   &&&           r0   	test_tbmvTestFBLAS2Simple.test_tbmv{  s   ii##D)JJqM  '1&&1:C/2zz!%/@AfQUmVC^+,  N"gajMR#**ac1Wa1gqj-A"B"I"I%"PPPM AaC85)1:C#A~BtAvst| Aq!UU1X!")Aqq)"'(&)VAY
UU1X!")Aqq2SSWWQZ!")Aqq2VVXZZ^^A!")r2   tbsvc           
     V   \         P                  P                  R 4      p^p^pVP                  V4      P                  V4      p\	        WD3VR7      p\        V^,           4       F7  pVP                  WH,
          4      V\        WH,
          4      \        W4      3&   K9  	  V\        9   dm   V\        V4      ;;,          RVP                  V^,           V,          WU^,           ,          ^,          ,
          4      P                  V4      ,          ,          uu&   \	        V^,           V3VR7      p	\        V^,           4       F  p
\        WzR7      W) ^,
          V
R13&   K  	  TpV! WYVR7      p\        Wv4      p\        W4       V! WYV^R7      pV! ^4      V\        V4      \        V4      3&   \        Wv4      p\        W4       V! WYV^^R7      p\        VP                  V4      p\        W4       V! WYV^^R7      p\        VP                  4       P                  V4      p\        W4       R# )i90  r"   r   r_  Nr`  ra  rb  )r&   r.  r/  r0  r   r>  r   r   r   r   r   r   r   r  rc  s   &&&           r0   	test_tbsvTestFBLAS2Simple.test_tbsv  s   ii##E*JJqM  '1&&1:C/2zz!%/@AfQUmVC^+,  N"gajMR#**ac1Wa1gqj-A"B"I"I%"PPPM AaC85)1:C#A~BtAvst| Aq!1[!")Aqq)"'(&)VAY
1[!")Aqq2133]!")Aqq21668::q!!")r2   tpmvc                6   \         P                  P                  R 4      p^
pVP                  V4      P                  V4      pV\        9   d;   \        VP                  WD34      VP                  WD34      R,          ,           4      pM\        VP                  WD34      4      p\        V4      w  rxWhV3,          p	Tp
V
! WIVR7      pVP                  V4      p\        W4       V
! WIV^R7      pV! ^4      V\        V4      \        V4      3&   VP                  V4      p\        W4       V
! WIV^^R7      pVP                  P                  V4      p\        W4       V
! WIV^^R7      pVP                  4       P                  P                  V4      p\        W4       R# r'  r   )r   rF  r   )r   rF  r   r   )r   rF  r   r   r-  N)r&   r.  r/  r0  r   r	   r   rJ   r   r   r   r  r   rM   r   r1  r   r   r2  r#   rH  rI  r4  r   r5  s   &&&          r0   	test_tpmvTestFBLAS2Simple.test_tpmv  sO   ii##D)JJqM  'N"SZZ'#**aV*<R*??@ASZZ'(A A!tWA"UU1X!")A*"'(&)VAY
UU1X!")A3SSWWQZ!")A3VVXZZ^^A!")r2   tpsvc                .   \         P                  P                  R 4      p^
pVP                  V4      P                  V4      pV\        9   d;   \        VP                  WD34      VP                  WD34      R,          ,           4      pM\        VP                  WD34      4      pV\        V4      ,          p\        V4      w  rxWhV3,          p	Tp
V
! WIVR7      p\        We4      p\        W4       V
! WIV^R7      pV! ^4      V\        V4      \        V4      3&   \        We4      p\        W4       V
! WIV^^R7      p\        VP                  V4      p\        W4       V
! WIV^^R7      p\        VP                  4       P                  V4      p\        W4       R# rn  )r&   r.  r/  r0  r   r	   r   r   r   r   r   r   r  ro  s   &&&          r0   	test_tpsvTestFBLAS2Simple.test_tpsv  sN   ii##D)JJqM  'N"SZZ'#**aV*<R*??@ASZZ'(A	SVA!tWA"1[!")A*"'(&)VAY
1[!")A3133]!")A31668::q!!")r2   trmvc                   \         P                  P                  R 4      p^pVP                  WD34      \        V4      ,           P	                  V4      pVP                  ^4      P	                  V4      pTpV! WVR7      p\        V4      P                  V4      p	\        W4       V! WV^R7      pV! ^4      V\        V4      \        V4      3&   \        V4      P                  V4      p	\        W4       V! WV^^R7      p\        V4      P                  P                  V4      p	\        W4       V! WV^^R7      p\        V4      P                  4       P                  P                  V4      p	\        W4       R# )r'  rw   r   rw   r   r   rw   r   r   r-  N)r&   r.  r/  r   r0  r	   rJ   r   r   r   r  
r   rM   r   r1  r   r2  r   r4  r   r5  s
   &&&       r0   	test_trmvTestFBLAS2Simple.test_trmv	  s    ii##D)ZZA&..u5JJqM  'A^!W[[^!")A#"'(&)VAY
!W[[^!")A!,!WYY]]1!")A!,!W\\^!!!$!")r2   trsvc                   \         P                  P                  R 4      p^pVP                  WD34      \        V4      ,           P	                  V4      pVP                  V4      P	                  V4      pTpV! WVR7      p\        \        V4      V4      p	\        W4       V! WV^R7      p\        \        V4      V4      p	\        W4       V! WV^R7      pV! ^4      V\        V4      \        V4      3&   \        \        V4      V4      p	\        W4       V! WV^^R7      p\        \        V4      P                  V4      p	\        W4       V! WV^^R7      p\        \        V4      P                  4       P                  V4      p	\        W4       R# )r'  rx  )rw   r   r   ry  rz  N)r&   r.  r/  r   r0  r   r	   r   r
   r   r   r  r{  s
   &&&       r0   	test_trsvTestFBLAS2Simple.test_trsv"  s<   ii##D)ZZA&..u5JJqM  'A^47A!")A!$47A!")A#"'(&)VAY
47A!")A!,4799a !")A!,47<<>##Q'!")r2   r   N) r   r   r   r   rq   r   r   r   r   r  r  r  r#  r6  r?   rf   ri   DTYPESrA  REAL_DTYPESr   rL  rV  r[  rf  rj  rp  rt  r|  r  r   r   )r   r   s   0@r0   r   r      sO    ff%1 &1 eT"
D #
D fd#@ $@ fd#@ $@ eV$0J %0Jd eT"J #J@ fd#'M $'MR fd#.4 $.4` ff%* &*B [[WtUm4[[Wf-!* . 5!*F [[WtUm4[[] -'2^'C	D'Ce65/'C	D-'5	6~e65/~	6- -	 5
-@ [[WtUm4[[] -&1N&B	C&BU5%.&B	C-&4	5nU5%.n	5- +	 5
+< [[WtUm4[[Wf-+ . 5+> ff%#* &#*J ff%#* &#*J ff%* &*@ ff%* &*@ ff%* &*0 ff%* &*_ 
E	6H 
D	5s   I'I I%I*r   c                   >   a  ] tR tRt o ]! RR4      R 4       tRtV tR# )TestFBLAS3Simplei@  r!   rt   c           	         \        V! ^^.R.4      R..4       \        V! ^^.R.^^.4      R.4       V\        9   d5   \        V! RR.R.4      R..4       \        V! RR.R.^R.4      R	.4       R# R# r   r   r   s   &&&r0   	test_gemmTestFBLAS3Simple.test_gemmA  s    !!AsRD/SE7;!!AsRD!aS"9C5AN"%aTFRD&9WI;G%aTFRD!bT&BWIN #r2   r   N)r   r   r   r   rq   r  r   r   r   s   @r0   r  r  @  s      ff%O &Or2   r  c                      a  ] tR tRt o R t]! RR4      R 4       t]! RR4      R 4       t]! RR4      R 4       tRt	V t
R	# )
TestBLAS3SymmiJ  c                   \         P                  ! R R.RR ..4      V n        \         P                  ! . RO. RO.4      V n        \         P                  ! R4      V n        \         P                  ! . RO. RO.4      V n        R# )	r   r           N)r   r        @)r        r   )r%   ry   )r   r  g       @)r  r  g      "@)r&   arrayrw   r  r   r#   tr   s   &r0   setup_methodTestBLAS3Symm.setup_methodL  sg    B88% &<(* +=') *r2   symmrt   c           	        V! V P                   V P                  V P                  R R R7      p\        W0P                  4       V! V P                   P
                  V P                  ^V P                  R R R7      p\        W0P                  4       V! V P                   V P                  P
                  ^V P                  P
                  R R R7      p\        W0P                  P
                  4       R# )r   rw   r  r#   r+  r,  rw   r  r   r#   r+  r,  )rw   r  sider#   r+  r,  N)rw   r  r#   r   r  r   r   rM   r   ress   &&& r0   	test_symmTestBLAS3Symm.test_symmU  s    $&&DFFdffBR@!#vv.$&&((dffArK!#vv.$&&DFFHH1r#!#vvxx0r2   c           	         \         P                  ! \        4      ;_uu_ 4        V! V P                  V P                  ^^R7       RRR4       R#   + '       g   i     R# ; i)zl`side=1` means C <- B*A, hence shapes of A and B are to be
compatible. Otherwise, f2py exception is raised.
)rw   r  r+  r  N)r?   r   r   rw   r  r   s   &&&r0   test_symm_wrong_side"TestBLAS3Symm.test_symm_wrong_sidea  s8     ]]9%%$&&2 &%%%s   !AA	c           	     T   V! V P                   V P                  V P                  RRR7      p\        P                  ! W0P
                  4      '       g   Q hV! V P                   V P                  ^V P                  RRR7      p\        P                  ! W0P
                  4      '       d   Q hR# )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.
r   r  r  N)rw   r  r#   r&   allcloser  r  s   &&& r0   test_symm_wrong_uplo"TestBLAS3Symm.test_symm_wrong_uploj  sw     $&&DFFdffBR@{{3''''$&&DFF!tvvRbI;;sFF+++++r2   )rw   r  r#   r  N)r   r   r   r   r  rq   r  r  r  r   r   r   s   @r0   r  r  J  s[     * ff%	1 &	1 ff%3 &3 ff%, &,r2   r  c                   b   a  ] tR tRt o R t]! RR4      R 4       t]! RR4      R 4       tRtV t	R# )	TestBLAS3Syrkiv  c                    \         P                  ! R R.RR.RR..4      V n        \         P                  ! . R	O. R
O. RO.4      V n        \         P                  ! RR.RR..4      V n        R# )r   r  r   r        @      *@      @N       )r   r  r   )r        @      )r   r  r  )r&   r  rw   r  ttr  s   &r0   r  TestBLAS3Syrk.setup_methodw  sn    B898% & <()+ , ((RHI' (r2   syrkrt   c                    V! V P                   R R7      p\        \        P                  ! V4      \        P                  ! V P                  4      4       V! V P                   R ^R7      p\        \        P
                  ! V4      \        P
                  ! V P                  4      4       \        P                  ! V P                  P                  4      pV! V P                   R R VR7      p\        \        P                  ! V4      \        P                  ! V P                  V,           4      4       V! V P                   R ^R7      p\        \        P                  ! V4      \        P                  ! V P                  4      4       R# )r   rw   r+  )rw   r+  r   )rw   r+  r,  r#   )rw   r+  r-  N)	rw   r   r&   r	   r  r
   r   shaper  r   rM   r   r#   c0s   &&&  r0   	test_syrkTestBLAS3Syrk.test_syrk  s    b!!"''!*bggdffo>b*!"''!*bggdffo>WWTVV\\"brR0!"''!*bggdffRi.@Ab*!"''!*bggdgg.>?r2   c           	         \         P                  ! \        4      ;_uu_ 4        V! V P                  R \        P
                  ! R4      R7       RRR4       R#   + '       g   i     R# ; i)r   )rw   r+  r#   N)r      )r?   r   r   rw   r&   r   r   s   &&&r0   test_syrk_wrong_cTestBLAS3Syrk.test_syrk_wrong_c  s:     ]]9%%bBGGFO4 &%%%s   *AA(	)rw   r  r  N)
r   r   r   r   r  rq   r  r  r   r   r   s   @r0   r  r  v  sB     ( ff%@ &@  ff%5 &5r2   r  c                   b   a  ] tR tRt o R t]! RR4      R 4       t]! RR4      R 4       tRtV t	R# )	TestBLAS3Syr2ki  c                    \         P                  ! R R.RR.RR..4      V n        \         P                  ! RR .R R.^ R ..4      V n        \         P                  ! . RO. RO. RO.4      V n        \         P                  ! RR .R ^..4      V n        R# )	r   r  r   r  Nr  )r  r  r  )r  r  r  )r  r  r  )r&   r  rw   r  r  r  r  s   &r0   r  TestBLAS3Syr2k.setup_method  s    B898% & B88r7$ % =(') * ((RHG% &r2   syr2krt   c                X   V! V P                   V P                  R R7      p\        \        P                  ! V4      \        P                  ! V P
                  4      4       V! V P                   V P                  R ^R7      p\        \        P                  ! V4      \        P                  ! V P
                  4      4       \        P                  ! V P
                  P                  4      pV! V P                   V P                  R R VR7      p\        \        P                  ! V4      \        P                  ! V P
                  V,           4      4       V! V P                   V P                  R ^R7      p\        \        P                  ! V4      \        P                  ! V P                  4      4       R# )r   rw   r  r+  )rw   r  r+  r   )rw   r  r+  r,  r#   )rw   r  r+  r-  N)
rw   r  r   r&   r	   r  r
   r   r  r  r  s   &&&  r0   
test_syr2kTestBLAS3Syr2k.test_syr2k  s    $&&+!"''!*bggdffo>$&&!4!"''!*bggdffo>WWTVV\\"$&&r:!"''!*bggdffRi.@A$&&!4!"''!*bggdgg.>?r2   c           
         \         P                  ! \        4      ;_uu_ 4        V! V P                  V P                  R \
        P                  ! R4      R7       RRR4       R#   + '       g   i     R# ; i)r   )rw   r  r+  r#   N)   r  )r?   r   r   rw   r  r&   r   r   s   &&&r0   test_syr2k_wrong_c!TestBLAS3Syr2k.test_syr2k_wrong_c  s?    ]]9%%$&&bhhw.?@ &%%%s   5A""A3	)rw   r  r  r  N)
r   r   r   r   r  rq   r  r  r   r   r   s   @r0   r  r    sD     & gv&@ '@ gv&A 'Ar2   r  c                      a  ] tR tRt o RtR t]! RR4      R 4       t]! RR4      R 4       t]! R	R4      R
 4       t	]! RR4      R 4       t
]! RR4      R 4       t]! RR4      R 4       tRtV tR# )TestSyHei  z2Quick and simple tests for (zc)-symm, syrk, syr2k.c                H    \         P                  ! R R.RR ..4      V n        R# )r  r   Ny             )r&   r  sigma_yr  s   &r0   r  TestSyHe.setup_method  s$    xx"d"%r!, -r2   r  zcc                    V! V P                   V P                   R R7      p\        \        P                  ! V4      \        P                  ! ^R.4      4       R# )r   r  Nrz   r  r   r&   r	   r   r  s   &&& r0   r  TestSyHe.test_symm  s9     $,,$,,b9!"''#,B0@Ar2   hemmc                    V! V P                   V P                   R R7      p\        \        P                  ! V4      \        P                  ! ^^.4      4       R# )r   r  Nr  r  s   &&& r0   	test_hemmTestSyHe.test_hemm  s8     $,,$,,b9!"''#,A@r2   r  c                    V! V P                   R R7      p\        \        P                  ! V4      \        P                  ! RR.4      4       R# )r   r  Nrz   r  r  s   &&& r0   r  TestSyHe.test_syrk  s1    $,,b)!"''#,R0ABr2   herkc                    V! V P                   R R7      p\        \        P                  ! V4      \        P                  ! ^^.4      4       R# )r   r  Nr  r  s   &&& r0   	test_herkTestSyHe.test_herk  s0    $,,b)!"''#,A@r2   r  c                    V! V P                   V P                   R R7      p\        \        P                  ! V4      R\        P                  ! RR.4      ,          4       R# )r   r  r   Nrz   r  r  s   &&& r0   test_syr2k_zrTestSyHe.test_syr2k_zr  s<    $,,$,,b9!"''#,277B83D0DEr2   her2kc                    V! V P                   V P                   R R7      p\        \        P                  ! V4      R\        P                  ! ^^.4      ,          4       R# )r   r  r   Nr  r  s   &&& r0   test_her2k_zrTestSyHe.test_her2k_zr  s;    $,,$,,b9!"''#,277Aq6?0BCr2   )r  N)r   r   r   r   __doc__r  rq   r  r  r  r  r  r  r   r   r   s   @r0   r  r    s     <- fd#B $B
 fd#A $A
 fd#C $C fd#A $A gt$F %F gt$D %Dr2   r  c                      a  ] tR tRt o RtR t]! RR4      R 4       t]! RR4      R 4       t]! RR4      R	 4       t	]! RR4      R
 4       t
RtV tR# )TestTRMMi  z!Quick and simple tests for *trmm.c                4   \         P                  ! R R.RR ..4      V n        \         P                  ! . RO. RO.4      V n        \         P                  ! . RO. R	O. R
O. RO.RR7      V n        \         P                  ! ^^.^^.^^.^^.^	^
..RR7      V n        R# )r   r   rM   )r   Nr  r  r  r  r  r  r  )rS   rS   r%   ry   )r   rS   r   r   )r   r   rS   r   )r   r   r   rS   )r&   r  rw   r  a2b2r  s   &r0   r  TestTRMM.setup_method  s    B:9& '=(* + ((L(((* 256 ((QFQFQFQFQGD!$&r2   trmmsdzcc           	        Tp\        \        VR V P                  V P                  4       V! R V P                  P	                  V4      V P                  P	                  V4      ^R7      pV P                  P
                  ^,          p\        W@P                  V P                  RV1RV13,          ,          R^d\        P                  ! V4      P                  ,          R7       R# )r   )r  Nr  )r   atol)
r   r   r  r  r0  r  r   r&   r   r   )r   rM   r   r  r  r;  s   &&&   r0   	test_sideTestTRMM.test_side  s    isDGGTWW=3u-tww~~e/DGGMM!WWtwwrr2A2v6R %!4!44	6r2   rt   c                    V! R V P                   V P                  4      p\        P                  ! . RO. RO.4      p\	        W44       R# )r   N)r  g      0@g      r  rw   r  r&   r  r   r   rM   r   resultexpecteds   &&&  r0   test_abTestTRMM.test_ab  s8    2tvvtvv&88_,. /!&3r2   c                    V! R V P                   V P                  RR7      p\        P                  ! . RO. RO.4      p\	        W44       R# )r   Tr   Nr  )r  r  r  r  r  s   &&&  r0   test_ab_lowerTestTRMM.test_ab_lower
  s:    2tvvtvvT288_,. /!&3r2   c                (   V P                   P                  V4      pR Fo  pVP                  4       pV! RV P                  WTR7      pVP                  P
                  '       d   Q h\        P                  ! WV4      '       d   Q h\        WS4       Kq  	  \        P                  ! VP                  4       4      pV! RV P                  VR R7      pVP                  P
                  '       g   Q h\        P                  ! WV4      '       g   Q h\        WV4       R# )Tr   )overwrite_bN)TF)r  r0  r   rw   flagsf_contiguousr&   may_share_memoryr   asfortranarrayr   )r   rM   r   r  overwrbcopyr  s   &&&    r0   test_b_overwritesTestTRMM.test_b_overwrites  s     FFMM% #FFFHEr4665=F{{/////**59999" $ !!!&&(+2tvvu$7{{'''''""51111!%0r2   )rw   r  r  r  N)r   r   r   r   r  r  rq   r  r  r  r  r   r   r   s   @r0   r  r    sy     +& ff%6 &6 ff%4 &4 ff%4 &4 ff%1 &1r2   r  trsmrt   c           	      b   \         P                  P                  R 4      p\         P                  ! V4      P                  R,          pT pVP                  R
4      P                  V4      pVP                  R4      P                  V4      pV! ^4      p\        \        WGWV4       \        \        WGVP                  V4       ^p^p	V! R4      pV\        9   dB   VP                  W34      VP                  W34      R,          ,           \        V	4      ,           pM"VP                  W34      \        V	4      ,           pVP                  V4      p\        V4      p
\        V4      pVP                  W34      P                  V4      pVP                  W34      P                  V4      pV! WuVR7      p\        VP                  VP                  4       \        WV,          4      p\!        WVR7       V! WuV^R7      p\        V
P                  W|,          4      p\!        WVR7       V! WuV^R7      p\        V
P#                  4       P                  W|,          4      p\!        WVR7       V! WuV^R7      pV! ^4      V
\%        V	4      \%        V	4      3&   \        WV,          4      p\!        WVR7       V! WuV^^R7      p\        V
P#                  4       P                  W}P#                  4       P                  ,          4      p\!        WP#                  4       P                  VR7       V! WuV^^^R7      pV! ^4      V\%        V	4      \%        V	4      3&   \        VP#                  4       P                  W}P#                  4       P                  ,          4      p\!        WP#                  4       P                  VR7       R	# )r'  i  r   )r+  rw   r  )r  )r+  rw   r  trans_a)r+  rw   r  r   )r+  rw   r  r   r  )r+  rw   r  r   r  r   N)r   r   r   g      )r&   r.  r/  r   r   r0  r   r   r   r   r   r	   r
   r   r  r   r   r  r   )rM   r   r1  tolr4  r2  Br+  r   r(  AuAlB1B2r   x2s   &&              r0   	test_trsmr  %  s   
))


%C
((5/

d
"CD 	

6!!%(A

6!!%(A!HE)T!/)T!##q1	A	A$KEZZ#**aV"4R"773q6AJJvQ'	A	aB	aB	QF		"	"5	)B	QF		"	"5	)B	E"	%B288$	r8	BB%	E"a	0B	rttUX	BB%	E"a	0B	rwwy{{EH	%BB%	E"1	-B$QxBvay&)	r8	BB%	E"11	5B	rwwy{{E'')++-	.BB	#.	E"11A	>B$QxBvay&)	rwwy{{E'')++-	.BB	#.r2   zgh-16930)runrb   c                      \         P                  ! ^
^	4      p \        P                  P                  P                  V ^^R4      p\        P                  ! R4      p\        W4       R# )r   i  Nrz   )	r&   repeatscipylinalgblasdnrm2r   r   r   )r   actualr  s      r0   test_gh_169309r  [  sI     			"aA\\$$Q1b1Fyy~HF%r2   zdoes not fail with ILP64 MKLra   c                     \         P                  ! ^
^	4      p Rp\        P                  P                  P                  RV 3RR7      p\        \        4      ;_uu_ 4        V! V ^^V4       RRR4       R#   + '       g   i     R# ; i)r   rI   r4   r5   Nrz   )r&   r  r  r  r  r   r   FBLAS_ERROR)r   r   r  s      r0   test_dnrm2_neg_incxr  d  sd    
 			"aADLL,,VaT,ME	{	#	#aAt 
$	#	#	#s   A44B	)N)@r   r?   numpyr&   numpy.testingr   r   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r  scipy.linalgr   r   r   scipy.linalg.blasr   r   rD   __fblas_errorr  rE   ImportErrorr   r7   __fblas_64_errorrZ   r,   r  r(   r)   r   r  r1   r=   rA   rG   rP   r]   rq   rs   r   r  r  r  r  r  r  r  rf   xfailr  r  r   r2   r0   <module>r$     s  
   G G */ / /  8 8 ',%%KN
2++K
 zz2::&,,.	~	%!#H	D=>
+7\?. ?.HF	* F	*RO O), ),X 5  5H!A !AJ%D %DP;1 ;1| &&!2/ "2/j u$  &&&& 9%CD E]"  EN  Hs$   E* !E< *E98E9<	F	F	