Ë
    qwjèH  ã                   ól  — d dl mZ d dlZd dlZ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 d1„ d2e,«      Z.	  G d3„ d4e,«      Z/ G d6„ d7e,«      Z0 G d8„ d9«      Z1	  G d:„ d;e1«      Z2 G d=„ d>e1«      Z3	  G d?„ d@e1«      Z4 G dB„ dCe1«      Z5	 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 d0„ d/«      Z-Y Œïw xY w# e$ r  G d5„ d4«      Z/Y Œíw xY w# e$ r  G d<„ d;«      Z2Y Œáw xY w# e$ r  G dA„ d@«      Z4Y Œßw xY w)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                 ó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           úb/var/www/html/newmanjeet/manjet/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_a6   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_strideD   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*   é   r:   r9   )r   r;   Úincyr=   r/   s       r#   Útest_y_stridezBaseAxpy.test_y_strideL   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)   r:   r9   )r   r;   r<   rA   r=   r/   s       r#   Útest_x_and_y_stridezBaseAxpy.test_x_and_y_strideS   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©	NrD   r*   r@   úfailed for 1st keyword©ÚmatchrE   r   ©r;   r<   ©r   r+   r
   ÚpytestÚraisesÚ	Exceptionr.   ©r0   r1   r2   s      r#   Útest_x_bad_sizezBaseAxpy.test_x_bad_sizeZ   óR   € Ü�3˜dŸj™jÔ)ˆÜ�!�Q—W‘WÓˆÜ�]‰]œ9Ð,DÖEØ�N‰N˜1˜a 1¨1ˆNÔ-÷ F×EÑEúó   Á	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©	NrD   r*   r@   rI   rJ   r9   r   ©r;   rA   rM   rQ   s      r#   Útest_y_bad_sizezBaseAxpy.test_y_bad_size`   rS   rT   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r4   r6   r>   rB   rF   rR   rX   © r%   r#   r'   r'   3   s(   „ Ù&ò&ò&ò&ò+ò+ò.ó.r%   r'   c                   ó(   — e Zd Zej                  ZeZy©Ú	TestSaxpyN)rY   rZ   r[   ÚfblasÚsaxpyr.   r   r+   r]   r%   r#   r`   r`   h   ó   „ Ø—K‘Kˆ	Ø‰r%   r`   c                   ó   — e Zd Zyr_   ©rY   rZ   r[   r]   r%   r#   r`   r`   l   ó   „ Ør%   c                   ó(   — e Zd Zej                  ZeZy)Ú	TestDaxpyN)rY   rZ   r[   ra   Údaxpyr.   r   r+   r]   r%   r#   rh   rh   p   ó   „ Ø—‘€IØ�Er%   rh   c                   ó(   — e Zd Zej                  ZeZy©Ú	TestCaxpyN)rY   rZ   r[   ra   Úcaxpyr.   r   r+   r]   r%   r#   rm   rm   v   ó   „ Ø—K‘Kˆ	Ø‰r%   rm   c                   ó   — e Zd Zyrl   re   r]   r%   r#   rm   rm   z   rf   r%   c                   ó(   — e Zd Zej                  ZeZy)Ú	TestZaxpyN)rY   rZ   r[   ra   Úzaxpyr.   r   r+   r]   r%   r#   rr   rr   ~   ó   „ Ø—‘€IØ�Er%   rr   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-   ©r0   r1   Úreal_xs      r#   r6   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 )Nr8   r*   r:   r)   r9   rL   )r   r+   Úcopyr	   r.   r   ry   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)	NrD   r*   rI   rJ   g       @rE   r   rL   )r   r+   rN   rO   rP   r.   )r0   r1   s     r#   rR   zBaseScal.test_x_bad_size–   sB   € Ü�3˜dŸj™jÔ)ˆÜ�]‰]œ9Ð,DÖEØ�N‰N˜2˜q A¨AˆNÔ.÷ F×EÑEús   ³AÁAN)rY   rZ   r[   r\   r6   r>   rR   r]   r%   r#   rv   rv   †   s   „ Ù(ò&ò&ó/r%   rv   c                   ó(   — e Zd Zej                  ZeZy©Ú	TestSscalN)rY   rZ   r[   ra   Ússcalr.   r   r+   r]   r%   r#   r€   r€   �   rc   r%   r€   c                   ó   — e Zd Zyr   re   r]   r%   r#   r€   r€   ¡   rf   r%   c                   ó(   — e Zd Zej                  ZeZy)Ú	TestDscalN)rY   rZ   r[   ra   Údscalr.   r   r+   r]   r%   r#   r„   r„   ¥   rj   r%   r„   c                   ó(   — e Zd Zej                  ZeZy©Ú	TestCscalN)rY   rZ   r[   ra   Úcscalr.   r   r+   r]   r%   r#   rˆ   rˆ   «   ro   r%   rˆ   c                   ó   — e Zd Zyr‡   re   r]   r%   r#   rˆ   rˆ   ¯   rf   r%   c                   ó(   — e Zd Zej                  ZeZy)Ú	TestZscalN)rY   rZ   r[   ra   Úzscalr.   r   r+   r]   r%   r#   rŒ   rŒ   ³   rt   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 rx   )r   r+   r
   r   r.   r   rQ   s      r#   r6   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 ©Nr8   r*   r9   r:   rL   r=   rQ   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@   r9   r:   rW   r=   rQ   s      r#   rB   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 )NrD   r*   r@   r9   rE   r:   ©r;   r<   rA   r=   rQ   s      r#   rF   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rH   rM   rQ   s      r#   rR   zBaseCopy.test_x_bad_sizeÖ   rS   rT   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rV   rM   rQ   s      r#   rX   zBaseCopy.test_y_bad_sizeÜ   rS   rT   N©
rY   rZ   r[   r\   r6   r>   rB   rF   rR   rX   r]   r%   r#   r�   r�   »   s#   „ Ù(ò!ò&ò&ò+ò.ó.r%   r�   c                   ó(   — e Zd Zej                  ZeZy©Ú	TestScopyN)rY   rZ   r[   ra   Úscopyr.   r   r+   r]   r%   r#   r›   r›   ë   rc   r%   r›   c                   ó   — e Zd Zyrš   re   r]   r%   r#   r›   r›   ï   rf   r%   c                   ó(   — e Zd Zej                  ZeZy)Ú	TestDcopyN)rY   rZ   r[   ra   Údcopyr.   r   r+   r]   r%   r#   rŸ   rŸ   ó   rj   r%   rŸ   c                   ó(   — e Zd Zej                  ZeZy©Ú	TestCcopyN)rY   rZ   r[   ra   Úccopyr.   r   r+   r]   r%   r#   r£   r£   ù   ro   r%   r£   c                   ó   — e Zd Zyr¢   re   r]   r%   r#   r£   r£   ý   rf   r%   c                   ó(   — e Zd Zej                  ZeZy)Ú	TestZcopyN)rY   rZ   r[   ra   Úzcopyr.   r   r+   r]   r%   r#   r§   r§     rt   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 rx   )r   r+   r
   r   r|   r.   r   ©r0   r1   r2   Ú	desired_xÚ	desired_ys        r#   r6   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@   r:   r9   rW   r°   r¬   s        r#   rB   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 )NrD   r*   r@   r:   rE   r9   r•   r°   r¬   s        r#   rF   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rH   rM   rQ   s      r#   rR   zBaseSwap.test_x_bad_size0  rS   rT   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rV   rM   rQ   s      r#   rX   zBaseSwap.test_y_bad_size6  rS   rT   Nr˜   r]   r%   r#   rª   rª   	  s#   „ Ù&ò)ò)ò.ò.ò.ó.r%   rª   c                   ó(   — e Zd Zej                  ZeZy©Ú	TestSswapN)rY   rZ   r[   ra   Ússwapr.   r   r+   r]   r%   r#   r·   r·   >  rc   r%   r·   c                   ó   — e Zd Zyr¶   re   r]   r%   r#   r·   r·   B  rf   r%   c                   ó(   — e Zd Zej                  ZeZy)Ú	TestDswapN)rY   rZ   r[   ra   Údswapr.   r   r+   r]   r%   r#   r»   r»   F  rj   r%   r»   c                   ó(   — e Zd Zej                  ZeZy©Ú	TestCswapN)rY   rZ   r[   ra   Úcswapr.   r   r+   r]   r%   r#   r¿   r¿   L  ro   r%   r¿   c                   ó   — e Zd Zyr¾   re   r]   r%   r#   r¿   r¿   P  rf   r%   c                   ó(   — e Zd Zej                  ZeZy)Ú	TestZswapN)rY   rZ   r[   ra   Úzswapr.   r   r+   r]   r%   r#   rÃ   rÃ   T  rt   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                 óD  — t         j                  j                  d«      }t        d| j                  ¬«      }| j                  t
        t        fv rt        d| j                  ¬«      }t        d| j                  ¬«      |z  }t        d| j                  ¬«      |z  }|j                  ddd«      j                  | j                  «      |z  }t        t        |«      d   |z  | j                  ¬«      |z  }t        t        |«      d   |z  | j                  ¬«      |z  }	|||||	fS )	NéÒ  r   r*   y      ð?      ð?r,   g        )r9   r9   r   )ÚnpÚrandomÚdefault_rngr	   r+   r   r   ÚnormalÚastyper   r   )
r0   Úx_strideÚy_strideÚrngÚmultÚalphaÚbetar   r1   r2   s
             r#   Úget_datazBaseGemv.get_data`  sì   € Ü�i‰i×#Ñ# DÓ)ˆÜ�Q˜dŸj™jÔ)ˆØ�:‰:œ)¤ZÐ0Ñ0Ü˜ T§Z¡ZÔ0ˆDÜ�b §
¡
Ô+¨dÑ2ˆÜ�R˜tŸz™zÔ*¨TÑ1ˆØ�J‰J�r˜2˜vÓ&×-Ñ-¨d¯j©jÓ9¸DÑ@ˆÜ”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   ©r0   rÒ   rÓ   r   r1   r2   r®   s          r#   r6   zBaseGemv.test_simplel  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_yr  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_transposex  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 )Nr:   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 )Nr:   ©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 )Nr:   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)	Nr:   rã   zfailed for 3rd argumentrJ   r   r   r9   rå   ©rÔ   rN   rO   rP   r.   ©r0   rÒ   rÓ   r   r1   r2   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÷ Gä�]‰]œ9Ð,EÖFØ—‘˜q ! Q¨¨1°A¸A�Ó>ˆA÷ GÐF÷ GÐFúçFÐFúó   ´BÁ0BÂBÂB'c                 óÜ   — | j                  d¬«      \  }}}}}|j                  «       }|t        ||«      z  ||d d d…   z  z   |d d d…<   | j                  |||||d¬«      }t	        ||«       y )Nr:   ©rÏ   )rA   )rÔ   r|   r$   r.   r   rØ   s          r#   rB   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 )Nr:   rí   r   ©rÝ   rA   )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)	Nr:   rí   zfailed for 2nd keywordrJ   r   r   r9   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÷ Fä�]‰]œ9Ð,DÖEØ—‘˜q ! Q¨¨1°A¸A�Ó>ˆA÷ FÐE÷ FÐEúçEÐEúrë   N)r   r   )rY   rZ   r[   r\   rÔ   r6   rÚ   rß   rá   r>   ræ   rê   rB   rð   rò   r]   r%   r#   rÆ   rÆ   ]  s<   „ Ù&ó
$ò0ò0ò0ò0ò0ò0ò?ò0ò0ó?r%   rÆ   c                   óˆ   — e Zd Zej                  ZeZej                  j                  ej                  dk7  d¬«      d„ «       Zy)Ú	TestSgemvÚdarwinzMacOS specific test)Úreasonc                 óˆ  ‡ ‡— d
d„Šd
ˆfd„	}ˆ fd„}t        dddd«      }t        j                  j                  d«      }|D ]  \  }}}}|j                  ||f«      }	|j                  |«      }
t        j                  |	|
«      } ||	|t        j
                  |¬	«      } ||
|t        j
                  |¬	«      } ||||«       Œ� y )Nc                 ór  —  |«       }t        j                  | «      }t        j                  ||j                  z  |z   t         j                  ¬«      }|j
                  d   d   }t        |«      D ]  }||z   |z  dk(  sŒ n ||||j                  z  z    j                  |¬«      }|j                  | |¬«      S )Nr*   Údatar   ©Úorder)	rÉ   Úprodr
   ÚnbytesÚuint8Ú__array_interface__r   Úviewr   )	r   Úalignr+   rû   ÚdÚNÚtmpÚaddressÚoffsets	            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Ô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Údesiredr0   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ú   )r  )r   rÉ   rÊ   rË   Údotr   )r0   r  r  ÚtestdatarÐ   r  Úmr;   Úa_orderÚA_dÚX_dr  ÚA_fÚX_fr  s   `             @r#   Útest_sgemv_on_osxzTestSgemv.test_sgemv_on_osx´  s®   ù€ ó7õô6ô ˜x¨°9¸jÓIˆHÜ—)‘)×'Ñ'¨Ó-ˆCÛ(0Ñ$��q˜!˜WØ—j‘j ! Q Ó(�Ø—j‘j “m�ÜŸ&™&  cÓ*�á   e¬R¯Z©Z¸wÔG�Ù   e¬R¯Z©Z¸wÔG�Ù   c¨7Õ3ñ )1r%   N)rY   rZ   r[   ra   Úsgemvr.   r   r+   rN   ÚmarkÚskipifÚsysÚplatformr!  r]   r%   r#   rô   rô   °  sA   „ Ø—K‘Kˆ	Øˆà	�‰×	Ñ	˜CŸL™L¨HÑ4Ð=RÐ	Ó	Sñ"	4ó 
Tñ"	4r%   rô   c                   ó   — e Zd Zy)rô   Nre   r]   r%   r#   rô   rô   Ú  rf   r%   c                   ó(   — e Zd Zej                  ZeZy)Ú	TestDgemvN)rY   rZ   r[   ra   Údgemvr.   r   r+   r]   r%   r#   r)  r)  Þ  rj   r%   r)  c                   ó(   — e Zd Zej                  ZeZy©Ú	TestCgemvN)rY   rZ   r[   ra   Úcgemvr.   r   r+   r]   r%   r#   r-  r-  ä  ro   r%   r-  c                   ó   — e Zd Zyr,  re   r]   r%   r#   r-  r-  è  rf   r%   c                   ó(   — e Zd Zej                  ZeZy)Ú	TestZgemvN)rY   rZ   r[   ra   Úzgemvr.   r   r+   r]   r%   r#   r1  r1  ì  rt   r%   r1  )6Ú	itertoolsr   r%  ÚnumpyrÉ   r   r   r   r   r   r	   r
   r   r   r   r   r   Úscipy.linalgr   ra   Únumpy.testingr   r   r   r   rN   Úaccuracyr$   r'   r`   ÚAttributeErrorrh   rm   rr   rv   r€   r„   rˆ   rŒ   r�   r›   rŸ   r£   r§   rª   r·   r»   r¿   rÃ   rÆ   rô   r)  r-  r1  r]   r%   r#   Ú<module>r9     s¸  ðõ Û 
ã ÷K÷ K÷ Kó Kõ )÷8ó 8ó ð €ò÷,1.ñ 1.ðhô�Hô ô�ô ð
ô�Hô ô�ô ÷/ñ /ð,ô�Hô ô�ô ð
ô�Hô ô�ô ÷%.ñ %.ð^ô�Hô ô�ô ð
ô�Hô ô�ô ÷1.ñ 1.ðhô�Hô ô�ô ð
ô�Hô ô�ô ÷O?ñ O?ðd,ô'4�Hô '4ô\�ô ð
ô�Hô ô�ô ð
-ðd7øðq ò ÷ô ðûð ò ÷ô ðûðN ò ÷ô ðûð ò ÷ô ðûð@ ò ÷ó ðûð ò ÷ó ðûðJ ò ÷ó ðûð ò ÷ó ðûðT ò ÷ó ðûð ò ÷ó ðús´   ÁE  Á(E6 Â	F Â F" ÃF8 ÃG Ã9G" ÄG7 Ä1H ÅH! Å E3Å2E3Å6F	ÆF	ÆFÆFÆ"F5Æ4F5Æ8G
Ç	G
ÇGÇGÇ"G4Ç3G4Ç7H	ÈH	ÈHÈHÈ!H3È2H3