§
    ¢éUgŠŸ  ã                   óR  — d dl Z d dlZd dlZd dl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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mZ d dlZd dlm Z!m"Z"m#Z#m$Z$ 	 d dlm%Z& n# e'$ r dZ&Y nw xY weegZ(eegZ)e(e)z   Z*d„ Z+d	„ Z, G d
„ d¦  «        Z- G d„ d¦  «        Z. G d„ d¦  «        Z/ G d„ d¦  «        Z0d$d„Z1 G d„ d¦  «        Z2 G d„ d¦  «        Z3 G d„ d¦  «        Z4 G d„ d¦  «        Z5 G d„ d¦  «        Z6d„ Z7ej8         9                    dd ¬!¦  «        d"„ ¦   «         Z:d#„ Z;dS )%é    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)ÚrandÚseed)Ú_fblasÚget_blas_funcsÚtoeplitzÚsolve)Ú_cblasc            	      ó~  — t          dt          j        dt          j        d¬¦  «        t          j        dt          j        d¬¦  «        f¦  «        \  } }}t          | j        d¦  «         t          |j        d¦  «         t          �*t          | j        d¦  «         t          |j        d¦  «         t          d¦  «        } t          | j        d	¦  «         t          d
t          j        ¬¦  «        } t          | j        d¦  «         t          d
d¬¦  «        } t          | j        d¦  «         t          d
t          j	        ¬¦  «        } t          | j        d¦  «         t          dt          j        dt          j
        ¬¦  «        t          j        dt          j        ¬¦  «        f¦  «        } t          | j        d¦  «         d S )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      ú[/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/scipy/linalg/tests/test_blas.pyÚtest_get_blas_funcsr7      sŒ  € õ  Ø Ý	Œ�&¥¤°CÐ	8Ñ	8Ô	8Ý	Œ�&¥¤°SÐ	9Ñ	9Ô	9ð	;ñ
ô 
�J€BˆˆBõ �”˜cÑ"Ô"Ð"Ý�”˜cÑ"Ô"Ð"ÝÐÝ�R”^ WÑ-Ô-Ð-Ý�R”^ WÑ-Ô-Ð-õ 
˜Ñ	Ô	€BÝ�”˜cÑ"Ô"Ð"õ 
˜¥b¤lÐ	3Ñ	3Ô	3€BÝ�”˜cÑ"Ô"Ð"Ý	˜ cÐ	*Ñ	*Ô	*€BÝ�”˜cÑ"Ô"Ð"õ 
˜¥b¤nÐ	5Ñ	5Ô	5€BÝ�”˜cÑ"Ô"Ð"õ 
˜Ýœ &µ´
Ð;Ñ;Ô;Ýœ &µ´Ð=Ñ=Ô=ð?ñ
ô 
€Bõ �”˜cÑ"Ô"Ð"Ð"Ð"ó    c                  óÌ   — t          dt          j        ¬¦  «        \  } }| j        dk    sJ ‚|j        dk    sJ ‚t          dt          j        ¬¦  «        \  } }}| |u sJ ‚| |u sJ ‚d S )N)Únrm2Údotr,   r-   )r;   ÚdotcÚdotu)r   r.   r   r0   r
   )ÚfÚgÚhs      r6   Útest_get_blas_funcs_aliasrA   E   sy   € å˜/µ´Ð>Ñ>Ô>�D€A€qØŒ:˜ÒÐÐÐØŒ:˜ÒÐÐÐåÐ4½B¼JÐGÑGÔG�G€A€qˆ!Ø�ˆ6ˆ6ˆ6ˆ6Ø�ˆ6ˆ6ˆ6ˆ6ˆ6ˆ6r8   c                   ó   — e Zd Zd„ ZdS )ÚTestCBLAS1Simplec                 ó  — dD ]@}t          t          |dz   d ¦  «        }|€Œt           |g d¢g d¢d¬¦  «        g d¢¦  «         ŒAdD ]@}t          t          |dz   d ¦  «        }|€Œt           |g d	¢g d¢d¬¦  «        g d
¢¦  «         ŒAd S ©NÚsdr    ©é   r"   é   )r"   éÿÿÿÿrI   é   ©Úa)é   é	   é   Úcz)rH   ù               @rI   )rN   y      ð¿      $@rP   )Úgetattrr(   r   ©ÚselfÚpr>   s      r6   Ú	test_axpyzTestCBLAS1Simple.test_axpyR   óÖ   € Øð 	2ð 	2ˆAÝ�˜q ™x¨Ñ.Ô.ˆAØˆyØÝ% a a¨	¨	¨	°:°:°:ÀÐ&CÑ&CÔ&CØ&0 j jñ2ô 2ð 2ð 2àð 	6ð 	6ˆAÝ�˜q ™x¨Ñ.Ô.ˆAØˆyØÝ% a a¨
¨
¨
°J°J°JÀ!Ð&DÑ&DÔ&DØ&4 n nñ6ô 6ð 6ð 6ð		6ð 	6r8   N)Ú__name__Ú
__module__Ú__qualname__rW   © r8   r6   rC   rC   P   s#   € € € € € ð6ð 6ð 6ð 6ð 6r8   rC   c                   óJ   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ ZdS )ÚTestFBLAS1Simplec                 ó  — dD ]@}t          t          |dz   d ¦  «        }|€Œt           |g d¢g d¢d¬¦  «        g d¢¦  «         ŒAdD ]@}t          t          |dz   d ¦  «        }|€Œt           |g d	¢g d¢d¬¦  «        g d
¢¦  «         ŒAd S rE   ©rS   Úfblasr   rT   s      r6   rW   zTestFBLAS1Simple.test_axpyc   rX   r8   c                 ó  — dD ]@}t          t          |dz   d ¦  «        }|€Œt           |g d¢dgdz  ¦  «        g d¢¦  «         ŒAdD ]@}t          t          |dz   d ¦  «        }|€Œt           |g d¢dgdz  ¦  «        g d¢¦  «         ŒAd S )NrF   Úcopy)rI   é   rK   é   rI   rQ   )rI   ù              @y      @      @r`   rT   s      r6   Ú	test_copyzTestFBLAS1Simple.test_copyq   sÄ   € Øð 	Fð 	FˆAÝ�˜q ™x¨Ñ.Ô.ˆAØˆyØÝ% a a¨	¨	¨	°A°3°q±5Ñ&9Ô&9¸9¸9¸9ÑEÔEÐEÐEØð 	Nð 	NˆAÝ�˜q ™x¨Ñ.Ô.ˆAØˆyØÝ% a a¨¨¨¸°s¸1±uÑ&=Ô&=¸}¸}¸}ÑMÔMÐMÐMð		Nð 	Nr8   c                 óö   — dD ]9}t          t          |dz   d ¦  «        }|€Œt           |g d¢¦  «        d¦  «         Œ:dD ]9}t          t          |dz   d ¦  «        }|€Œt           |g d¢¦  «        d¦  «         Œ:d S )NrF   Úasum©rI   éüÿÿÿrK   é   )ÚscÚdz©ù              @rk   ù      @      Àé   ©rS   ra   r   rT   s      r6   Ú	test_asumzTestFBLAS1Simple.test_asum}   s¤   € Øð 	3ð 	3ˆAÝ�˜q ™x¨Ñ.Ô.ˆAØˆyØÝ   * * *¡¤¨rÑ2Ô2Ð2Ð2Øð 	7ð 	7ˆAÝ�˜q ™x¨Ñ.Ô.ˆAØˆyØÝ   . . .Ñ 1Ô 1°2Ñ6Ô6Ð6Ð6ð		7ð 	7r8   c                 ó„   — dD ]<}t          t          |dz   d ¦  «        }|€Œt           |g d¢g d¢¦  «        d¦  «         Œ=d S )NrF   r;   rj   )r"   rK   rH   é÷ÿÿÿrs   rT   s      r6   Útest_dotzTestFBLAS1Simple.test_dot‰   s_   € Øð 	>ð 	>ˆAÝ�˜q ™w¨Ñ-Ô-ˆAØˆyØÝ   * * *¨i¨i¨iÑ 8Ô 8¸"Ñ=Ô=Ð=Ð=ð		>ð 	>r8   c                 ó„   — dD ]<}t          t          |dz   d ¦  «        }|€Œt           |g d¢g d¢¦  «        d¦  «         Œ=d S )NrQ   r=   ro   ©r"   rI   rH   y      "À       @rs   rT   s      r6   Útest_complex_dotuz"TestFBLAS1Simple.test_complex_dotu�   sc   € Øð 	Eð 	EˆAÝ�˜q ™x¨Ñ.Ô.ˆAØˆyØÝ   . . .°)°)°)Ñ <Ô <¸eÑDÔDÐDÐDð		Eð 	Er8   c                 ó„   — dD ]<}t          t          |dz   d ¦  «        }|€Œt           |g d¢g d¢¦  «        d¦  «         Œ=d S )NrQ   r<   ro   ©r"   rp   rH   y      @      ,Àrs   rT   s      r6   Útest_complex_dotcz"TestFBLAS1Simple.test_complex_dotc—   sc   € Øð 	Fð 	FˆAÝ�˜q ™x¨Ñ.Ô.ˆAØˆyØÝ   . . .°*°*°*Ñ =Ô =¸uÑEÔEÐEÐEð		Fð 	Fr8   c                 ó>  — dD ]K}t          t          |dz   d ¦  «        }|€Œt           |g d¢¦  «        t          j        d¦  «        ¦  «         ŒLdD ]K}t          t          |dz   d ¦  «        }|€Œt           |g d¢¦  «        t          j        d¦  «        ¦  «         ŒLd S )NrF   r:   rj   é2   )r-   r'   rm   rn   ro   )rS   ra   r   ÚmathÚsqrtrT   s      r6   Ú	test_nrm2zTestFBLAS1Simple.test_nrm2ž   s¸   € Øð 	>ð 	>ˆAÝ�˜q ™x¨Ñ.Ô.ˆAØˆyØÝ   * * *¡¤­t¬y¸©}¬}Ñ=Ô=Ð=Ð=Ø'ð 	Bð 	BˆAÝ�˜q ™x¨Ñ.Ô.ˆAØˆyØÝ   . . .Ñ 1Ô 1µ4´9¸R±=´=ÑAÔAÐAÐAð		Bð 	Br8   c                 ó€  — dD ]<}t          t          |dz   d ¦  «        }|€Œt           |dg d¢¦  «        g d¢¦  «         Œ=dD ]<}t          t          |dz   d ¦  «        }|€Œt           |dg d¢¦  «        g d	¢¦  «         Œ=d
D ]<}t          t          |dz   d ¦  «        }|€Œt           |dg d¢¦  «        g d¢¦  «         Œ=d S )NrF   Úscalr"   rj   )é   iøÿÿÿé
   rQ   rp   ro   )rv   y       €      (Ày      (@      "@)ÚcsÚzdrI   )y              "@iôÿÿÿy      "@      (Àr`   rT   s      r6   Ú	test_scalzTestFBLAS1Simple.test_scalª   s  € Øð 	Eð 	EˆAÝ�˜q ™x¨Ñ.Ô.ˆAØˆyØÝ% a a¨¨:¨:¨:Ñ&6Ô&6¸¸¸ÑDÔDÐDÐDØð 	Pð 	PˆAÝ�˜q ™x¨Ñ.Ô.ˆAØˆyØÝ% a a¨¨N¨N¨NÑ&;Ô&;Ð=NÐ=NÐ=NÑOÔOÐOÐOØð 	Nð 	NˆAÝ�˜q ™x¨Ñ.Ô.ˆAØˆyØÝ% a a¨¨>¨>¨>Ñ&:Ô&:Ð<LÐ<LÐ<LÑMÔMÐMÐMð		Nð 	Nr8   c                 óf  — dD ]U}t          t          |dz   d ¦  «        }|€Œg d¢g d¢}} |||¦  «        \  }}t          ||¦  «         t          ||¦  «         ŒVdD ]U}t          t          |dz   d ¦  «        }|€Œg d¢g d¢}} |||¦  «        \  }}t          ||¦  «         t          ||¦  «         ŒVd S )NrF   Úswapry   )éþÿÿÿrI   rN   rQ   r|   )rŒ   rI   y      @      Àr`   )rU   rV   r>   ÚxÚyÚx1Úy1s          r6   Ú	test_swapzTestFBLAS1Simple.test_swap»   sò   € Øð 	-ð 	-ˆAÝ�˜q ™x¨Ñ.Ô.ˆAØˆyØØ�9�9˜j˜j˜jˆqˆAØ�Q�q˜!‘W”W‰FˆB�Ý% b¨!Ñ,Ô,Ð,Ý% b¨!Ñ,Ô,Ð,Ð,Øð 	-ð 	-ˆAÝ�˜q ™x¨Ñ.Ô.ˆAØˆyØØ�:�:˜}˜}˜}ˆqˆAØ�Q�q˜!‘W”W‰FˆB�Ý% b¨!Ñ,Ô,Ð,Ý% b¨!Ñ,Ô,Ð,Ð,ð	-ð 	-r8   c                 óò   — dD ]8}t          t          d|z   dz   ¦  «        }t           |g d¢¦  «        d¦  «         Œ9dD ]8}t          t          d|z   dz   ¦  «        }t           |g d¢¦  «        d¦  «         Œ9d S )NrF   ÚiÚamax)rŒ   rd   rI   rH   rQ   )éûÿÿÿy      @      @r…   )rS   ra   r   rT   s      r6   Ú	test_amaxzTestFBLAS1Simple.test_amaxÍ   s˜   € Øð 	+ð 	+ˆAÝ�˜s 1™u V™|Ñ,Ô,ˆAÝ˜˜˜:˜:˜:™œ¨Ñ*Ô*Ð*Ð*Øð 	.ð 	.ˆAÝ�˜s 1™u V™|Ñ,Ô,ˆAÝ˜˜˜=˜=˜=Ñ)Ô)¨1Ñ-Ô-Ð-Ð-ð	.ð 	.r8   N)rY   rZ   r[   rW   rg   rt   rw   rz   r}   r‚   r‰   r‘   r–   r\   r8   r6   r^   r^   a   s¹   € € € € € ð6ð 6ð 6ð
Nð 
Nð 
Nð
7ð 
7ð 
7ð>ð >ð >ðEð Eð EðFð Fð Fð
Bð 
Bð 
BðNð Nð Nð"-ð -ð -ð$.ð .ð .ð .ð .r8   r^   c                   ón   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestFBLAS2Simplec           
      óŽ  — dD ]_}t          t          |dz   d ¦  «        }|€Œt           |ddggdg¦  «        dg¦  «         t           |ddggdgddg¦  «        dg¦  «         Œ`dD ]_}t          t          |dz   d ¦  «        }|€Œt           |d	d
ggdg¦  «        dg¦  «         t           |d	d
ggdgddg¦  «        dg¦  «         Œ`d S )NrF   ÚgemvrI   rk   éÜÿÿÿrK   éëÿÿÿrQ   rp   rq   ù      HÀ      BÀù              @ù      HÀ      5Àr`   rT   s      r6   Ú	test_gemvzTestFBLAS2Simple.test_gemvÙ   s  € Øð 	Hð 	HˆAÝ�˜q ™x¨Ñ.Ô.ˆAØˆyØÝ% a a¨¨Q¨C¨5°2°$Ñ&7Ô&7¸#¸Ñ?Ô?Ð?Ý% a a¨¨Q¨C¨5°2°$¸¸A¸3Ñ&?Ô&?À#ÀÑGÔGÐGÐGØð 	1ð 	1ˆAÝ�˜q ™x¨Ñ.Ô.ˆAØˆyØÝ% a a¨¨d¨V¨H°r°dÑ&;Ô&;¸g¸YÑGÔGÐGÝ% a a¨¨d¨V¨H°r°d¸AÀ¸tÑ&DÔ&DØ'. iñ1ô 1ð 1ð 1ð	1ð 	1r8   c                 óþ  — dD ]˜}t          t          |dz   d ¦  «        }|€Œt           |dddgddg¦  «        ddgddgg¦  «         t           |dg d	¢ddg¦  «        ddgd
dgddgg¦  «         t           |dddgddgddgddgg¬¦  «        ddgdd
gg¦  «         Œ™dD ]k}t          t          |dz   d ¦  «        }|€Œt           |dddgddg¦  «        ddgddgg¦  «         t           |dg d¢ddg¦  «        ddgd
dgddgg¦  «         ŒldD ]p}dD ]k}t          t          ||z   d ¦  «        }|€Œt           |dddgddg¦  «        ddgddgg¦  «         t           |dg d¢ddg¦  «        ddgd
dgddgg¦  «         ŒlŒqd S )NrF   ÚgerrH   r"   rI   rd   r…   re   rG   rl   é   rP   é   rL   rO   rQ   Úgeruù              ð?rp   rf   rŒ   )r¦   rR   rp   )r¢   Úgercr`   )rU   rV   r>   Únames       r6   Útest_gerzTestFBLAS2Simple.test_gerè   s�  € àð 		Pð 		PˆAÝ�˜q ™w¨Ñ-Ô-ˆAØˆyØÝ% a a¨¨A¨q¨6°A°q°6Ñ&:Ô&:¸aÀ¸VÀaÈÀVÐ<LÑMÔMÐMÝ% a a¨¨9¨9¨9°q¸!°fÑ&=Ô&=Ø()¨1 v°°B¨x¸"¸b¸Ð&BñDô Dð Dõ & a a¨¨A¨q¨6°A°q°6Ø,-¨q¨6°A°q°6Ð*:ð'<ñ '<ô '<Ø?@À!¸fÀqÈ"ÀgÐ=NñPô Pð Pð Pð ð 	Dð 	DˆAÝ�˜q ™x¨Ñ.Ô.ˆAØˆyØÝ% a a¨¨B°¨7°Q¸°FÑ&;Ô&;Ø(*¨B x°!°Q°Ð&8ñ:ô :ð :å% a a¨¨L¨L¨L¸2¸r¸(Ñ&CÔ&CØ()¨1 v°°B¨x¸"¸b¸Ð&BñDô Dð Dð Dð ð 	Hð 	HˆAØ'ð Hð H�Ý�E 1 T¡6¨4Ñ0Ô0�Ø�9ØÝ)¨!¨!¨A°°A¨w¸¸A¸Ñ*?Ô*?Ø,.°¨8°a¸°VÐ*<ñ>ô >ð >å)¨!¨!¨A¨|¨|¨|¸bÀ"¸XÑ*FÔ*FØ,-¨q¨6°B¸°8¸bÀ"¸XÐ*FñHô Hð Hð HðHð	Hð 	Hr8   c                 ó|  — t          j        ddd¬¦  «        }t          j        |d d …t           j        f         |z  ¦  «        }t          j        |d d d…t           j        f         |d d d…         z  ¦  «        }t          j        dddd	¬
¦  «        }t          j        ddd¬¦  «                             d¦  «        }t          j        |d d …t           j        f         |z  ¦  «        }t          j        |d d d…t           j        f         |d d d…         z  ¦  «        }t          j        |d d …t           j        f         |                     ¦   «         z  ¦  «        }t          j        |d d d…t           j        f         |d d d…                              ¦   «         z  ¦  «        }	t           j        t          j        d¦  «        |t          j        d¦  «        f          	                    ¦   «         }
t          dddg¦  «        D �]×\  }}t          t          |dz   d ¦  «        }|€Œ"t           |d|¦  «        ||¬¦  «         t           |d|d¬¦  «        |j        |¬¦  «         t           |d|ddd¬¦  «        ||¬¦  «         t           |d|ddd¬¦  «        ||¬¦  «         t          j        d|dk    rdndd¦  «        } |d||d¬¦  «        }t          |||¬¦  «          |d||¬¦  «        }t          ||u¦  «         t          |d |z  |¬¦  «         t!          t"          |d|d¬!¦  «         t!          t"          |d|d¬"¦  «         t!          t"          |d|d¬"¦  «         t!          t"          |d|d¬#¦  «         t!          t"          |d|d¬#¦  «         t!          t"          |d|d¬¦  «         t!          t"          |d|t          j        d$dd¦  «        ¬¦  «         �ŒÙt          d%ddg¦  «        D �]×\  }}t          t          |dz   d ¦  «        }|€Œ"t           |d|¦  «        ||¬¦  «         t           |d|d¬¦  «        |j        |¬¦  «         t           |d|
d dd¬¦  «        ||¬¦  «         t           |d|
d&dd¬¦  «        ||¬¦  «         t          j        d|d'k    rdndd¦  «        } |d||d¬¦  «        }t          |||¬¦  «          |d||¬¦  «        }t          ||u¦  «         t          |d |z  |¬¦  «         t!          t"          |d|d¬!¦  «         t!          t"          |d|d¬"¦  «         t!          t"          |d|d¬"¦  «         t!          t"          |d|d¬#¦  «         t!          t"          |d|d¬#¦  «         t!          t"          |d|d¬¦  «         t!          t"          |d|t          j        d$dd¦  «        ¬¦  «         �ŒÙt          d%ddg¦  «        D �]é\  }}t          t          |d(z   d ¦  «        }|€Œ"t           |d|¦  «        ||¬¦  «         t           |d|d¬¦  «        |j                             ¦   «         |¬¦  «         t           |d|
d dd¬¦  «        ||¬¦  «         t           |d|
d&dd¬¦  «        |	|¬¦  «         t          j        d|d'k    rdndd¦  «        } |d||d¬¦  «        }t          |||¬¦  «          |d||¬¦  «        }t          ||u¦  «         t          |d |z  |¬¦  «         t!          t"          |d|d¬!¦  «         t!          t"          |d|d¬"¦  «         t!          t"          |d|d¬"¦  «         t!          t"          |d|d¬#¦  «         t!          t"          |d|d¬#¦  «         t!          t"          |d|d¬¦  «         t!          t"          |d|t          j        d$dd¦  «        ¬¦  «         �Œëd S ))NrH   rK   r*   r,   rJ   r   ç      !@é   F©ÚendpointrO   ÚDrd   rF   çH¯¼šò×z>ç›+¡†›„=Úsyrç      ð?©ÚrtolT©Úlowerr"   )ÚincxÚoffxÚnrŒ   ©rd   rd   Úsr>   r#   ©rM   Úoverwrite_aç       @rL   rI   ©r¸   ©r¹   ©rº   r!   rQ   éýÿÿÿr-   Úher)r.   r   r   ÚnewaxisÚlinspaceÚviewÚconjÚc_r   ÚravelÚziprS   ra   r   ÚTr   Úassert_raisesÚ	Exception)rU   r�   ÚresxÚresx_reverserŽ   r'   ÚreszÚresz_reverseÚrehzÚrehz_reverseÚwrV   rµ   r>   rM   Úbs                   r6   Útest_syr_herzTestFBLAS2Simple.test_syr_her  s0  € ÝŒI�a˜ #Ð&Ñ&Ô&ˆÝŒw�q˜˜˜�BœJ˜Ô'¨!Ñ+Ñ,Ô,ˆÝ”w˜q   2 ¥r¤zÐ!1Ô2°Q°t°t¸°t´WÑ<Ñ=Ô=ˆåŒK˜˜3 ¨UÐ3Ñ3Ô3ˆåŒI�a˜ #Ð&Ñ&Ô&×+Ò+¨CÑ0Ô0ˆÝŒw�q˜˜˜�BœJ˜Ô'¨!Ñ+Ñ,Ô,ˆÝ”w˜q   2 ¥r¤zÐ!1Ô2°Q°t°t¸°t´WÑ<Ñ=Ô=ˆÝŒw�q˜˜˜�BœJ˜Ô'¨!¯&ª&©(¬(Ñ2Ñ3Ô3ˆÝ”w˜q   2 ¥r¤zÐ!1Ô2°Q°t°t¸°t´W·\²\±^´^ÑCÑDÔDˆåŒE•"”(˜1‘+”+˜q¥"¤(¨1¡+¤+Ð-Ô.×4Ò4Ñ6Ô6ˆå˜4 $¨ Ñ/Ô/ð 	Nñ 	N‰GˆAˆtÝ�˜q ™w¨Ñ-Ô-ˆAØˆyØÝ˜A˜A˜c 1™IœI t°$Ð7Ñ7Ô7Ð7Ý˜A˜A˜c 1¨DÐ1Ñ1Ô1°4´6ÀÐEÑEÔEÐEÝ˜A˜A˜c 1¨1°1¸Ð:Ñ:Ô:¸DÀtÐLÑLÔLÐLå˜A˜A˜c 1¨2°A¸Ð;Ñ;Ô;Ø(¨tð5ñ 5ô 5ð 5õ ”˜¨¨Sª¨  °c¸3Ñ?Ô?ˆAØ��#�q˜A¨4Ð0Ñ0Ô0ˆAÝ˜A˜t¨$Ð/Ñ/Ô/Ð/à��#�q˜A�‘”ˆAÝ�A˜Q�JÑÔÐÝ˜A˜q ™v¨DÐ1Ñ1Ô1Ð1å�) Q¨¨Q°QÐ7Ñ7Ô7Ð7Ý�) Q¨¨Q°QÐ7Ñ7Ô7Ð7Ý�) Q¨¨Q°RÐ8Ñ8Ô8Ð8Ý�) Q¨¨Q°"Ð5Ñ5Ô5Ð5Ý�) Q¨¨Q°!Ð4Ñ4Ô4Ð4Ý�) Q¨¨Q°aÐ8Ñ8Ô8Ð8Ý�) Q¨¨Qµ"´(¸6À3ÈÑ2LÔ2LÐMÑMÔMÐMÑMå˜4 $¨ Ñ/Ô/ð 	Nñ 	N‰GˆAˆtÝ�˜q ™w¨Ñ-Ô-ˆAØˆyØÝ˜A˜A˜c 1™IœI t°$Ð7Ñ7Ô7Ð7Ý˜A˜A˜c 1¨DÐ1Ñ1Ô1°4´6ÀÐEÑEÔEÐEÝ˜A˜A˜c 1¨1°1¸Ð:Ñ:Ô:¸DÀtÐLÑLÔLÐLå˜A˜A˜c 1¨2°A¸Ð;Ñ;Ô;Ø(¨tð5ñ 5ô 5ð 5õ ”˜¨¨Sª¨  °c¸3Ñ?Ô?ˆAØ��#�q˜A¨4Ð0Ñ0Ô0ˆAÝ˜A˜t¨$Ð/Ñ/Ô/Ð/à��#�q˜A�‘”ˆAÝ�A˜Q�JÑÔÐÝ˜A˜q ™v¨DÐ1Ñ1Ô1Ð1å�) Q¨¨Q°QÐ7Ñ7Ô7Ð7Ý�) Q¨¨Q°QÐ7Ñ7Ô7Ð7Ý�) Q¨¨Q°RÐ8Ñ8Ô8Ð8Ý�) Q¨¨Q°"Ð5Ñ5Ô5Ð5Ý�) Q¨¨Q°!Ð4Ñ4Ô4Ð4Ý�) Q¨¨Q°aÐ8Ñ8Ô8Ð8Ý�) Q¨¨Qµ"´(¸6À3ÈÑ2LÔ2LÐMÑMÔMÐMÑMå˜4 $¨ Ñ/Ô/ð 	Nñ 	N‰GˆAˆtÝ�˜q ™w¨Ñ-Ô-ˆAØˆyØÝ˜A˜A˜c 1™IœI t°$Ð7Ñ7Ô7Ð7Ý˜A˜A˜c 1¨DÐ1Ñ1Ô1°4´6·;²;±=´=ÀtÐLÑLÔLÐLÝ˜A˜A˜c 1¨1°1¸Ð:Ñ:Ô:¸DÀtÐLÑLÔLÐLå˜A˜A˜c 1¨2°A¸Ð;Ñ;Ô;Ø(¨tð5ñ 5ô 5ð 5õ ”˜¨¨Sª¨  °c¸3Ñ?Ô?ˆAØ��#�q˜A¨4Ð0Ñ0Ô0ˆAÝ˜A˜t¨$Ð/Ñ/Ô/Ð/à��#�q˜A�‘”ˆAÝ�A˜Q�JÑÔÐÝ˜A˜q ™v¨DÐ1Ñ1Ô1Ð1å�) Q¨¨Q°QÐ7Ñ7Ô7Ð7Ý�) Q¨¨Q°QÐ7Ñ7Ô7Ð7Ý�) Q¨¨Q°RÐ8Ñ8Ô8Ð8Ý�) Q¨¨Q°"Ð5Ñ5Ô5Ð5Ý�) Q¨¨Q°!Ð4Ñ4Ô4Ð4Ý�) Q¨¨Q°aÐ8Ñ8Ô8Ð8Ý�) Q¨¨Qµ"´(¸6À3ÈÑ2LÔ2LÐMÑMÔMÐMÑMð3	Nð 	Nr8   c                 ó  — t          j        ddd¬¦  «        }t          j        ddd¬¦  «        }t          j        |d d …t           j        f         |z  |d d …t           j        f         |z  z   ¦  «        }t          j        |d d d…t           j        f         |d d d…         z  |d d d…t           j        f         |d d d…         z  z   ¦  «        }t          j        ddd	d
¬¦  «        }t          dddg¦  «        D �]Ž\  }}t          t          |dz   d ¦  «        }|€Œ"t           |d||¦  «        ||¬¦  «         t           |d||d¬¦  «        |d d…d d…f         |¬¦  «         t           |d||d¬¦  «        |j	        |¬¦  «         t           |d||dddd¬¦  «        ||¬¦  «         t           |d||ddddd¬¦  «        |d d…d d…f         |¬¦  «         t           |d||dddd¬¦  «        ||¬¦  «         t          j
        d|dk    rdndd¦  «        }	 |d|||	d¬¦  «        }
t          |	||¬¦  «          |d |||	¬!¦  «        }
t          |	|
u¦  «         t          |
d|z  |¬¦  «         t          t          |d||d¬"¦  «         t          t          |d||d¬#¦  «         t          t          |d||d¬#¦  «         t          t          |d||d¬$¦  «         t          t          |d||d¬%¦  «         t          t          |d||d¬%¦  «         t          t          |d||d¬¦  «         t          t          |d||d¬¦  «         t          t          |d||d¬¦  «         t          t          |d||t          j
        d&dd¦  «        ¬!¦  «         �Œ�d S )'NrH   rK   r*   r,   rO   rJ   r   r«   r¬   Fr­   rF   r°   r±   Úsyr2r³   r´   rI   rÂ   Tr¶   r"   r†   ©r¸   r¹   ÚincyÚoffy©r¸   r¹   rÛ   rÜ   rº   rŒ   r»   r¼   r>   r#   r½   r¿   rL   rÀ   rÁ   ©rÛ   ©rÜ   r!   )r.   r   r   rÅ   rÆ   rË   rS   ra   r   rÌ   r   r   rÍ   rÎ   )rU   r�   rŽ   ÚresxyÚresxy_reverseÚqrV   rµ   r>   rM   rÖ   s              r6   Ú	test_syr2zTestFBLAS2Simple.test_syr2h  s&  € ÝŒI�a˜ #Ð&Ñ&Ô&ˆÝŒI�a˜ #Ð&Ñ&Ô&ˆÝ”˜˜!˜!˜!�RœZ˜-Ô(¨1Ñ,¨q°°°µB´J°Ô/?À!Ñ/CÑCÑDÔDˆÝœ  $ $ B $­¬
Ð"2Ô 3°a¸¸¸"¸´gÑ =Ø"# D D b D­"¬*Ð$4Ô"5¸¸$¸$¸B¸$¼Ñ"?ñ!@ñ Aô Aˆõ ŒK˜˜3 ¨UÐ3Ñ3Ô3ˆå˜4 $¨ Ñ/Ô/ð "	8ñ "	8‰GˆAˆtÝ�˜q ™x¨Ñ.Ô.ˆAØˆyØÝ˜A˜A˜c 1 a™LœL¨%°dÐ;Ñ;Ô;Ð;Ý˜A˜A˜c 1 a¨1Ð-Ñ-Ô-¨u°R°a°R¸¸!¸°V¬}À4ÐHÑHÔHÐHÝ˜A˜A˜c 1 a¨tÐ4Ñ4Ô4°e´gÀDÐIÑIÔIÐIå˜A˜A˜c 1 a¨a°a¸aÀbÐIÑIÔIØ!¨ð.ñ .ô .ð .å˜A˜A˜c 1 a¨a°a¸aÀbÈAÐNÑNÔNØ! " 1 " b q b &œM°ð6ñ 6ô 6ð 6õ ˜A˜A˜c 1 a¨b°q¸rÈÐKÑKÔKØ)°ð6ñ 6ô 6ð 6õ ”˜¨¨Sª¨  °c¸3Ñ?Ô?ˆAØ��#�q˜!˜q¨dÐ3Ñ3Ô3ˆAÝ˜A˜u¨4Ð0Ñ0Ô0Ð0à��#�q˜!˜qÐ!Ñ!Ô!ˆAÝ�A˜Q�JÑÔÐÝ˜A˜q ™w¨TÐ2Ñ2Ô2Ð2å�) Q¨¨Q°¸Ð:Ñ:Ô:Ð:Ý�) Q¨¨Q°¸Ð:Ñ:Ô:Ð:Ý�) Q¨¨Q°¸Ð;Ñ;Ô;Ð;Ý�) Q¨¨Q°¸Ð:Ñ:Ô:Ð:Ý�) Q¨¨Q°¸Ð:Ñ:Ô:Ð:Ý�) Q¨¨Q°¸Ð;Ñ;Ô;Ð;Ý�) Q¨¨Q°°RÐ8Ñ8Ô8Ð8Ý�) Q¨¨Q°°QÐ7Ñ7Ô7Ð7Ý�) Q¨¨Q°¸Ð;Ñ;Ô;Ð;Ý�) Q¨¨Q°ÝœH V¨S°#Ñ6Ô6ð8ñ 8ô 8ð 8ñ 8ðC"	8ð "	8r8   c                 ó	  — t          j        ddd¬¦  «                             d¦  «        }t          j        ddd¬¦  «                             d¦  «        }|d d …t           j        f         |                     ¦   «         z  |d d …t           j        f         |                     ¦   «         z  z   }t          j        |¦  «        }|d d d…t           j        f         |d d d…                              ¦   «         z  }||d d d…t           j        f         |d d d…                              ¦   «         z  z  }t          j        |¦  «        }t           j        t          j        d¦  «        |t          j        d¦  «        f                              ¦   «         }t           j        t          j        d¦  «        |t          j        d¦  «        f                              ¦   «         }t          d	d
dg¦  «        D �] \  }}t          t          |dz   d ¦  «        }	|	€Œ"t           |	d||¦  «        ||¬¦  «         t           |	d||d¬¦  «        |d d…d d…f         |¬¦  «         t           |	d||d¬¦  «        |j                             ¦   «         |¬¦  «         t           |	d||dddd¬¦  «        ||¬¦  «         t           |	d||ddddd¬¦  «        |d d…d d…f         |¬¦  «         t           |	d||dddd¬¦  «        ||¬¦  «         t          j        d|dk    rdndd¦  «        }
 |	d|||
d¬¦  «        }t          |
||¬¦  «          |	d|||
¬¦  «        }t          |
|u¦  «         t          |d|z  |¬¦  «         t          t           |	d||d¬¦  «         t          t           |	d||d¬¦  «         t          t           |	d||d ¬¦  «         t          t           |	d||d¬!¦  «         t          t           |	d||d¬"¦  «         t          t           |	d||d ¬"¦  «         t          t           |	d||d ¬¦  «         t          t           |	d||d¬¦  «         t          t           |	d||d#¬¦  «         t          t           |	d||t          j        d$dd¦  «        ¬¦  «         �Œ¢d S )%NrH   rO   r*   r,   r¯   r¬   rJ   rd   rQ   r°   r±   Úher2r³   r´   rI   rÂ   Tr¶   rÚ   rÝ   rÃ   r»   r-   r#   r½   r¿   rL   r   rÀ   rK   rÁ   rŒ   rÞ   rß   r"   r!   )r.   r   rÇ   rÅ   rÈ   r   rÉ   r   rÊ   rË   rS   ra   r   rÌ   r   rÍ   rÎ   )rU   r�   rŽ   rà   rá   ÚuÚvrV   rµ   r>   rM   rÖ   s               r6   Ú	test_her2zTestFBLAS2Simple.test_her2•  s¼  € ÝŒI�a˜ #Ð&Ñ&Ô&×+Ò+¨CÑ0Ô0ˆÝŒI�a˜ 3Ð'Ñ'Ô'×,Ò,¨SÑ1Ô1ˆØ�!�!�!•R”Z�-Ô  1§6¢6¡8¤8Ñ+¨a°°°µ2´:°Ô.>ÀÇÂÁÄÑ.IÑIˆÝ”˜‘”ˆà˜$˜$˜B˜$¥¤
Ð*Ô+¨a°°°"°¬g¯lªl©n¬nÑ<ˆØ˜˜4˜4˜R˜4¥¤Ð+Ô,¨q°°°2°¬w¯|ª|©~¬~Ñ=Ñ=ˆÝœ Ñ.Ô.ˆåŒE•"”(˜1‘+”+˜q¥"¤(¨1¡+¤+Ð-Ô.×4Ò4Ñ6Ô6ˆÝŒE•"”(˜1‘+”+˜q¥"¤(¨1¡+¤+Ð-Ô.×4Ò4Ñ6Ô6ˆå˜4 $¨ Ñ/Ô/ð #	8ñ #	8‰GˆAˆtÝ�˜q ™x¨Ñ.Ô.ˆAØˆyØÝ˜A˜A˜c 1 a™LœL¨%°dÐ;Ñ;Ô;Ð;Ý˜A˜A˜c 1 a¨1Ð-Ñ-Ô-¨u°R°a°R¸¸!¸°V¬}À4ÐHÑHÔHÐHÝ˜A˜A˜c 1 a¨tÐ4Ñ4Ô4°e´g·l²l±n´nØ!%ð'ñ 'ô 'ð 'õ ˜A˜A˜c 1 a¨a°a¸aÀaÐHÑHÔHØ!¨ð.ñ .ô .ð .å˜A˜A˜c 1 a¨a°a¸aÀaÈ1ÐMÑMÔMØ! " 1 " b q b &œM°ð6ñ 6ô 6ð 6õ ˜A˜A˜c 1 a¨b°q¸rÈÐJÑJÔJØ)°ð6ñ 6ô 6ð 6õ ”˜¨¨Sª¨  °c¸3Ñ?Ô?ˆAØ��#�q˜!˜q¨dÐ3Ñ3Ô3ˆAÝ˜A˜u¨4Ð0Ñ0Ô0Ð0à��#�q˜!˜qÐ!Ñ!Ô!ˆAÝ�A˜Q�JÑÔÐÝ˜A˜q ™w¨TÐ2Ñ2Ô2Ð2å�) Q¨¨Q°¸Ð:Ñ:Ô:Ð:Ý�) Q¨¨Q°¸Ð:Ñ:Ô:Ð:Ý�) Q¨¨Q°¸Ð;Ñ;Ô;Ð;Ý�) Q¨¨Q°¸Ð:Ñ:Ô:Ð:Ý�) Q¨¨Q°¸Ð:Ñ:Ô:Ð:Ý�) Q¨¨Q°¸Ð;Ñ;Ô;Ð;Ý�) Q¨¨Q°°RÐ8Ñ8Ô8Ð8Ý�) Q¨¨Q°°QÐ7Ñ7Ô7Ð7Ý�) Q¨¨Q°¸Ð;Ñ;Ô;Ð;Ý�) Q¨¨Q°ÝœH V¨S°#Ñ6Ô6ð8ñ 8ô 8ð 8ñ 8ðE#	8ð #	8r8   c                 ó  — t          d¦  «         t          t          ¦  «        D �]á\  }}d}d}d}d}t          t	          t          |dz   ¦  «        t          ||z
  dz
  ¦  «        ¦  «        t	          t          |dz   ¦  «        t          ||z
  dz
  ¦  «        ¦  «        ¦  «        }|                     |¦  «        }t          ||z   dz   |f|¬¦  «        }|d         |dd d…f<   |d         |ddd	…f<   |d
         |ddd…f<   |d         |dd d…f<   t          |¦  «                             |¦  «        }	t          |¦  «                             |¦  «        }
 |d¦  «         |d¦  «        }}t          d|¬¦  «        \  } ||||||||	|
|¬¦	  «	        }|| 	                    |	¦  «        z  ||
z  z   }t          ||¦  «          ||||||||
|	|d¬¦
  «
        }||j         	                    |
¦  «        z  ||	z  z   }t          ||¦  «         �Œãd S )NéÒ  rN   rK   rH   r"   r,   )r   r   )r   rH   r…   )r   r"   r   )rH   r   rI   rd   r•   )Úgbmv)	Úmrº   ÚkuÚklÚalpharM   r�   rŽ   Úbeta)
rì   rº   rí   rî   rï   rM   r�   rŽ   rð   Útrans)r   Ú	enumerateÚDTYPESr   r   r   r   Úastyper   r;   r   rÌ   )rU   Úindr$   rº   rì   rî   rí   ÚAÚAbr�   rŽ   rï   rð   Úfuncr�   Úy2s                   r6   Ú	test_gbmvzTestFBLAS2Simple.test_gbmvÇ  s/  € ÝˆT‰
Œ
ˆ
Ý#¥FÑ+Ô+ð 	.ñ 	.‰JˆC�ØˆAØˆAØˆBØˆBå�¥ R¨¡T¡
¤
­E°!°B±$°q±&©M¬MÑ:Ô:Ý¥ R¨¡T¡
¤
­E°!°B±$°q±&©M¬MÑ:Ô:ñ<ô <ˆAà—’˜‘”ˆAÝ˜˜2™˜a™ �|¨5Ð1Ñ1Ô1ˆBð ˜$œˆBˆq�"�1�"ˆu‰IØ˜4œˆBˆq�!�A�#ˆv‰JØ˜4œˆBˆq�!�A�#ˆv‰JØ˜$œˆBˆq�"�1�"ˆu‰Iå�Q‘”—’˜uÑ%Ô%ˆAÝ�Q‘”—’˜uÑ%Ô%ˆAØ˜% ™(œ( E E¨"¡I¤I�4ˆEå" 9°EÐ:Ñ:Ô:‰EˆDØ�˜˜Q 2¨"°E¸RØ˜Q Tð+ñ +ô +ˆBà˜Ÿš˜q™œÑ! D¨1¡HÑ,ˆBÝ% b¨"Ñ-Ô-Ð-à�˜˜Q 2¨"°E¸RØ˜Q T°ð4ñ 4ô 4ˆBà˜œŸš ™œÑ# d¨Q¡hÑ.ˆBÝ% b¨"Ñ-Ô-Ð-Ñ-ð=	.ð 	.r8   c           	      óþ  — t          d¦  «         t          t          ¦  «        D �]×\  }}d}d}t          ||f|¬¦  «        }t          |dz   |f|¬¦  «        }t	          |¦  «        |t          |¦  «        t          |¦  «        f<   t          d|dz   ¦  «        D ]E}t	          ||z
  ¦  «        }||t          ||z
  ¦  «        t          ||¦  «        f<   ||d|z
  |d …f<   ŒF|                     |¦  «        }|dk     r
||j        z   n|| 	                    ¦   «         j        z   }t          |¦  «        |dd d …f<   t	          |¦  «                             |¦  «        }	t	          |¦  «                             |¦  «        }
 |d¦  «         |d¦  «        }}|dk    rt          d	|¬¦  «        \  }nt          d
|¬¦  «        \  } |||||	|
|¬¦  «        }||                     |	¦  «        z  ||
z  z   }t          ||¦  «         �ŒÙd S )Nrê   r…   r"   r,   rH   rJ   ç      ô?rI   )Úhbmv)Úsbmv)Úkrï   rM   r�   rŽ   rð   )r   rò   ró   r   r   r   Úrangerô   rÌ   rÈ   r   r   r;   r   )rU   rõ   r$   rº   rÿ   rö   r÷   Úind2Útempr�   rŽ   rï   rð   rø   r�   rù   s                   r6   Útest_sbmv_hbmvzTestFBLAS2Simple.test_sbmv_hbmvé  s  € ÝˆT‰
Œ
ˆ
Ý#¥FÑ+Ô+ð 	.ñ 	.‰JˆC�ØˆAØˆAÝ�q˜!�f EÐ*Ñ*Ô*ˆAÝ˜˜!™˜Q�x uÐ-Ñ-Ô-ˆBõ '+¨1¡g¤gˆA�f�Q‰iŒi� ™œÐ"Ñ#Ý˜a  1¡™œð *ð *�Ý˜A˜d™F‘|”|�Ø59�•&˜˜4™‘.”.¥&¨¨q¡/¤/Ð1Ñ2Ø%)��2�d‘7˜D˜E˜E�>Ñ"Ð"Ø—’˜‘”ˆAØ š7˜7��A”C‘�¨¨A¯FªF©H¬H¬J©ˆAÝ˜Q™œˆBˆr�1�1�1ˆu‰IÝ�Q‘”—’˜uÑ%Ô%ˆAÝ�Q‘”—’˜uÑ%Ô%ˆAØ˜% ™+œ+ u u¨Q¡x¤x�4ˆEà�QŠwˆwÝ& y¸Ð>Ñ>Ô>‘��å& y¸Ð>Ñ>Ô>‘�Ø�˜ ¨"°°Q¸TÐBÑBÔBˆBØ˜Ÿš˜q™œÑ! D¨1¡HÑ,ˆBÝ% b¨"Ñ-Ô-Ð-Ñ-ð3	.ð 	.r8   c                 óÚ  — t          d¦  «         t          t          t          z   ¦  «        D �]=\  }}d}t	          ||¦  «                             |¦  «        }|dk    r|t	          ||¦  «        dz  z  }|                     |¦  «        }|dk     r
||j        z   n||                     ¦   «         j        z   }t          |¦  «        \  }}|||f         }t	          |¦  «                             |¦  «        }t	          |¦  «                             |¦  «        }	t          d|z  ¦  «                             |¦  «        }
t          d|z  ¦  «                             |¦  «        } |d¦  «         |d¦  «        }}|dk    rt          d|¬	¦  «        \  }nt          d
|¬	¦  «        \  } ||||||	|¬¦  «        }||                     |¦  «        z  ||	z  z   }t          ||¦  «          ||dz
  |||
||dd||¬¦
  «
        }||d d…d d…f         z                       |
dd d…         ¦  «        ||dd d…         z  z   }t          |dd d…         |¦  «         t          |d         |d         ¦  «         �Œ?d S )Nrê   rI   rH   r¦   rd   r"   rü   )Úhpmvr,   )Úspmv)rº   rï   Úapr�   rŽ   rð   )
rº   rï   rð   r�   rŽ   r  r¸   rÛ   r¹   rÜ   rJ   )r   rò   ró   ÚCOMPLEX_DTYPESr   rô   rÌ   rÈ   r   r   r   r   r;   r   r   )rU   rõ   r$   rº   rö   r-   ÚrÚApr�   rŽ   ÚxlongÚylongrï   rð   rø   r�   rù   s                    r6   Útest_spmv_hpmvzTestFBLAS2Simple.test_spmv_hpmv  so  € ÝˆT‰
Œ
ˆ
Ý#¥F­>Ñ$9Ñ:Ô:ð 	1ñ 	1‰JˆC�ØˆAÝ�Q˜‘
”
×!Ò! %Ñ(Ô(ˆAØ�QŠwˆwØ•T˜!˜Q‘Z”Z ‘]Ñ"�Ø—’˜‘”ˆAØ š7˜7��A”C‘�¨¨A¯FªF©H¬H¬J©ˆAÝ ‘?”?‰DˆAˆqØ�1�a�4”ˆBÝ�Q‘”—’˜uÑ%Ô%ˆAÝ�Q‘”—’˜uÑ%Ô%ˆAÝ˜1˜Q™3‘K”K×&Ò& uÑ-Ô-ˆEÝ˜˜1™‘I”I×$Ò$ UÑ+Ô+ˆEØ˜% ™+œ+ u u¨Q¡x¤x�4ˆEà�QŠwˆwÝ& y¸Ð>Ñ>Ô>‘��å& y¸Ð>Ñ>Ô>‘�Ø�˜ ¨2°°a¸dÐCÑCÔCˆBØ˜Ÿš˜q™œÑ! D¨1¡HÑ,ˆBÝ% b¨"Ñ-Ô-Ð-ð �˜˜!™ 5¨t°uÀÈ"Ø 1¨1°1ð6ñ 6ô 6ˆBà˜!˜C˜R˜C  " ˜Hœ+Ñ%×*Ò*¨5°°°A°¬;Ñ7Ô7¸$ÀÀqÀtÈ!ÀtÄÑ:LÑLˆBÝ% b¨¨¨A¨¤h°Ñ3Ô3Ð3Ý  1¤ u¨Q¤xÑ0Ô0Ð0Ñ0ð9	1ð 	1r8   c                 ó,  — t          d¦  «         t          t          t          z   ¦  «        D �]æ\  }}d}t	          ||¦  «                             |¦  «        }|dk    r|t	          ||¦  «        dz  z  }|                     |¦  «        }|dk     r
||j        z   n||                     ¦   «         j        z   }t          |¦  «        \  }}|||f         }t	          |¦  «                             |¦  «        }t          t          z   t          |d¦  «                 d¦  «        }	|dk    rUt          d|¬¦  «        \  }
|	|d d …d f                              |d d d …f                              ¦   «         ¦  «        z  |z   }nBt          d	|¬¦  «        \  }
|	|d d …d f                              |d d d …f         ¦  «        z  |z   } |
||	||¬
¦  «        }t          d|¬¦  «        }||||f<   |dk    r|                     ¦   «         n||||f<   t          ||¦  «         �Œèd S )Nrê   rI   rH   r¦   rd   g      @)Úhprr,   )Úspr)rº   rï   r  r�   ©rI   rI   )r   rò   ró   r  r   rô   rÌ   rÈ   r   r   r   r;   r   r   )rU   rõ   r$   rº   rö   r-   r	  r
  r�   rï   rø   rù   r�   Úy1fs                 r6   Útest_spr_hprzTestFBLAS2Simple.test_spr_hpr&  s
  € ÝˆT‰
Œ
ˆ
Ý#¥F­>Ñ$9Ñ:Ô:ð 	/ñ 	/‰JˆC�ØˆAÝ�Q˜‘
”
×!Ò! %Ñ(Ô(ˆAØ�QŠwˆwØ•T˜!˜Q‘Z”Z ‘]Ñ"�Ø—’˜‘”ˆAØ š7˜7��A”C‘�¨¨A¯FªF©H¬H¬J©ˆAÝ ‘?”?‰DˆAˆqØ�1�a�4”ˆBÝ�Q‘”—’˜uÑ%Ô%ˆAÝ�NÑ*­C°°Q©K¬KÔ8¸Ñ=Ô=ˆEà�QŠwˆwÝ& x°uÐ=Ñ=Ô=‘�Ø˜Q˜q˜q˜q $˜wœZŸ^š^¨A¨d°A°A°A¨g¬J¯OªOÑ,=Ô,=Ñ>Ô>Ñ>ÀÑB��å& x°uÐ=Ñ=Ô=‘�Ø˜Q˜q˜q˜q $˜wœZŸ^š^¨A¨d°A°A°A¨g¬JÑ7Ô7Ñ7¸!Ñ;�à�˜ ¨2°Ð3Ñ3Ô3ˆBÝ˜ eÐ,Ñ,Ô,ˆCØˆC��1�‰IØ%(¨1¢W W˜Ÿš™	œ	˜	°"ˆC��1�‰IÝ% c¨2Ñ.Ô.Ð.Ñ.ð/	/ð 	/r8   c                 ó(  — t          d¦  «         t          t          ¦  «        D �]ì\  }}d}t          ||¦  «                             |¦  «        }|dk    r|t          ||¦  «        dz  z  }|                     |¦  «        }|dk     r
||j        z   n||                     ¦   «         j        z   }t          |¦  «        \  }}|||f         }t          |¦  «                             |¦  «        }t          |¦  «                             |¦  «        }	 |d¦  «        }
|dk    rt          d|¬¦  «        \  }nt          d|¬¦  «        \  }|
                     ¦   «         |d d …d f          	                    |	d d d …f                              ¦   «         ¦  «        z  }||z   |                     ¦   «         j        z   } |||
||	|¬	¦  «        }t          d
|¬¦  «        }||||f<   |g d¢                              ¦   «         |g d¢g d¢f<   t          ||¦  «         �Œîd S )Nrê   rI   rH   r¦   r"   )Úhpr2r,   )Úspr2)rº   rï   r�   rŽ   r  r  )rH   rI   rd   )rH   r"   r"   )r   r   rH   )r   rò   ró   r   rô   rÌ   rÈ   r   r   r;   r   r   )rU   rõ   r$   rº   rö   r-   r	  r
  r�   rŽ   rï   rø   ræ   rù   r�   r  s                   r6   Útest_spr2_hpr2zTestFBLAS2Simple.test_spr2_hpr2A  sþ  € ÝˆT‰
Œ
ˆ
Ý#¥FÑ+Ô+ð 	/ñ 	/‰JˆC�ØˆAÝ�Q˜‘
”
×!Ò! %Ñ(Ô(ˆAØ�QŠwˆwØ•T˜!˜Q‘Z”Z ‘]Ñ"�Ø—’˜‘”ˆAØ š7˜7��A”C‘�¨¨A¯FªF©H¬H¬J©ˆAÝ ‘?”?‰DˆAˆqØ�1�a�4”ˆBÝ�Q‘”—’˜uÑ%Ô%ˆAÝ�Q‘”—’˜uÑ%Ô%ˆAØ�E˜!‘H”HˆEà�QŠwˆwÝ& y¸Ð>Ñ>Ô>‘��å& y¸Ð>Ñ>Ô>‘�à—
’
‘”˜q    D œzŸ~š~¨a°°a°a°a°¬j¯oªoÑ.?Ô.?Ñ@Ô@Ñ@ˆAØ�Q‘˜Ÿš™œœÑ#ˆBØ�˜ ¨!¨q°RÐ8Ñ8Ô8ˆBÝ˜ eÐ,Ñ,Ô,ˆCØˆC��1�‰IØ(*¨9¨9¨9¬×(:Ò(:Ñ(<Ô(<ˆC�	�	�	˜9˜9˜9Ð$Ñ%Ý% c¨2Ñ.Ô.Ð.Ñ.ð1	/ð 	/r8   c                 óô  — t          d¦  «         t          t          ¦  «        D �]R\  }}d}d}t          |¦  «                             |¦  «        }t          ||f|¬¦  «        }t          |dz   ¦  «        D ]7}t          ||z
  ¦  «        |t          ||z
  ¦  «        t          ||¦  «        f<   Œ8|dk    rR|t          |¦  «        xx         dt          |dz   |z  ||dz   z  dz  z
  ¦  «                             |¦  «        z  z  cc<   t          |dz   |f|¬¦  «        }t          |dz   ¦  «        D ]}	t          ||	¬¦  «        ||	 dz
  |	d …f<   Œt          d	|¬¦  «        \  }
 |
|||¬
¦  «        }|                     |¦  «        }t          ||¦  «          |
|||d¬¦  «        } |d¦  «        |t          |¦  «        t          |¦  «        f<   |                     |¦  «        }t          ||¦  «          |
|||dd¬¦  «        }|j                             |¦  «        }t          ||¦  «          |
|||dd¬¦  «        }|                     ¦   «         j                             |¦  «        }t          ||¦  «         �ŒTd S )Nrê   r†   rI   r,   rH   r¦   r"   ©rÿ   )Útbmv©rÿ   rM   r�   ©rÿ   rM   r�   r   ©rÿ   rM   r�   r   rñ   )r   rò   ró   r   rô   r   r   r   r   r   r   r;   r   rÌ   rÈ   ©rU   rõ   r$   rº   rÿ   r�   rö   Úsupr÷   Úrowrø   r�   rù   s                r6   Ú	test_tbmvzTestFBLAS2Simple.test_tbmv]  sŒ  € ÝˆT‰
Œ
ˆ
Ý#¥FÑ+Ô+ð "	.ñ "	.‰JˆC�ØˆAØˆAÝ�Q‘”—’˜uÑ%Ô%ˆAÝ�q˜!�f EÐ*Ñ*Ô*ˆAå˜Q˜q™S‘z”zð ?ð ?�Ý37¸¸#¹±;´;�•&˜˜3™‘-”-¥¨¨Q¡¤Ð/Ñ0Ð0ð �QŠwˆwØ•'˜!‘*”*��” ¥d¨A¨a©C°©7°A°q¸±s±G¸Q±JÑ+?Ñ&@Ô&@×&GÒ&GÈÑ&NÔ&NÑ!NÑN��‘õ ˜˜!™˜Q�x uÐ-Ñ-Ô-ˆBÝ˜Q˜q™S‘z”zð 2ð 2�Ý#'¨¨S >¡>¤>��C�4˜‘6˜3˜4˜4�<Ñ Ð Ý" 9°EÐ:Ñ:Ô:‰EˆDà�˜˜R 1Ð%Ñ%Ô%ˆBØ—’�q‘”ˆBÝ% b¨"Ñ-Ô-Ð-à�˜˜R 1¨1Ð-Ñ-Ô-ˆBØ&+ e¨A¡h¤hˆA�f�Q‰iŒi� ™œÐ"Ñ#Ø—’�q‘”ˆBÝ% b¨"Ñ-Ô-Ð-à�˜˜R 1¨1°AÐ6Ñ6Ô6ˆBØ”—’˜‘”ˆBÝ% b¨"Ñ-Ô-Ð-à�˜˜R 1¨1°AÐ6Ñ6Ô6ˆBØ—’‘””—’ Ñ"Ô"ˆBÝ% b¨"Ñ-Ô-Ð-Ñ-ðE"	.ð "	.r8   c                 óÌ  — t          d¦  «         t          t          ¦  «        D �]>\  }}d}d}t          |¦  «                             |¦  «        }t          ||f|¬¦  «        }t          |dz   ¦  «        D ]7}t          ||z
  ¦  «        |t          ||z
  ¦  «        t          ||¦  «        f<   Œ8|dk    rR|t          |¦  «        xx         dt          |dz   |z  ||dz   z  dz  z
  ¦  «                             |¦  «        z  z  cc<   t          |dz   |f|¬¦  «        }t          |dz   ¦  «        D ]}	t          ||	¬¦  «        ||	 dz
  |	d …f<   Œt          d	|¬¦  «        \  }
 |
|||¬
¦  «        }t          ||¦  «        }t          ||¦  «          |
|||d¬¦  «        } |d¦  «        |t          |¦  «        t          |¦  «        f<   t          ||¦  «        }t          ||¦  «          |
|||dd¬¦  «        }t          |j        |¦  «        }t          ||¦  «          |
|||dd¬¦  «        }t          |                     ¦   «         j        |¦  «        }t          ||¦  «         �Œ@d S )Nrê   r…   rI   r,   rH   r¦   r"   r  )Útbsvr  r  r  )r   rò   ró   r   rô   r   r   r   r   r   r   r   r   rÌ   rÈ   r  s                r6   Ú	test_tbsvzTestFBLAS2Simple.test_tbsvƒ  s„  € ÝˆT‰
Œ
ˆ
Ý#¥FÑ+Ô+ð "	.ñ "	.‰JˆC�ØˆAØˆAÝ�Q‘”—’˜uÑ%Ô%ˆAÝ�q˜!�f EÐ*Ñ*Ô*ˆAå˜Q˜q™S‘z”zð ?ð ?�Ý37¸¸#¹±;´;�•&˜˜3™‘-”-¥¨¨Q¡¤Ð/Ñ0Ð0ð �QŠwˆwØ•'˜!‘*”*��” ¥d¨A¨a©C°©7°A°q¸±s±G¸Q±JÑ+?Ñ&@Ô&@×&GÒ&GÈÑ&NÔ&NÑ!NÑN��‘õ ˜˜!™˜Q�x uÐ-Ñ-Ô-ˆBÝ˜Q˜q™S‘z”zð 2ð 2�Ý#'¨¨S >¡>¤>��C�4˜‘6˜3˜4˜4�<Ñ Ð Ý" 9°EÐ:Ñ:Ô:‰EˆDà�˜˜R 1Ð%Ñ%Ô%ˆBÝ�q˜!‘”ˆBÝ% b¨"Ñ-Ô-Ð-à�˜˜R 1¨1Ð-Ñ-Ô-ˆBØ&+ e¨A¡h¤hˆA�f�Q‰iŒi� ™œÐ"Ñ#Ý�q˜!‘”ˆBÝ% b¨"Ñ-Ô-Ð-à�˜˜R 1¨1°AÐ6Ñ6Ô6ˆBÝ�q”s˜A‘”ˆBÝ% b¨"Ñ-Ô-Ð-à�˜˜R 1¨1°AÐ6Ñ6Ô6ˆBÝ�q—v’v‘x”x”z 1Ñ%Ô%ˆBÝ% b¨"Ñ-Ô-Ð-Ñ-ðE"	.ð "	.r8   c                 óØ  — t          d¦  «         t          t          ¦  «        D �]Ä\  }}d}t          |¦  «                             |¦  «        }|dk     rt          t          ||¦  «        ¦  «        n0t          t          ||¦  «        t          ||¦  «        dz  z   ¦  «        }t          |¦  «        \  }}|||f         }t          d|¬¦  «        \  }	 |	|||¬¦  «        }
|                     |¦  «        }t          |
|¦  «          |	|||d¬	¦  «        }
 |d¦  «        |t          |¦  «        t          |¦  «        f<   |                     |¦  «        }t          |
|¦  «          |	|||dd¬
¦  «        }
|j                             |¦  «        }t          |
|¦  «          |	|||dd¬
¦  «        }
|                     ¦   «         j                             |¦  «        }t          |
|¦  «         �ŒÆd S )Nrê   r†   r"   r¦   )Útpmvr,   ©rº   r  r�   rH   ©rº   r  r�   r   ©rº   r  r�   r   rñ   )r   rò   ró   r   rô   r   r   r   r;   r   r   rÌ   rÈ   ©rU   rõ   r$   rº   r�   rö   r-   r	  r
  rø   r�   rù   s               r6   Ú	test_tpmvzTestFBLAS2Simple.test_tpmv©  sÓ  € ÝˆT‰
Œ
ˆ
Ý#¥FÑ+Ô+ð 	.ñ 	.‰JˆC�ØˆAÝ�Q‘”—’˜uÑ%Ô%ˆAà$'¨!¢G G••T˜!˜Q‘Z”ZÑ Ô Ð µµd¸1¸a±j´jÅÀaÈÁÄÈBÁÑ6NÑ1OÔ1OˆAå ‘?”?‰DˆAˆqØ�1�a�4”ˆBÝ" 9°EÐ:Ñ:Ô:‰EˆDà�˜˜b AÐ&Ñ&Ô&ˆBØ—’�q‘”ˆBÝ% b¨"Ñ-Ô-Ð-à�˜˜b A¨AÐ.Ñ.Ô.ˆBØ&+ e¨A¡h¤hˆA�f�Q‰iŒi� ™œÐ"Ñ#Ø—’�q‘”ˆBÝ% b¨"Ñ-Ô-Ð-à�˜˜b A¨A°QÐ7Ñ7Ô7ˆBØ”—’˜‘”ˆBÝ% b¨"Ñ-Ô-Ð-à�˜˜b A¨A°QÐ7Ñ7Ô7ˆBØ—’‘””—’ Ñ"Ô"ˆBÝ% b¨"Ñ-Ô-Ð-Ñ-ð3	.ð 	.r8   c                 óÔ  — t          d¦  «         t          t          ¦  «        D �]Â\  }}d}t          |¦  «                             |¦  «        }|dk     rt          t          ||¦  «        ¦  «        n0t          t          ||¦  «        t          ||¦  «        dz  z   ¦  «        }|t          |¦  «        z  }t          |¦  «        \  }}|||f         }t          d|¬¦  «        \  }	 |	|||¬¦  «        }
t          ||¦  «        }t          |
|¦  «          |	|||d¬	¦  «        }
 |d¦  «        |t          |¦  «        t          |¦  «        f<   t          ||¦  «        }t          |
|¦  «          |	|||dd¬
¦  «        }
t          |j        |¦  «        }t          |
|¦  «          |	|||dd¬
¦  «        }
t          |                     ¦   «         j        |¦  «        }t          |
|¦  «         �ŒÄd S )Nrê   r†   r"   r¦   )Útpsvr,   r'  rH   r(  r)  )r   rò   ró   r   rô   r   r   r   r   r   r   r   rÌ   rÈ   r*  s               r6   Ú	test_tpsvzTestFBLAS2Simple.test_tpsvÆ  sÚ  € ÝˆT‰
Œ
ˆ
Ý#¥FÑ+Ô+ð 	.ñ 	.‰JˆC�ØˆAÝ�Q‘”—’˜uÑ%Ô%ˆAà$'¨!¢G G••T˜!˜Q‘Z”ZÑ Ô Ð µµd¸1¸a±j´jÅÀaÈÁÄÈBÁÑ6NÑ1OÔ1OˆAØ•�Q‘”‰KˆAå ‘?”?‰DˆAˆqØ�1�a�4”ˆBÝ" 9°EÐ:Ñ:Ô:‰EˆDà�˜˜b AÐ&Ñ&Ô&ˆBÝ�q˜!‘”ˆBÝ% b¨"Ñ-Ô-Ð-à�˜˜b A¨AÐ.Ñ.Ô.ˆBØ&+ e¨A¡h¤hˆA�f�Q‰iŒi� ™œÐ"Ñ#Ý�q˜!‘”ˆBÝ% b¨"Ñ-Ô-Ð-à�˜˜b A¨A°QÐ7Ñ7Ô7ˆBÝ�q”s˜A‘”ˆBÝ% b¨"Ñ-Ô-Ð-à�˜˜b A¨A°QÐ7Ñ7Ô7ˆBÝ�q—v’v‘x”x”z 1Ñ%Ô%ˆBÝ% b¨"Ñ-Ô-Ð-Ñ-ð5	.ð 	.r8   c                 ó¾  — t          d¦  «         t          t          ¦  «        D �]·\  }}d}t          ||¦  «        t	          |¦  «        z                        |¦  «        }t          d¦  «                             |¦  «        }t          d|¬¦  «        \  } |||¬¦  «        }t          |¦  «                             |¦  «        }t          ||¦  «          |||d¬¦  «        } |d¦  «        |t          |¦  «        t          |¦  «        f<   t          |¦  «                             |¦  «        }t          ||¦  «          |||dd¬¦  «        }t          |¦  «        j                             |¦  «        }t          ||¦  «          |||dd	¬¦  «        }t          |¦  «                             ¦   «         j                             |¦  «        }t          ||¦  «         �Œ¹d S )
Nrê   rI   )Útrmvr,   ©rM   r�   rH   ©rM   r�   r   ©rM   r�   r   rñ   r"   )r   rò   ró   r   r   rô   r   r   r;   r   r   rÌ   rÈ   ©	rU   rõ   r$   rº   rö   r�   rø   r�   rù   s	            r6   Ú	test_trmvzTestFBLAS2Simple.test_trmvä  s¬  € ÝˆT‰
Œ
ˆ
Ý#¥FÑ+Ô+ð 	.ñ 	.‰JˆC�ØˆAÝ�a˜‘”�C ™FœFÑ"×*Ò*¨5Ñ1Ô1ˆAÝ�Q‘”—’˜uÑ%Ô%ˆAÝ" 9°EÐ:Ñ:Ô:‰EˆDà�˜˜Q�‘”ˆBÝ�a‘”—’˜Q‘”ˆBÝ% b¨"Ñ-Ô-Ð-à�˜˜Q QÐ'Ñ'Ô'ˆBØ&+ e¨A¡h¤hˆA�f�Q‰iŒi� ™œÐ"Ñ#Ý�a‘”—’˜Q‘”ˆBÝ% b¨"Ñ-Ô-Ð-à�˜˜Q Q¨aÐ0Ñ0Ô0ˆBÝ�a‘””—’˜qÑ!Ô!ˆBÝ% b¨"Ñ-Ô-Ð-à�˜˜Q Q¨aÐ0Ñ0Ô0ˆBÝ�a‘”—’‘”Ô!×%Ò% aÑ(Ô(ˆBÝ% b¨"Ñ-Ô-Ð-Ñ-ð+	.ð 	.r8   c                 ó  — t          d¦  «         t          t          ¦  «        D �]Þ\  }}d}t          ||¦  «        t	          |¦  «        z                        |¦  «        }t          |¦  «                             |¦  «        }t          d|¬¦  «        \  } |||¬¦  «        }t          t          |¦  «        |¦  «        }t          ||¦  «          |||d¬¦  «        }t          t          |¦  «        |¦  «        }t          ||¦  «          |||d¬¦  «        } |d¦  «        |t          |¦  «        t          |¦  «        f<   t          t          |¦  «        |¦  «        }t          ||¦  «          |||dd¬	¦  «        }t          t          |¦  «        j        |¦  «        }t          ||¦  «          |||dd
¬	¦  «        }t          t          |¦  «                             ¦   «         j        |¦  «        }t          ||¦  «         �Œàd S )Nrê   é   )Útrsvr,   r1  rH   )rM   r�   r·   r2  r3  r"   )r   rò   ró   r   r   rô   r   r   r   r   r   r   rÌ   rÈ   r4  s	            r6   Ú	test_trsvzTestFBLAS2Simple.test_trsvý  sá  € ÝˆT‰
Œ
ˆ
Ý#¥FÑ+Ô+ð 	.ñ 	.‰JˆC�ØˆAÝ�a˜‘”�C ™FœFÑ"×*Ò*¨5Ñ1Ô1ˆAÝ�Q‘”—’˜uÑ%Ô%ˆAÝ" 9°EÐ:Ñ:Ô:‰EˆDà�˜˜Q�‘”ˆBÝ•t˜A‘w”w Ñ"Ô"ˆBÝ% b¨"Ñ-Ô-Ð-à�˜˜Q aÐ(Ñ(Ô(ˆBÝ•t˜A‘w”w Ñ"Ô"ˆBÝ% b¨"Ñ-Ô-Ð-à�˜˜Q QÐ'Ñ'Ô'ˆBØ&+ e¨A¡h¤hˆA�f�Q‰iŒi� ™œÐ"Ñ#Ý•t˜A‘w”w Ñ"Ô"ˆBÝ% b¨"Ñ-Ô-Ð-à�˜˜Q Q¨aÐ0Ñ0Ô0ˆBÝ•t˜A‘w”w”y !Ñ$Ô$ˆBÝ% b¨"Ñ-Ô-Ð-à�˜˜Q Q¨aÐ0Ñ0Ô0ˆBÝ•t˜A‘w”w—|’|‘~”~Ô'¨Ñ+Ô+ˆBÝ% b¨"Ñ-Ô-Ð-Ñ-ð3	.ð 	.r8   N)rY   rZ   r[   r    r©   r×   rã   rè   rú   r  r  r  r  r!  r$  r+  r.  r5  r9  r\   r8   r6   r˜   r˜   ×   s  € € € € € ð1ð 1ð 1ðHð Hð Hð@^Nð ^Nð ^Nð@+8ð +8ð +8ðZ08ð 08ð 08ðd .ð  .ð  .ðD.ð .ð .ð:1ð 1ð 1ð@/ð /ð /ð6/ð /ð /ð8$.ð $.ð $.ðL$.ð $.ð $.ðL.ð .ð .ð:.ð .ð .ð<.ð .ð .ð2.ð .ð .ð .ð .r8   r˜   c                   ó   — e Zd Zd„ ZdS )ÚTestFBLAS3Simplec           
      óŠ  — dD ]^}t          t          |dz   d ¦  «        }|€Œt           |ddgdg¦  «        dgg¦  «         t           |ddgdgddg¦  «        dg¦  «         Œ_dD ]^}t          t          |dz   d ¦  «        }|€Œt           |d	d
gdg¦  «        dgg¦  «         t           |d	d
gdgddg¦  «        dg¦  «         Œ_d S )NrF   r+   rI   rk   r›   rK   rœ   rQ   rp   rq   r�   rž   rŸ   r`   rT   s      r6   Ú	test_gemmzTestFBLAS3Simple.test_gemm  s  € Øð 	Fð 	FˆAÝ�˜q ™x¨Ñ.Ô.ˆAØˆyØÝ% a a¨¨A¨3°°¡o¤o¸¸°wÑ?Ô?Ð?Ý% a a¨¨A¨3°°°a¸!¸Ñ&=Ô&=À¸uÑEÔEÐEÐEØð 	Oð 	OˆAÝ�˜q ™x¨Ñ.Ô.ˆAØˆyØÝ% a a¨¨T¨F°R°DÑ&9Ô&9¸W¸I¸;ÑGÔGÐGÝ% a a¨¨T¨F°R°D¸!¸b¸TÑ&BÔ&BÀWÀIÑNÔNÐNÐNð	Oð 	Or8   N)rY   rZ   r[   r=  r\   r8   r6   r;  r;    s(   € € € € € ðOð Oð Oð Oð Or8   r;  Úsdzcc              #   óT   K  — |D ]"}t          t          || z   d¦  «        }|€Œ|V — Œ#dS )z;Just a helper: return a specified BLAS function w/typecode.N)rS   ra   )rø   ÚpsrV   r>   s       r6   Ú	_get_funcrA  ,  sG   è è € àð ð ˆÝ•E˜1˜T™6 4Ñ(Ô(ˆØˆ9ØØˆˆˆˆð	ð r8   c                   ó&   — e Zd Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestBLAS3Symmc                 óò   — t          j        ddgddgg¦  «        | _        t          j        g d¢g d¢g¦  «        | _        t          j        d¦  «        | _        t          j        g d¢g d¢g¦  «        | _        d S )	Nr³   r¿   ç        )r³   rE  ç      @)rE  ç      ð¿r¿   )r"   rI   )r¿   rG  g       @)rF  rE  g      "@)r.   ÚarrayrM   rÖ   r   r-   Út©rU   s    r6   Úsetup_methodzTestBLAS3Symm.setup_method7  s„   € Ý”˜B ˜8Ø ˜8ð%ñ &ô &ˆŒå”˜<˜<˜<Ø(˜=˜=ð*ñ +ô +ˆŒå”˜‘”ˆŒÝ”˜=˜=˜=Ø'˜<˜<ð)ñ *ô *ˆŒˆˆr8   c           	      óŽ  — t          d¦  «        D ]´} || j        | j        | j        dd¬¦  «        }t	          || j        ¦  «          || j        j        | j        d| j        dd¬¦  «        }t	          || j        ¦  «          || j        | j        j        d| j        j        dd¬¦  «        }t	          || j        j        ¦  «         Œµd S )NÚsymmr³   ©rM   rÖ   r-   rï   rð   rH   ©rM   rÖ   r·   r-   rï   rð   )rM   rÖ   Úsider-   rï   rð   )rA  rM   rÖ   r-   r   rI  rÌ   ©rU   r>   Úress      r6   Ú	test_symmzTestBLAS3Symm.test_symm@  sÏ   € Ý˜6Ñ"Ô"ð 		5ð 		5ˆAØ�!�d”f ¤¨$¬&¸ÀÐDÑDÔDˆCÝ% c¨4¬6Ñ2Ô2Ð2à�!�d”f”h $¤&°°T´VÀ2ÈBÐOÑOÔOˆCÝ% c¨4¬6Ñ2Ô2Ð2à�!�d”f ¤¤¨q°D´F´HØ 2ð'ñ 'ô 'ˆCå% c¨4¬6¬8Ñ4Ô4Ð4Ð4ð		5ð 		5r8   c           	      ó~   — t          t          dd ¦  «        }|�$t          t          |fi | j        | j        dddœ¤Ž d S d S )NÚdsymmrH   )rM   rÖ   rï   rP  )rS   ra   rÍ   rÎ   rM   rÖ   ©rU   r>   s     r6   Útest_summ_wrong_sidez"TestBLAS3Symm.test_summ_wrong_sideL  si   € Ý•E˜7 DÑ)Ô)ˆØˆ=Ý�) Qð Cð C°´¸T¼VØ45¸qð+Bð +Bð Cð Cð Cð Cð Cð ˆ=r8   c                 ó(  — t          t          dd¦  «        }|�w || j        | j        | j        dd¬¦  «        }t          j        || j        ¦  «        sJ ‚ || j        | j        d| j        dd¬¦  «        }t          j        || j        ¦  «        rJ ‚dS dS )z°SYMM 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.
        rU  Nr³   rN  rH   rO  )rS   ra   rM   rÖ   r-   r.   ÚallcloserI  rQ  s      r6   Útest_symm_wrong_uploz"TestBLAS3Symm.test_symm_wrong_uploT  sŸ   € õ
 •E˜7 DÑ)Ô)ˆØˆ=Ø�!�d”f ¤¨$¬&¸ÀÐDÑDÔDˆCÝ”;˜s D¤FÑ+Ô+Ð+Ð+Ð+à�!�d”f ¤¨a°4´6ÀÈ"ÐMÑMÔMˆCÝ”{ 3¨¬Ñ/Ô/Ð/Ð/Ð/ð ˆ=ð
 0Ð/r8   N)rY   rZ   r[   rK  rS  rW  rZ  r\   r8   r6   rC  rC  5  sS   € € € € € ð*ð *ð *ð
5ð 
5ð 
5ðCð Cð Cð0ð 0ð 0ð 0ð 0r8   rC  c                   ó    — e Zd Zd„ Zd„ Zd„ ZdS )ÚTestBLAS3Syrkc                 óÌ   — t          j        ddgddgddgg¦  «        | _        t          j        g d¢g d¢g d¢g¦  «        | _        t          j        d	d
gd
dgg¦  «        | _        d S )Nr³   rE  ç       Àr¿   rF  )r³   rE  r¿   )rE  ç      @ç      À)r¿   r`  ç      *@ç      @ç      @ra  )r.   rH  rM   rI  ÚttrJ  s    r6   rK  zTestBLAS3Syrk.setup_methodc  s‡   € Ý”˜B ˜8Ø ˜9Ø ˜8ð%ñ &ô &ˆŒõ ”˜<˜<˜<Ø(˜=˜=Ø)˜>˜>ð+ñ ,ô ,ˆŒõ ”(˜R ˜HØ ˜Ið'ñ (ô (ˆŒˆˆr8   c                 óÐ  — t          d¦  «        D �]T} || j        d¬¦  «        }t          t          j        |¦  «        t          j        | j        ¦  «        ¦  «          || j        dd¬¦  «        }t          t          j        |¦  «        t          j        | j        ¦  «        ¦  «         t          j        | j        j        ¦  «        } || j        dd|¬¦  «        }t          t          j        |¦  «        t          j        | j        |z   ¦  «        ¦  «          || j        dd¬¦  «        }t          t          j        |¦  «        t          j        | j	        ¦  «        ¦  «         �ŒVd S )NÚsyrkr³   ©rM   rï   rH   )rM   rï   r·   )rM   rï   rð   r-   )rM   rï   rñ   )
rA  rM   r   r.   r   rI  r   r   Úshaperd  ©rU   r>   r-   Úc0s       r6   Ú	test_syrkzTestBLAS3Syrk.test_syrkm  s-  € Ý˜6Ñ"Ô"ð 	Dñ 	DˆAØ��D”F "Ð%Ñ%Ô%ˆAÝ%¥b¤g¨a¡j¤jµ"´'¸$¼&±/´/ÑBÔBÐBà��D”F "¨AÐ.Ñ.Ô.ˆAÝ%¥b¤g¨a¡j¤jµ"´'¸$¼&±/´/ÑBÔBÐBå”˜œœÑ&Ô&ˆBØ��D”F "¨2°Ð4Ñ4Ô4ˆAÝ%¥b¤g¨a¡j¤jµ"´'¸$¼&À¹)Ñ2DÔ2DÑEÔEÐEà��D”F "¨AÐ.Ñ.Ô.ˆAÝ%¥b¤g¨a¡j¤jµ"´'¸$¼'Ñ2BÔ2BÑCÔCÐCÑCð	Dð 	Dr8   c           	      ó–   — t          t          dd ¦  «        }|�0t          t          |fi | j        dt          j        d¦  «        dœ¤Ž d S d S )NÚdsyrkr³   )rK   re   )rM   rï   r-   )rS   ra   rÍ   rÎ   rM   r.   r   rV  s     r6   Útest_syrk_wrong_czTestBLAS3Syrk.test_syrk_wrong_c  sm   € Ý•E˜7 DÑ)Ô)ˆØˆ=Ý�) Qð Bð B°´ÀÝ02´¸±´ð+Að +Að Bð Bð Bð Bð Bð ˆ=r8   N)rY   rZ   r[   rK  rk  rn  r\   r8   r6   r\  r\  b  sI   € € € € € ð(ð (ð (ðDð Dð Dð$Bð Bð Bð Bð Br8   r\  c                   ó    — e Zd Zd„ Zd„ Zd„ ZdS )ÚTestBLAS3Syr2kc                 ó  — t          j        ddgddgddgg¦  «        | _        t          j        ddgddgddgg¦  «        | _        t          j        g d¢g d¢g d	¢g¦  «        | _        t          j        ddgdd
gg¦  «        | _        d S )Nr³   rE  r^  r¿   rF  r   )rE  rG  rF  )rG  rE  rE  )rF  rE  rc  r…   )r.   rH  rM   rÖ   rI  rd  rJ  s    r6   rK  zTestBLAS3Syr2k.setup_methodˆ  sµ   € Ý”˜B ˜8Ø ˜9Ø ˜8ð%ñ &ô &ˆŒõ ”˜B ˜8Ø ˜8Ø˜r˜7ð$ñ %ô %ˆŒõ ”˜=˜=˜=Ø(˜=˜=Ø'˜<˜<ð)ñ *ô *ˆŒõ ”(˜R ˜HØ ˜Gð%ñ &ô &ˆŒˆˆr8   c                 ó   — t          d¦  «        D �]l} || j        | j        d¬¦  «        }t          t	          j        |¦  «        t	          j        | j        ¦  «        ¦  «          || j        | j        dd¬¦  «        }t          t	          j        |¦  «        t	          j        | j        ¦  «        ¦  «         t	          j        | j        j	        ¦  «        } || j        | j        dd|¬¦  «        }t          t	          j        |¦  «        t	          j        | j        |z   ¦  «        ¦  «          || j        | j        dd¬¦  «        }t          t	          j        |¦  «        t	          j        | j
        ¦  «        ¦  «         �Œnd S )NÚsyr2kr³   ©rM   rÖ   rï   rH   )rM   rÖ   rï   r·   )rM   rÖ   rï   rð   r-   )rM   rÖ   rï   rñ   )rA  rM   rÖ   r   r.   r   rI  r   r   rh  rd  ri  s       r6   Ú
test_syr2kzTestBLAS3Syr2k.test_syr2k•  s=  € Ý˜7Ñ#Ô#ð 	Dñ 	DˆAØ��D”F˜dœf¨BÐ/Ñ/Ô/ˆAÝ%¥b¤g¨a¡j¤jµ"´'¸$¼&±/´/ÑBÔBÐBà��D”F˜dœf¨B°aÐ8Ñ8Ô8ˆAÝ%¥b¤g¨a¡j¤jµ"´'¸$¼&±/´/ÑBÔBÐBå”˜œœÑ&Ô&ˆBØ��D”F˜dœf¨B°R¸2Ð>Ñ>Ô>ˆAÝ%¥b¤g¨a¡j¤jµ"´'¸$¼&À¹)Ñ2DÔ2DÑEÔEÐEà��D”F˜dœf¨B°aÐ8Ñ8Ô8ˆAÝ%¥b¤g¨a¡j¤jµ"´'¸$¼'Ñ2BÔ2BÑCÔCÐCÑCð	Dð 	Dr8   c           
      ó¢   — t          t          dd ¦  «        }|�6t          t          |fi | j        | j        dt          j        d¦  «        dœ¤Ž d S d S )NÚdsyr2kr³   )r7  re   )rM   rÖ   rï   r-   )rS   ra   rÍ   rÎ   rM   rÖ   r.   r   rV  s     r6   Útest_syr2k_wrong_cz!TestBLAS3Syr2k.test_syr2k_wrong_c¥  su   € Ý•E˜8 TÑ*Ô*ˆØˆ=Ý�) Qð Dð D°´Ø04´Ø46Ý02´¸Ñ0AÔ0Að+Cð +Cð Dð Dð Dð Dð Dð ˆ=r8   N)rY   rZ   r[   rK  ru  rx  r\   r8   r6   rp  rp  ‡  sI   € € € € € ð&ð &ð &ðDð Dð Dð Dð Dð Dð Dð Dr8   rp  c                   ó<   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	S )
ÚTestSyHez2Quick and simple tests for (zc)-symm, syrk, syr2k.c                 óD   — t          j        ddgddgg¦  «        | _        d S )NrE  y       €      ð¿r¦   )r.   rH  Úsigma_yrJ  s    r6   rK  zTestSyHe.setup_method²  s+   € Ý”x " d Ø"% r ð!,ñ -ô -ˆŒˆˆr8   c                 óÈ   — t          dd¦  «        D ]P} || j        | j        d¬¦  «        }t          t          j        |¦  «        t          j        ddg¦  «        ¦  «         ŒQd S )NrM  Úzcr³   rt  rH   rJ   ©rA  r|  r   r.   r   r   rQ  s      r6   Útest_symm_zczTestSyHe.test_symm_zc¶  sl   € Ý˜6 4Ñ(Ô(ð 	Fð 	FˆAà�!�d”l d¤l¸"Ð=Ñ=Ô=ˆCÝ%¥b¤g¨c¡l¤lµB´G¸QÀ¸GÑ4DÔ4DÑEÔEÐEÐEð	Fð 	Fr8   c                 óÈ   — t          dd¦  «        D ]P} || j        | j        d¬¦  «        }t          t          j        |¦  «        t          j        ddg¦  «        ¦  «         ŒQd S )NÚhemmr~  r³   rt  rH   r  rQ  s      r6   Útest_hemm_zczTestSyHe.test_hemm_zc¼  sj   € Ý˜6 4Ñ(Ô(ð 	Eð 	EˆAà�!�d”l d¤l¸"Ð=Ñ=Ô=ˆCÝ%¥b¤g¨c¡l¤lµB´G¸QÀ¸F±O´OÑDÔDÐDÐDð	Eð 	Er8   c                 ó¼   — t          dd¦  «        D ]J} || j        d¬¦  «        }t          t          j        |¦  «        t          j        ddg¦  «        ¦  «         ŒKd S )Nrf  r~  r³   rg  rJ   r  rQ  s      r6   Útest_syrk_zrzTestSyHe.test_syrk_zrÂ  sh   € Ý˜6 4Ñ(Ô(ð 	Gð 	GˆAØ�!�d”l¨"Ð-Ñ-Ô-ˆCÝ%¥b¤g¨c¡l¤lµB´G¸RÀ¸HÑ4EÔ4EÑFÔFÐFÐFð	Gð 	Gr8   c                 ó¼   — t          dd¦  «        D ]J} || j        d¬¦  «        }t          t          j        |¦  «        t          j        ddg¦  «        ¦  «         ŒKd S )NÚherkr~  r³   rg  rH   r  rQ  s      r6   Útest_herk_zrzTestSyHe.test_herk_zrÇ  sf   € Ý˜6 4Ñ(Ô(ð 	Eð 	EˆAØ�!�d”l¨"Ð-Ñ-Ô-ˆCÝ%¥b¤g¨c¡l¤lµB´G¸QÀ¸F±O´OÑDÔDÐDÐDð	Eð 	Er8   c           	      óÎ   — t          dd¦  «        D ]S} || j        | j        d¬¦  «        }t          t          j        |¦  «        dt          j        ddg¦  «        z  ¦  «         ŒTd S )Nrs  r~  r³   rt  r¿   rJ   r  rQ  s      r6   Útest_syr2k_zrzTestSyHe.test_syr2k_zrÌ  sq   € Ý˜7 DÑ)Ô)ð 	Jð 	JˆAØ�!�d”l d¤l¸"Ð=Ñ=Ô=ˆCÝ%¥b¤g¨c¡l¤l°Bµr´wÀÀB¸xÑ7HÔ7HÑ4HÑIÔIÐIÐIð	Jð 	Jr8   c           	      óÎ   — t          dd¦  «        D ]S} || j        | j        d¬¦  «        }t          t          j        |¦  «        dt          j        ddg¦  «        z  ¦  «         ŒTd S )NÚher2kr~  r³   rt  r¿   rH   r  rQ  s      r6   Útest_her2k_zrzTestSyHe.test_her2k_zrÑ  so   € Ý˜7 DÑ)Ô)ð 	Hð 	HˆAØ�!�d”l d¤l¸"Ð=Ñ=Ô=ˆCÝ%¥b¤g¨c¡l¤l°Bµr´wÀÀ1¸v±´Ñ4FÑGÔGÐGÐGð	Hð 	Hr8   N)rY   rZ   r[   Ú__doc__rK  r€  rƒ  r…  rˆ  rŠ  r�  r\   r8   r6   rz  rz  ¯  s—   € € € € € Ø<Ð<ð-ð -ð -ðFð Fð FðEð Eð EðGð Gð Gð
Eð Eð Eð
Jð Jð Jð
Hð Hð Hð Hð Hr8   rz  c                   ór   — e Zd ZdZd„ Zej                             de¦  «        d„ ¦   «         Z	d„ Z
d„ Zd„ ZdS )	ÚTestTRMMz!Quick and simple tests for dtrmm.c                 ó$  — t          j        ddgddgg¦  «        | _        t          j        g d¢g d¢g¦  «        | _        t          j        g d¢g d¢g d¢g d	¢gd
¬¦  «        | _        t          j        ddgddgddgddgddggd
¬¦  «        | _        d S )Nr³   r¿   r^  ©rF  r_  rG  ©rb  rc  r^  )rH   rH   r"   rI   )r   rH   rd   rK   )r   r   rH   r…   )r   r   r   rH   r>   )r%   rH   rd   r"   rK   rI   r…   rN   re   rO   r†   )r.   rH  rM   rÖ   Úa2Úb2rJ  s    r6   rK  zTestTRMM.setup_methodÚ  sÍ   € Ý”˜B ˜:Ø ˜9ð&ñ 'ô 'ˆŒå”˜=˜=˜=Ø(˜=˜=ð*ñ +ô +ˆŒõ ”(˜L˜L˜LØ(˜L˜LØ(˜L˜LØ(˜L˜Lð*ð 25ð6ñ 6ô 6ˆŒõ ”(˜Q ˜F Q¨ F¨Q°¨F°Q¸°F¸QÀ¸GÐDØ!$ð&ñ &ô &ˆŒˆˆr8   Údtype_c           	      óš  — t          d|¬¦  «        }t          t          |d| j        | j        ¦  «          |d| j                             |¦  «        | j                             |¦  «        d¬¦  «        }| j        j        d         }t          || j        | j        d |…d |…f         z  ddt          j	        |¦  «        j
        z  ¬¦  «         d S )	NÚtrmmr,   r³   rH   )rP  rE  éd   )rµ   Úatol)r   rÍ   rÎ   r”  r•  rô   rh  r   r.   ÚfinfoÚeps)rU   r–  r˜  rR  rÿ   s        r6   Ú	test_sidezTestTRMM.test_sideç  sÌ   € å˜f¨FÐ3Ñ3Ô3ˆå•i  s¨D¬G°T´WÑ=Ô=Ð=Øˆd�3˜œŸš vÑ.Ô.°´·²¸vÑ0FÔ0FØðñ ô ˆàŒGŒM˜!ÔˆÝ˜˜TœW t¤w¨r°¨r°2°A°2¨v¤Ñ6¸RØ ¥¤¨&Ñ!1Ô!1Ô!5Ñ5ð	7ñ 	7ô 	7ð 	7ð 	7ð 	7r8   c                 ó¼   — t          t          dd ¦  «        }|�C |d| j        | j        ¦  «        }t	          j        g d¢g d¢g¦  «        }t          ||¦  «         d S d S )NÚdtrmmr³   )ra  g      0@g      Àr“  ©rS   ra   rM   rÖ   r.   rH  r   ©rU   r>   ÚresultÚexpecteds       r6   Útest_abzTestTRMM.test_abò  so   € Ý•E˜7 DÑ)Ô)ˆØˆ=Ø�Q�r˜4œ6 4¤6Ñ*Ô*ˆFå”x   Ø!.  ð!0ñ 1ô 1ˆHå% f¨hÑ7Ô7Ð7Ð7Ð7ð ˆ=r8   c                 óÀ   — t          t          dd ¦  «        }|�E |d| j        | j        d¬¦  «        }t	          j        g d¢g d¢g¦  «        }t          ||¦  «         d S d S )NrŸ  r³   Tr¶   r’  )rG  r^  rE  r   r¡  s       r6   Útest_ab_lowerzTestTRMM.test_ab_lowerû  st   € Ý•E˜7 DÑ)Ô)ˆØˆ=Ø�Q�r˜4œ6 4¤6°Ð6Ñ6Ô6ˆFÝ”x   Ø!/  ð!1ñ 2ô 2ˆHå% f¨hÑ7Ô7Ð7Ð7Ð7ð	 ˆ=r8   c                 ó.  — t          t          dd ¦  «        }|�üdD ]v}| j                             ¦   «         } |d| j        ||¬¦  «        }t          |j        j        du ot          j	        ||¦  «        du ¦  «         t          || j        ¦  «         Œwt          j        | j                             ¦   «         ¦  «        } |d| j        |d¬¦  «        }t          |j        j        du ot          j	        ||¦  «        du ¦  «         t          ||¦  «         d S d S )NrŸ  )TFr³   )Úoverwrite_bFT)rS   ra   rÖ   rc   rM   r   ÚflagsÚf_contiguousr.   Úmay_share_memoryr   Úasfortranarrayr   )rU   r>   ÚoverwrÚbcopyr¢  s        r6   Útest_b_overwriteszTestTRMM.test_b_overwrites  s/  € õ •E˜7 DÑ)Ô)ˆØˆ=Ø'ð ,ð ,�ØœŸš™œ�Ø˜˜2˜tœv u¸&ÐAÑAÔA�å˜œÔ0°EÐ9ð DÝÔ+¨E°6Ñ:Ô:¸eÐCñEô Eð Eå˜U D¤FÑ+Ô+Ð+Ð+åÔ% d¤f§k¢k¡m¤mÑ4Ô4ˆEØ�Q�r˜4œ6 5°dÐ;Ñ;Ô;ˆFÝ�E”KÔ,°Ð4ð ?ÝÔ'¨¨vÑ6Ô6¸$Ð>ñ@ô @ð @å% e¨VÑ4Ô4Ð4Ð4Ð4ð ˆ=r8   N)rY   rZ   r[   rŽ  rK  ÚpytestÚmarkÚparametrizeró   r�  r¤  r¦  r¯  r\   r8   r6   r�  r�  ×  s„   € € € € € Ø+Ð+ð&ð &ð &ð „[×Ò˜X vÑ.Ô.ð7ð 7ñ /Ô.ð7ð8ð 8ð 8ð8ð 8ð 8ð5ð 5ð 5ð 5ð 5r8   r�  c            	      ó  — t          d¦  «         t          t          ¦  «        D �]Û\  } }t          j        |¦  «        j        dz  }t          d|¬¦  «        \  }t          dd¦  «                             |¦  «        }t          dd¦  «                             |¦  «        } |d¦  «        }t          t          ||||¦  «         t          t          |||j        |¦  «         d}d	} |d
¦  «        }| dk     rt          ||¦  «        n#t          ||¦  «        t          ||¦  «        dz  z   t          |¦  «        z   }|                     |¦  «        }t          |¦  «        }	t          |¦  «        }
t          ||¦  «                             |¦  «        }t          ||¦  «                             |¦  «        } ||||¬¦  «        }t          |j        |j        ¦  «         t#          |	||z  ¦  «        }t%          |||¬¦  «          ||||d¬¦  «        }t#          |	j        ||z  ¦  «        }t%          |||¬¦  «          ||||d¬¦  «        }t#          |	                     ¦   «         j        ||z  ¦  «        }t%          |||¬¦  «          ||||d¬¦  «        } |d¦  «        |	t)          |¦  «        t)          |¦  «        f<   t#          |	||z  ¦  «        }t%          |||¬¦  «          ||||dd¬¦  «        }t#          |	                     ¦   «         j        ||                     ¦   «         j        z  ¦  «        }t%          ||                     ¦   «         j        |¬¦  «          ||||ddd¬¦  «        } |d¦  «        |
t)          |¦  «        t)          |¦  «        f<   t#          |
                     ¦   «         j        ||                     ¦   «         j        z  ¦  «        }t%          ||                     ¦   «         j        |¬¦  «         �ŒÝd S )Nrê   iè  )Útrsmr,   rd   rK   rH   re   rN   g      Àr"   r¦   )rï   rM   rÖ   )rš  )rï   rM   rÖ   Útrans_a)rï   rM   rÖ   r   )rï   rM   rÖ   r   rP  )rï   rM   rÖ   r   rP  r·   )r   rò   ró   r.   r›  rœ  r   r   rô   rÍ   rÎ   rÌ   r   r   r   r   rh  r   r   rÈ   r   )rõ   r$   Útolrø   rö   ÚBrï   rº   rì   ÚAuÚAlÚB1ÚB2r�   Úx2s                  r6   Ú	test_trsmr½    s©  € Ýˆ�J„J€JÝ¥Ñ'Ô'ð .3ñ .3‰
ˆˆUÝŒh�u‰oŒoÔ! $Ñ&ˆÝ˜y°Ð6Ñ6Ô6‰ˆõ ��A‰JŒJ×Ò˜eÑ$Ô$ˆÝ��A‰JŒJ×Ò˜eÑ$Ô$ˆØ��a‘”ˆÝ•i  u¨a°Ñ3Ô3Ð3Ý•i  u¨a¬c°1Ñ5Ô5Ð5àˆØˆØ��d‘”ˆØ š7˜7�T�!�Q‰ZŒZˆZ­¨Q°©
¬
µT¸!¸Q±Z´ZÀ±]Ñ(BÅcÈ!ÁfÄfÑLˆØ�HŠH�U‰OŒOˆÝ�!‰WŒWˆÝ�!‰WŒWˆÝ�!�Q‰ZŒZ×Ò˜uÑ%Ô%ˆÝ�!�Q‰ZŒZ×Ò˜uÑ%Ô%ˆàˆT˜  bÐ)Ñ)Ô)ˆÝ�R”X˜rœxÑ(Ô(Ð(Ý�2�u˜R‘xÑ Ô ˆÝ˜˜B SÐ)Ñ)Ô)Ð)àˆT˜  b°!Ð4Ñ4Ô4ˆÝ�2”4˜˜r™Ñ"Ô"ˆÝ˜˜B SÐ)Ñ)Ô)Ð)àˆT˜  b°!Ð4Ñ4Ô4ˆÝ�2—7’7‘9”9”;  b¡Ñ)Ô)ˆÝ˜˜B SÐ)Ñ)Ô)Ð)àˆT˜  b¨qÐ1Ñ1Ô1ˆØ#( 5¨¡8¤8ˆ�6�!‰9Œ9•f˜Q‘i”iÐÑ Ý�2�u˜R‘xÑ Ô ˆÝ˜˜B SÐ)Ñ)Ô)Ð)àˆT˜  b¨q°qÐ9Ñ9Ô9ˆÝ�2—7’7‘9”9”;  b§g¢g¡i¤i¤kÑ 1Ñ2Ô2ˆÝ˜˜BŸGšG™IœIœK¨cÐ2Ñ2Ô2Ð2àˆT˜  b¨q°qÀÐBÑBÔBˆØ#( 5¨¡8¤8ˆ�6�!‰9Œ9•f˜Q‘i”iÐÑ Ý�2—7’7‘9”9”;  b§g¢g¡i¤i¤kÑ 1Ñ2Ô2ˆÝ˜˜BŸGšG™IœIœK¨cÐ2Ñ2Ô2Ð2Ñ2ð].3ð .3r8   Fzgh-16930)ÚrunÚreasonc                  óÆ   — t          j        dd¦  «        } t          j        j                             | ddd¦  «        }t          j        d¦  «        }t          ||¦  «         d S )Nr†   rO   rK   rI   rJ   iô  )	r.   ÚrepeatÚscipyÚlinalgÚblasÚdnrm2r€   r�   r   )r�   Úactualr£  s      r6   Útest_gh_169309rÇ  J  sV   € õ 	Œ	�"�aÑÔ€AÝŒ\Ô×$Ò$ Q¨¨1¨bÑ1Ô1€FÝŒy˜‰~Œ~€HÝ�F˜HÑ%Ô%Ð%Ð%Ð%r8   c                  óæ   — t          j        dd¦  «        } d}t          t          j        ¦  «        5  t
          j        j                             | dd|¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr†   rO   rJ   rK   rI   )	r.   rÁ  rÍ   ra   Ú__fblas_errorrÂ  rÃ  rÄ  rÅ  )r�   r¸   s     r6   Útest_dnrm2_neg_incxrÊ  S  s®   € õ 	Œ	�"�aÑÔ€AØ€DÝ	•uÔ*Ñ	+Ô	+ð /ð /ÝŒÔ×Ò  1 a¨Ñ.Ô.Ð.ð/ð /ð /ñ /ô /ð /ð /ð /ð /ð /ð /ð /øøøð /ð /ð /ð /ð /ð /s   ±(A&Á&A*Á-A*)r>  )<r€   r°  Únumpyr.   Únumpy.testingr   r   r   r   r   r   rÍ   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   Únumpy.randomr   r   rÂ  Úscipy.linalgr   ra   r   r   r   r   r(   ÚImportErrorÚREAL_DTYPESr  ró   r7   rA   rC   r^   r˜   r;  rA  rC  r\  rp  rz  r�  r½  r±  ÚxfailrÇ  rÊ  r\   r8   r6   ú<module>rÒ     s  ðð
 €€€Ø €€€Ø Ð Ð Ð ðGð Gð Gð Gð Gð Gð Gð Gð Gð Gð Gð Gð Gð Gà *Ð *Ð *Ð *Ð *Ð *ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð $Ð #Ð #Ð #Ð #Ð #Ð #Ð #Ø €€€Ø IÐ IÐ IÐ IÐ IÐ IÐ IÐ IÐ IÐ IÐ IÐ IðØ,Ð,Ð,Ð,Ð,Ð,Ð,øØð ð ð Ø€E€E€Eðøøøð ˜Ð €Ø˜ZÐ(€Ø	�~Ñ	%€ð$#ð $#ð $#ðNð ð ð6ð 6ð 6ð 6ð 6ñ 6ô 6ð 6ð"r.ð r.ð r.ð r.ð r.ñ r.ô r.ð r.ðlA	.ð A	.ð A	.ð A	.ð A	.ñ A	.ô A	.ð A	.ðHOð Oð Oð Oð Oñ Oô Oð Oð"ð ð ð ð*0ð *0ð *0ð *0ð *0ñ *0ô *0ð *0ðZ!Bð !Bð !Bð !Bð !Bñ !Bô !Bð !BðJ$Dð $Dð $Dð $Dð $Dñ $Dô $Dð $DðP%Hð %Hð %Hð %Hð %Hñ %Hô %Hð %HðP=5ð =5ð =5ð =5ð =5ñ =5ô =5ð =5ð@03ð 03ð 03ðf „×Ò�uØ$ð ñ &ô &ð&ð &ñ&ô &ð&ð/ð /ð /ð /ð /s   ÁA# Á#A-Á,A-