
    doiH                        S SK Jr  S SKrS SK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  S SKJr  S SKJrJrJrJr  S SKrSrS r " S S	5      r  " S
 S\5      r " S S\5      r  " S S\5      r  " S S\5      r! " S S5      r"  " S S\"5      r# " S S\"5      r$  " S S\"5      r% " S S\"5      r& " S  S!5      r'  " S" S#\'5      r( " S% S&\'5      r)  " S' S(\'5      r* " S* S+\'5      r+ " S, S-5      r,  " S. S/\,5      r- " S1 S2\,5      r.  " S3 S4\,5      r/ " S6 S7\,5      r0 " S8 S95      r1  " S: S;\15      r2 " S= S>\15      r3  " S? S@\15      r4 " SB SC\15      r5 g! \ a     " S S5      r GNf = f! \ a     " S S5      r  GNf = f! \ a     " S S5      r# GNf = f! \ a     " S S5      r% GNf = f! \ a     " S$ S#5      r( GNf = f! \ a     " S) S(5      r* GNf = f! \ a     " S0 S/5      r- Nf = f! \ a     " S5 S45      r/ Nf = f! \ a     " S< S;5      r2 Nf = f! \ a     " SA S@5      r4 Nf = f)D    )productN)float32float64	complex64
complex128arangearrayzerosshape	transposenewaxiscommon_type	conjugate)_fblas)assert_array_equalassert_allcloseassert_array_almost_equalassert_   c                 @   [        UR                  5      S:X  a  SnUS S 2[        4   nOSn[        U R                  S   UR                  S   :H  5        [	        U R                  S   UR                  S   4[        X5      5      n[        U R                  S   5       HW  n[        UR                  S   5       H8  nSn[        U R                  S   5       H  nX`XG4   XU4   -  -  nM     XcXE4'   M:     MY     U(       a  UR                  U R                  S   45      nU$ )N   TFr   )lenr   r   r   r
   r   rangereshape)abb_is_vectorcijsks           Y/var/www/html/land-ocr/venv/lib/python3.13/site-packages/scipy/linalg/tests/test_fblas.pymatrixmultiplyr$      s    
177|qajMAGGAJ!''!*$%qwwqz1771:&A(9:A1771:qwwqz"AA1771:&qtWqAw&& 'adG	 #  IIqwwqzm$H    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)BaseAxpy3   zMixin class for axpy tests c                     [        SU R                  S9n[        SUR                  S9nUS-  U-   nU R                  X5      n[        X25        g )N      @dtype      ?r   r,   	blas_funcr   selfxyreal_ys       r#   test_default_aBaseAxpy.test_default_a6   sE    2TZZ(2QWW%2aNN1 6%r%   c                     [        SU R                  S9n[        SUR                  S9nUS-  U-   nU R                  XSS9n[        X25        g )Nr*   r+   )r   r.   r0   s       r#   test_simpleBaseAxpy.test_simple=   sI    2TZZ(2QWW%2aNN12N&6%r%   c                     [        SU R                  S9n[        SUR                  5      n[        SUR                  S9nUS S S2   S-  U-   nU R                  XSSSS9n[	        X25        g )N      @r+      r*      )r   nincxr   r,   r
   r/   r   r0   s       r#   test_x_strideBaseAxpy.test_x_strideD   se    2TZZ(!QWW2QWW%3Q31NN12N36%r%   c                     [        SU R                  S9n[        SUR                  5      nUS-  US S S2   -   nU R                  XSSSS9n[	        X2S S S2   5        g )Nr*   r+      r=   r<   )r   r>   incyr@   r0   s       r#   test_y_strideBaseAxpy.test_y_strideL   s]    2TZZ(!QWW2a!fNN12N36SqS6*r%   c           	          [        SU R                  S9n[        SUR                  5      nUS S S2   S-  US S S2   -   nU R                  XSSSSS9n[	        X2S S S2   5        g )	N      (@r+   rD      r*   r=   r<   )r   r>   r?   rE   r@   r0   s       r#   test_x_and_y_strideBaseAxpy.test_x_and_y_strideS   sh    3djj)!QWW3Q31SqS6!NN12N;6SqS6*r%   c                     [        SU R                  S9n[        SUR                  5      n[        R                  " [
        SS9   U R                  XSSS9  S S S 5        g ! , (       d  f       g = f	NrI   r+   rD   failed for 1st keywordmatchrJ   r   r>   r?   r   r,   r
   pytestraises	Exceptionr/   r1   r2   r3   s      r#   test_x_bad_sizeBaseAxpy.test_x_bad_sizeZ   P    3djj)!QWW]]9,DENN111N- FEE   A
A-c                     [        SU R                  S9n[        SUR                  5      n[        R                  " [
        SS9   U R                  XSSS9  S S S 5        g ! , (       d  f       g = f	NrI   r+   rD   rO   rP   r<   r   r>   rE   rS   rW   s      r#   test_y_bad_sizeBaseAxpy.test_y_bad_size`   rZ   r[    N)__name__
__module____qualname____firstlineno____doc__r5   r8   rA   rF   rK   rX   r_   __static_attributes__ra   r%   r#   r'   r'   3   s(    &&&&++..r%   r'   c                   0    \ rS rSr\R
                  r\rSr	g)	TestSaxpyh   ra   N)
rb   rc   rd   re   fblassaxpyr/   r   r,   rg   ra   r%   r#   ri   ri   h       KK	r%   ri   c                       \ rS rSrSrg)ri   l   ra   Nrb   rc   rd   re   rg   ra   r%   r#   ri   ri   l       r%   c                   0    \ rS rSr\R
                  r\rSr	g)	TestDaxpyp   ra   N)
rb   rc   rd   re   rk   daxpyr/   r   r,   rg   ra   r%   r#   rs   rs   p       IEr%   rs   c                   0    \ rS rSr\R
                  r\rSr	g)	TestCaxpyv   ra   N)
rb   rc   rd   re   rk   caxpyr/   r   r,   rg   ra   r%   r#   rx   rx   v       KK	r%   rx   c                       \ rS rSrSrg)rx   z   ra   Nrp   ra   r%   r#   rx   rx   z   rq   r%   c                   0    \ rS rSr\R
                  r\rSr	g)	TestZaxpy~   ra   N)
rb   rc   rd   re   rk   zaxpyr/   r   r,   rg   ra   r%   r#   r   r   ~       IEr%   r   c                   *    \ rS rSrSrS rS rS rSrg)BaseScal   zMixin class for scal testing c                 p    [        SU R                  S9nUS-  nU R                  SU5      n[        X!5        g Nr*   r+   r.   r1   r2   real_xs      r#   r8   BaseScal.test_simple   s3    2TZZ(2NN2q!6%r%   c                     [        SU R                  S9nUR                  5       nUS S S2   [        SU R                  5      -  US S S2'   U R	                  SUSSS9n[        X!5        g )Nr;   r+   r=   r*   r<   rR   )r   r,   copyr	   r/   r   r   s      r#   rA   BaseScal.test_x_stride   s`    2TZZ(!fU2tzz22ssNN2qAAN.6%r%   c                     [        SU R                  S9n[        R                  " [        SS9   U R                  SUSSS9  S S S 5        g ! , (       d  f       g = f)	NrI   r+   rO   rP   g       @rJ   r   rR   )r   r,   rT   rU   rV   r/   )r1   r2   s     r#   rX   BaseScal.test_x_bad_size   sB    3djj)]]9,DENN2qAAN. FEEs   A


Ara   N)	rb   rc   rd   re   rf   r8   rA   rX   rg   ra   r%   r#   r   r      s    (&&/r%   r   c                   0    \ rS rSr\R
                  r\rSr	g)	TestSscal   ra   N)
rb   rc   rd   re   rk   sscalr/   r   r,   rg   ra   r%   r#   r   r      rm   r%   r   c                       \ rS rSrSrg)r      ra   Nrp   ra   r%   r#   r   r      rq   r%   c                   0    \ rS rSr\R
                  r\rSr	g)	TestDscal   ra   N)
rb   rc   rd   re   rk   dscalr/   r   r,   rg   ra   r%   r#   r   r      rv   r%   r   c                   0    \ rS rSr\R
                  r\rSr	g)	TestCscal   ra   N)
rb   rc   rd   re   rk   cscalr/   r   r,   rg   ra   r%   r#   r   r      r{   r%   r   c                       \ rS rSrSrg)r      ra   Nrp   ra   r%   r#   r   r      rq   r%   c                   0    \ rS rSr\R
                  r\rSr	g)	TestZscal   ra   N)
rb   rc   rd   re   rk   zscalr/   r   r,   rg   ra   r%   r#   r   r      r   r%   r   c                   <    \ rS rSrSrS rS rS rS rS r	S r
S	rg
)BaseCopy   zMixin class for copy testing c                     [        SU R                  S9n[        [        U5      UR                  5      nU R	                  X5      n[        X5        g r   )r   r,   r
   r   r/   r   rW   s      r#   r8   BaseCopy.test_simple   s<    2TZZ(%(AGG$NN1 1 r%   c                     [        SU R                  S9n[        SUR                  5      nU R                  XSSS9n[	        US S S2   U5        g Nr;   r+   r<   r=   rR   r@   rW   s      r#   rA   BaseCopy.test_x_stride   sH    2TZZ(!QWWNN111N-1SqS61%r%   c                     [        SU R                  S9n[        SUR                  5      nU R                  XSSS9n[	        XS S S2   5        g )Nr*   r+   rD   r<   r=   r^   r@   rW   s      r#   rF   BaseCopy.test_y_stride   sF    2TZZ(!QWWNN111N-1!f%r%   c                     [        SU R                  S9n[        SUR                  5      nU R                  XSSSS9n[	        US S S2   US S S2   5        g )NrI   r+   rD   r<   rJ   r=   r>   r?   rE   r@   rW   s      r#   rK   BaseCopy.test_x_and_y_stride   sR    3djj)!QWWNN1111N51SqS61SqS6*r%   c                     [        SU R                  S9n[        SUR                  5      n[        R                  " [
        SS9   U R                  XSSS9  S S S 5        g ! , (       d  f       g = frN   rS   rW   s      r#   rX   BaseCopy.test_x_bad_size   rZ   r[   c                     [        SU R                  S9n[        SUR                  5      n[        R                  " [
        SS9   U R                  XSSS9  S S S 5        g ! , (       d  f       g = fr]   rS   rW   s      r#   r_   BaseCopy.test_y_bad_size   rZ   r[   ra   Nrb   rc   rd   re   rf   r8   rA   rF   rK   rX   r_   rg   ra   r%   r#   r   r      s#    (!&&+..r%   r   c                   0    \ rS rSr\R
                  r\rSr	g)	TestScopy   ra   N)
rb   rc   rd   re   rk   scopyr/   r   r,   rg   ra   r%   r#   r   r      rm   r%   r   c                       \ rS rSrSrg)r      ra   Nrp   ra   r%   r#   r   r      rq   r%   c                   0    \ rS rSr\R
                  r\rSr	g)	TestDcopy   ra   N)
rb   rc   rd   re   rk   dcopyr/   r   r,   rg   ra   r%   r#   r   r      rv   r%   r   c                   0    \ rS rSr\R
                  r\rSr	g)	TestCcopy   ra   N)
rb   rc   rd   re   rk   ccopyr/   r   r,   rg   ra   r%   r#   r   r      r{   r%   r   c                       \ rS rSrSrg)r      ra   Nrp   ra   r%   r#   r   r      rq   r%   c                   0    \ rS rSr\R
                  r\rSr	g)	TestZcopyi  ra   N)
rb   rc   rd   re   rk   zcopyr/   r   r,   rg   ra   r%   r#   r   r     r   r%   r   c                   <    \ rS rSrSrS rS rS rS rS r	S r
S	rg
)BaseSwapi	  zMixin class for swap tests c                     [        SU R                  S9n[        [        U5      UR                  5      nUR	                  5       nUR	                  5       nU R                  X5      u  p[        X15        [        XB5        g r   )r   r,   r
   r   r   r/   r   r1   r2   r3   	desired_x	desired_ys        r#   r8   BaseSwap.test_simple  s\    2TZZ(%(AGG$FFH	FFH	~~a#9(9(r%   c                    [        SU R                  S9n[        SUR                  5      nUR                  5       nUR                  5       S S S2   nU R	                  XSSS9u  p[        X1S S S2   5        [        XB5        g r   r   r,   r
   r   r/   r   r   s        r#   rA   BaseSwap.test_x_stride  sn    2TZZ(!QWWFFH	FFHSqSM	~~aaa~09!f-9(r%   c                    [        SU R                  S9n[        SUR                  5      nUR                  5       S S S2   nUR                  5       nU R	                  XSSS9u  p[        X15        [        XBS S S2   5        g )Nr*   r+   rD   r=   r<   r^   r   r   s        r#   rF   BaseSwap.test_y_stride  sn    2TZZ(!QWWFFHSqSM	FFH	~~aaa~09(9!f-r%   c                    [        SU R                  S9n[        SUR                  5      nUR                  5       S S S2   nUR                  5       S S S2   nU R	                  XSSSS9u  p[        X1S S S2   5        [        XBS S S2   5        g )NrI   r+   rD   r=   rJ   r<   r   r   r   s        r#   rK   BaseSwap.test_x_and_y_stride'  s    3djj)!QWWFFHSqSM	FFHSqSM	~~aaaa~89!f-9!f-r%   c                     [        SU R                  S9n[        SUR                  5      n[        R                  " [
        SS9   U R                  XSSS9  S S S 5        g ! , (       d  f       g = frN   rS   rW   s      r#   rX   BaseSwap.test_x_bad_size0  rZ   r[   c                     [        SU R                  S9n[        SUR                  5      n[        R                  " [
        SS9   U R                  XSSS9  S S S 5        g ! , (       d  f       g = fr]   rS   rW   s      r#   r_   BaseSwap.test_y_bad_size6  rZ   r[   ra   Nr   ra   r%   r#   r   r   	  s#    &))....r%   r   c                   0    \ rS rSr\R
                  r\rSr	g)	TestSswapi>  ra   N)
rb   rc   rd   re   rk   sswapr/   r   r,   rg   ra   r%   r#   r   r   >  rm   r%   r   c                       \ rS rSrSrg)r   iB  ra   Nrp   ra   r%   r#   r   r   B  rq   r%   c                   0    \ rS rSr\R
                  r\rSr	g)	TestDswapiF  ra   N)
rb   rc   rd   re   rk   dswapr/   r   r,   rg   ra   r%   r#   r   r   F  rv   r%   r   c                   0    \ rS rSr\R
                  r\rSr	g)	TestCswapiL  ra   N)
rb   rc   rd   re   rk   cswapr/   r   r,   rg   ra   r%   r#   r   r   L  r{   r%   r   c                       \ rS rSrSrg)r   iP  ra   Nrp   ra   r%   r#   r   r   P  rq   r%   c                   0    \ rS rSr\R
                  r\rSr	g)	TestZswapiT  ra   N)
rb   rc   rd   re   rk   zswapr/   r   r,   rg   ra   r%   r#   r   r   T  r   r%   r   c                   ^    \ rS rSrSrSS jrS rS rS rS r	S r
S	 rS
 rS rS rS rSrg)BaseGemvi]  zMixin class for gemv tests c                     [         R                  R                  S5      n[        SU R                  S9nU R                  [
        [        4;   a  [        SU R                  S9n[        SU R                  S9U-  n[        SU R                  S9U-  nUR                  SSS5      R                  U R                  5      U-  n[        [        U5      S   U-  U R                  S9U-  n[        [        U5      S   U-  U R                  S9U-  n	XVXxU	4$ )	N  r   r+   y      ?      ?r-   g        )r<   r<   r   )nprandomdefault_rngr	   r,   r   r   normalastyper   r   )
r1   x_stridey_striderngmultalphabetar   r2   r3   s
             r#   get_dataBaseGemv.get_data`  s    ii##D)Qdjj)::)Z00TZZ0Db

+d2Rtzz*T1JJr2v&--djj9D@58A;x'tzz:TA58A;x'tzz:TAA!##r%   c                     U R                  5       u  pp4nU[        X45      -  X%-  -   nU R                  XXBU5      n[        Xe5        g Nr   r$   r/   r   r1   r   r   r   r2   r3   r   s          r#   r8   BaseGemv.test_simplel  sD    #}}Q1...tv5	NN5Qa0!)/r%   c                 |    U R                  5       u  pp4n[        X45      nU R                  SX45      n[        Xe5        g )Nr   r   r   s          r#   test_default_beta_yBaseGemv.test_default_beta_yr  s6    #}}Q1"1(	NN1a#!)/r%   c           	          U R                  5       u  pp4nU[        [        U5      U5      -  X%-  -   nU R                  XXBUSS9n[	        Xe5        g )Nr   transr   r$   r   r/   r   r   s          r#   test_simple_transposeBaseGemv.test_simple_transposex  sN    #}}Q1.1q99$&@	NN5QaqN9!)/r%   c           	          U R                  5       u  pp4nU[        [        [        U5      5      U5      -  X%-  -   nU R	                  XXBUSS9n[        Xe5        g )Nr=   r  )r   r$   r   r   r/   r   r   s          r#   test_simple_transpose_conj#BaseGemv.test_simple_transpose_conj~  sS    #}}Q1.9Q<)@!DDTVK	NN5QaqN9!)/r%   c           	          U R                  SS9u  pp4nU[        X4S S S2   5      -  X%-  -   nU R                  XXBUSS9n[        Xe5        g )Nr=   r   )r?   r   r   s          r#   rA   BaseGemv.test_x_stride  sU    #}}a}8Q1.ccF33DF:	NN5QaaN8!)/r%   c           
          U R                  SS9u  pp4nU[        [        U5      US S S2   5      -  X%-  -   nU R                  XXBUSSS9n[	        Xe5        g )Nr=   r  r   r  r?   r  r   s          r#   test_x_stride_transpose BaseGemv.test_x_stride_transpose  s]    #}}a}8Q1.1q1v>>tvE	NN5QaqqNA!)/r%   c                 F   U R                  SS9u  pp4n[        R                  " [        SS9   U R	                  SX4SUSSS9nS S S 5        [        R                  " [        SS9   U R	                  SX4SUSSS9nS S S 5        g ! , (       d  f       NE= f! , (       d  f       g = f)	Nr=   r  zfailed for 3rd argumentrP   r   r   r<   r  r   rT   rU   rV   r/   r1   r   r   r   r2   r3   s         r#   test_x_stride_assertBaseGemv.test_x_stride_assert  s    #}}a}8Q1]]9,EFq!1AA>A G]]9,EFq!1AA>A GF GFFF   B#B
B
B c           	          U R                  SS9u  pp4nUR                  5       nU[        X45      -  X%S S S2   -  -   US S S2'   U R                  XXBUSS9n[	        Xe5        g )Nr=   r   )rE   )r   r   r$   r/   r   r   s          r#   rF   BaseGemv.test_y_stride  sh    #}}a}8Q1FFH	~a33D3Q3K?	#A#NN5QaaN8!)/r%   c           
          U R                  SS9u  pp4nUR                  5       nU[        [        U5      U5      -  X%S S S2   -  -   US S S2'   U R	                  XXBUSSS9n[        Xe5        g )Nr=   r  r   r  rE   )r   r   r$   r   r/   r   r   s          r#   test_y_stride_transpose BaseGemv.test_y_stride_transpose  sp    #}}a}8Q1FFH	~ilA>>tccF{J	#A#NN5QaqqNA!)/r%   c                 F   U R                  SS9u  pp4n[        R                  " [        SS9   U R	                  SX4SUSSS9nS S S 5        [        R                  " [        SS9   U R	                  SX4SUSSS9nS S S 5        g ! , (       d  f       NE= f! , (       d  f       g = f)	Nr=   r  zfailed for 2nd keywordrP   r   r   r<   r  r  r  s         r#   test_y_stride_assertBaseGemv.test_y_stride_assert  s    #}}a}8Q1]]9,DEq!1AA>A F]]9,DEq!1AA>A FE FEEEr  ra   N)r   r   )rb   rc   rd   re   rf   r   r8   r   r  r	  rA   r  r  rF   r  r   rg   ra   r%   r#   r   r   ]  s<    &
$000000?00?r%   r   c                       \ rS rSr\R
                  r\r\	R                  R                  \R                  S:g  SS9S 5       rSrg)	TestSgemvi  darwinzMacOS specific test)reasonc                 |  ^ ^ S
S jmS
U4S jjnU 4S jn[        SSSS5      n[        R                  R                  S5      nU Ht  u  pVpxUR                  Xg45      n	UR                  U5      n
[        R                  " X5      nU" X[        R
                  US	9nU" X[        R
                  US	9nU" XU5        Mv     g )Nc                 b   U" 5       n[         R                  " U 5      n[         R                  " XTR                  -  U-   [         R                  S9nUR
                  S   S   n[        U5       H  nXx-   U-  S:X  d  M    O   UWXUR                  -  -    R                  US9nUR                  XS9$ )Nr+   datar   order)	r   prodr
   nbytesuint8__array_interface__r   viewr   )	r   alignr,   r*  dNtmpaddressoffsets	            r#   aligned_array2TestSgemv.test_sgemv_on_osx.<locals>.aligned_array  s    GGGENhhq88|e3288D11&9!<#ElF(E1Q6 + &!((
!2388u8E{{5{66r%   c                 @   > T" U R                   XU5      nU S S  US S & U$ r   )r   )arrr0  r,   r*  alignedr6  s        r#   
as_aligned/TestSgemv.test_sgemv_on_osx.<locals>.as_aligned  s'    '		5G V
r%   c                 >   > [        TR                  SX5      USSS9  g )Nr-   gh㈵>gHz>)rtolatol)r   r/   )AXdesiredr1   s      r#   assert_dot_close5TestSgemv.test_sgemv_on_osx.<locals>.assert_dot_close  s    sA 97%)6r%   )       )i'  )   Y   )CFr   r)  )rI  )r   r   r   r   dotr   )r1   r;  rC  testdatar   r0  mr>   a_orderA_dX_drB  A_fX_fr6  s   `             @r#   test_sgemv_on_osxTestSgemv.test_sgemv_on_osx  s    76 x9jIH))''-C(0$!jj!(jjm&&* RZZwG RZZwG 73 )1r%   ra   N)rb   rc   rd   re   rk   sgemvr/   r   r,   rT   markskipifsysplatformrS  rg   ra   r%   r#   r#  r#    sA    KK				CLLH4=R		S"	4 
T"	4r%   r#  c                       \ rS rSrSrg)r#  i  ra   Nrp   ra   r%   r#   r#  r#    rq   r%   c                   0    \ rS rSr\R
                  r\rSr	g)	TestDgemvi  ra   N)
rb   rc   rd   re   rk   dgemvr/   r   r,   rg   ra   r%   r#   r\  r\    rv   r%   r\  c                   0    \ rS rSr\R
                  r\rSr	g)	TestCgemvi  ra   N)
rb   rc   rd   re   rk   cgemvr/   r   r,   rg   ra   r%   r#   r_  r_    r{   r%   r_  c                       \ rS rSrSrg)r_  i  ra   Nrp   ra   r%   r#   r_  r_    rq   r%   c                   0    \ rS rSr\R
                  r\rSr	g)	TestZgemvi  ra   N)
rb   rc   rd   re   rk   zgemvr/   r   r,   rg   ra   r%   r#   rc  rc    r   r%   rc  )6	itertoolsr   rX  numpyr   r   r   r   r   r   r	   r
   r   r   r   r   r   scipy.linalgr   rk   numpy.testingr   r   r   r   rT   accuracyr$   r'   ri   AttributeErrorrs   rx   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r#  r\  r_  rc  ra   r%   r#   <module>rk     s    
 K K K K )8 8  ,1. 1.hH  
H  / /,H  
H  %. %.^H  
H  1. 1.hH  
H  O? O?d,'4H '4\ 
H  
-d7q      N      @      J      T      s   E  (E7 	F  F% F< G 9G* H  1H H,  E43E47F
FF"!F"%F98F9<GGG'&G'*G=<G= HHH)(H),H?>H?