
    (ph                     
   S SK r S SKrS SKrS SKrS SKJrJrJrJ	r	J
r
  S SKJr  S SKJrJrJrJrJrJrJrJrJrJrJrJrJrJrJr  S SKrS SKJrJ r J!r!J"r"   S SKJ#r$  \\/r&\\/r'\&\'-   r(S r)S r* " S	 S
5      r+ " S S5      r, " S S5      r- " S S5      r.S"S jr/ " S S5      r0 " S S5      r1 " S S5      r2 " S S5      r3 " S S5      r4S r5\Rl                  Ro                  SSS9S  5       r8S! r9g! \% a    Sr$ Nf = f)#    N)assert_equalassert_almost_equalassert_assert_array_almost_equalassert_allclose)raises)float32float64	complex64
complex128arangetriutrilzerostril_indicesonesmoddiagappendeyenonzero)_fblasget_blas_funcstoeplitzsolve)_cblasc            
      r   [        S[        R                  " S[        R                  SS9[        R                  " S[        R                  SS945      u  pn[        U R                  S5        [        UR                  S5        [        b,  [        U R                  S5        [        UR                  S5        [        S5      n [        U R                  S	5        [        S
[        R                  S9n [        U R                  S5        [        S
SS9n [        U R                  S5        [        S
[        R                  S9n [        U R                  S5        [        S[        R                  " S[        R                  S9[        R                  " S[        R                  S945      n [        U R                  S5        g )N)axpyr   r      r    F)dtypeorderCzcblasrotgdgemmr"   cr   )r   npemptyr   r   r   typecoder&   module_nameclongdoubler
   )f1f2f3s      O/var/www/html/venv/lib/python3.13/site-packages/scipy/linalg/tests/test_blas.pytest_get_blas_funcsr5      s=      	&C	8	&S	9	;
JBB c"c"R^^W-R^^W- 
	Bc" 
bll	3Bc"	c	*Bc" 
bnn	5Bc" 
&

;&=?
B c"    c                      [        S[        R                  S9u  pU R                  S:X  d   eUR                  S:X  d   e[        S[        R                  S9u  pnXL d   eXL d   eg )N)nrm2dotr*   r+   )r9   dotcdotu)r   r,   r   r.   r
   )fghs      r4   test_get_blas_funcs_aliasr?   E   s_    />DA::::4BJJGGA!6M66M6r6   c                       \ rS rSrS rSrg)TestCBLAS1SimpleP   c           	          S H4  n[        [        US-   S 5      nUc  M  [        U" / SQ/ SQSS9/ SQ5        M6     S H4  n[        [        US-   S 5      nUc  M  [        U" / S	Q/ SQSS9/ S
Q5        M6     g Nsdr      r       )r    rH      a)   	      cz)rG                  @rH   )rM   y            $@rO   )getattrr&   r   selfpr<   s      r4   	test_axpyTestCBLAS1Simple.test_axpyR   x    Aqx.Ay%a	:&C&02	  Aqx.Ay%a
J!&D&46	 r6    N)__name__
__module____qualname____firstlineno__rV   __static_attributes__rY   r6   r4   rA   rA   P   s    6r6   rA   c                   P    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rSrg)TestFBLAS1Simplea   c           	          S H4  n[        [        US-   S 5      nUc  M  [        U" / SQ/ SQSS9/ SQ5        M6     S H4  n[        [        US-   S 5      nUc  M  [        U" / S	Q/ SQSS9/ S
Q5        M6     g rD   rR   fblasr   rS   s      r4   rV   TestFBLAS1Simple.test_axpyc   rX   r6   c                     S H7  n[        [        US-   S 5      nUc  M  [        U" / SQS/S-  5      / SQ5        M9     S H7  n[        [        US-   S 5      nUc  M  [        U" / SQS/S-  5      / SQ5        M9     g )NrE   copy)rH      rJ      rH   rP   )rH                 @y      @      @rc   rS   s      r4   	test_copyTestFBLAS1Simple.test_copyq   sz    Aqx.Ay%a	A3q5&99E	 
 Aqx.Ay%as1u&=}M	 r6   c                     S H0  n[        [        US-   S 5      nUc  M  [        U" / SQ5      S5        M2     S H0  n[        [        US-   S 5      nUc  M  [        U" / SQ5      S5        M2     g )NrE   asumrH   rJ      )scdz              @rp         @         rR   rd   r   rS   s      r4   	test_asumTestFBLAS1Simple.test_asum}   si    Aqx.Ay*r2	 
 Aqx.Ay. 126	 r6   c                 v    S H3  n[        [        US-   S 5      nUc  M  [        U" / SQ/ SQ5      S5        M5     g )NrE   r9   ro   )r    rJ   rG   rx   rS   s      r4   test_dotTestFBLAS1Simple.test_dot   s7    Aqw-Ay*i 8"=	 r6   c                 v    S H3  n[        [        US-   S 5      nUc  M  [        U" / SQ/ SQ5      S5        M5     g )NrP   r;   rt   r    rH   rG   y      "       @rx   rS   s      r4   test_complex_dotu"TestFBLAS1Simple.test_complex_dotu   s7    Aqx.Ay.) <eD	 r6   c                 v    S H3  n[        [        US-   S 5      nUc  M  [        U" / SQ/ SQ5      S5        M5     g )NrP   r:   rt   r    ru   rG   y      @      ,rx   rS   s      r4   test_complex_dotc"TestFBLAS1Simple.test_complex_dotc   s7    Aqx.Ay.* =uE	 r6   c                 ,   S HD  n[        [        US-   S 5      nUc  M  [        U" / SQ5      [        R                  " S5      5        MF     S HD  n[        [        US-   S 5      nUc  M  [        U" / SQ5      [        R                  " S5      5        MF     g )NrE   r8   ro   2   )r+   r%   rr   rs   rt   )rR   rd   r   mathsqrtrS   s      r4   	test_nrm2TestFBLAS1Simple.test_nrm2   sy    Aqx.Ay*tyy}=	 
 (Aqx.Ay. 1499R=A	 (r6   c                 Z   S H3  n[        [        US-   S 5      nUc  M  [        U" S/ SQ5      / SQ5        M5     S H3  n[        [        US-   S 5      nUc  M  [        U" S/ SQ5      / S	Q5        M5     S
 H3  n[        [        US-   S 5      nUc  M  [        U" S/ SQ5      / SQ5        M5     g )NrE   scalr    ro   )   i
   rP   ru   rt   )r|   y             (y      (@      "@)cszdrH   )y              "@iy      "@      (rc   rS   s      r4   	test_scalTestFBLAS1Simple.test_scal   s    Aqx.Ay%a:&6D	 
 Aqx.Ay%aN&;=NO	 
 Aqx.Ay%a>&:<LM	 r6   c                 (   S HC  n[        [        US-   S 5      nUc  M  / SQ/ SQpCU" X45      u  pV[        XT5        [        Xc5        ME     S HC  n[        [        US-   S 5      nUc  M  / SQ/ SQpCU" X45      u  pV[        XT5        [        Xc5        ME     g )NrE   swapr   )rH   rM   rP   r   )r   rH   y      @      rc   )rT   rU   r<   xyx1y1s          r4   	test_swapTestFBLAS1Simple.test_swap   s    Aqx.AyjqqWFB%b,%b,  Aqx.Ay}qqWFB%b,%b, r6   c                     S H-  n[        [        SU-   S-   5      n[        U" / SQ5      S5        M/     S H-  n[        [        SU-   S-   5      n[        U" / SQ5      S5        M/     g )NrE   iamax)r   rh   rH   rG   rP   )y      @      @r   )rR   rd   r   rS   s      r4   	test_amaxTestFBLAS1Simple.test_amax   s]    As1uV|,A:*  As1uV|,A=)1- r6   rY   N)rZ   r[   r\   r]   rV   rk   ry   r}   r   r   r   r   r   r   r^   rY   r6   r4   r`   r`   a   s9    6
N
7>EF
BN"-$.r6   r`   c                       \ rS rSrS r\R                  R                  S 5       rS r	S r
S rS rS rS	 rS
 rS rS rS rS rS rS rS rSrg)TestFBLAS2Simple   c           
      X   S HO  n[        [        US-   S 5      nUc  M  [        U" SS//S/5      S/5        [        U" SS//S/SS/5      S/5        MQ     S HO  n[        [        US-   S 5      nUc  M  [        U" S	S
//S/5      S/5        [        U" S	S
//S/SS/5      S/5        MQ     g )NrE   gemvrH   rp   rJ   rP   ru   rv         H      B              @      H      5rc   rS   s      r4   	test_gemvTestFBLAS2Simple.test_gemv   s    Aqx.Ay%aQC52$&7#?%aQC52$A3&?#G  Aqx.Ay%adVHrd&;gYG%adVHrdAt&D'.i1 r6   c                    S H~  n[        [        US-   S 5      nUc  M  [        U" SSS/SS/5      SS/SS//5        [        U" S/ S	QSS/5      SS/S
S/SS//5        [        U" SSS/SS/SS/SS//S9SS/SS
//5        M     S H[  n[        [        US-   S 5      nUc  M  [        U" SSS/SS/5      SS/SS//5        [        U" S/ SQSS/5      SS/S
S/SS//5        M]     S Hc  nS HZ  n[        [        X-   S 5      nUc  M  [        U" SSS/SS/5      SS/SS//5        [        U" S/ SQSS/5      SS/S
S/SS//5        M\     Me     g )NrE   gerrG   r    rH   rh   r   ri   rF   rq      rO      rK   rN   rP   geru              ?ru   rj   r   )r   rQ   ru   )r   gercrc   )rT   rU   r<   names       r4   test_gerTestFBLAS2Simple.test_ger   s    Aqw-Ay%aAq6Aq6&:aVaV<LM%a9q!f&=()1vBx"b&BD &aAq6Aq6,-q6Aq6*:'<?@!fq"g=NP  Aqx.Ay%aB7QF&;(*Bx!Q&8:%aL2r(&C()1vBx"b&BD  A'E16409)!AAwA*?,.8aV*<>)!A|b"X*F,-q6B8b"X*FH ( r6   c                 2   [         R                  " SSSS9n[         R                  " US S 2[         R                  4   U-  5      n[         R                  " US S S2[         R                  4   US S S2   -  5      n[         R                  " SSSS	S
9n[         R                  " SSSS9R                  S5      n[         R                  " US S 2[         R                  4   U-  5      n[         R                  " US S S2[         R                  4   US S S2   -  5      n[         R                  " US S 2[         R                  4   UR                  5       -  5      n[         R                  " US S S2[         R                  4   US S S2   R                  5       -  5      n	[         R                  [         R                  " S5      U[         R                  " S5      4   R                  5       n
[        SSS/5       GHO  u  p[        [        US-   S 5      nUc  M  [        U" SU5      X,S9  [        U" SUSS9UR                  US9  [        U" SUSSSS9X,S9  [        U" SUSSSS9X<S9  [         R                  " SUS:X  a  SOSS5      nU" SXSS9n[        XUS9  U" SXS9n[        XL5        [        US U-  US9  [!        ["        USUSS!9  [!        ["        USUSS"9  [!        ["        USUSS"9  [!        ["        USUSS#9  [!        ["        USUSS#9  [!        ["        USUSS9  [!        ["        USU[         R                  " S$SS5      S9  GMR     [        S%SS/5       GHO  u  p[        [        US-   S 5      nUc  M  [        U" SU5      XlS9  [        U" SUSS9UR                  US9  [        U" SU
S SSS9XlS9  [        U" SU
S&SSS9X|S9  [         R                  " SUS':X  a  SOSS5      nU" SX^SS9n[        XUS9  U" SX^S9n[        XL5        [        US U-  US9  [!        ["        USUSS!9  [!        ["        USUSS"9  [!        ["        USUSS"9  [!        ["        USUSS#9  [!        ["        USUSS#9  [!        ["        USUSS9  [!        ["        USU[         R                  " S$SS5      S9  GMR     [        S%SS/5       GH]  u  p[        [        US(-   S 5      nUc  M  [        U" SU5      XS9  [        U" SUSS9UR                  R                  5       US9  [        U" SU
S SSS9XS9  [        U" SU
S&SSS9XS9  [         R                  " SUS':X  a  SOSS5      nU" SX^SS9n[        XUS9  U" SX^S9n[        XL5        [        US U-  US9  [!        ["        USUSS!9  [!        ["        USUSS"9  [!        ["        USUSS"9  [!        ["        USUSS#9  [!        ["        USUSS#9  [!        ["        USUSS9  [!        ["        USU[         R                  " S$SS5      S9  GM`     g ))NrG   rJ   r(   r*   rI   r         !@   FendpointrN   Drh   rE   Hz>+=syr      ?rtolTlowerr    )incxoffxnr   rh   rh   sr<   r!   rL   overwrite_a       @rK   rH   r   r   r   r   rP   r+   her)r,   r   r   newaxislinspaceviewconjc_r   ravelziprR   rd   r   Tr   assert_raises	Exception)rT   r   resxresx_reverser   r%   reszresz_reverserehzrehz_reversewrU   r   r<   rL   bs                   r4   test_syr_herTestFBLAS2Simple.test_syr_her  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<=wwqBJJ'!&&(23wwq2rzz!12QttW\\^CDEE"((1+q"((1+-.4464$/GAqw-AyAc1It7Ac1D1466EAc111:DLAc12A;(5 Sc3?A#q40AA$/#qAAJAqvD1)QQQ7)QQQ7)QQR8)QQ"5)QQ!4)QQa8)QQ"((632LM3 06 4$/GAqw-AyAc1It7Ac1D1466EAc111:DLAc12A;(5 Sc3?A#q40AA$/#qAAJAqvD1)QQQ7)QQQ7)QQR8)QQ"5)QQ!4)QQa8)QQ"((632LM3 06 4$/GAqw-AyAc1It7Ac1D1466;;=tLAc111:DLAc12A;(5 Sc3?A#q40AA$/#qAAJAqvD1)QQQ7)QQQ7)QQR8)QQ"5)QQ!4)QQa8)QQ"((632LM3 0r6   c                 l   [         R                  " SSSS9n[         R                  " SSSS9n[         R                  " US S 2[         R                  4   U-  US S 2[         R                  4   U-  -   5      n[         R                  " US S S2[         R                  4   US S S2   -  US S S2[         R                  4   US S S2   -  -   5      n[         R                  " SSS	S
S9n[        SSS/5       GH  u  pg[        [        US-   S 5      nUc  M  [        U" SX5      X7S9  [        U" SXSS9US S2S S24   US9  [        U" SXSS9UR                  US9  [        U" SXUSSSSS9X7S9  [        U" SXUSSSSSS9US S2S S24   US9  [        U" SXUSSSSS9XGS9  [         R                  " SUS:X  a  SOSS5      n	U" SXU	SS9n
[        XUS9  U" S XU	S!9n
[        XL5        [        U
SU-  US9  [        [        USXSS"9  [        [        USXSS#9  [        [        USXSS#9  [        [        USXSS$9  [        [        USXSS%9  [        [        USXSS%9  [        [        USXSS9  [        [        USXSS9  [        [        USXSS9  [        [        USX[         R                  " S&SS5      S!9  GM     g )'NrG   rJ   r(   r*   rN   rI   r   r   r   Fr   rE   r   r   syr2r   r   rH   r   Tr   r    r   r   r   incyoffyr   r   r   r   r   r   r   r   r<   r!   r   r   rK   r   r   r   r   r   )r,   r   r   r   r   r   rR   rd   r   r   r   r   r   r   )rT   r   r   resxyresxy_reverseqrU   r   r<   rL   r   s              r4   	test_syr2TestFBLAS2Simple.test_syr2k  s   IIa#&IIa#&!RZZ-(1,qBJJ/?!/CCD$B$

"2 3a"g ="#DbD"**$4"5$B$"?!@ A KK3U34$/GAqx.AyAc1L%;Ac11-uRaR!V}4HAc1t4eggDIAc1aaabI!.Ac1aaabAN!"1"bqb&M6 Ac1bqrK)6 Sc3?A#qqd3AA40#qq!AAJAqwT2)QQ:)QQ:)QQ;)QQ:)QQ:)QQ;)QQR8)QQQ7)QQ;)QQHHVS#68C 0r6   c                 @   [         R                  " SSSS9R                  S5      n[         R                  " SSSS9R                  S5      nUS S 2[         R                  4   UR	                  5       -  US S 2[         R                  4   UR	                  5       -  -   n[         R
                  " U5      nUS S S2[         R                  4   US S S2   R	                  5       -  nXBS S S2[         R                  4   US S S2   R	                  5       -  -  n[         R
                  " U5      n[         R                  [         R                  " S5      U[         R                  " S5      4   R                  5       n[         R                  [         R                  " S5      U[         R                  " S5      4   R                  5       n[        S	S
S/5       GH  u  px[        [        US-   S 5      n	U	c  M  [        U	" SX5      X8S9  [        U	" SXSS9US S2S S24   US9  [        U	" SXSS9UR                  R	                  5       US9  [        U	" SXVSSSSS9X8S9  [        U	" SXVSSSSSS9US S2S S24   US9  [        U	" SXVSSSSS9XHS9  [         R                  " SUS:X  a  SOSS5      n
U	" SXU
SS9n[        XUS9  U	" SXU
S9n[        XL5        [        USU-  US9  [        [         U	SXSS9  [        [         U	SXSS9  [        [         U	SXS S9  [        [         U	SXSS!9  [        [         U	SXSS"9  [        [         U	SXS S"9  [        [         U	SXS S9  [        [         U	SXSS9  [        [         U	SXS#S9  [        [         U	SX[         R                  " S$SS5      S9  GM     g )%NrG   rN   r(   r*   r   r   rI   rh   rP   r   r   her2r   r   rH   r   Tr   r   r   r   r   r+   r!   r   r   rK   r   r   rJ   r   r   r   r   r    r   )r,   r   r   r   r   r   r   r   r   r   rR   rd   r   r   r   r   r   )rT   r   r   r   r   uvrU   r   r<   rL   r   s               r4   	test_her2TestFBLAS2Simple.test_her2  sG   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4$/GAqx.AyAc1L%;Ac11-uRaR!V}4HAc1t4egglln!%' Ac1aaaaH!.Ac1aaaa1M!"1"bqb&M6 Ac1bqrJ)6 Sc3?A#qqd3AA40#qq!AAJAqwT2)QQ:)QQ:)QQ;)QQ:)QQ:)QQ;)QQR8)QQQ7)QQ;)QQHHVS#68E 0r6   c                 n   [         R                  R                  S5      n[        [        5       GH  u  p#SnSnSnSn[        [        UR                  US-   5      [        XV-
  S-
  5      5      [        UR                  US-   5      [        XG-
  S-
  5      5      5      nUR                  U5      n[        Xg-   S-   U4US9n	US   U	SS S24'   US   U	SSS	24'   US
   U	SSS24'   US   U	SS S24'   UR                  U5      R                  U5      n
UR                  U5      R                  U5      nU" S5      U" S5      p[        SUS9u  nU" XTXvXXUS9	nXR                  U
5      -  X-  -   n[        UU5        U" XTXvXXUSS9
nXR                  R                  U5      -  X-  -   n[        UU5        GM     g )N  rM   rJ   rG   r    r*   )r   r   )r   rG   r   )r   r    r   )rG   r   rH   rh   r   )gbmv)	mr   kuklalpharL   r   r   beta)
r   r   r   r  r  rL   r   r   r  trans)r,   randomdefault_rng	enumerateDTYPESr   r   r   astyper   r9   r   r   )rT   rngindr"   r   r   r  r   AAbr   r   r  r  funcr   y2s                    r4   	test_gbmvTestFBLAS2Simple.test_gbmv  s   ii##D)#F+JCAABB

2a4 0%Q-@

2a4 0%Q-@BAAa|51B $Bq"1"uI4Bq!A#vJ4Bq!A#vJ$Bq"1"uI

1$$U+A

1$$U+A(E"I4"9E:ED2ET+Bq!DH,B%b"-2ET4B#dh.B%b"-= ,r6   c           
      x   [         R                  R                  S5      n[        [        5       GH  u  p#SnSn[        XD4US9n[        US-   U4US9nUR                  U5      U[        U5      [        U5      4'   [        SUS-   5       H;  nUR                  XH-
  5      n	X[        XH-
  5      [        X5      4'   XSU-
  US 24'   M=     UR                  U5      nUS:  a  XfR                  -   OXfR                  5       R                  -   n[        U5      USS S 24'   UR                  U5      R                  U5      n
UR                  U5      R                  U5      nU" S5      U" S5      pUS:  a  [        S	US9u  nO[        S
US9u  nU" X\XzXS9nXR                  U
5      -  X-  -   n[        UU5        GM     g )Nr   r   r    r*   rG   rI         ?rH   )hbmv)sbmv)kr  rL   r   r   r  )r,   r  r  r  r  r   r   ranger	  r   r   r   r   r9   r   )rT   r
  r  r"   r   r  r  r  ind2tempr   r   r  r  r  r   r  s                    r4   test_sbmv_hbmvTestFBLAS2Simple.test_sbmv_hbmv  s   ii##D)#F+JCAAqfE*A!Qxu-B '*jjmAfQi"#a1zz!&)59&.&/12%)2d7DE>" & A7CCFFHJJAQBr1uI

1$$U+A

1$$U+A+uQx4Qw&y>&y>"QBBq!DH,B%b"-3 ,r6   c                    [         R                  R                  S5      n[        [        [
        -   5       GH  u  p#SnUR                  XD45      R                  U5      nUS:  a  XQR                  XD45      S-  -  nUR                  U5      nUS:  a  XUR                  -   OXUR                  5       R                  -   n[        U5      u  pgXWU4   nUR                  U5      R                  U5      n	UR                  U5      R                  U5      n
[        SU-  5      R                  U5      n[        SU-  5      R                  U5      nU" S5      U" S5      pUS:  a  [        SUS	9u  nO[        S
US	9u  nU" XMXXS9nXR                  U	5      -  X-  -   n[        UU5        U" US-
  XXUSSXDS9
nXS S2S S24   -  R                  USS S2   5      XSS S2   -  -   n[        USS S2   U5        [        US   US   5        GM     g )Niba rH   rG   r   rh   r    r  )hpmvr*   )spmv)r   r  apr   r   r  )
r   r  r  r   r   r  r   r   r   r   rI   )r,   r  r  r  r  COMPLEX_DTYPESr	  r   r   r   r   r   r   r9   r   r   )rT   r
  r  r"   r   r  r+   rApr   r   xlongylongr  r  r  r   r  s                     r4   test_spmv_hpmvTestFBLAS2Simple.test_spmv_hpmv	  s   ii##H-#F>$9:JCA

A6"))%0AQwZZ'**A7CCFFHJJA?DAa4B

1$$U+A

1$$U+A1Q3K&&u-E1I$$U+E+uQx4Qw&y>&y>2aCBq!DH,B%b"- !5u"116BCRC"H+%**5A;7$qt!t:LLB%bAh31uQx09 ;r6   c                    [         R                  R                  S5      n[        [        [
        -   5       GH  u  p#SnUR                  XD45      R                  U5      nUS:  a  XQR                  XD45      S-  -  nUR                  U5      nUS:  a  XUR                  -   OXUR                  5       R                  -   n[        U5      u  pgXWU4   nUR                  U5      R                  U5      n	[        [
        -   [        US5         " S5      n
US:  a?  [        SUS9u  nXS S 2S 4   R                  U	S S S 24   R                  5       5      -  U-   nO0[        S	US9u  nXS S 2S 4   R                  U	S S S 24   5      -  U-   nU" XJXS
9n[        SUS9nXXv4'   US:  a  UR                  5       OUXU4'   [        X5        GM     g )Nr   rH   rG   r   rh   g      @)hprr*   )spr)r   r  r  r   rH   rH   )r,   r  r  r  r  r   r	  r   r   r   r   r   r9   r   r   )rT   r
  r  r"   r   r  r+   r!  r"  r   r  r  r  r   y1fs                  r4   test_spr_hprTestFBLAS2Simple.test_spr_hpr)  s   ii##D)#F>$9:JCA

A6"))%0AQwZZ'**A7CCFFHJJA?DAa4B

1$$U+AN*CQK8=EQw&xu=q$wZ^^AdAgJOO,=>>B&xu=q$wZ^^AdAgJ77!;23Be,CI%(1W	"C1I%c./ ;r6   c           	         [         R                  R                  S5      n[        [        5       GH  u  p#SnUR                  XD45      R                  U5      nUS:  a  XQR                  XD45      S-  -  nUR                  U5      nUS:  a  XUR                  -   OXUR                  5       R                  -   n[        U5      u  pgXWU4   nUR                  U5      R                  U5      n	UR                  U5      R                  U5      n
U" S5      nUS:  a  [        SUS9u  nO[        SUS9u  nUR                  5       U	S S 2S 4   R                  U
S S S 24   R                  5       5      -  nX]-   UR                  5       R                  -   nU" XKXUS	9n[        S
US9nUUXv4'   U/ SQ   R                  5       U/ SQ/ SQ4'   [        UU5        GM     g )Nr   rH   rG   r   r    )hpr2r*   )spr2)r   r  r   r   r  r*  )rG   rH   rh   )rG   r    r    )r   r   rG   )r,   r  r  r  r  r	  r   r   r   r   r9   r   r   )rT   r
  r  r"   r   r  r+   r!  r"  r   r   r  r  r   r  r   r+  s                    r4   test_spr2_hpr2TestFBLAS2Simple.test_spr2_hpr2D  s   ii##D)#F+JCA

A6"))%0AQwZZ'**A7CCFFHJJA?DAa4B

1$$U+A

1$$U+A!HEQw&y>&y>

qDz~~aajoo.?@@A#B!R8Be,CCI(*9(:(:(<C	9$%%c2.1 ,r6   c                    [         R                  R                  S5      n[        [        5       GH  u  p#SnSnUR                  U5      R                  U5      n[        XD4US9n[        US-   5       H/  nUR                  XH-
  5      U[        XH-
  5      [        X5      4'   M1     US:  aH  U[        U5      ==   SUR                  US-   U-  XUS-   -  S-  -
  5      R                  U5      -  -  ss'   [        US-   U4US9n	[        US-   5       H  n
[        XzS9X* S-
  U
S 24'   M     [        S	US9u  nU" XYUS
9nUR                  U5      n[        X5        U" XYUSS9nU" S5      U[        U5      [        U5      4'   UR                  U5      n[        X5        U" XYUSSS9nUR                  R                  U5      n[        X5        U" XYUSSS9nUR                  5       R                  R                  U5      n[        X5        GM     g )Nr   r   rH   r*   rG   r   r    r  )tbmvr  rL   r   r  rL   r   r   r  rL   r   r   r  )r,   r  r  r  r  r	  r   r  r   r   r   r   r9   r   r   r   rT   r
  r  r"   r   r  r   r  supr  rowr  r   r  s                 r4   	test_tbmvTestFBLAS2Simple.test_tbmv`  s   ii##D)#F+JCAA

1$$U+AqfE*AQqSz36::ae3D&-/0 " Qw'!*cjj!A#q!qS'1*1E&F&M&Me&T!TT !Qxu-BQqSz#'>4634<  ""9E:ED1%BqB%b-11-B&+AhAfQi"#qB%b-11A6BB%b-11A6B"B%b-E ,r6   c                    [         R                  R                  S5      n[        [        5       GH  u  p#SnSnUR                  U5      R                  U5      n[        XD4US9n[        US-   5       H/  nUR                  XH-
  5      U[        XH-
  5      [        X5      4'   M1     US:  aH  U[        U5      ==   SUR                  US-   U-  XUS-   -  S-  -
  5      R                  U5      -  -  ss'   [        US-   U4US9n	[        US-   5       H  n
[        XzS9X* S-
  U
S 24'   M     [        S	US9u  nU" XYUS
9n[        Xv5      n[        X5        U" XYUSS9nU" S5      U[        U5      [        U5      4'   [        Xv5      n[        X5        U" XYUSSS9n[        UR                  U5      n[        X5        U" XYUSSS9n[        UR                  5       R                  U5      n[        X5        GM     g )Nr   r   rH   r*   rG   r   r    r4  )tbsvr6  r7  r8  )r,   r  r  r  r  r	  r   r  r   r   r   r   r   r   r   r   r9  s                 r4   	test_tbsvTestFBLAS2Simple.test_tbsv  s   ii##D)#F+JCAA

1$$U+AqfE*AQqSz36::ae3D&-/0 " Qw'!*cjj!A#q!qS'1*1E&F&M&Me&T!TT !Qxu-BQqSz#'>4634<  ""9E:ED1%BqB%b-11-B&+AhAfQi"#qB%b-11A6BqssAB%b-11A6Bqvvxzz1%B%b-E ,r6   c           	      B   [         R                  R                  S5      n[        [        5       GHl  u  p#SnUR                  U5      R                  U5      nUS:  a  [        UR                  XD45      5      nO1[        UR                  XD45      UR                  XD45      S-  -   5      n[        U5      u  pxXhU4   n	[        SUS9u  n
U
" XIUS9nUR                  U5      n[        X5        U
" XIUSS	9nU" S5      U[        U5      [        U5      4'   UR                  U5      n[        X5        U
" XIUSSS
9nUR                  R                  U5      n[        X5        U
" XIUSSS
9nUR                  5       R                  R                  U5      n[        X5        GMo     g )Nr   r   r    r   )tpmvr*   r   r  r   rG   r   r  r   r   r   r  r   r   r  )r,   r  r  r  r  r	  r   r   r   r9   r   r   r   r   rT   r
  r  r"   r   r   r  r+   r!  r"  r  r   r  s                r4   	test_tpmvTestFBLAS2Simple.test_tpmv  sh   ii##D)#F+JCA

1$$U+AQwQF+,QF+cjj!.@.CCD  ?DAa4B"9E:EDA&BqB%b-AA.B&+AhAfQi"#qB%b-AAQ7BB%b-AAQ7B"B%b-; ,r6   c           	      2   [         R                  R                  S5      n[        [        5       GHd  u  p#SnUR                  U5      R                  U5      nUS:  a  [        UR                  XD45      5      nO1[        UR                  XD45      UR                  XD45      S-  -   5      nU[        U5      -  n[        U5      u  pxXhU4   n	[        SUS9u  n
U
" XIUS9n[        Xe5      n[        X5        U
" XIUSS	9nU" S5      U[        U5      [        U5      4'   [        Xe5      n[        X5        U
" XIUSSS
9n[        UR                  U5      n[        X5        U
" XIUSSS
9n[        UR                  5       R                  U5      n[        X5        GMg     g )Nr   r   r    r   )tpsvr*   rD  rG   rE  rF  )r,   r  r  r  r  r	  r   r   r   r   r   r   r   r   r   rG  s                r4   	test_tpsvTestFBLAS2Simple.test_tpsv  sg   ii##D)#F+JCA

1$$U+AQwQF+,QF+cjj!.@.CCDQKA?DAa4B"9E:EDA&BqB%b-AA.B&+AhAfQi"#qB%b-AAQ7BqssAB%b-AAQ7Bqvvxzz1%B%b-; ,r6   c                    [         R                  R                  S5      n[        [        5       GHS  u  p#SnUR                  XD45      [        U5      -   R                  U5      nUR                  S5      R                  U5      n[        SUS9u  nU" XVS9n[        U5      R                  U5      n	[        X5        U" XVSS9nU" S5      U[        U5      [        U5      4'   [        U5      R                  U5      n	[        X5        U" XVSSS9n[        U5      R                  R                  U5      n	[        X5        U" XVSS	S9n[        U5      R                  5       R                  R                  U5      n	[        X5        GMV     g )
Nr   rH   )trmvr*   rL   r   rG   rL   r   r   rL   r   r   r  r    )r,   r  r  r  r  r   r	  r   r   r9   r   r   r   r   
rT   r
  r  r"   r   r  r   r  r   r  s
             r4   	test_trmvTestFBLAS2Simple.test_trmv  s:   ii##D)#F+JCAQF#CF*2259A

1$$U+A"9E:EDBaQB%b-Q'B&+AhAfQi"#aQB%b-Qa0Baq!B%b-Qa0Ba!!%%a(B%b-+ ,r6   c                 6   [         R                  R                  S5      n[        [        5       GHf  u  p#SnUR                  XD45      [        U5      -   R                  U5      nUR                  U5      R                  U5      n[        SUS9u  nU" XVS9n[        [        U5      U5      n	[        X5        U" XVSS9n[        [        U5      U5      n	[        X5        U" XVSS9nU" S5      U[        U5      [        U5      4'   [        [        U5      U5      n	[        X5        U" XVSSS	9n[        [        U5      R                  U5      n	[        X5        U" XVSS
S	9n[        [        U5      R                  5       R                  U5      n	[        X5        GMi     g )Nr      )trsvr*   rP  rG   )rL   r   r   rQ  rR  r    )r,   r  r  r  r  r   r	  r   r   r   r   r   r   r   r   rS  s
             r4   	test_trsvTestFBLAS2Simple.test_trsv  sV   ii##D)#F+JCAQF#CF*2259A

1$$U+A"9E:EDBtAw"B%b-a(BtAw"B%b-Q'B&+AhAfQi"#tAw"B%b-Qa0BtAwyy!$B%b-Qa0BtAw||~''+B%b-3 ,r6   rY   N)rZ   r[   r\   r]   r   pytestmarkthread_unsafer   r   r   r   r  r  r%  r,  r1  r<  r@  rH  rL  rT  rY  r^   rY   r6   r4   r   r      sy    1" [[H H@^N@+8Z08d .D.:1@/6/8$.L$.L.B.B.2.r6   r   c                       \ rS rSrS rSrg)TestFBLAS3Simplei%  c           
      T   S HN  n[        [        US-   S 5      nUc  M  [        U" SS/S/5      S//5        [        U" SS/S/SS/5      S/5        MP     S HN  n[        [        US-   S 5      nUc  M  [        U" S	S
/S/5      S//5        [        U" S	S
/S/SS/5      S/5        MP     g )NrE   r)   rH   rp   r   rJ   r   rP   ru   rv   r   r   r   rc   rS   s      r4   	test_gemmTestFBLAS3Simple.test_gemm'  s    Aqx.Ay%aA3ow?%aA3a!&=uE  Aqx.Ay%aTFRD&9WI;G%aTFRD!bT&BWIN r6   rY   N)rZ   r[   r\   r]   ra  r^   rY   r6   r4   r_  r_  %  s    Or6   r_  c              #   V   #    U H  n[        [        X -   S5      nUc  M  Uv   M!     g7f)z;Just a helper: return a specified BLAS function w/typecode.N)rR   rd   )r  psrU   r<   s       r4   	_get_funcre  6  s,     E164(9	 s   ')c                   ,    \ rS rSrS rS rS rS rSrg)TestBLAS3Symmi?  c                     [         R                  " SS/SS//5      U l        [         R                  " / SQ/ SQ/5      U l        [         R                  " S5      U l        [         R                  " / SQ/ SQ/5      U l        g )	Nr   r           )r   ri        @)ri        r   )r    rH   )r   rk  g       @)rj  ri  g      "@)r,   arrayrL   r   r   r+   trT   s    r4   setup_methodTestBLAS3Symm.setup_methodA  sg    B88% &<(* +=') *r6   c           
         [        S5       H  nU" U R                  U R                  U R                  SSS9n[	        X R
                  5        U" U R                  R                  U R                  SU R                  SSS9n[	        X R
                  5        U" U R                  U R                  R                  SU R                  R                  SSS9n[	        X R
                  R                  5        M     g )Nsymmr   rL   r   r+   r  r  rG   rL   r   r   r+   r  r  )rL   r   sider+   r  r  )re  rL   r   r+   r   rm  r   rT   r<   ress      r4   	test_symmTestBLAS3Symm.test_symmJ  s    6"Adff$&&DC%c662dffhh$&&TVV2BOC%c662dffqDFFHH2'C%c66884 #r6   c           	          [        [        SS 5      nUb+  [        [        U40 U R                  U R
                  SSS.D6  g g )NdsymmrG   )rL   r   r  ru  )rR   rd   r   r   rL   r   rT   r<   s     r4   test_summ_wrong_side"TestBLAS3Symm.test_summ_wrong_sideV  sD    E7D)=)Q CTVV45q+B C r6   c           	      l   [        [        SS5      nUb  U" U R                  U R                  U R                  SSS9n[
        R                  " X R                  5      (       d   eU" U R                  U R                  SU R                  SSS9n[
        R                  " X R                  5      (       a   egg)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{  Nr   rs  rG   rt  )rR   rd   rL   r   r+   r,   allcloserm  rv  s      r4   test_symm_wrong_uplo"TestBLAS3Symm.test_symm_wrong_uplo^  s    
 E7D)=dff$&&DC;;sFF++++dffa466"MC{{3///// r6   )rL   r   r+   rm  N)	rZ   r[   r\   r]   ro  rx  r}  r  r^   rY   r6   r4   rg  rg  ?  s    *
5C0r6   rg  c                   &    \ rS rSrS rS rS rSrg)TestBLAS3Syrkil  c                     [         R                  " SS/SS/SS//5      U l        [         R                  " / SQ/ SQ/ SQ/5      U l        [         R                  " S	S
/S
S//5      U l        g )Nr   ri         r   rj  )r   ri  r   )ri        @      )r   r        *@      @      @r  )r,   rl  rL   rm  ttrn  s    r4   ro  TestBLAS3Syrk.setup_methodm  sn    B898% & <()+ , ((RHI' (r6   c                    [        S5       GHq  nU" U R                  SS9n[        [        R                  " U5      [        R                  " U R
                  5      5        U" U R                  SSS9n[        [        R                  " U5      [        R                  " U R
                  5      5        [        R                  " U R
                  R                  5      nU" U R                  SSUS9n[        [        R                  " U5      [        R                  " U R
                  U-   5      5        U" U R                  SSS9n[        [        R                  " U5      [        R                  " U R                  5      5        GMt     g )Nsyrkr   rL   r  rG   )rL   r  r   )rL   r  r  r+   )rL   r  r  )
re  rL   r   r,   r   rm  r   r   shaper  rT   r<   r+   c0s       r4   	test_syrkTestBLAS3Syrk.test_syrkw  s    6"ADFF"%A%bggaj"''$&&/BDFF"A.A%bggaj"''$&&/B&BDFF"24A%bggaj"''$&&)2DEDFF"A.A%bggaj"''$''2BC #r6   c           	          [        [        SS 5      nUb4  [        [        U40 U R                  S[
        R                  " S5      S.D6  g g )Ndsyrkr   )rJ   ri   )rL   r  r+   )rR   rd   r   r   rL   r,   r   r|  s     r4   test_syrk_wrong_cTestBLAS3Syrk.test_syrk_wrong_c  sF    E7D)=)Q B02+A B r6   )rL   rm  r  N)rZ   r[   r\   r]   ro  r  r  r^   rY   r6   r4   r  r  l  s    (D$Br6   r  c                   &    \ rS rSrS rS rS rSrg)TestBLAS3Syr2ki  c                    [         R                  " SS/SS/SS//5      U l        [         R                  " SS/SS/SS//5      U l        [         R                  " / SQ/ SQ/ S	Q/5      U l        [         R                  " SS/SS
//5      U l        g )Nr   ri  r  r   rj  r   )ri  rk  rj  )rk  ri  ri  )rj  ri  r  r   )r,   rl  rL   r   rm  r  rn  s    r4   ro  TestBLAS3Syr2k.setup_method  s    B898% & B88r7$ % =(') * ((RHG% &r6   c           	      ^   [        S5       GH  nU" U R                  U R                  SS9n[        [        R
                  " U5      [        R
                  " U R                  5      5        U" U R                  U R                  SSS9n[        [        R                  " U5      [        R                  " U R                  5      5        [        R                  " U R                  R                  5      nU" U R                  U R                  SSUS9n[        [        R
                  " U5      [        R
                  " U R                  U-   5      5        U" U R                  U R                  SSS9n[        [        R
                  " U5      [        R
                  " U R                  5      5        GM     g )Nsyr2kr   rL   r   r  rG   )rL   r   r  r   )rL   r   r  r  r+   )rL   r   r  r  )re  rL   r   r   r,   r   rm  r   r   r  r  r  s       r4   
test_syr2kTestBLAS3Syr2k.test_syr2k  s   7#ADFFdffB/A%bggaj"''$&&/BDFFdffBa8A%bggaj"''$&&/B&BDFFdffBR2>A%bggaj"''$&&)2DEDFFdffBa8A%bggaj"''$''2BC $r6   c           
          [        [        SS 5      nUb?  [        [        U40 U R                  U R
                  S[        R                  " S5      S.D6  g g )Ndsyr2kr   )rW  ri   )rL   r   r  r+   )rR   rd   r   r   rL   r   r,   r   r|  s     r4   test_syr2k_wrong_c!TestBLAS3Syr2k.test_syr2k_wrong_c  sO    E8T*=)Q D0446020A+C D r6   )rL   r   rm  r  N)rZ   r[   r\   r]   ro  r  r  r^   rY   r6   r4   r  r    s    &D Dr6   r  c                   B    \ rS rSrSrS rS rS rS rS r	S r
S	 rS
rg)TestSyHei  z2Quick and simple tests for (zc)-symm, syrk, syr2k.c                 F    [         R                  " SS/SS//5      U l        g )Nri  y             r   )r,   rl  sigma_yrn  s    r4   ro  TestSyHe.setup_method  s$    xx"d"%r!, -r6   c                     [        SS5       HU  nU" U R                  U R                  SS9n[        [        R                  " U5      [        R
                  " SS/5      5        MW     g )Nrr  zcr   r  rG   rI   re  r  r   r,   r   r   rv  s      r4   test_symm_zcTestSyHe.test_symm_zc  sH    64(Adlldll"=C%bggclBGGQG4DE )r6   c                     [        SS5       HU  nU" U R                  U R                  SS9n[        [        R                  " U5      [        R
                  " SS/5      5        MW     g )Nhemmr  r   r  rG   r  rv  s      r4   test_hemm_zcTestSyHe.test_hemm_zc  sG    64(Adlldll"=C%bggclBGGQFOD )r6   c                     [        SS5       HJ  nU" U R                  SS9n[        [        R                  " U5      [        R
                  " SS/5      5        ML     g )Nr  r  r   r  rI   r  rv  s      r4   test_syrk_zrTestSyHe.test_syrk_zr  sB    64(Adll"-C%bggclBGGRH4EF )r6   c                     [        SS5       HJ  nU" U R                  SS9n[        [        R                  " U5      [        R
                  " SS/5      5        ML     g )Nherkr  r   r  rG   r  rv  s      r4   test_herk_zrTestSyHe.test_herk_zr  sA    64(Adll"-C%bggclBGGQFOD )r6   c           	          [        SS5       HX  nU" U R                  U R                  SS9n[        [        R                  " U5      S[        R
                  " SS/5      -  5        MZ     g )Nr  r  r   r  r   rI   r  rv  s      r4   test_syr2k_zrTestSyHe.test_syr2k_zr  sM    7D)Adlldll"=C%bggclBrwwBx7H4HI *r6   c           	          [        SS5       HX  nU" U R                  U R                  SS9n[        [        R                  " U5      S[        R
                  " SS/5      -  5        MZ     g )Nher2kr  r   r  r   rG   r  rv  s      r4   test_her2k_zrTestSyHe.test_her2k_zr  sL    7D)Adlldll"=C%bggclBrww1v4FG *r6   )r  N)rZ   r[   r\   r]   __doc__ro  r  r  r  r  r  r  r^   rY   r6   r4   r  r    s.    <-FEG
E
J
Hr6   r  c                   t    \ rS rSrSrS r\R                  R                  S\	5      S 5       r
S rS rS rS	rg
)TestTRMMi  z!Quick and simple tests for dtrmm.c                 &   [         R                  " SS/SS//5      U l        [         R                  " / SQ/ SQ/5      U l        [         R                  " / SQ/ SQ/ SQ/ S	Q/S
S9U l        [         R                  " SS/SS/SS/SS/SS//S
S9U l        g )Nr   r   r  rj  r  rk  r  r  r  )rG   rG   r    rH   )r   rG   rh   rJ   )r   r   rG   r   )r   r   r   rG   r<   )r#   rG   rh   r    rJ   rH   r   rM   ri   rN   r   )r,   rl  rL   r   a2b2rn  s    r4   ro  TestTRMM.setup_method  s    B:9& '=(* + ((L(((* 256 ((QFQFQFQFQGD!$&r6   dtype_c           	         [        SUS9n[        [        USU R                  U R                  5        U" SU R                  R                  U5      U R                  R                  U5      SS9nU R                  R                  S   n[        X0R                  U R                  S U2S U24   -  SS[        R                  " U5      R                  -  S9  g )	Ntrmmr*   r   rG   )ru  ri  d   )r   atol)r   r   r   r  r  r	  r  r   r,   finfoeps)rT   r  r  rw  r  s        r4   	test_sideTestTRMM.test_side  s    fF3isDGGTWW=3v.v0FGGMM!WWtwwrr2A2v6R &!1!5!55	7r6   c                     [        [        SS 5      nUbF  U" SU R                  U R                  5      n[        R
                  " / SQ/ SQ/5      n[        X#5        g g )Ndtrmmr   )r  g      0@g      r  rR   rd   rL   r   r,   rl  r   rT   r<   resultexpecteds       r4   test_abTestTRMM.test_ab  sP    E7D)=r466466*Fxx!.!0 1H%f7 r6   c                     [        [        SS 5      nUbE  U" SU R                  U R                  SS9n[        R
                  " / SQ/ SQ/5      n[        X#5        g g )Nr  r   Tr   r  )rk  r  ri  r  r  s       r4   test_ab_lowerTestTRMM.test_ab_lower  sR    E7D)=r4664666Fxx!/!1 2H%f7	 r6   c                 \   [        [        SS 5      nUGb  S H  nU R                  R                  5       nU" SU R                  X2S9n[        UR                  R                  SL =(       a    [        R                  " X45      SL 5        [        X0R                  5        M     [        R                  " U R                  R                  5       5      nU" SU R                  USS9n[        UR                  R                  SL =(       a    [        R                  " X45      SL 5        [        X45        g g )Nr  )TFr   )overwrite_bFT)rR   rd   r   rg   rL   r   flagsf_contiguousr,   may_share_memoryr   asfortranarrayr   )rT   r<   overwrbcopyr  s        r4   test_b_overwritesTestTRMM.test_b_overwrites  s     E7D)='2tvvuA00E9 D++E:eCEUFF+ ( %%dffkkm4Er4665d;FEKK,,4 ?''6$>@%e4 r6   )rL   r  r   r  N)rZ   r[   r\   r]   r  ro  r[  r\  parametrizer  r  r  r  r  r^   rY   r6   r4   r  r    s>    +& [[Xv.7 /7885r6   r  c            
         [         R                  R                  S5      n [        [        5       GHJ  u  p[         R
                  " U5      R                  S-  n[        SUS9u  nU R                  S5      R                  U5      nU R                  S5      R                  U5      nU" S5      n[        [        XGXV5        [        [        XGUR                  U5        SnS	n	U" S
5      nUS:  a  U R                  X45      [        U	5      -   nO4U R                  X45      U R                  X45      S-  -   [        U	5      -   nUR                  U5      n[        U5      n
[        U5      nU R                  X45      R                  U5      nU R                  X45      R                  U5      nU" XuUS9n[        UR                   UR                   5        [#        XU-  5      n[%        XUS9  U" XuUSS9n[#        U
R                  X|-  5      n[%        XUS9  U" XuUSS9n[#        U
R'                  5       R                  X|-  5      n[%        XUS9  U" XuUSS9nU" S5      U
[)        U	5      [)        U	5      4'   [#        XU-  5      n[%        XUS9  U" XuUSSS9n[#        U
R'                  5       R                  X}R'                  5       R                  -  5      n[%        XR'                  5       R                  US9  U" XuUSSSS9nU" S5      U[)        U	5      [)        U	5      4'   [#        UR'                  5       R                  X}R'                  5       R                  -  5      n[%        XR'                  5       R                  US9  GMM     g )Nr   i  )trsmr*   )rh   rJ   r   rG   ri   rM   g      r    r   )r  rL   r   )r  )r  rL   r   trans_a)r  rL   r   r   )r  rL   r   r   ru  )r  rL   r   r   ru  r   )r,   r  r  r  r  r  r  r   r	  r   r   r   r   r   r   r   r  r   r   r   r   )r
  r  r"   tolr  r  Br  r   r   AuAlB1B2r   x2s                   r4   	test_trsmr  !  s   
))


%C'
hhuo!!$&y6 JJv%%e,JJv%%e,aia3iacc15d7

A6"SV+AQF#cjj!&8&;;s1vEAHHUO!W!WZZ&&u-ZZ&&u-b)RXXrxx(2Rx S)b!4244"S)b!42779;;)S)bq1#(86!9fQi 2Rx S)bqq92779;;ggikk 12GGIKKc2bqqB#(86!9fQi 2779;;ggikk 12GGIKKc2c (r6   Fzgh-16930)runreasonc                      [         R                  " SS5      n [        R                  R                  R                  U SSS5      n[        R                  " S5      n[        X5        g )Nr   rN   rJ   rH   rI   i  )	r,   repeatscipylinalgblasdnrm2r   r   r   )r   actualr  s      r4   test_gh_169309r  W  sI     			"aA\\$$Q1b1Fyy~HF%r6   c                      [         R                  " SS5      n Sn[        [        R                  5         [
        R                  R                  R                  U SSU5        S S S 5        g ! , (       d  f       g = f)Nr   rN   rI   rJ   rH   )	r,   r  r   rd   __fblas_errorr  r  r  r  )r   r   s     r4   test_dnrm2_neg_incxr  `  sQ     			"aAD	u**	+1a. 
,	+	+s   -A))
A7)sdzc):r   r[  numpyr,   numpy.randomnumpy.testingr   r   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r  scipy.linalgr   rd   r   r   r   r   r&   ImportErrorREAL_DTYPESr   r  r5   r?   rA   r`   r   r_  re  rg  r  r  r  r  r  r\  xfailr  r  rY   r6   r4   <module>r     s:  
    G G *      I I,  Z(	~	%$#N6 6"r. r.lK	. K	.\O O"*0 *0Z!B !BJ$D $DP%H %HP=5 =5@33l u$  &&&&/U"  Es   C7 7DD