Ë
    âQ(h£  ã                   ó  — d dl Z 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Zd dlmZm Z m!Z!m"Z" 	 d dlm#Z$ 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«      Z.d"d„Z/ G d„ d«      Z0 G d„ d«      Z1 G d„ d«      Z2 G d„ d«      Z3 G d„ d«      Z4d„ Z5ejl                  jo                  dd¬«      d „ «       Z8d!„ Z9y# e%$ r dZ$Y Œ¤w xY w)#é    N)Úassert_equalÚassert_almost_equalÚassert_Úassert_array_almost_equalÚassert_allclose)Úraises)Úfloat32Úfloat64Ú	complex64Ú
complex128ÚarangeÚtriuÚtrilÚzerosÚtril_indicesÚonesÚmodÚdiagÚappendÚeyeÚnonzero)Ú_fblasÚget_blas_funcsÚtoeplitzÚsolve)Ú_cblasc            	      ó”  — 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«       y )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      úZ/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/scipy/linalg/tests/test_blas.pyÚtest_get_blas_funcsr5      s?  € ô  Ø Ü	�‰�&¤§¡°CÔ	8Ü	�‰�&¤§¡°SÔ	9ð	;ó
�J€BˆˆBô �—‘˜cÔ"Ü�—‘˜cÔ"ÜÐÜ�R—^‘^ WÔ-Ü�R—^‘^ WÔ-ô 
˜Ó	€BÜ�—‘˜cÔ"ô 
˜¤b§l¡lÔ	3€BÜ�—‘˜cÔ"Ü	˜ cÔ	*€BÜ�—‘˜cÔ"ô 
˜¤b§n¡nÔ	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 ‚y )N)Únrm2Údotr*   r+   )r9   ÚdotcÚdotu)r   r,   r   r.   r
   )ÚfÚgÚhs      r4   Útest_get_blas_funcs_aliasr?   E   sg   € ä˜/´·±Ô>�D€A€qØ�:‰:˜ÒÐÐØ�:‰:˜ÒÐÐäÐ4¼B¿J¹JÔG�G€A€qˆ!Ø�‰6€Mˆ6Ø�‰6€M‰6r6   c                   ó   — e Zd Zd„ Zy)ÚTestCBLAS1Simplec                 óè   — dD ]4  }t        t        |dz   d «      }|€Œt         |g d¢g d¢d¬«      g d¢«       Œ6 dD ]4  }t        t        |dz   d «      }|€Œt         |g d	¢g d¢d¬«      g d
¢«       Œ6 y ©NÚsdr   ©é   r    é   )r    éÿÿÿÿrG   é   ©Úa)é   é	   é   Úcz)rF   ù               @rG   )rL   y      ð¿      $@rN   )Úgetattrr&   r   ©ÚselfÚpr<   s      r4   Ú	test_axpyzTestCBLAS1Simple.test_axpyR   ó‚   € Øò 	2ˆAÜœ˜q ™x¨Ó.ˆAØˆyØÜ%¡aª	²:ÀÔ&CÚ&0õ2ð		2ð ò 	6ˆAÜœ˜q ™x¨Ó.ˆAØˆyØÜ%¡aª
²JÀ!Ô&DÚ&4õ6ñ		6r6   N)Ú__name__Ú
__module__Ú__qualname__rU   © r6   r4   rA   rA   P   s   „ ó6r6   rA   c                   óH   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zy)ÚTestFBLAS1Simplec                 óè   — dD ]4  }t        t        |dz   d «      }|€Œt         |g d¢g d¢d¬«      g d¢«       Œ6 dD ]4  }t        t        |dz   d «      }|€Œt         |g d	¢g d¢d¬«      g d
¢«       Œ6 y rC   ©rQ   Úfblasr   rR   s      r4   rU   zTestFBLAS1Simple.test_axpyc   rV   r6   c                 óè   — dD ]4  }t        t        |dz   d «      }|€Œt         |g d¢dgdz  «      g d¢«       Œ6 dD ]4  }t        t        |dz   d «      }|€Œt         |g d¢dgdz  «      g d¢«       Œ6 y )NrD   Úcopy)rG   é   rI   é   rG   rO   )rG   ù              @y      @      @r^   rR   s      r4   Ú	test_copyzTestFBLAS1Simple.test_copyq   sˆ   € Øò 	FˆAÜœ˜q ™x¨Ó.ˆAØˆyØÜ%¡aª	°A°3°q±5Ó&9º9ÕEð		Fð
 ò 	NˆAÜœ˜q ™x¨Ó.ˆAØˆyØÜ%¡aª¸°s¸1±uÓ&=º}ÕMñ		Nr6   c                 óÌ   — dD ]-  }t        t        |dz   d «      }|€Œt         |g d¢«      d«       Œ/ dD ]-  }t        t        |dz   d «      }|€Œt         |g d¢«      d«       Œ/ y )NrD   Úasum©rG   éüÿÿÿrI   é   )ÚscÚdz©ù              @ri   ù      @      Àé   ©rQ   r_   r   rR   s      r4   Ú	test_asumzTestFBLAS1Simple.test_asum}   ss   € Øò 	3ˆAÜœ˜q ™x¨Ó.ˆAØˆyØÜ¡¢*£¨rÕ2ð		3ð
 ò 	7ˆAÜœ˜q ™x¨Ó.ˆAØˆyØÜ¡¢.Ó 1°2Õ6ñ		7r6   c                 ón   — dD ]0  }t        t        |dz   d «      }|€Œt         |g d¢g d¢«      d«       Œ2 y )NrD   r9   rh   )r    rI   rF   é÷ÿÿÿrq   rR   s      r4   Útest_dotzTestFBLAS1Simple.test_dot‰   s<   € Øò 	>ˆAÜœ˜q ™w¨Ó-ˆAØˆyØÜ¡¢*ªiÓ 8¸"Õ=ñ		>r6   c                 ón   — dD ]0  }t        t        |dz   d «      }|€Œt         |g d¢g d¢«      d«       Œ2 y )NrO   r;   rm   ©r    rG   rF   y      "À       @rq   rR   s      r4   Útest_complex_dotuz"TestFBLAS1Simple.test_complex_dotu�   s>   € Øò 	EˆAÜœ˜q ™x¨Ó.ˆAØˆyØÜ¡¢.²)Ó <¸eÕDñ		Er6   c                 ón   — dD ]0  }t        t        |dz   d «      }|€Œt         |g d¢g d¢«      d«       Œ2 y )NrO   r:   rm   ©r    rn   rF   y      @      ,Àrq   rR   s      r4   Útest_complex_dotcz"TestFBLAS1Simple.test_complex_dotc—   s>   € Øò 	FˆAÜœ˜q ™x¨Ó.ˆAØˆyØÜ¡¢.²*Ó =¸uÕEñ		Fr6   c                 ó  — dD ]@  }t        t        |dz   d «      }|€Œt         |g d¢«      t        j                  d«      «       ŒB dD ]@  }t        t        |dz   d «      }|€Œt         |g d¢«      t        j                  d«      «       ŒB y )NrD   r8   rh   é2   )r+   r%   rk   rl   rm   )rQ   r_   r   ÚmathÚsqrtrR   s      r4   Ú	test_nrm2zTestFBLAS1Simple.test_nrm2ž   s…   € Øò 	>ˆAÜœ˜q ™x¨Ó.ˆAØˆyØÜ¡¢*£¬t¯y©y¸«}Õ=ð		>ð
 (ò 	BˆAÜœ˜q ™x¨Ó.ˆAØˆyØÜ¡¢.Ó 1´4·9±9¸R³=ÕAñ		Br6   c                 óB  — dD ]0  }t        t        |dz   d «      }|€Œt         |dg d¢«      g d¢«       Œ2 dD ]0  }t        t        |dz   d «      }|€Œt         |dg d¢«      g d	¢«       Œ2 d
D ]0  }t        t        |dz   d «      }|€Œt         |dg d¢«      g d¢«       Œ2 y )NrD   Úscalr    rh   )é   iøÿÿÿé
   rO   rn   rm   )rt   y       €      (Ày      (@      "@)ÚcsÚzdrG   )y              "@iôÿÿÿy      "@      (Àr^   rR   s      r4   Ú	test_scalzTestFBLAS1Simple.test_scalª   s¼   € Øò 	EˆAÜœ˜q ™x¨Ó.ˆAØˆyØÜ%¡a¨ª:Ó&6ºÕDð		Eð
 ò 	PˆAÜœ˜q ™x¨Ó.ˆAØˆyØÜ%¡a¨ªNÓ&;Ò=NÕOð		Pð
 ò 	NˆAÜœ˜q ™x¨Ó.ˆAØˆyØÜ%¡a¨ª>Ó&:Ò<LÕMñ		Nr6   c                 ó,  — dD ]E  }t        t        |dz   d «      }|€Œg d¢g d¢}} |||«      \  }}t        ||«       t        ||«       ŒG dD ]E  }t        t        |dz   d «      }|€Œg d¢g d¢}} |||«      \  }}t        ||«       t        ||«       ŒG y )NrD   Úswaprw   )éþÿÿÿrG   rL   rO   rz   )rŠ   rG   y      @      Àr^   )rS   rT   r<   ÚxÚyÚx1Úy1s          r4   Ú	test_swapzTestFBLAS1Simple.test_swap»   s®   € Øò 	-ˆAÜœ˜q ™x¨Ó.ˆAØˆyØÚšjˆqˆAÙ�q˜!“W‰FˆB�Ü% b¨!Ô,Ü% b¨!Õ,ð	-ð ò 	-ˆAÜœ˜q ™x¨Ó.ˆAØˆyØÚš}ˆqˆAÙ�q˜!“W‰FˆB�Ü% b¨!Ô,Ü% b¨!Õ,ñ	-r6   c                 óÈ   — dD ],  }t        t        d|z   dz   «      }t         |g d¢«      d«       Œ. dD ],  }t        t        d|z   dz   «      }t         |g d¢«      d«       Œ. y )NrD   ÚiÚamax)rŠ   rb   rG   rF   rO   )éûÿÿÿy      @      @rƒ   )rQ   r_   r   rR   s      r4   Ú	test_amaxzTestFBLAS1Simple.test_amaxÍ   sg   € Øò 	+ˆAÜœ˜s 1™u V™|Ó,ˆAÜ™š:›¨Õ*ð	+ð ò 	.ˆAÜœ˜s 1™u V™|Ó,ˆAÜ™š=Ó)¨1Õ-ñ	.r6   N)rW   rX   rY   rU   re   rr   ru   rx   r{   r€   r‡   r�   r”   rZ   r6   r4   r\   r\   a   s9   „ ò6ò
Nò
7ò>òEòFò
BòNò"-ó$.r6   r\   c                   óž   — e Zd Zd„ Zej
                  j                  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y)ÚTestFBLAS2Simplec           
      óH  — dD ]L  }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«       ŒN dD ]L  }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«       ŒN y )NrD   ÚgemvrG   ri   éÜÿÿÿrI   éëÿÿÿrO   rn   ro   ù      HÀ      BÀù              @ù      HÀ      5Àr^   rR   s      r4   Ú	test_gemvzTestFBLAS2Simple.test_gemvÙ   sÓ   € Øò 	HˆAÜœ˜q ™x¨Ó.ˆAØˆyØÜ%¡a¨¨Q¨C¨5°2°$Ó&7¸#¸Ô?Ü%¡a¨¨Q¨C¨5°2°$¸¸A¸3Ó&?À#ÀÕGð	Hð ò 	1ˆAÜœ˜q ™x¨Ó.ˆAØˆyØÜ%¡a¨¨d¨V¨H°r°dÓ&;¸g¸YÔGÜ%¡a¨¨d¨V¨H°r°d¸AÀ¸tÓ&DØ'. iõ1ñ	1r6   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 ]X  }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«       ŒZ dD ]_  }dD ]X  }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«       ŒZ Œa y )NrD   ÚgerrF   r    rG   rb   rƒ   rc   rE   rj   é   rN   é   rJ   rM   rO   Úgeruù              ð?rn   rd   rŠ   )r¤   rP   rn   )r    Úgercr^   )rS   rT   r<   Únames       r4   Útest_gerzTestFBLAS2Simple.test_gerê   sâ  € ð ò 		PˆAÜœ˜q ™w¨Ó-ˆAØˆyØÜ%¡a¨¨A¨q¨6°A°q°6Ó&:¸aÀ¸VÀaÈÀVÐ<LÔMÜ%¡a¨ª9°q¸!°fÓ&=Ø()¨1 v°°B¨x¸"¸b¸Ð&BôDô &¡a¨¨A¨q¨6°A°q°6Ø,-¨q¨6°A°q°6Ð*:ô'<Ø?@À!¸fÀqÈ"ÀgÐ=NõPð		Pð ò 	DˆAÜœ˜q ™x¨Ó.ˆAØˆyØÜ%¡a¨¨B°¨7°Q¸°FÓ&;Ø(*¨B x°!°Q°Ð&8ô:ä%¡a¨ªL¸2¸r¸(Ó&CØ()¨1 v°°B¨x¸"¸b¸Ð&BõDð	Dð ò 	HˆAØ'ò H�ÜœE 1 T¡6¨4Ó0�Ø�9ØÜ)©!¨A°°A¨w¸¸A¸Ó*?Ø,.°¨8°a¸°VÐ*<ô>ä)©!¨Aª|¸bÀ"¸XÓ*FØ,-¨q¨6°B¸°8¸bÀ"¸XÐ*FõHñHñ	Hr6   c                 óx  — 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¬«      j                  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   |j                  «       z  «      }t        j                  |d d d…t         j                  f   |d d d…   j                  «       z  «      }	t         j                  t        j                  d«      |t        j                  d«      f   j                  «       }
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                  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«      ¬«       �Œ˜ y ))NrF   rI   r(   r*   rH   r   ç      !@é   F©ÚendpointrM   ÚDrb   rD   çH¯¼šò×z>ç›+¡†›„=Úsyrç      ð?©ÚrtolT©Úlowerr    )ÚincxÚoffxÚnrŠ   ©rb   rb   Úsr<   r!   ©rK   Úoverwrite_aç       @rJ   rG   ©r¶   ©r·   ©r¸   r   rO   éýÿÿÿr+   Úher)r,   r   r   ÚnewaxisÚlinspaceÚviewÚconjÚc_r   ÚravelÚziprQ   r_   r   ÚTr   Úassert_raisesÚ	Exception)rS   r‹   ÚresxÚresx_reverserŒ   r%   ÚreszÚresz_reverseÚrehzÚrehz_reverseÚwrT   r³   r<   rK   Úbs                   r4   Útest_syr_herzTestFBLAS2Simple.test_syr_her  sØ  € Ü�I‰I�a˜ #Ô&ˆÜ�w‰w�qšœBŸJ™J˜Ñ'¨!Ñ+Ó,ˆÜ—w‘w˜q¡ 2 ¤r§z¡zÐ!1Ñ2°Q±t¸°t±WÑ<Ó=ˆä�K‰K˜˜3 ¨UÔ3ˆä�I‰I�a˜ #Ô&×+Ñ+¨CÓ0ˆÜ�w‰w�qšœBŸJ™J˜Ñ'¨!Ñ+Ó,ˆÜ—w‘w˜q¡ 2 ¤r§z¡zÐ!1Ñ2°Q±t¸°t±WÑ<Ó=ˆÜ�w‰w�qšœBŸJ™J˜Ñ'¨!¯&©&«(Ñ2Ó3ˆÜ—w‘w˜q¡ 2 ¤r§z¡zÐ!1Ñ2°Q±t¸°t±W·\±\³^ÑCÓDˆä�E‰E”"—(‘(˜1“+˜q¤"§(¡(¨1£+Ð-Ñ.×4Ñ4Ó6ˆä˜4 $¨ Ó/ó 	N‰GˆAˆtÜœ˜q ™w¨Ó-ˆAØˆyØÜ™A˜c 1›I t°$Õ7Ü™A˜c 1¨DÔ1°4·6±6ÀÕEÜ™A˜c 1¨1°1¸Ô:¸DÀtÕLä™A˜c 1¨2°A¸Ô;Ø(¨tõ5ô —‘˜¨¨Sª¡°c¸3Ó?ˆAÙ�#�q˜A¨4Ô0ˆAÜ˜A˜t¨$Õ/á�#�q˜A”ˆAÜ�A˜Q�JÔÜ˜A˜q ™v¨DÕ1äœ) Q¨¨Q°QÕ7Üœ) Q¨¨Q°QÕ7Üœ) Q¨¨Q°RÕ8Üœ) Q¨¨Q°"Õ5Üœ) Q¨¨Q°!Õ4Üœ) Q¨¨Q°aÕ8Üœ) Q¨¨Q´"·(±(¸6À3ÈÓ2L×Mð3	Nô6 ˜4 $¨ Ó/ó 	N‰GˆAˆtÜœ˜q ™w¨Ó-ˆAØˆyØÜ™A˜c 1›I t°$Õ7Ü™A˜c 1¨DÔ1°4·6±6ÀÕEÜ™A˜c 1¨1°1¸Ô:¸DÀtÕLä™A˜c 1¨2°A¸Ô;Ø(¨tõ5ô —‘˜¨¨Sª¡°c¸3Ó?ˆAÙ�#�q˜A¨4Ô0ˆAÜ˜A˜t¨$Õ/á�#�q˜A”ˆAÜ�A˜Q�JÔÜ˜A˜q ™v¨DÕ1äœ) Q¨¨Q°QÕ7Üœ) Q¨¨Q°QÕ7Üœ) Q¨¨Q°RÕ8Üœ) Q¨¨Q°"Õ5Üœ) Q¨¨Q°!Õ4Üœ) Q¨¨Q°aÕ8Üœ) Q¨¨Q´"·(±(¸6À3ÈÓ2L×Mð3	Nô6 ˜4 $¨ Ó/ó 	N‰GˆAˆtÜœ˜q ™w¨Ó-ˆAØˆyØÜ™A˜c 1›I t°$Õ7Ü™A˜c 1¨DÔ1°4·6±6·;±;³=ÀtÕLÜ™A˜c 1¨1°1¸Ô:¸DÀtÕLä™A˜c 1¨2°A¸Ô;Ø(¨tõ5ô —‘˜¨¨Sª¡°c¸3Ó?ˆAÙ�#�q˜A¨4Ô0ˆAÜ˜A˜t¨$Õ/á�#�q˜A”ˆAÜ�A˜Q�JÔÜ˜A˜q ™v¨DÕ1äœ) Q¨¨Q°QÕ7Üœ) Q¨¨Q°QÕ7Üœ) Q¨¨Q°RÕ8Üœ) Q¨¨Q°"Õ5Üœ) Q¨¨Q°!Õ4Üœ) Q¨¨Q°aÕ8Üœ) Q¨¨Q´"·(±(¸6À3ÈÓ2L×Mñ3	Nr6   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«      ¬!«       �Œ y )'NrF   rI   r(   r*   rM   rH   r   r©   rª   Fr«   rD   r®   r¯   Úsyr2r±   r²   rG   rÀ   Tr´   r    r„   ©r¶   r·   ÚincyÚoffy©r¶   r·   rÙ   rÚ   r¸   rŠ   r¹   rº   r<   r!   r»   r½   rJ   r¾   r¿   ©rÙ   ©rÚ   r   )r,   r   r   rÃ   rÄ   rÉ   rQ   r_   r   rÊ   r   r   rË   rÌ   )rS   r‹   rŒ   ÚresxyÚresxy_reverseÚqrT   r³   r<   rK   rÔ   s              r4   Ú	test_syr2zTestFBLAS2Simple.test_syr2k  sø  € Ü�I‰I�a˜ #Ô&ˆÜ�I‰I�a˜ #Ô&ˆÜ—‘˜š!œRŸZ™Z˜-Ñ(¨1Ñ,¨q²´B·J±J°Ñ/?À!Ñ/CÑCÓDˆÜŸ™ ¡$ B $¬¯
©
Ð"2Ñ 3°a¹¸"¸±gÑ =Ø"#¡D b D¬"¯*©*Ð$4Ñ"5¸¹$¸B¸$¹Ñ"?ñ!@ó Aˆô �K‰K˜˜3 ¨UÔ3ˆä˜4 $¨ Ó/ó "	8‰GˆAˆtÜœ˜q ™x¨Ó.ˆAØˆyØÜ™A˜c 1 a›L¨%°dÕ;Ü™A˜c 1 a¨1Ô-¨u°R°a°R¸¸!¸°V©}À4ÕHÜ™A˜c 1 a¨tÔ4°e·g±gÀDÕIä™A˜c 1 a¨a°a¸aÀbÔIØ!¨õ.ä™A˜c 1 a¨a°a¸aÀbÈAÔNØ! " 1 " b q b &™M°õ6ô ™A˜c 1 a¨b°q¸rÈÔKØ)°õ6ô —‘˜¨¨Sª¡°c¸3Ó?ˆAÙ�#�q˜!˜q¨dÔ3ˆAÜ˜A˜u¨4Õ0á�#�q˜!˜qÔ!ˆAÜ�A˜Q�JÔÜ˜A˜q ™w¨TÕ2äœ) Q¨¨Q°¸Õ:Üœ) Q¨¨Q°¸Õ:Üœ) Q¨¨Q°¸Õ;Üœ) Q¨¨Q°¸Õ:Üœ) Q¨¨Q°¸Õ:Üœ) Q¨¨Q°¸Õ;Üœ) Q¨¨Q°°RÕ8Üœ) Q¨¨Q°°QÕ7Üœ) Q¨¨Q°¸Õ;Üœ) Q¨¨Q°ÜŸH™H V¨S°#Ó6÷8ñC"	8r6   c                 óö  — t        j                  ddd¬«      j                  d«      }t        j                  ddd¬«      j                  d«      }|d d …t         j                  f   |j	                  «       z  |d d …t         j                  f   |j	                  «       z  z   }t        j
                  |«      }|d d d…t         j                  f   |d d d…   j	                  «       z  }||d d d…t         j                  f   |d d d…   j	                  «       z  z  }t        j
                  |«      }t         j                  t        j                  d«      |t        j                  d«      f   j                  «       }t         j                  t        j                  d«      |t        j                  d«      f   j                  «       }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                  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«      ¬«       �Œ, y )%NrF   rM   r(   r*   r­   rª   rH   rb   rO   r®   r¯   Úher2r±   r²   rG   rÀ   Tr´   rØ   rÛ   rÁ   r¹   r+   r!   r»   r½   rJ   r   r¾   rI   r¿   rŠ   rÜ   rÝ   r    r   )r,   r   rÅ   rÃ   rÆ   r   rÇ   r   rÈ   rÉ   rQ   r_   r   rÊ   r   rË   rÌ   )rS   r‹   rŒ   rÞ   rß   ÚuÚvrT   r³   r<   rK   rÔ   s               r4   Ú	test_her2zTestFBLAS2Simple.test_her2˜  s~  € Ü�I‰I�a˜ #Ô&×+Ñ+¨CÓ0ˆÜ�I‰I�a˜ 3Ô'×,Ñ,¨SÓ1ˆØ’!”R—Z‘Z�-Ñ  1§6¡6£8Ñ+¨a²´2·:±:°Ñ.>ÀÇÁÃÑ.IÑIˆÜ—‘˜“ˆà™$˜B˜$¤§
¡
Ð*Ñ+¨a±°"°©g¯l©l«nÑ<ˆØ˜™4˜R˜4¤§¡Ð+Ñ,¨q±°2°©w¯|©|«~Ñ=Ñ=ˆÜŸ™ Ó.ˆä�E‰E”"—(‘(˜1“+˜q¤"§(¡(¨1£+Ð-Ñ.×4Ñ4Ó6ˆÜ�E‰E”"—(‘(˜1“+˜q¤"§(¡(¨1£+Ð-Ñ.×4Ñ4Ó6ˆä˜4 $¨ Ó/ó #	8‰GˆAˆtÜœ˜q ™x¨Ó.ˆAØˆyØÜ™A˜c 1 a›L¨%°dÕ;Ü™A˜c 1 a¨1Ô-¨u°R°a°R¸¸!¸°V©}À4ÕHÜ™A˜c 1 a¨tÔ4°e·g±g·l±l³nØ!%õ'ô ™A˜c 1 a¨a°a¸aÀaÔHØ!¨õ.ä™A˜c 1 a¨a°a¸aÀaÈ1ÔMØ! " 1 " b q b &™M°õ6ô ™A˜c 1 a¨b°q¸rÈÔJØ)°õ6ô —‘˜¨¨Sª¡°c¸3Ó?ˆAÙ�#�q˜!˜q¨dÔ3ˆAÜ˜A˜u¨4Õ0á�#�q˜!˜qÔ!ˆAÜ�A˜Q�JÔÜ˜A˜q ™w¨TÕ2äœ) Q¨¨Q°¸Õ:Üœ) Q¨¨Q°¸Õ:Üœ) Q¨¨Q°¸Õ;Üœ) Q¨¨Q°¸Õ:Üœ) Q¨¨Q°¸Õ:Üœ) Q¨¨Q°¸Õ;Üœ) Q¨¨Q°°RÕ8Üœ) Q¨¨Q°°QÕ7Üœ) Q¨¨Q°¸Õ;Üœ) Q¨¨Q°ÜŸH™H V¨S°#Ó6÷8ñE#	8r6   c                 ó¤  — t         j                  j                  d«      }t        t        «      D �]ž  \  }}d}d}d}d}t        t        |j                  |dz   «      t        ||z
  dz
  «      «      t        |j                  |dz   «      t        ||z
  dz
  «      «      «      }|j                  |«      }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<   |j                  |«      j                  |«      }
|j                  |«      j                  |«      } |d«       |d«      }}t        d|¬«      \  } |||||||	|
||¬«	      }||j                  |
«      z  ||z  z   }t        ||«        |||||||	||
|d¬«
      }||j                  j                  |«      z  ||
z  z   }t        ||«       �Œ¡ y )NéÒ  rL   rI   rF   r    r*   )r   r   )r   rF   rƒ   )r   r    r   )rF   r   rG   rb   r“   )Úgbmv)	Úmr¸   ÚkuÚklÚalpharK   r‹   rŒ   Úbeta)
rê   r¸   rë   rì   rí   rK   r‹   rŒ   rî   Útrans)r,   ÚrandomÚdefault_rngÚ	enumerateÚDTYPESr   r   r   Úastyper   r9   r   rÊ   )rS   ÚrngÚindr"   r¸   rê   rì   rë   ÚAÚAbr‹   rŒ   rí   rî   ÚfuncrŽ   Úy2s                    r4   Ú	test_gbmvzTestFBLAS2Simple.test_gbmvÊ  sæ  € Ü�i‰i×#Ñ# DÓ)ˆÜ#¤FÓ+ó 	.‰JˆC�ØˆAØˆAØˆBØˆBäœ §
¡
¨2¨a©4Ó 0´%¸¸"¹¸Q¹³-Ó@Ü §
¡
¨2¨a©4Ó 0´%¸¸"¹¸Q¹³-Ó@óBˆAà—‘˜“ˆAÜ˜˜2™˜a™ �|¨5Ô1ˆBð ˜$™ˆBˆq�"�1�"ˆu‰IØ˜4™ˆBˆq�!�A�#ˆv‰JØ˜4™ˆBˆq�!�A�#ˆv‰JØ˜$™ˆBˆq�"�1�"ˆu‰Ià—
‘
˜1“×$Ñ$ UÓ+ˆAØ—
‘
˜1“×$Ñ$ UÓ+ˆAÙ ›(¡E¨"£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ˆBà˜Ÿ™Ÿ™ ›Ñ# d¨Q¡hÑ.ˆBÜ% b¨"Ö-ñ=	.r6   c           	      ó¨  — t         j                  j                  d«      }t        t        «      D �]   \  }}d}d}t        ||f|¬«      }t        |dz   |f|¬«      }|j                  |«      |t        |«      t        |«      f<   t        d|dz   «      D ]?  }|j                  ||z
  «      }	|	|t        ||z
  «      t        ||«      f<   |	|d|z
  |d …f<   ŒA |j                  |«      }|dk  r||j                  z   n||j                  «       j                  z   }t        |«      |dd d …f<   |j                  |«      j                  |«      }
|j                  |«      j                  |«      } |d«       |d«      }}|dkD  rt        d	|¬«      \  }nt        d
|¬«      \  } |||||
||¬«      }||j                  |
«      z  ||z  z   }t        ||«       �Œ£ y )Nrè   rƒ   r    r*   rF   rH   ç      ô?rG   )Úhbmv)Úsbmv)Úkrí   rK   r‹   rŒ   rî   )r,   rð   rñ   rò   ró   r   r   Úrangerô   rÊ   rÆ   r   r   r9   r   )rS   rõ   rö   r"   r¸   r   r÷   rø   Úind2Útempr‹   rŒ   rí   rî   rù   rŽ   rú   s                    r4   Útest_sbmv_hbmvzTestFBLAS2Simple.test_sbmv_hbmvì  s¹  € Ü�i‰i×#Ñ# DÓ)ˆÜ#¤FÓ+ó 	.‰JˆC�ØˆAØˆAÜ�q˜!�f EÔ*ˆAÜ˜˜!™˜Q�x uÔ-ˆBð '*§j¡j°£mˆAŒf�Q‹iœ ›Ð"Ñ#Ü˜a  1¡›ò *�Ø—z‘z ! D¡&Ó)�Ø59�”&˜˜4™“.¤&¨¨q£/Ð1Ñ2Ø%)��2�d‘7˜D™E�>Ò"ð*ð —‘˜“ˆAØ š7��A—C‘C’¨¨A¯F©F«H¯J©J©ˆAÜ˜Q›ˆBˆr’1ˆu‰IØ—
‘
˜1“×$Ñ$ UÓ+ˆAØ—
‘
˜1“×$Ñ$ UÓ+ˆAÙ ›+¡u¨Q£x�4ˆEà�QŠwÜ& y¸Ô>‘‘ä& y¸Ô>‘�Ù˜ ¨"°°Q¸TÔBˆBØ˜Ÿ™˜q›Ñ! D¨1¡HÑ,ˆBÜ% b¨"Ö-ñ3	.r6   c                 óH  — t         j                  j                  d«      }t        t        t
        z   «      D �]é  \  }}d}|j                  ||f«      j                  |«      }|dkD  r||j                  ||f«      dz  z  }|j                  |«      }|dk  r||j                  z   n||j                  «       j                  z   }t        |«      \  }}|||f   }|j                  |«      j                  |«      }	|j                  |«      j                  |«      }
t        d|z  «      j                  |«      }t        d|z  «      j                  |«      } |d«       |d«      }}|dkD  rt        d|¬	«      \  }nt        d
|¬	«      \  } |||||	|
|¬«      }||j                  |	«      z  ||
z  z   }t        ||«        ||dz
  |||||dd||¬«
      }||d d…d d…f   z  j                  |dd d…   «      ||dd d…   z  z   }t        |dd d…   |«       t        |d   |d   «       �Œì y )Niba¼ rG   rF   r¤   rb   r    rý   )Úhpmvr*   )Úspmv)r¸   rí   Úapr‹   rŒ   rî   )
r¸   rí   rî   r‹   rŒ   r  r¶   rÙ   r·   rÚ   rH   )r,   rð   rñ   rò   ró   ÚCOMPLEX_DTYPESrô   rÊ   rÆ   r   r   r   r   r9   r   r   )rS   rõ   rö   r"   r¸   r÷   r+   ÚrÚApr‹   rŒ   ÚxlongÚylongrí   rî   rù   rŽ   rú   s                     r4   Útest_spmv_hpmvzTestFBLAS2Simple.test_spmv_hpmv	  s  € Ü�i‰i×#Ñ# HÓ-ˆÜ#¤F¬>Ñ$9Ó:ó 	1‰JˆC�ØˆAØ—
‘
˜A˜q˜6Ó"×)Ñ)¨%Ó0ˆAØ�QŠwØ�S—Z‘Z  A Ó'¨Ñ*Ñ*�Ø—‘˜“ˆAØ š7��A—C‘C’¨¨A¯F©F«H¯J©J©ˆAÜ “?‰DˆAˆqØ�1�a�4‘ˆBØ—
‘
˜1“×$Ñ$ UÓ+ˆAØ—
‘
˜1“×$Ñ$ UÓ+ˆAÜ˜1˜Q™3“K×&Ñ& uÓ-ˆEÜ˜˜1™“I×$Ñ$ UÓ+ˆEÙ ›+¡u¨Q£x�4ˆEà�QŠwÜ& y¸Ô>‘‘ä& y¸Ô>‘�Ù˜ ¨2°°a¸dÔCˆBØ˜Ÿ™˜q›Ñ! D¨1¡HÑ,ˆBÜ% b¨"Ô-ñ ˜˜!™ 5¨t°uÀÈ"Ø 1¨1°1ô6ˆBà˜!˜C˜R˜C  " ˜H™+Ñ%×*Ñ*¨5°°°A°©;Ó7¸$ÀÀqÀtÈ!ÀtÁÑ:LÑLˆBÜ% b¨¨¨A¨¡h°Ô3Ü  1¡ u¨Q¡xÖ0ñ9	1r6   c                 óº  — t         j                  j                  d«      }t        t        t
        z   «      D �]¢  \  }}d}|j                  ||f«      j                  |«      }|dkD  r||j                  ||f«      dz  z  }|j                  |«      }|dk  r||j                  z   n||j                  «       j                  z   }t        |«      \  }}|||f   }|j                  |«      j                  |«      }	t	        t
        z   t        |d«         d«      }
|dkD  rCt        d|¬«      \  }|
|	d d …d f   j                  |	d d d …f   j                  «       «      z  |z   }n4t        d	|¬«      \  }|
|	d d …d f   j                  |	d d d …f   «      z  |z   } |||
||	¬
«      }t        d|¬«      }||||f<   |dkD  r|j                  «       n||||f<   t        ||«       �Œ¥ y )Nrè   rG   rF   r¤   rb   g      @)Úhprr*   )Úspr)r¸   rí   r  r‹   ©rG   rG   )r,   rð   rñ   rò   ró   r	  rô   rÊ   rÆ   r   r   r   r9   r   r   )rS   rõ   rö   r"   r¸   r÷   r+   r
  r  r‹   rí   rù   rú   rŽ   Úy1fs                  r4   Útest_spr_hprzTestFBLAS2Simple.test_spr_hpr)  s¼  € Ü�i‰i×#Ñ# DÓ)ˆÜ#¤F¬>Ñ$9Ó:ó 	/‰JˆC�ØˆAØ—
‘
˜A˜q˜6Ó"×)Ñ)¨%Ó0ˆAØ�QŠwØ�S—Z‘Z  A Ó'¨Ñ*Ñ*�Ø—‘˜“ˆAØ š7��A—C‘C’¨¨A¯F©F«H¯J©J©ˆAÜ “?‰DˆAˆqØ�1�a�4‘ˆBØ—
‘
˜1“×$Ñ$ UÓ+ˆAÜœNÑ*¬C°°Q«KÑ8¸Ó=ˆEà�QŠwÜ& x°uÔ=‘�Ø˜Qšq $˜w™ZŸ^™^¨A¨d²A¨g©J¯O©OÓ,=Ó>Ñ>ÀÑB‘ä& x°uÔ=‘�Ø˜Qšq $˜w™ZŸ^™^¨A¨d²A¨g©JÓ7Ñ7¸!Ñ;�á˜ ¨2°Ô3ˆBÜ˜ eÔ,ˆCØˆC��1�‰IØ%(¨1¢W˜Ÿ™œ	°"ˆC��1�‰IÜ% c¨2Ö.ñ/	/r6   c                 óÐ  — t         j                  j                  d«      }t        t        «      D �]´  \  }}d}|j                  ||f«      j                  |«      }|dkD  r||j                  ||f«      dz  z  }|j                  |«      }|dk  r||j                  z   n||j                  «       j                  z   }t        |«      \  }}|||f   }|j                  |«      j                  |«      }	|j                  |«      j                  |«      }
 |d«      }|dkD  rt        d|¬«      \  }nt        d|¬«      \  }|j                  «       |	d d …d f   j                  |
d d d …f   j                  «       «      z  }||z   |j                  «       j                  z   } ||||	|
|¬	«      }t        d
|¬«      }||||f<   |g d¢   j                  «       |g d¢g d¢f<   t        ||«       �Œ· y )Nrè   rG   rF   r¤   r    )Úhpr2r*   )Úspr2)r¸   rí   r‹   rŒ   r  r  )rF   rG   rb   )rF   r    r    )r   r   rF   )r,   rð   rñ   rò   ró   rô   rÊ   rÆ   r   r   r9   r   r   )rS   rõ   rö   r"   r¸   r÷   r+   r
  r  r‹   rŒ   rí   rù   rä   rú   rŽ   r  s                    r4   Útest_spr2_hpr2zTestFBLAS2Simple.test_spr2_hpr2D  s²  € Ü�i‰i×#Ñ# DÓ)ˆÜ#¤FÓ+ó 	/‰JˆC�ØˆAØ—
‘
˜A˜q˜6Ó"×)Ñ)¨%Ó0ˆAØ�QŠwØ�S—Z‘Z  A Ó'¨Ñ*Ñ*�Ø—‘˜“ˆAØ š7��A—C‘C’¨¨A¯F©F«H¯J©J©ˆAÜ “?‰DˆAˆqØ�1�a�4‘ˆBØ—
‘
˜1“×$Ñ$ UÓ+ˆAØ—
‘
˜1“×$Ñ$ UÓ+ˆAÙ˜!“HˆEà�QŠwÜ& y¸Ô>‘‘ä& y¸Ô>‘�à—
‘
“˜q¢ D ™zŸ~™~¨a°²a°©j¯o©oÓ.?Ó@Ñ@ˆAØ�Q‘˜Ÿ™›Ÿ™Ñ#ˆBÙ˜ ¨!¨q°RÔ8ˆBÜ˜ eÔ,ˆCØˆC��1�‰IØ(*ª9©×(:Ñ(:Ó(<ˆC’	š9Ð$Ñ%Ü% c¨2Ö.ñ1	/r6   c                 ó^  — t         j                  j                  d«      }t        t        «      D �]û  \  }}d}d}|j                  |«      j                  |«      }t        ||f|¬«      }t        |dz   «      D ]1  }|j                  ||z
  «      |t        ||z
  «      t        ||«      f<   Œ3 |dkD  rI|t        |«      xx   d|j                  |dz   |z  ||dz   z  dz  z
  «      j                  |«      z  z  cc<   t        |dz   |f|¬«      }	t        |dz   «      D ]  }
t        ||
¬«      |	|
 dz
  |
d …f<   Œ t        d	|¬«      \  } |||	|¬
«      }|j                  |«      }t        ||«        |||	|d¬«      } |d«      |t        |«      t        |«      f<   |j                  |«      }t        ||«        |||	|dd¬«      }|j                  j                  |«      }t        ||«        |||	|dd¬«      }|j                  «       j                  j                  |«      }t        ||«       �Œþ y )Nrè   r„   rG   r*   rF   r¤   r    ©r   )Útbmv©r   rK   r‹   ©r   rK   r‹   r   ©r   rK   r‹   r   rï   )r,   rð   rñ   rò   ró   rô   r   r  r   r   r   r   r9   r   rÊ   rÆ   ©rS   rõ   rö   r"   r¸   r   r‹   r÷   Úsuprø   Úrowrù   rŽ   rú   s                 r4   Ú	test_tbmvzTestFBLAS2Simple.test_tbmv`  s  € Ü�i‰i×#Ñ# DÓ)ˆÜ#¤FÓ+ó "	.‰JˆC�ØˆAØˆAØ—
‘
˜1“×$Ñ$ UÓ+ˆAÜ�q˜!�f EÔ*ˆAä˜Q˜q™S“zò E�Ø36·:±:¸aÀ¹eÓ3D�”&˜˜3™“-¤¨¨Q£Ð/Ò0ðEð �QŠwØ”'˜!“*“  c§j¡j°!°A±#°q±¸!¸Q¸q¹S¹'À1¹*Ñ1EÓ&F×&MÑ&MÈeÓ&TÑ!TÑT“ô ˜˜!™˜Q�x uÔ-ˆBÜ˜Q˜q™S“zò 2�Ü#'¨¨S¤>��C�4˜‘6˜3™4�<Ò ð2ä" 9°EÔ:‰EˆDá˜˜R 1Ô%ˆBØ—‘�q“ˆBÜ% b¨"Ô-á˜˜R 1¨1Ô-ˆBÙ&+¨A£hˆAŒf�Q‹iœ ›Ð"Ñ#Ø—‘�q“ˆBÜ% b¨"Ô-á˜˜R 1¨1°AÔ6ˆBØ—‘—‘˜“ˆBÜ% b¨"Ô-á˜˜R 1¨1°AÔ6ˆBØ—‘“—‘—‘ Ó"ˆBÜ% b¨"Ö-ñE"	.r6   c                 ó6  — t         j                  j                  d«      }t        t        «      D �]ç  \  }}d}d}|j                  |«      j                  |«      }t        ||f|¬«      }t        |dz   «      D ]1  }|j                  ||z
  «      |t        ||z
  «      t        ||«      f<   Œ3 |dkD  rI|t        |«      xx   d|j                  |dz   |z  ||dz   z  dz  z
  «      j                  |«      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                  «       j                  |«      }t        ||«       �Œê y )Nrè   rƒ   rG   r*   rF   r¤   r    r  )Útbsvr  r  r  )r,   rð   rñ   rò   ró   rô   r   r  r   r   r   r   r   r   rÊ   rÆ   r  s                 r4   Ú	test_tbsvzTestFBLAS2Simple.test_tbsv†  s  € Ü�i‰i×#Ñ# DÓ)ˆÜ#¤FÓ+ó "	.‰JˆC�ØˆAØˆAØ—
‘
˜1“×$Ñ$ UÓ+ˆAÜ�q˜!�f EÔ*ˆAä˜Q˜q™S“zò E�Ø36·:±:¸aÀ¹eÓ3D�”&˜˜3™“-¤¨¨Q£Ð/Ò0ðEð �QŠwØ”'˜!“*“  c§j¡j°!°A±#°q±¸!¸Q¸q¹S¹'À1¹*Ñ1EÓ&F×&MÑ&MÈeÓ&TÑ!TÑT“ô ˜˜!™˜Q�x uÔ-ˆBÜ˜Q˜q™S“zò 2�Ü#'¨¨S¤>��C�4˜‘6˜3™4�<Ò ð2ä" 9°EÔ:‰EˆDá˜˜R 1Ô%ˆBÜ�q˜!“ˆBÜ% b¨"Ô-á˜˜R 1¨1Ô-ˆBÙ&+¨A£hˆAŒf�Q‹iœ ›Ð"Ñ#Ü�q˜!“ˆBÜ% b¨"Ô-á˜˜R 1¨1°AÔ6ˆBÜ�q—s‘s˜A“ˆBÜ% b¨"Ô-á˜˜R 1¨1°AÔ6ˆBÜ�q—v‘v“x—z‘z 1Ó%ˆBÜ% b¨"Ö-ñE"	.r6   c                 óv  — t         j                  j                  d«      }t        t        «      D �]‡  \  }}d}|j                  |«      j                  |«      }|dk  rt        |j                  ||f«      «      }n3t        |j                  ||f«      |j                  ||f«      dz  z   «      }t        |«      \  }}|||f   }	t        d|¬«      \  }
 |
||	|¬«      }|j                  |«      }t        ||«        |
||	|d¬	«      } |d«      |t        |«      t        |«      f<   |j                  |«      }t        ||«        |
||	|dd¬
«      }|j                  j                  |«      }t        ||«        |
||	|dd¬
«      }|j                  «       j                  j                  |«      }t        ||«       �ŒŠ y )Nrè   r„   r    r¤   )Útpmvr*   ©r¸   r  r‹   rF   ©r¸   r  r‹   r   ©r¸   r  r‹   r   rï   )r,   rð   rñ   rò   ró   rô   r   r   r   r9   r   r   rÊ   rÆ   ©rS   rõ   rö   r"   r¸   r‹   r÷   r+   r
  r  rù   rŽ   rú   s                r4   Ú	test_tpmvzTestFBLAS2Simple.test_tpmv¬  s‰  € Ü�i‰i×#Ñ# DÓ)ˆÜ#¤FÓ+ó 	.‰JˆC�ØˆAØ—
‘
˜1“×$Ñ$ UÓ+ˆAà�QŠwÜ˜Ÿ™ Q¨ FÓ+Ó,‘ä˜Ÿ™ Q¨ FÓ+¨c¯j©j¸!¸Q¸Ó.@ÀÑ.CÑCÓD�ô   “?‰DˆAˆqØ�1�a�4‘ˆBÜ" 9°EÔ:‰EˆDá˜˜b AÔ&ˆBØ—‘�q“ˆBÜ% b¨"Ô-á˜˜b A¨AÔ.ˆBÙ&+¨A£hˆAŒf�Q‹iœ ›Ð"Ñ#Ø—‘�q“ˆBÜ% b¨"Ô-á˜˜b A¨A°QÔ7ˆBØ—‘—‘˜“ˆBÜ% b¨"Ô-á˜˜b A¨A°QÔ7ˆBØ—‘“—‘—‘ Ó"ˆBÜ% b¨"Ö-ñ;	.r6   c                 ój  — t         j                  j                  d«      }t        t        «      D �]�  \  }}d}|j                  |«      j                  |«      }|dk  rt        |j                  ||f«      «      }n3t        |j                  ||f«      |j                  ||f«      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                  «       j                  |«      }t        ||«       �Œ„ y )Nrè   r„   r    r¤   )Útpsvr*   r(  rF   r)  r*  )r,   rð   rñ   rò   ró   rô   r   r   r   r   r   r   r   rÊ   rÆ   r+  s                r4   Ú	test_tpsvzTestFBLAS2Simple.test_tpsvÍ  sŒ  € Ü�i‰i×#Ñ# DÓ)ˆÜ#¤FÓ+ó 	.‰JˆC�ØˆAØ—
‘
˜1“×$Ñ$ UÓ+ˆAà�QŠwÜ˜Ÿ™ Q¨ FÓ+Ó,‘ä˜Ÿ™ Q¨ FÓ+¨c¯j©j¸!¸Q¸Ó.@ÀÑ.CÑCÓD�Ø”�Q“‰KˆAä “?‰DˆAˆqØ�1�a�4‘ˆBÜ" 9°EÔ:‰EˆDá˜˜b AÔ&ˆBÜ�q˜!“ˆBÜ% b¨"Ô-á˜˜b A¨AÔ.ˆBÙ&+¨A£hˆAŒf�Q‹iœ ›Ð"Ñ#Ü�q˜!“ˆBÜ% b¨"Ô-á˜˜b A¨A°QÔ7ˆBÜ�q—s‘s˜A“ˆBÜ% b¨"Ô-á˜˜b A¨A°QÔ7ˆBÜ�q—v‘v“x—z‘z 1Ó%ˆBÜ% b¨"Ö-ñ;	.r6   c                 ó>  — t         j                  j                  d«      }t        t        «      D �]k  \  }}d}|j                  ||f«      t        |«      z   j                  |«      }|j                  d«      j                  |«      }t        d|¬«      \  } |||¬«      }t        |«      j                  |«      }	t        ||	«        |||d¬«      } |d«      |t        |«      t        |«      f<   t        |«      j                  |«      }	t        ||	«        |||dd¬«      }t        |«      j                  j                  |«      }	t        ||	«        |||dd	¬«      }t        |«      j                  «       j                  j                  |«      }	t        ||	«       �Œn y )
Nrè   rG   )Útrmvr*   ©rK   r‹   rF   ©rK   r‹   r   ©rK   r‹   r   rï   r    )r,   rð   rñ   rò   ró   r   rô   r   r   r9   r   r   rÊ   rÆ   ©
rS   rõ   rö   r"   r¸   r÷   r‹   rù   rŽ   rú   s
             r4   Ú	test_trmvzTestFBLAS2Simple.test_trmvî  sS  € Ü�i‰i×#Ñ# DÓ)ˆÜ#¤FÓ+ó 	.‰JˆC�ØˆAØ—‘˜Q ˜FÓ#¤C¨£FÑ*×2Ñ2°5Ó9ˆAØ—
‘
˜1“×$Ñ$ UÓ+ˆAÜ" 9°EÔ:‰EˆDá˜˜Q”ˆBÜ�a“—‘˜Q“ˆBÜ% b¨"Ô-á˜˜Q QÔ'ˆBÙ&+¨A£hˆAŒf�Q‹iœ ›Ð"Ñ#Ü�a“—‘˜Q“ˆBÜ% b¨"Ô-á˜˜Q Q¨aÔ0ˆBÜ�a“—‘—‘˜qÓ!ˆBÜ% b¨"Ô-á˜˜Q Q¨aÔ0ˆBÜ�a“—‘“×!Ñ!×%Ñ% aÓ(ˆBÜ% b¨"Ö-ñ+	.r6   c                 ón  — t         j                  j                  d«      }t        t        «      D �]ƒ  \  }}d}|j                  ||f«      t        |«      z   j                  |«      }|j                  |«      j                  |«      }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                  «       j                  |«      }	t        ||	«       �Œ† y )Nrè   é   )Útrsvr*   r2  rF   )rK   r‹   rµ   r3  r4  r    )r,   rð   rñ   rò   ró   r   rô   r   r   r   r   r   r   rÊ   rÆ   r5  s
             r4   Ú	test_trsvzTestFBLAS2Simple.test_trsv  ss  € Ü�i‰i×#Ñ# DÓ)ˆÜ#¤FÓ+ó 	.‰JˆC�ØˆAØ—‘˜Q ˜FÓ#¤C¨£FÑ*×2Ñ2°5Ó9ˆAØ—
‘
˜1“×$Ñ$ UÓ+ˆAÜ" 9°EÔ:‰EˆDá˜˜Q”ˆBÜ”t˜A“w Ó"ˆBÜ% b¨"Ô-á˜˜Q aÔ(ˆBÜ”t˜A“w Ó"ˆBÜ% b¨"Ô-á˜˜Q QÔ'ˆBÙ&+¨A£hˆAŒf�Q‹iœ ›Ð"Ñ#Ü”t˜A“w Ó"ˆBÜ% b¨"Ô-á˜˜Q Q¨aÔ0ˆBÜ”t˜A“w—y‘y !Ó$ˆBÜ% b¨"Ô-á˜˜Q Q¨aÔ0ˆBÜ”t˜A“w—|‘|“~×'Ñ'¨Ó+ˆBÜ% b¨"Ö-ñ3	.r6   N)rW   rX   rY   rž   ÚpytestÚmarkÚthread_unsafer§   rÕ   rá   ræ   rû   r  r  r  r  r"  r%  r,  r/  r6  r:  rZ   r6   r4   r–   r–   ×   sy   „ ò1ð" ‡[�[×ÑñHó ðHò@^Nò@+8òZ08òd .òD.ò:1ò@/ò6/ò8$.òL$.òL.òB.òB.ó2.r6   r–   c                   ó   — e Zd Zd„ Zy)ÚTestFBLAS3Simplec           
      óD  — dD ]K  }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«       ŒM dD ]K  }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«       ŒM y )NrD   r)   rG   ri   r™   rI   rš   rO   rn   ro   r›   rœ   r�   r^   rR   s      r4   Ú	test_gemmzTestFBLAS3Simple.test_gemm'  sÍ   € Øò 	FˆAÜœ˜q ™x¨Ó.ˆAØˆyØÜ%¡a¨¨A¨3°°£o¸¸°wÔ?Ü%¡a¨¨A¨3°°°a¸!¸Ó&=À¸uÕEð	Fð ò 	OˆAÜœ˜q ™x¨Ó.ˆAØˆyØÜ%¡a¨¨T¨F°R°DÓ&9¸W¸I¸;ÔGÜ%¡a¨¨T¨F°R°D¸!¸b¸TÓ&BÀWÀIÕNñ	Or6   N)rW   rX   rY   rA  rZ   r6   r4   r?  r?  %  s   „ óOr6   r?  c              #   óP   K  — |D ]  }t        t        || z   d«      }|€Œ|–— Œ y­w)z;Just a helper: return a specified BLAS function w/typecode.N)rQ   r_   )rù   ÚpsrT   r<   s       r4   Ú	_get_funcrD  6  s4   è ø€ àò ˆÜ”E˜1˜T™6 4Ó(ˆØˆ9ØØ‹ñ	ùs   ‚$&c                   ó$   — e Zd Zd„ Zd„ Zd„ Zd„ Zy)Ú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«      | _        y )	Nr±   r½   ç        )r±   rH  ç      @)rH  ç      ð¿r½   )r    rG   )r½   rJ  g       @)rI  rH  g      "@)r,   ÚarrayrK   rÔ   r   r+   Út©rS   s    r4   Úsetup_methodzTestBLAS3Symm.setup_methodA  sg   € Ü—‘˜B ˜8Ø ˜8ð%ó &ˆŒä—‘š<Ú(ð*ó +ˆŒä—‘˜“ˆŒÜ—‘š=Ú'ð)ó *ˆ�r6   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                  «       Œñ y )NÚsymmr±   ©rK   rÔ   r+   rí   rî   rF   ©rK   rÔ   rµ   r+   rí   rî   )rK   rÔ   Úsider+   rí   rî   )rD  rK   rÔ   r+   r   rL  rÊ   ©rS   r<   Úress      r4   Ú	test_symmzTestBLAS3Symm.test_symmJ  s±   € Ü˜6Ó"ò 		5ˆAÙ�d—f‘f §¡¨$¯&©&¸ÀÔDˆCÜ% c¨4¯6©6Ô2á�d—f‘f—h‘h $§&¡&°°T·V±VÀ2ÈBÔOˆCÜ% c¨4¯6©6Ô2á�d—f‘f §¡§¡¨q°D·F±F·H±HØ 2ô'ˆCä% c¨4¯6©6¯8©8Õ4ñ		5r6   c           	      ó€   — t        t        dd «      }|�+t        t        |fi | j                  | j
                  dddœ¤Ž y y )NÚdsymmrF   )rK   rÔ   rí   rS  )rQ   r_   rË   rÌ   rK   rÔ   ©rS   r<   s     r4   Útest_summ_wrong_sidez"TestBLAS3Symm.test_summ_wrong_sideV  sD   € Ü”E˜7 DÓ)ˆØˆ=Üœ) Qñ C°·±¸T¿V¹VØ45¸qñ+Bó Cð r6   c                 ób  — t        t        dd«      }|�œ || j                  | j                  | j                  dd¬«      }t        j                  || j                  «      sJ ‚ || j                  | j                  d| j                  dd¬«      }t        j                  || j                  «      rJ ‚yy)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.
        rX  Nr±   rQ  rF   rR  )rQ   r_   rK   rÔ   r+   r,   ÚallcloserL  rT  s      r4   Útest_symm_wrong_uploz"TestBLAS3Symm.test_symm_wrong_uplo^  s�   € ô
 ”E˜7 DÓ)ˆØˆ=Ù�d—f‘f §¡¨$¯&©&¸ÀÔDˆCÜ—;‘;˜s D§F¡FÔ+Ð+Ð+á�d—f‘f §¡¨a°4·6±6ÀÈ"ÔMˆCÜ—{‘{ 3¨¯©Ô/Ð/Ð/Ð/ð r6   N)rW   rX   rY   rN  rV  rZ  r]  rZ   r6   r4   rF  rF  ?  s   „ ò*ò
5òCó0r6   rF  c                   ó   — e Zd Zd„ Zd„ Zd„ Zy)Ú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«      | _        y )Nr±   rH  ç       Àr½   rI  )r±   rH  r½   )rH  ç      @ç      À)r½   rc  ç      *@ç      @ç      @rd  )r,   rK  rK   rL  ÚttrM  s    r4   rN  zTestBLAS3Syrk.setup_methodm  sn   € Ü—‘˜B ˜8Ø ˜9Ø ˜8ð%ó &ˆŒô —‘š<Ú(Ú)ð+ó ,ˆŒô —(‘(˜R ˜HØ ˜Ið'ó (ˆ�r6   c                 ó  — t        d«      D �]s  } || 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                  «      «       �Œv y )NÚsyrkr±   ©rK   rí   rF   )rK   rí   rµ   )rK   rí   rî   r+   )rK   rí   rï   )
rD  rK   r   r,   r   rL  r   r   Úshaperg  ©rS   r<   r+   Úc0s       r4   Ú	test_syrkzTestBLAS3Syrk.test_syrkw  sô   € Ü˜6Ó"ó 	DˆAÙ�D—F‘F "Ô%ˆAÜ%¤b§g¡g¨a£j´"·'±'¸$¿&¹&³/ÔBá�D—F‘F "¨AÔ.ˆAÜ%¤b§g¡g¨a£j´"·'±'¸$¿&¹&³/ÔBä—‘˜Ÿ™Ÿ™Ó&ˆBÙ�D—F‘F "¨2°Ô4ˆAÜ%¤b§g¡g¨a£j´"·'±'¸$¿&¹&À¹)Ó2DÔEá�D—F‘F "¨AÔ.ˆAÜ%¤b§g¡g¨a£j´"·'±'¸$¿'¹'Ó2BÖCñ	Dr6   c           	      ó�   — t        t        dd «      }|�3t        t        |fi | j                  dt        j                  d«      dœ¤Ž y y )NÚdsyrkr±   )rI   rc   )rK   rí   r+   )rQ   r_   rË   rÌ   rK   r,   r   rY  s     r4   Útest_syrk_wrong_czTestBLAS3Syrk.test_syrk_wrong_c‰  sF   € Ü”E˜7 DÓ)ˆØˆ=Üœ) Qñ B°·±ÀÜ02·±¸³ñ+Aó Bð r6   N)rW   rX   rY   rN  rn  rq  rZ   r6   r4   r_  r_  l  s   „ ò(òDó$Br6   r_  c                   ó   — e Zd Zd„ Zd„ Zd„ Zy)Ú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«      | _        y )Nr±   rH  ra  r½   rI  r   )rH  rJ  rI  )rJ  rH  rH  )rI  rH  rf  rƒ   )r,   rK  rK   rÔ   rL  rg  rM  s    r4   rN  zTestBLAS3Syr2k.setup_method’  s™   € Ü—‘˜B ˜8Ø ˜9Ø ˜8ð%ó &ˆŒô —‘˜B ˜8Ø ˜8Ø˜r˜7ð$ó %ˆŒô —‘š=Ú(Ú'ð)ó *ˆŒô —(‘(˜R ˜HØ ˜Gð%ó &ˆ�r6   c                 ó`  — t        d«      D �]Ÿ  } || 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                  «      «       �Œ¢ y )NÚsyr2kr±   ©rK   rÔ   rí   rF   )rK   rÔ   rí   rµ   )rK   rÔ   rí   rî   r+   )rK   rÔ   rí   rï   )rD  rK   rÔ   r   r,   r   rL  r   r   rk  rg  rl  s       r4   Ú
test_syr2kzTestBLAS3Syr2k.test_syr2kŸ  s  € Ü˜7Ó#ó 	DˆAÙ�D—F‘F˜dŸf™f¨BÔ/ˆAÜ%¤b§g¡g¨a£j´"·'±'¸$¿&¹&³/ÔBá�D—F‘F˜dŸf™f¨B°aÔ8ˆAÜ%¤b§g¡g¨a£j´"·'±'¸$¿&¹&³/ÔBä—‘˜Ÿ™Ÿ™Ó&ˆBÙ�D—F‘F˜dŸf™f¨B°R¸2Ô>ˆAÜ%¤b§g¡g¨a£j´"·'±'¸$¿&¹&À¹)Ó2DÔEá�D—F‘F˜dŸf™f¨B°aÔ8ˆAÜ%¤b§g¡g¨a£j´"·'±'¸$¿'¹'Ó2BÖCñ	Dr6   c           
      ó¦   — t        t        dd «      }|�>t        t        |fi | j                  | j
                  dt        j                  d«      dœ¤Ž y y )NÚdsyr2kr±   )r8  rc   )rK   rÔ   rí   r+   )rQ   r_   rË   rÌ   rK   rÔ   r,   r   rY  s     r4   Útest_syr2k_wrong_cz!TestBLAS3Syr2k.test_syr2k_wrong_c¯  sO   € Ü”E˜8 TÓ*ˆØˆ=Üœ) Qñ D°·±Ø04·±Ø46Ü02·±¸Ó0Añ+Có Dð r6   N)rW   rX   rY   rN  rx  r{  rZ   r6   r4   rs  rs  ‘  s   „ ò&òDó Dr6   rs  c                   ó:   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
y	)
ÚTestSyHez2Quick and simple tests for (zc)-symm, syrk, syr2k.c                 óD   — t        j                  ddgddgg«      | _        y )NrH  y       €      ð¿r¤   )r,   rK  Úsigma_yrM  s    r4   rN  zTestSyHe.setup_method¼  s$   € Ü—x‘x " d Ø"% r ð!,ó -ˆ�r6   c                 óÌ   — t        dd«      D ]U  } || j                  | j                  d¬«      }t        t        j                  |«      t        j
                  ddg«      «       ŒW y )NrP  Úzcr±   rw  rF   rH   ©rD  r  r   r,   r   r   rT  s      r4   Útest_symm_zczTestSyHe.test_symm_zcÀ  sO   € Ü˜6 4Ó(ò 	FˆAá�d—l‘l d§l¡l¸"Ô=ˆCÜ%¤b§g¡g¨c£l´B·G±G¸QÀ¸GÓ4DÕEñ	Fr6   c                 óÌ   — t        dd«      D ]U  } || j                  | j                  d¬«      }t        t        j                  |«      t        j
                  ddg«      «       ŒW y )NÚhemmr�  r±   rw  rF   r‚  rT  s      r4   Útest_hemm_zczTestSyHe.test_hemm_zcÆ  sN   € Ü˜6 4Ó(ò 	EˆAá�d—l‘l d§l¡l¸"Ô=ˆCÜ%¤b§g¡g¨c£l´B·G±G¸QÀ¸F³OÕDñ	Er6   c                 ó¶   — t        dd«      D ]J  } || j                  d¬«      }t        t        j                  |«      t        j
                  ddg«      «       ŒL y )Nri  r�  r±   rj  rH   r‚  rT  s      r4   Útest_syrk_zrzTestSyHe.test_syrk_zrÌ  sI   € Ü˜6 4Ó(ò 	GˆAÙ�d—l‘l¨"Ô-ˆCÜ%¤b§g¡g¨c£l´B·G±G¸RÀ¸HÓ4EÕFñ	Gr6   c                 ó¶   — t        dd«      D ]J  } || j                  d¬«      }t        t        j                  |«      t        j
                  ddg«      «       ŒL y )NÚherkr�  r±   rj  rF   r‚  rT  s      r4   Útest_herk_zrzTestSyHe.test_herk_zrÑ  sH   € Ü˜6 4Ó(ò 	EˆAÙ�d—l‘l¨"Ô-ˆCÜ%¤b§g¡g¨c£l´B·G±G¸QÀ¸F³OÕDñ	Er6   c           	      óÒ   — t        dd«      D ]X  } || j                  | j                  d¬«      }t        t        j                  |«      dt        j
                  ddg«      z  «       ŒZ y )Nrv  r�  r±   rw  r½   rH   r‚  rT  s      r4   Útest_syr2k_zrzTestSyHe.test_syr2k_zrÖ  sT   € Ü˜7 DÓ)ò 	JˆAÙ�d—l‘l d§l¡l¸"Ô=ˆCÜ%¤b§g¡g¨c£l°B´r·w±wÀÀB¸xÓ7HÑ4HÕIñ	Jr6   c           	      óÒ   — t        dd«      D ]X  } || j                  | j                  d¬«      }t        t        j                  |«      dt        j
                  ddg«      z  «       ŒZ y )NÚher2kr�  r±   rw  r½   rF   r‚  rT  s      r4   Útest_her2k_zrzTestSyHe.test_her2k_zrÛ  sS   € Ü˜7 DÓ)ò 	HˆAÙ�d—l‘l d§l¡l¸"Ô=ˆCÜ%¤b§g¡g¨c£l°B´r·w±wÀÀ1¸v³Ñ4FÕGñ	Hr6   N)rW   rX   rY   Ú__doc__rN  rƒ  r†  rˆ  r‹  r�  r�  rZ   r6   r4   r}  r}  ¹  s.   „ Ù<ò-òFòEòGò
Eò
Jó
Hr6   r}  c                   ól   — e Zd ZdZd„ Zej                  j                  de«      d„ «       Z	d„ Z
d„ Zd„ Zy)	Ú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
¬«      | _        y )Nr±   r½   ra  ©rI  rb  rJ  ©re  rf  ra  )rF   rF   r    rG   )r   rF   rb   rI   )r   r   rF   rƒ   )r   r   r   rF   r<   )r#   rF   rb   r    rI   rG   rƒ   rL   rc   rM   r„   )r,   rK  rK   rÔ   Úa2Úb2rM  s    r4   rN  zTestTRMM.setup_methodä  s›   € Ü—‘˜B ˜:Ø ˜9ð&ó 'ˆŒä—‘š=Ú(ð*ó +ˆŒô —(‘(šLÚ(Ú(Ú(ð*ð 25ô6ˆŒô —(‘(˜Q ˜F Q¨ F¨Q°¨F°Q¸°F¸QÀ¸GÐDØ!$ô&ˆ�r6   Údtype_c           	      ó¸  — t        d|¬«      }t        t        |d| j                  | j                  «        |d| j                  j                  |«      | j                  j                  |«      d¬«      }| j                  j                  d   }t        || j                  | j                  d |…d |…f   z  ddt        j                  |«      j                  z  ¬«       y )	NÚtrmmr*   r±   rF   )rS  rH  éd   )r³   Úatol)r   rË   rÌ   r—  r˜  rô   rk  r   r,   ÚfinfoÚeps)rS   r™  r›  rU  r   s        r4   Ú	test_sidezTestTRMM.test_sideñ  s§   € ä˜f¨FÔ3ˆä”i  s¨D¯G©G°T·W±WÔ=Ù�3˜Ÿ™Ÿ™ vÓ.°·±·±¸vÓ0FØôˆà�G‰G�M‰M˜!ÑˆÜ˜˜TŸW™W t§w¡w¨r°¨r°2°A°2¨v¡Ñ6¸RØ ¤§¡¨&Ó!1×!5Ñ!5Ñ5ö	7r6   c                 ó¶   — t        t        dd «      }|�F |d| j                  | j                  «      }t	        j
                  g d¢g d¢g«      }t        ||«       y y )NÚdtrmmr±   )rd  g      0@g      Àr–  ©rQ   r_   rK   rÔ   r,   rK  r   ©rS   r<   ÚresultÚexpecteds       r4   Útest_abzTestTRMM.test_abü  sR   € Ü”E˜7 DÓ)ˆØˆ=Ù�r˜4Ÿ6™6 4§6¡6Ó*ˆFä—x‘x¢Ú!.ð!0ó 1ˆHä% f¨hÕ7ð r6   c                 óº   — t        t        dd «      }|�H |d| j                  | j                  d¬«      }t	        j
                  g d¢g d¢g«      }t        ||«       y y )Nr¢  r±   Tr´   r•  )rJ  ra  rH  r£  r¤  s       r4   Útest_ab_lowerzTestTRMM.test_ab_lower  sT   € Ü”E˜7 DÓ)ˆØˆ=Ù�r˜4Ÿ6™6 4§6¡6°Ô6ˆFÜ—x‘x¢Ú!/ð!1ó 2ˆHä% f¨hÕ7ð	 r6   c                 óR  — t        t        dd «      }|��dD ]ƒ  }| j                  j                  «       } |d| j                  ||¬«      }t        |j                  j                  du xr t        j                  ||«      du «       t        || j                  «       Œ… t        j                  | j                  j                  «       «      } |d| j                  |d¬«      }t        |j                  j                  du xr t        j                  ||«      du «       t        ||«       y y )Nr¢  )TFr±   )Úoverwrite_bFT)rQ   r_   rÔ   ra   rK   r   ÚflagsÚf_contiguousr,   Úmay_share_memoryr   Úasfortranarrayr   )rS   r<   ÚoverwrÚbcopyr¥  s        r4   Útest_b_overwriteszTestTRMM.test_b_overwrites  sÿ   € ô ”E˜7 DÓ)ˆØ‰=Ø'ò ,�ØŸ™Ÿ™›�Ù˜2˜tŸv™v u¸&ÔA�ä˜Ÿ™×0Ñ0°EÐ9ò DÜ×+Ñ+¨E°6Ó:¸eÐCôEä˜U D§F¡FÕ+ð,ô ×%Ñ% d§f¡f§k¡k£mÓ4ˆEÙ�r˜4Ÿ6™6 5°dÔ;ˆFÜ�E—K‘K×,Ñ,°Ð4ò ?Ü×'Ñ'¨¨vÓ6¸$Ð>ô@ä% e¨VÕ4ð r6   N)rW   rX   rY   r‘  rN  r;  r<  Úparametrizeró   r   r§  r©  r²  rZ   r6   r4   r“  r“  á  s>   „ Ù+ò&ð ‡[�[×Ñ˜X vÓ.ñ7ó /ð7ò8ò8ó5r6   r“  c            	      óz  — t         j                  j                  d«      } t        t        «      D �]‰  \  }}t        j
                  |«      j                  dz  }t        d|¬«      \  }| j                  d«      j                  |«      }| j                  d«      j                  |«      } |d«      }t        t        ||||«       t        t        |||j                  |«       d}d	}	 |d
«      }|dk  r | j                  |	|	f«      t        |	«      z   }n6| j                  |	|	f«      | j                  |	|	f«      dz  z   t        |	«      z   }|j                  |«      }t        |«      }
t        |«      }| j                  |	|f«      j                  |«      }| j                  ||	f«      j                  |«      } ||||¬«      }t        |j                   |j                   «       t#        |
||z  «      }t%        |||¬«        ||||d¬«      }t#        |
j                  ||z  «      }t%        |||¬«        ||||d¬«      }t#        |
j'                  «       j                  ||z  «      }t%        |||¬«        ||||d¬«      } |d«      |
t)        |	«      t)        |	«      f<   t#        |
||z  «      }t%        |||¬«        ||||dd¬«      }t#        |
j'                  «       j                  ||j'                  «       j                  z  «      }t%        ||j'                  «       j                  |¬«        ||||ddd¬«      } |d«      |t)        |	«      t)        |	«      f<   t#        |j'                  «       j                  ||j'                  «       j                  z  «      }t%        ||j'                  «       j                  |¬«       �ŒŒ y )Nrè   iè  )Útrsmr*   )rb   rI   r¹   rF   rc   rL   g      Àr    r¤   )rí   rK   rÔ   )r�  )rí   rK   rÔ   Útrans_a)rí   rK   rÔ   r   )rí   rK   rÔ   r   rS  )rí   rK   rÔ   r   rS  rµ   )r,   rð   rñ   rò   ró   rž  rŸ  r   rô   rË   rÌ   rÊ   r   r   r   r   rk  r   r   rÆ   r   )rõ   rö   r"   Útolrù   r÷   ÚBrí   r¸   rê   ÚAuÚAlÚB1ÚB2r�   Úx2s                   r4   Ú	test_trsmr¾  !  s  € Ü
�)‰)×
Ñ
 Ó
%€CÜ¤Ó'ó 13‰
ˆˆUÜ�h‰h�u‹o×!Ñ! $Ñ&ˆÜ˜y°Ô6‰ˆð �J‰J�vÓ×%Ñ% eÓ,ˆØ�J‰J�vÓ×%Ñ% eÓ,ˆÙ�a“ˆÜ”i  u¨a°Ô3Ü”i  u¨a¯c©c°1Ô5àˆØˆÙ�d“ˆØ�Š7Ø—
‘
˜A˜q˜6Ó"¤S¨£VÑ+‰Aà—‘˜Q ˜FÓ# c§j¡j°!°Q°Ó&8¸Ñ&;Ñ;¼sÀ1»vÑEˆAØ�H‰H�U‹OˆÜ�!‹WˆÜ�!‹WˆØ�Z‰Z˜˜A˜Ó×&Ñ& uÓ-ˆØ�Z‰Z˜˜A˜Ó×&Ñ& uÓ-ˆá˜  bÔ)ˆÜ�R—X‘X˜rŸx™xÔ(Ü�2�u˜R‘xÓ ˆÜ˜˜B SÕ)á˜  b°!Ô4ˆÜ�2—4‘4˜˜r™Ó"ˆÜ˜˜B SÕ)á˜  b°!Ô4ˆÜ�2—7‘7“9—;‘;  b¡Ó)ˆÜ˜˜B SÕ)á˜  b¨qÔ1ˆÙ#(¨£8ˆŒ6�!‹9”f˜Q“iÐÑ Ü�2�u˜R‘xÓ ˆÜ˜˜B SÕ)á˜  b¨q°qÔ9ˆÜ�2—7‘7“9—;‘;  b§g¡g£i§k¡kÑ 1Ó2ˆÜ˜˜BŸG™G›IŸK™K¨cÕ2á˜  b¨q°qÀÔBˆÙ#(¨£8ˆŒ6�!‹9”f˜Q“iÐÑ Ü�2—7‘7“9—;‘;  b§g¡g£i§k¡kÑ 1Ó2ˆÜ˜˜BŸG™G›IŸK™K¨c×2ñc13r6   Fzgh-16930)ÚrunÚreasonc                  óÊ   — t        j                  dd«      } t        j                  j                  j                  | ddd«      }t        j                  d«      }t        ||«       y )Nr„   rM   rI   rG   rH   iô  )	r,   ÚrepeatÚscipyÚlinalgÚblasÚdnrm2r~   r   r   )r‹   Úactualr¦  s      r4   Útest_gh_169309rÈ  W  sK   € ô 	�	‰	�"�aÓ€AÜ�\‰\×Ñ×$Ñ$ Q¨¨1¨bÓ1€FÜ�y‰y˜‹~€HÜ�F˜HÕ%r6   c                  óè   — t        j                  dd«      } d}t        t        j                  «      5  t
        j                  j                  j                  | dd|«       d d d «       y # 1 sw Y   y xY w)Nr„   rM   rH   rI   rG   )	r,   rÂ  rË   r_   Ú__fblas_errorrÃ  rÄ  rÅ  rÆ  )r‹   r¶   s     r4   Útest_dnrm2_neg_incxrË  `  sZ   € ô 	�	‰	�"�aÓ€AØ€DÜ	”u×*Ñ*Ó	+ñ /Ü�‰×Ñ×Ñ  1 a¨Ô.÷/÷ /ñ /ús   ²-A(Á(A1)Úsdzc):r~   r;  Únumpyr,   Únumpy.randomÚnumpy.testingr   r   r   r   r   r   rË   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   rÃ  Úscipy.linalgr   r_   r   r   r   r   r&   ÚImportErrorÚREAL_DTYPESr	  ró   r5   r?   rA   r\   r–   r?  rD  rF  r_  rs  r}  r“  r¾  r<  ÚxfailrÈ  rË  rZ   r6   r4   ú<module>rÔ     s:  ðó
 Û Û Û ÷Gõ Gå *÷÷ ÷ ÷ ñ ó ß IÓ IðÝ,ð ˜Ð €Ø˜ZÐ(€Ø	�~Ñ	%€ò$#òN÷6ñ 6÷"r.ñ r.÷lK	.ñ K	.÷\Oñ Oó"÷*0ñ *0÷Z!Bñ !B÷J$Dñ $D÷P%Hñ %H÷P=5ñ =5ò@33ðl ‡�×Ñ�uØ$ð ó &ñ&ó&ð&ó/øðU" ò Ø‚Eðús   ÁC9 Ã9DÄD