Ë
    âQ(hÿH  ã                   óP  — d dl mZmZmZmZmZmZmZmZm	Z	m
Z
mZmZ d dlmZ d dlmZmZmZmZ d dlZdZd„ Z G d„ d«      Z	  G d	„ d
e«      Z G d„ de«      Z	  G d„ de«      Z G d„ de«      Z G d„ d«      Z	  G d„ de«      Z G d„ de«      Z 	  G d„ de«      Z! G d„ de«      Z" G d„ d «      Z#	  G d!„ d"e#«      Z$ G d$„ d%e#«      Z%	  G d&„ d'e#«      Z& G d)„ d*e#«      Z' G d+„ d,«      Z(	  G d-„ d.e(«      Z) G d0„ d1e(«      Z*	  G d2„ d3e(«      Z+ G d5„ d6e(«      Z, G d7„ d8«      Z-	  G d9„ d:e-«      Z. G d<„ d=e-«      Z/	  G d>„ d?e-«      Z0 G dA„ dBe-«      Z1	 y# e$ r  G d„ d
«      ZY �Œw xY w# e$ r  G d„ d«      ZY �Œw xY w# e$ r  G d„ d«      ZY �Œ
w xY w# e$ r  G d„ d«      Z!Y �Œ	w xY w# e$ r  G d#„ d"«      Z$Y Œýw xY w# e$ r  G d(„ d'«      Z&Y Œûw xY w# e$ r  G d/„ d.«      Z)Y Œïw xY w# e$ r  G d4„ d3«      Z+Y Œíw xY w# e$ r  G d;„ d:«      Z.Y Œáw xY w# e$ r  G d@„ d?«      Z0Y Œßw xY w)Cé    )Úfloat32Úfloat64Ú	complex64Ú
complex128ÚarangeÚarrayÚzerosÚshapeÚ	transposeÚnewaxisÚcommon_typeÚ	conjugate)Ú_fblas)Úassert_array_equalÚassert_allcloseÚassert_array_almost_equalÚassert_Né   c                 ó4  — t        |j                  «      dk(  rd}|d d …t        f   }nd}t        | j                  d   |j                  d   k(  «       t	        | j                  d   |j                  d   ft        | |«      «      }t        | j                  d   «      D ]W  }t        |j                  d   «      D ]:  }d}t        | j                  d   «      D ]  }|| ||f   |||f   z  z  }Œ ||||f<   Œ< ŒY |r|j                  | j                  d   f«      }|S )Né   TFr   )Úlenr
   r   r   r	   r   ÚrangeÚreshape)ÚaÚbÚb_is_vectorÚcÚiÚjÚsÚks           ú[/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/scipy/linalg/tests/test_fblas.pyÚmatrixmultiplyr#      s  € Ü
ˆ1�7‰7ƒ|�qÒØˆØŠa”ˆj‰M‰àˆÜˆA�G‰G�A‰J˜!Ÿ'™' !™*Ñ$Ô%Üˆq�w‰w�q‰z˜1Ÿ7™7 1™:Ð&¬°A°qÓ(9Ó:€AÜ�1—7‘7˜1‘:Óò ˆÜ�q—w‘w˜q‘zÓ"ò 	ˆAØˆAÜ˜1Ÿ7™7 1™:Ó&ò '�Ø�Q�q˜!�t‘W˜q  A ™wÑ&Ñ&‘ð'àˆAˆa�ˆdŠGñ		ðñ Ø�I‰I�q—w‘w˜q‘z�mÓ$ˆØ€Hó    c                   ó:   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
y	)
ÚBaseAxpyz Mixin class for axpy tests c                 ó¬   — t        d| j                  ¬«      }t        d|j                  ¬«      }|dz  |z   }| j                  ||«      }t        ||«       y )Nç      @©Údtypeç      ð?©r   r*   Ú	blas_funcr   ©ÚselfÚxÚyÚreal_ys       r"   Útest_default_azBaseAxpy.test_default_a3   sI   € Ü�2˜TŸZ™ZÔ(ˆÜ�2˜QŸW™WÔ%ˆØ�2‘�a‘ˆØ�N‰N˜1˜aÓ ˆÜ˜6 1Õ%r$   c                 ó°   — t        d| j                  ¬«      }t        d|j                  ¬«      }|dz  |z   }| j                  ||d¬«      }t        ||«       y )Nr(   r)   )r   r,   r.   s       r"   Útest_simplezBaseAxpy.test_simple:   sM   € Ü�2˜TŸZ™ZÔ(ˆÜ�2˜QŸW™WÔ%ˆØ�2‘�a‘ˆØ�N‰N˜1˜a 2ˆNÓ&ˆÜ˜6 1Õ%r$   c                 óì   — t        d| j                  ¬«      }t        d|j                  «      }t        d|j                  ¬«      }|d d d…   dz  |z   }| j                  ||ddd¬«      }t	        ||«       y )Nç      @r)   é   r(   é   )r   ÚnÚincx©r   r*   r	   r-   r   r.   s       r"   Útest_x_stridezBaseAxpy.test_x_strideA   si   € Ü�2˜TŸZ™ZÔ(ˆÜ�!�Q—W‘WÓˆÜ�2˜QŸW™WÔ%ˆØ‘3�Q�3‘˜‘˜1‘ˆØ�N‰N˜1˜a 2¨°ˆNÓ3ˆÜ˜6 1Õ%r$   c                 óÊ   — t        d| j                  ¬«      }t        d|j                  «      }|dz  |d d d…   z   }| j                  ||ddd¬«      }t	        ||d d d…   «       y )Nr(   r)   é   r9   r8   )r   r:   Úincyr<   r.   s       r"   Útest_y_stridezBaseAxpy.test_y_strideI   sa   € Ü�2˜TŸZ™ZÔ(ˆÜ�!�Q—W‘WÓˆØ�2‘�a™˜!˜‘f‘ˆØ�N‰N˜1˜a 2¨°ˆNÓ3ˆÜ˜6 1¡S q S¡6Õ*r$   c                 óØ   — t        d| j                  ¬«      }t        d|j                  «      }|d d d…   dz  |d d d…   z   }| j                  ||dddd¬«      }t	        ||d d d…   «       y )	Nç      (@r)   r?   é   r(   r9   r8   )r   r:   r;   r@   r<   r.   s       r"   Útest_x_and_y_stridezBaseAxpy.test_x_and_y_strideP   sl   € Ü�3˜dŸj™jÔ)ˆÜ�!�Q—W‘WÓˆØ‘3�Q�3‘˜‘˜1™S˜q˜S™6Ñ!ˆØ�N‰N˜1˜a 2¨°¸ˆNÓ;ˆÜ˜6 1¡S q S¡6Õ*r$   c                 óè   — t        d| j                  ¬«      }t        d|j                  «      }t        j                  t
        d¬«      5  | j                  ||dd¬«       d d d «       y # 1 sw Y   y xY w©	NrC   r)   r?   úfailed for 1st keyword©ÚmatchrD   r   ©r:   r;   ©r   r*   r	   ÚpytestÚraisesÚ	Exceptionr-   ©r/   r0   r1   s      r"   Útest_x_bad_sizezBaseAxpy.test_x_bad_sizeW   óZ   € Ü�3˜dŸj™jÔ)ˆÜ�!�Q—W‘WÓˆÜ�]‰]œ9Ð,DÔEñ 	.Ø�N‰N˜1˜a 1¨1ˆNÔ-÷	.÷ 	.ñ 	.úó   Á	A(Á(A1c                 óè   — t        d| j                  ¬«      }t        d|j                  «      }t        j                  t
        d¬«      5  | j                  ||dd¬«       d d d «       y # 1 sw Y   y xY w©	NrC   r)   r?   rH   rI   r8   r   ©r:   r@   rL   rP   s      r"   Útest_y_bad_sizezBaseAxpy.test_y_bad_size]   rR   rS   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r3   r5   r=   rA   rE   rQ   rW   © r$   r"   r&   r&   0   s(   „ Ù&ò&ò&ò&ò+ò+ò.ó.r$   r&   c                   ó(   — e Zd Zej                  ZeZy©Ú	TestSaxpyN)rX   rY   rZ   ÚfblasÚsaxpyr-   r   r*   r\   r$   r"   r_   r_   e   ó   „ Ø—K‘Kˆ	Ø‰r$   r_   c                   ó   — e Zd Zyr^   ©rX   rY   rZ   r\   r$   r"   r_   r_   i   ó   „ Ør$   c                   ó(   — e Zd Zej                  ZeZy)Ú	TestDaxpyN)rX   rY   rZ   r`   Údaxpyr-   r   r*   r\   r$   r"   rg   rg   m   ó   „ Ø—‘€IØ�Er$   rg   c                   ó(   — e Zd Zej                  ZeZy©Ú	TestCaxpyN)rX   rY   rZ   r`   Úcaxpyr-   r   r*   r\   r$   r"   rl   rl   s   ó   „ Ø—K‘Kˆ	Ø‰r$   rl   c                   ó   — e Zd Zyrk   rd   r\   r$   r"   rl   rl   w   re   r$   c                   ó(   — e Zd Zej                  ZeZy)Ú	TestZaxpyN)rX   rY   rZ   r`   Úzaxpyr-   r   r*   r\   r$   r"   rq   rq   {   ó   „ Ø—‘€IØ�Er$   rq   c                   ó"   — e Zd ZdZd„ Zd„ Zd„ Zy)ÚBaseScalz Mixin class for scal testing c                 óx   — t        d| j                  ¬«      }|dz  }| j                  d|«      }t        ||«       y ©Nr(   r)   r,   ©r/   r0   Úreal_xs      r"   r5   zBaseScal.test_simple†   s5   € Ü�2˜TŸZ™ZÔ(ˆØ�2‘ˆØ�N‰N˜2˜qÓ!ˆÜ˜6 1Õ%r$   c                 óÞ   — t        d| j                  ¬«      }|j                  «       }|d d d…   t        d| j                  «      z  |d d d…<   | j	                  d|dd¬«      }t        ||«       y )Nr7   r)   r9   r(   r8   rK   )r   r*   Úcopyr   r-   r   rx   s      r"   r=   zBaseScal.test_x_strideŒ   sb   € Ü�2˜TŸZ™ZÔ(ˆØ—‘“ˆØ™˜!˜‘fœU 2 t§z¡zÓ2Ñ2ˆ‰s�ˆs‰Ø�N‰N˜2˜q A¨AˆNÓ.ˆÜ˜6 1Õ%r$   c                 ó¼   — t        d| j                  ¬«      }t        j                  t        d¬«      5  | j                  d|dd¬«       d d d «       y # 1 sw Y   y xY w)	NrC   r)   rH   rI   g       @rD   r   rK   )r   r*   rM   rN   rO   r-   )r/   r0   s     r"   rQ   zBaseScal.test_x_bad_size“   sJ   € Ü�3˜dŸj™jÔ)ˆÜ�]‰]œ9Ð,DÔEñ 	/Ø�N‰N˜2˜q A¨AˆNÔ.÷	/÷ 	/ñ 	/ús   ³AÁAN)rX   rY   rZ   r[   r5   r=   rQ   r\   r$   r"   ru   ru   ƒ   s   „ Ù(ò&ò&ó/r$   ru   c                   ó(   — e Zd Zej                  ZeZy©Ú	TestSscalN)rX   rY   rZ   r`   Ússcalr-   r   r*   r\   r$   r"   r   r   š   rb   r$   r   c                   ó   — e Zd Zyr~   rd   r\   r$   r"   r   r   ž   re   r$   c                   ó(   — e Zd Zej                  ZeZy)Ú	TestDscalN)rX   rY   rZ   r`   Údscalr-   r   r*   r\   r$   r"   rƒ   rƒ   ¢   ri   r$   rƒ   c                   ó(   — e Zd Zej                  ZeZy©Ú	TestCscalN)rX   rY   rZ   r`   Úcscalr-   r   r*   r\   r$   r"   r‡   r‡   ¨   rn   r$   r‡   c                   ó   — e Zd Zyr†   rd   r\   r$   r"   r‡   r‡   ¬   re   r$   c                   ó(   — e Zd Zej                  ZeZy)Ú	TestZscalN)rX   rY   rZ   r`   Úzscalr-   r   r*   r\   r$   r"   r‹   r‹   °   rs   r$   r‹   c                   ó4   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	y)	ÚBaseCopyz Mixin class for copy testing c                 ó¬   — t        d| j                  ¬«      }t        t        |«      |j                  «      }| j	                  ||«      }t        ||«       y rw   )r   r*   r	   r
   r-   r   rP   s      r"   r5   zBaseCopy.test_simple»   s@   € Ü�2˜TŸZ™ZÔ(ˆÜ”%˜“(˜AŸG™GÓ$ˆØ�N‰N˜1˜aÓ ˆÜ˜1˜aÕ r$   c                 ó¬   — t        d| j                  ¬«      }t        d|j                  «      }| j                  ||dd¬«      }t	        |d d d…   |«       y ©Nr7   r)   r8   r9   rK   r<   rP   s      r"   r=   zBaseCopy.test_x_strideÁ   sJ   € Ü�2˜TŸZ™ZÔ(ˆÜ�!�Q—W‘WÓˆØ�N‰N˜1˜a 1¨1ˆNÓ-ˆÜ˜1™S˜q˜S™6 1Õ%r$   c                 ó¬   — t        d| j                  ¬«      }t        d|j                  «      }| j                  ||dd¬«      }t	        ||d d d…   «       y )Nr(   r)   r?   r8   r9   rV   r<   rP   s      r"   rA   zBaseCopy.test_y_strideÇ   sJ   € Ü�2˜TŸZ™ZÔ(ˆÜ�!�Q—W‘WÓˆØ�N‰N˜1˜a 1¨1ˆNÓ-ˆÜ˜1˜a¡ ! ™fÕ%r$   c                 óº   — t        d| j                  ¬«      }t        d|j                  «      }| j                  ||ddd¬«      }t	        |d d d…   |d d d…   «       y )NrC   r)   r?   r8   rD   r9   ©r:   r;   r@   r<   rP   s      r"   rE   zBaseCopy.test_x_and_y_strideÍ   sT   € Ü�3˜dŸj™jÔ)ˆÜ�!�Q—W‘WÓˆØ�N‰N˜1˜a 1¨1°1ˆNÓ5ˆÜ˜1™S˜q˜S™6 1¡S q S¡6Õ*r$   c                 óè   — t        d| j                  ¬«      }t        d|j                  «      }t        j                  t
        d¬«      5  | j                  ||dd¬«       d d d «       y # 1 sw Y   y xY wrG   rL   rP   s      r"   rQ   zBaseCopy.test_x_bad_sizeÓ   rR   rS   c                 óè   — t        d| j                  ¬«      }t        d|j                  «      }t        j                  t
        d¬«      5  | j                  ||dd¬«       d d d «       y # 1 sw Y   y xY wrU   rL   rP   s      r"   rW   zBaseCopy.test_y_bad_sizeÙ   rR   rS   N©
rX   rY   rZ   r[   r5   r=   rA   rE   rQ   rW   r\   r$   r"   rŽ   rŽ   ¸   s#   „ Ù(ò!ò&ò&ò+ò.ó.r$   rŽ   c                   ó(   — e Zd Zej                  ZeZy©Ú	TestScopyN)rX   rY   rZ   r`   Úscopyr-   r   r*   r\   r$   r"   rš   rš   è   rb   r$   rš   c                   ó   — e Zd Zyr™   rd   r\   r$   r"   rš   rš   ì   re   r$   c                   ó(   — e Zd Zej                  ZeZy)Ú	TestDcopyN)rX   rY   rZ   r`   Údcopyr-   r   r*   r\   r$   r"   rž   rž   ð   ri   r$   rž   c                   ó(   — e Zd Zej                  ZeZy©Ú	TestCcopyN)rX   rY   rZ   r`   Úccopyr-   r   r*   r\   r$   r"   r¢   r¢   ö   rn   r$   r¢   c                   ó   — e Zd Zyr¡   rd   r\   r$   r"   r¢   r¢   ú   re   r$   c                   ó(   — e Zd Zej                  ZeZy)Ú	TestZcopyN)rX   rY   rZ   r`   Úzcopyr-   r   r*   r\   r$   r"   r¦   r¦   þ   rs   r$   r¦   c                   ó4   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	y)	ÚBaseSwapz Mixin class for swap tests c                 ó
  — t        d| j                  ¬«      }t        t        |«      |j                  «      }|j	                  «       }|j	                  «       }| j                  ||«      \  }}t        ||«       t        ||«       y rw   )r   r*   r	   r
   r{   r-   r   ©r/   r0   r1   Ú	desired_xÚ	desired_ys        r"   r5   zBaseSwap.test_simple	  sd   € Ü�2˜TŸZ™ZÔ(ˆÜ”%˜“(˜AŸG™GÓ$ˆØ—F‘F“Hˆ	Ø—F‘F“Hˆ	Ø�~‰~˜a Ó#‰ˆˆ1Ü˜9 aÔ(Ü˜9 aÕ(r$   c                 ó  — t        d| j                  ¬«      }t        d|j                  «      }|j                  «       }|j                  «       d d d…   }| j	                  ||dd¬«      \  }}t        ||d d d…   «       t        ||«       y r‘   ©r   r*   r	   r{   r-   r   r«   s        r"   r=   zBaseSwap.test_x_stride  sv   € Ü�2˜TŸZ™ZÔ(ˆÜ�!�Q—W‘WÓˆØ—F‘F“Hˆ	Ø—F‘F“H™S˜q˜S‘Mˆ	Ø�~‰~˜a  a¨aˆ~Ó0‰ˆˆ1Ü˜9 a©¨!¨¡fÔ-Ü˜9 aÕ(r$   c                 ó  — t        d| j                  ¬«      }t        d|j                  «      }|j                  «       d d d…   }|j                  «       }| j	                  ||dd¬«      \  }}t        ||«       t        ||d d d…   «       y )Nr(   r)   r?   r9   r8   rV   r¯   r«   s        r"   rA   zBaseSwap.test_y_stride  sv   € Ü�2˜TŸZ™ZÔ(ˆÜ�!�Q—W‘WÓˆØ—F‘F“H™S˜q˜S‘Mˆ	Ø—F‘F“Hˆ	Ø�~‰~˜a  a¨aˆ~Ó0‰ˆˆ1Ü˜9 aÔ(Ü˜9 a©¨!¨¡fÕ-r$   c                 ó0  — t        d| j                  ¬«      }t        d|j                  «      }|j                  «       d d d…   }|j                  «       d d d…   }| j	                  ||ddd¬«      \  }}t        ||d d d…   «       t        ||d d d…   «       y )NrC   r)   r?   r9   rD   r8   r”   r¯   r«   s        r"   rE   zBaseSwap.test_x_and_y_stride$  sˆ   € Ü�3˜dŸj™jÔ)ˆÜ�!�Q—W‘WÓˆØ—F‘F“H™S˜q˜S‘Mˆ	Ø—F‘F“H™S˜q˜S‘Mˆ	Ø�~‰~˜a  a¨a°aˆ~Ó8‰ˆˆ1Ü˜9 a©¨!¨¡fÔ-Ü˜9 a©¨!¨¡fÕ-r$   c                 óè   — t        d| j                  ¬«      }t        d|j                  «      }t        j                  t
        d¬«      5  | j                  ||dd¬«       d d d «       y # 1 sw Y   y xY wrG   rL   rP   s      r"   rQ   zBaseSwap.test_x_bad_size-  rR   rS   c                 óè   — t        d| j                  ¬«      }t        d|j                  «      }t        j                  t
        d¬«      5  | j                  ||dd¬«       d d d «       y # 1 sw Y   y xY wrU   rL   rP   s      r"   rW   zBaseSwap.test_y_bad_size3  rR   rS   Nr—   r\   r$   r"   r©   r©     s#   „ Ù&ò)ò)ò.ò.ò.ó.r$   r©   c                   ó(   — e Zd Zej                  ZeZy©Ú	TestSswapN)rX   rY   rZ   r`   Ússwapr-   r   r*   r\   r$   r"   r¶   r¶   ;  rb   r$   r¶   c                   ó   — e Zd Zyrµ   rd   r\   r$   r"   r¶   r¶   ?  re   r$   c                   ó(   — e Zd Zej                  ZeZy)Ú	TestDswapN)rX   rY   rZ   r`   Údswapr-   r   r*   r\   r$   r"   rº   rº   C  ri   r$   rº   c                   ó(   — e Zd Zej                  ZeZy©Ú	TestCswapN)rX   rY   rZ   r`   Úcswapr-   r   r*   r\   r$   r"   r¾   r¾   I  rn   r$   r¾   c                   ó   — e Zd Zyr½   rd   r\   r$   r"   r¾   r¾   M  re   r$   c                   ó(   — e Zd Zej                  ZeZy)Ú	TestZswapN)rX   rY   rZ   r`   Úzswapr-   r   r*   r\   r$   r"   rÂ   rÂ   Q  rs   r$   rÂ   c                   óT   — e Zd ZdZdd„Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zy)ÚBaseGemvz Mixin class for gemv tests c                 ó  — t        d| j                  ¬«      }| j                  t        t        fv rt        d| j                  ¬«      }ddlm}m}  |d«       t        d| j                  ¬«      |z  }t        d| j                  ¬«      |z  } |ddd	«      j                  | j                  «      |z  }t        t        |«      d   |z  | j                  ¬«      |z  }	t        t        |«      d   |z  | j                  ¬«      |z  }
||||	|
fS )
Nr   r)   y      ð?      ð?r   )ÚnormalÚseediÒ  r+   g        )r8   r8   )
r   r*   r   r   Únumpy.randomrÇ   rÈ   Úastyper   r
   )r/   Úx_strideÚy_strideÚmultrÇ   rÈ   ÚalphaÚbetar   r0   r1   s              r"   Úget_datazBaseGemv.get_data]  sÞ   € Ü�Q˜dŸj™jÔ)ˆØ�:‰:œ)¤ZÐ0Ñ0Ü˜ T§Z¡ZÔ0ˆDß-ÙˆTŒ
Ü�b §
¡
Ô+¨dÑ2ˆÜ�R˜tŸz™zÔ*¨TÑ1ˆÙ�2�r˜6Ó"×)Ñ)¨$¯*©*Ó5¸Ñ<ˆÜ”5˜“8˜A‘;˜xÑ'¨t¯z©zÔ:¸TÑAˆÜ”5˜“8˜A‘;˜xÑ'¨t¯z©zÔ:¸TÑAˆØ�d˜A˜q !Ð#Ð#r$   c                 óœ   — | j                  «       \  }}}}}|t        ||«      z  ||z  z   }| j                  |||||«      }t        ||«       y ©N©rÐ   r#   r-   r   ©r/   rÎ   rÏ   r   r0   r1   r­   s          r"   r5   zBaseGemv.test_simplej  sR   € Ø#Ÿ}™}›Ñˆˆt�Q˜˜1Øœ.¨¨AÓ.Ñ.¨t°A©vÑ5ˆ	Ø�N‰N˜5 ! Q¨¨aÓ0ˆÜ! )¨QÕ/r$   c                 ó†   — | j                  «       \  }}}}}t        ||«      }| j                  d||«      }t        ||«       y )Nr   rÓ   rÔ   s          r"   Útest_default_beta_yzBaseGemv.test_default_beta_yp  s@   € Ø#Ÿ}™}›Ñˆˆt�Q˜˜1Ü" 1 aÓ(ˆ	Ø�N‰N˜1˜a Ó#ˆÜ! )¨QÕ/r$   c                 ó²   — | j                  «       \  }}}}}|t        t        |«      |«      z  ||z  z   }| j                  |||||d¬«      }t	        ||«       y )Nr   ©Útrans©rÐ   r#   r   r-   r   rÔ   s          r"   Útest_simple_transposezBaseGemv.test_simple_transposev  sZ   € Ø#Ÿ}™}›Ñˆˆt�Q˜˜1Øœ.¬°1«°qÓ9Ñ9¸$¸q¹&Ñ@ˆ	Ø�N‰N˜5 ! Q¨¨a°qˆNÓ9ˆÜ! )¨QÕ/r$   c                 óÄ   — | j                  «       \  }}}}}|t        t        t        |«      «      |«      z  ||z  z   }| j	                  |||||d¬«      }t        ||«       y )Nr9   rØ   )rÐ   r#   r   r   r-   r   rÔ   s          r"   Útest_simple_transpose_conjz#BaseGemv.test_simple_transpose_conj|  s_   € Ø#Ÿ}™}›Ñˆˆt�Q˜˜1Øœ.¬´9¸Q³<Ó)@À!ÓDÑDÀTÈ!ÁVÑKˆ	Ø�N‰N˜5 ! Q¨¨a°qˆNÓ9ˆÜ! )¨QÕ/r$   c                 ó°   — | j                  d¬«      \  }}}}}|t        ||d d d…   «      z  ||z  z   }| j                  |||||d¬«      }t        ||«       y )Nr9   ©rË   )r;   rÓ   rÔ   s          r"   r=   zBaseGemv.test_x_stride‚  sc   € Ø#Ÿ}™}°a˜}Ó8Ñˆˆt�Q˜˜1Øœ.¨¨A©c°¨c©FÓ3Ñ3°D¸±FÑ:ˆ	Ø�N‰N˜5 ! Q¨¨a°aˆNÓ8ˆÜ! )¨QÕ/r$   c           	      óÄ   — | j                  d¬«      \  }}}}}|t        t        |«      |d d d…   «      z  ||z  z   }| j                  |||||dd¬«      }t	        ||«       y )Nr9   rß   r   ©rÙ   r;   rÚ   rÔ   s          r"   Útest_x_stride_transposez BaseGemv.test_x_stride_transposeˆ  si   € Ø#Ÿ}™}°a˜}Ó8Ñˆˆt�Q˜˜1Øœ.¬°1«°q¹¸1¸±vÓ>Ñ>¸tÀA¹vÑEˆ	Ø�N‰N˜5 ! Q¨¨a°q¸qˆNÓAˆÜ! )¨QÕ/r$   c           
      óT  — | j                  d¬«      \  }}}}}t        j                  t        d¬«      5  | j	                  d||d|dd¬«      }d d d «       t        j                  t        d¬«      5  | j	                  d||d|dd¬«      }d d d «       y # 1 sw Y   ŒFxY w# 1 sw Y   y xY w)	Nr9   rß   zfailed for 3rd argumentrI   r   r   r8   rá   ©rÐ   rM   rN   rO   r-   ©r/   rÎ   rÏ   r   r0   r1   s         r"   Útest_x_stride_assertzBaseGemv.test_x_stride_assertŽ  s¢   € à#Ÿ}™}°a˜}Ó8Ñˆˆt�Q˜˜1Ü�]‰]œ9Ð,EÔFñ 	?Ø—‘˜q ! Q¨¨1°A¸A�Ó>ˆA÷	?ä�]‰]œ9Ð,EÔFñ 	?Ø—‘˜q ! Q¨¨1°A¸A�Ó>ˆA÷	?ð 	?÷	?ð 	?ú÷	?ð 	?úó   ´BÁ0BÂBÂB'c                 óÜ   — | j                  d¬«      \  }}}}}|j                  «       }|t        ||«      z  ||d d d…   z  z   |d d d…<   | j                  |||||d¬«      }t	        ||«       y )Nr9   ©rÌ   )r@   )rÐ   r{   r#   r-   r   rÔ   s          r"   rA   zBaseGemv.test_y_stride–  sv   € Ø#Ÿ}™}°a˜}Ó8Ñˆˆt�Q˜˜1Ø—F‘F“Hˆ	Øœ~¨a°Ó3Ñ3°D¸¹3¸Q¸3¹±KÑ?ˆ	‘#�A�#‰Ø�N‰N˜5 ! Q¨¨a°aˆNÓ8ˆÜ! )¨QÕ/r$   c           	      óð   — | j                  d¬«      \  }}}}}|j                  «       }|t        t        |«      |«      z  ||d d d…   z  z   |d d d…<   | j	                  |||||dd¬«      }t        ||«       y )Nr9   ré   r   ©rÙ   r@   )rÐ   r{   r#   r   r-   r   rÔ   s          r"   Útest_y_stride_transposez BaseGemv.test_y_stride_transpose�  s|   € Ø#Ÿ}™}°a˜}Ó8Ñˆˆt�Q˜˜1Ø—F‘F“Hˆ	Øœ~¬i¸«l¸AÓ>Ñ>¸tÀAÁcÈÀcÁF¹{ÑJˆ	‘#�A�#‰Ø�N‰N˜5 ! Q¨¨a°q¸qˆNÓAˆÜ! )¨QÕ/r$   c           
      óT  — | j                  d¬«      \  }}}}}t        j                  t        d¬«      5  | j	                  d||d|dd¬«      }d d d «       t        j                  t        d¬«      5  | j	                  d||d|dd¬«      }d d d «       y # 1 sw Y   ŒFxY w# 1 sw Y   y xY w)	Nr9   ré   zfailed for 2nd keywordrI   r   r   r8   rë   rä   rå   s         r"   Útest_y_stride_assertzBaseGemv.test_y_stride_assert¤  s¢   € à#Ÿ}™}°a˜}Ó8Ñˆˆt�Q˜˜1Ü�]‰]œ9Ð,DÔEñ 	?Ø—‘˜q ! Q¨¨1°A¸A�Ó>ˆA÷	?ä�]‰]œ9Ð,DÔEñ 	?Ø—‘˜q ! Q¨¨1°A¸A�Ó>ˆA÷	?ð 	?÷	?ð 	?ú÷	?ð 	?úrç   N)r   r   )rX   rY   rZ   r[   rÐ   r5   rÖ   rÛ   rÝ   r=   râ   ræ   rA   rì   rî   r\   r$   r"   rÅ   rÅ   Z  s<   „ Ù&ó$ò0ò0ò0ò0ò0ò0ò?ò0ò0ó?r$   rÅ   c                   ó.   — e Zd Zej                  ZeZd„ Zy)Ú	TestSgemvc                 ó”  ‡ ‡‡— ddl m} dd l}dd lŠ|j                  dk7  ry dˆfd„	Šdˆfd„	}ˆ fd„} |ddd	d
«      }|D ]†  \  }}}}	‰j
                  j                  ||«      }
‰j
                  j                  |«      }‰j                  |
|«      } ||
|‰j                  |	¬«      } |||‰j                  |	¬«      } ||||«       Œˆ y )Nr   )ÚproductÚdarwinc                 ó\  •—  |«       }‰	j                  | «      }‰	j                  ||j                  z  |z   ‰	j                  ¬«      }|j                  d   d   }t        |«      D ]  }||z   |z  dk(  sŒ n ||||j                  z  z    j                  |¬«      }|j                  | |¬«      S )Nr)   Údatar   ©Úorder)Úprodr	   ÚnbytesÚuint8Ú__array_interface__r   Úviewr   )
r
   Úalignr*   r÷   ÚdÚNÚtmpÚaddressÚoffsetÚnps
            €r"   Úaligned_arrayz2TestSgemv.test_sgemv_on_osx.<locals>.aligned_arrayº  s³   ø€ á“G�à—G‘G˜E“N�Ø—h‘h˜q 1§8¡8™|¨eÑ3¸2¿8¹8�hÓD�Ø×1Ñ1°&Ñ9¸!Ñ<�ä# E›lò �FØ &Ñ(¨EÑ1°QÓ6Ùðð ˜& ¨¨!¯(©(©
Ñ!2Ð3×8Ñ8¸uÐ8ÓE�Ø—{‘{ 5°�{Ó6Ð6r$   c                 óB   •—  ‰| j                   |||«      }| d d  |d d  |S rÒ   )r
   )Úarrrý   r*   r÷   Úalignedr  s        €r"   Ú
as_alignedz/TestSgemv.test_sgemv_on_osx.<locals>.as_alignedÈ  s)   ø€ á'¨¯	©	°5¸%ÀÓG�Ø ¡˜V�™�
Ø�r$   c                 óF   •— t        ‰j                  d| |«      |dd¬«       y )Nr+   gñhãˆµøä>gH¯¼šò×z>)ÚrtolÚatol)r   r-   )ÚAÚXÚdesiredr/   s      €r"   Úassert_dot_closez5TestSgemv.test_sgemv_on_osx.<locals>.assert_dot_closeÎ  s!   ø€ Ü §¡¨s°A°qÓ 9¸7Ø%)°ö6r$   )é   é    )i'  )éÈ   éY   )ÚCÚFrö   )r  )	Ú	itertoolsrò   ÚsysÚnumpyÚplatformÚrandomÚrandÚdotr   )r/   rò   r  r  r  Útestdatarý   Úmr:   Úa_orderÚA_dÚX_dr  ÚA_fÚX_fr  r  s   `              @@r"   Útest_sgemv_on_osxzTestSgemv.test_sgemv_on_osx²  s¾   ú€ Ý)ÛÛà�|‰|˜xÒ'Øõ7õô6ñ ˜x¨°9¸jÓIˆHØ(0ò 4Ñ$��q˜!˜WØ—i‘i—n‘n Q¨Ó*�Ø—i‘i—n‘n QÓ'�ØŸ&™&  cÓ*�á   e¨R¯Z©Z¸wÔG�Ù   e¨R¯Z©Z¸wÔG�Ù   c¨7Õ3ñ4r$   N)	rX   rY   rZ   r`   Úsgemvr-   r   r*   r$  r\   r$   r"   rð   rð   ®  s   „ Ø—K‘Kˆ	Øˆó(	4r$   rð   c                   ó   — e Zd Zy)rð   Nrd   r\   r$   r"   rð   rð   Ý  re   r$   c                   ó(   — e Zd Zej                  ZeZy)Ú	TestDgemvN)rX   rY   rZ   r`   Údgemvr-   r   r*   r\   r$   r"   r(  r(  á  ri   r$   r(  c                   ó(   — e Zd Zej                  ZeZy©Ú	TestCgemvN)rX   rY   rZ   r`   Úcgemvr-   r   r*   r\   r$   r"   r,  r,  ç  rn   r$   r,  c                   ó   — e Zd Zyr+  rd   r\   r$   r"   r,  r,  ë  re   r$   c                   ó(   — e Zd Zej                  ZeZy)Ú	TestZgemvN)rX   rY   rZ   r`   Úzgemvr-   r   r*   r\   r$   r"   r0  r0  ï  rs   r$   r0  )2r  r   r   r   r   r   r   r	   r
   r   r   r   r   Úscipy.linalgr   r`   Únumpy.testingr   r   r   r   rM   Úaccuracyr#   r&   r_   ÚAttributeErrorrg   rl   rq   ru   r   rƒ   r‡   r‹   rŽ   rš   rž   r¢   r¦   r©   r¶   rº   r¾   rÂ   rÅ   rð   r(  r,  r0  r\   r$   r"   ú<module>r6     s­  ð÷K÷ K÷ Kó Kõ )÷8ó 8ó ð €ò÷,1.ñ 1.ðhô�Hô ô�ô ð
ô�Hô ô�ô ÷/ñ /ð,ô�Hô ô�ô ð
ô�Hô ô�ô ÷%.ñ %.ð^ô�Hô ô�ô ð
ô�Hô ô�ô ÷1.ñ 1.ðhô�Hô ô�ô ð
ô�Hô ô�ô ÷P?ñ P?ðf1ô,4�Hô ,4ôf�ô ð
ô�Hô ô�ô ð
.ðf8øð ò ÷ô ðûð ò ÷ô ðûðN ò ÷ô ðûð ò ÷ô ðûð@ ò ÷ó ðûð ò ÷ó ðûðJ ò ÷ó ðûð ò ÷ó ðûð` ò ÷ó ðûð ò ÷ó ðús´   ÁE ÁE( Á;E> ÂF Â3F* Ã
F? Ã+G ÄG) Ä#G> Ä:H ÅE%Å$E%Å(E;Å:E;Å>FÆFÆF'Æ&F'Æ*F<Æ;F<Æ?GÇGÇG&Ç%G&Ç)G;Ç:G;Ç>HÈHÈH%È$H%