Ë
    ÏÍ:jç  ã                   óJ  — d dl Z d dlZd dlZd dlmZ d dlmZmZ ej                  ej                  gZej                  ej                  gZeez   Zd„ Zd„ Z G d„ d«      Zej&                  j)                  dej*                  d	fej,                  d	fd
„ dfgg d¢¬«      d„ «       Zy)é    N)Úassert_allclose)ÚlinalgÚsparsec                ó¼   — |j                  | «      }t        j                  |t        j                  «      r||j                  | «      dz  z   }|j	                  |«      S )Ny              ð?)ÚrandomÚnpÚ
issubdtypeÚcomplexfloatingÚastype)ÚshapeÚdtypeÚrngÚAs       úr/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/scipy/linalg/tests/test_batch.pyÚ
get_randomr      sJ   € Ø�
‰
�5Ó€AÜ	‡}�}�UœB×.Ñ.Ô/Ø�—
‘
˜5Ó! BÑ&Ñ&ˆØ�8‰8�E‹?Ðó    c                 óø   — |j                  | «      j                  |«      }t        j                  |j	                  dd«      «      }|j                  |j                  ¬«      j                  |«      |z  }||z   |z   S )Néÿÿÿÿéþÿÿÿ©Úsize)r   r   r   ÚconjÚswapaxesÚstandard_normalr   )r   r   Úatolr   r   ÚAtÚnoises          r   Úget_nearly_hermitianr      sk   € ð 	�
‰
�5Ó× Ñ  Ó'€AÜ	�‰�—‘˜B Ó#Ó	$€BØ×Ñ Q§W¡WÐÓ-×4Ñ4°UÓ;¸dÑB€EØˆr‰6�E‰>Ðr   c                   ó
  — e Zd Zdddddddœd„Zej
                  j                  de«      d„ «       Zej
                  j                  de«      d	„ «       Z	ej
                  j                  de«      d
„ «       Z
ej
                  j                  de«      d„ «       Zej
                  j                  dej                  ej                  ej                  ej                   ej"                  ej$                  ej&                  ej(                  ej$                  ej*                  ej,                  ej.                  g«      ej
                  j                  de«      d„ «       «       Zej
                  j                  de«      d„ «       Zej
                  j                  de«      d„ «       Zej
                  j                  de«      d„ «       Zej
                  j                  de«      d„ «       Zej
                  j                  de«      d„ «       Zej
                  j                  de«      d„ «       Zej
                  j                  de«      d„ «       Zej
                  j                  dej@                  dfejB                  dfejD                  dfg«      ej
                  j                  de«      d„ «       «       Z#ej
                  j                  dddg«      ej
                  j                  dddg«      ej
                  j                  de«      d„ «       «       «       Z$ej
                  j                  dejJ                  ejL                  g«      ej
                  j                  de«      d„ «       «       Z'ej
                  j                  dddg«      ej
                  j                  de«      ej
                  j                  dg d¢«      d „ «       «       «       Z(ej
                  j                  dddg«      ej
                  j                  de«      d!„ «       «       Z)ej
                  j                  d"g d#¢«      ej
                  j                  de«      d$„ «       «       Z*ej
                  j                  d%d&d'gd(d)gg«      ej
                  j                  de«      d*„ «       «       Z+ej
                  j                  d+d&d,g«      ej
                  j                  d-d.d/g«      ej
                  j                  de«      d0„ «       «       «       Z,ej
                  j                  d-d.d/g«      ej
                  j                  de«      d1„ «       «       Z-ej
                  j                  dej\                  ej^                  g«      ej
                  j                  de«      d2„ «       «       Z0ej
                  j                  d3ddg«      ej
                  j                  de«      d4„ «       «       Z1ej
                  j                  d5ddg«      ej
                  j                  de«      d6„ «       «       Z2ej
                  j                  de«      d7„ «       Z3ej
                  j                  d8ddg«      ej
                  j                  d9ejh                  dfejh                  dfejj                  dfejl                  dfg«      ej
                  j                  de«      d:„ «       «       «       Z7ej
                  j                  d;ddg«      ej
                  j                  de«      d<„ «       «       Z8ej
                  j                  de«      d=„ «       Z9ej
                  j                  dejt                  g«      ej
                  j                  de«      d>„ «       «       Z;ej
                  j                  dejx                  dfejz                  dfej|                  dfej~                  dfej€                  d?fej‚                  d@fg«      ej
                  j                  de«      dA„ «       «       ZBej
                  j                  de«      dB„ «       ZCej
                  j                  de«      dC„ «       ZDej
                  j                  dejŠ                  ejŒ                  g«      ej
                  j                  de«      dD„ «       «       ZGej
                  j                  de«      dE„ «       ZHej
                  j                  de«      dF„ «       ZIej
                  j                  de«      dG„ «       ZJej
                  j                  dej–                  dfej˜                  dfg«      ej
                  j                  deM«      dH„ «       «       ZNej
                  j                  dIg d#¢«      ej
                  j                  de«      dJ„ «       «       ZOej
                  j                  dIg d#¢«      ej
                  j                  de«      dK„ «       «       ZPej
                  j                  dLdMg dN¢g dO¢fg«      ej
                  j                  dIg d#¢«      ej
                  j                  de«      dP„ «       «       «       ZQej
                  j                  dQddg«      ej
                  j                  dIg d#¢«      ej
                  j                  de«      dR„ «       «       «       ZRej
                  j                  dQddg«      ej
                  j                  dSg d#¢«      ej
                  j                  de«      dT„ «       «       «       ZSej
                  j                  dIg d#¢«      ej
                  j                  de«      dU„ «       «       ZTej
                  j                  dVddg«      ej
                  j                  dIg d#¢«      ej
                  j                  de«      dW„ «       «       «       ZUej
                  j                  dIg d#¢«      ej
                  j                  de«      dX„ «       «       ZVej
                  j                  dIg d#¢«      ej
                  j                  de«      dY„ «       «       ZWej
                  j                  dIg dZ¢«      ej
                  j                  de«      d[„ «       «       ZXej
                  j                  de«      d\„ «       ZYd]„ ZZej
                  j                  d^ej¶                   e\jº                  d_«      ffg«      d`„ «       Z^y)aÚ	TestBatché   é   NT)Úcore_dimÚn_outÚkwargsr   Ú	broadcastÚcheck_kwargsc          
      ó¾  ‡‡— |€i n|}t        t        j                  |«      j                  j	                  «       «      }	t        |t        «      s|fn|} ||i |¤Ž}
|rQ |di t        t        |	|«      «      ¤|¤Ž}t        ||
«      D ]%  \  }}t        j                  j                  ||«       Œ' |dk(  r|
fn|
}|rt        j                  |Ž }|d   j                  d |  }t        |d   «      D ]¬  Št        |d   «      D ]™  Šˆˆfd„|D «       } ||i |¤Ž}|dk(  rt        j                  |«      fnt        d„ |D «       «      }t        |«      D ]H  }t!        ||   ‰‰f   ||   «       t        j                  ||   ‰‰f   «      ||   j                  k(  rŒHJ ‚ Œ› Œ® t        t#        «      «      D ])  }|€||   j$                  n|}||   j$                  |k(  rŒ)J ‚ |
S )Nr"   r   c              3   ó,   •K  — | ]  }|‰‰f   –— Œ y ­w©N© )Ú.0ÚarrayÚiÚjs     €€r   ú	<genexpr>z'TestBatch.batch_test.<locals>.<genexpr>?   s   øè ø€ Ò=¨U˜U 1 a 4�[Ñ=ùs   ƒc              3   óF   K  — | ]  }t        j                  |«      –— Œ y ­wr*   )r   Úasarray)r,   Úrefks     r   r0   z'TestBatch.batch_test.<locals>.<genexpr>B   s   è ø€ Ò>°$œRŸZ™Z¨×-Ñ>ùs   ‚!r+   )ÚlistÚinspectÚ	signatureÚ
parametersÚkeysÚ
isinstanceÚtupleÚdictÚzipr   ÚtestingÚassert_equalÚbroadcast_arraysr   Úranger2   r   Úlenr   )ÚselfÚfunÚarraysr#   r$   r%   r   r&   r'   r7   Úres2Úres1Úout1Úout2ÚresÚbatch_shapeÚ	arrays_ijÚrefÚkÚ	out_dtyper.   r/   s                       @@r   Ú
batch_testzTestBatch.batch_test    sø  ù€ ð �~‘¨6ˆÜœ'×+Ñ+¨CÓ0×;Ñ;×@Ñ@ÓBÓCˆ
Ü",¨V´UÔ";�&‘Àˆñ �FÐ%˜fÑ%ˆÙÙÑAœœc *¨fÓ5Ó6ÐA¸&ÑAˆDÜ! $¨›oò 4‘
��dÜ—
‘
×'Ñ'¨¨dÕ3ð4ð  !šˆt‰g¨ˆñ Ü×(Ñ(¨&Ð1ˆFØ˜Q‘i—o‘o j¨ yÐ1ˆÜ�{ 1‘~Ó&ò 	BˆAÜ˜; q™>Ó*ò B�Ü=°fÔ=�	Ù˜9Ð/¨Ñ/�Ø-2°aªZœŸ
™
 3›Ñ)ÜÑ>¸#Ô>Ó>ð ä˜u›ò B�AÜ# C¨¡F¨1¨a¨4¡L°#°a±&Ô9ÜŸ8™8 C¨¡F¨1¨a¨4¡LÓ1°S¸±V·\±\ÓAÐAÐAñBñBð	Bô ”s˜3“x“ò 	-ˆAØ(-¨˜˜A™Ÿš¸5ˆIØ�q‘6—<‘< 9Ó,Ð,Ð,ð	-ð ˆr   r   c                 óÂ   — t         j                  j                  d«      }|j                  d«      j                  |«      }| j	                  t
        j                  |«       y )Nì   ³TÁAH4fC©é   é   é   rU   )r   r   Údefault_rngr   rO   r   Ú	expm_cond©rB   r   r   r   s       r   Útest_expm_condzTestBatch.test_expm_condM   sD   € ä�i‰i×#Ñ#Ð$:Ó;ˆØ�J‰J�|Ó$×+Ñ+¨EÓ2ˆØ�‰œ×(Ñ(¨!Õ,r   c                 ó  — t         j                  j                  d«      }t        d|d|«      }| j	                  t
        j                  |t        d¬«      ¬«      }t        j                  |«      rJ ‚t        j                  |«      sJ ‚y ©NrQ   rR   ga2U0*©3?gü©ñÒMbP?©r   ©r%   )
r   r   rV   r   rO   r   Úissymmetricr;   ÚallÚany©rB   r   r   r   rI   s        r   Útest_issymmetriczTestBatch.test_issymmetricS   óe   € ä�i‰i×#Ñ#Ð$:Ó;ˆÜ  ¨u°d¸CÓ@ˆØ�o‰oœf×0Ñ0°!¼DÀd¼OˆoÓLˆÜ—6‘6˜#”;ÐˆÜ�v‰v�cŒ{Ð‰{r   c                 ó  — t         j                  j                  d«      }t        d|d|«      }| j	                  t
        j                  |t        d¬«      ¬«      }t        j                  |«      rJ ‚t        j                  |«      sJ ‚y r[   )
r   r   rV   r   rO   r   Úishermitianr;   r_   r`   ra   s        r   Útest_ishermitianzTestBatch.test_ishermitian[   rc   r   c                 óL  — t         j                  j                  d«      }|j                  d«      j                  |«      }| j	                  t
        j                  |t        dd¬«      d¬«      }t        j                  |dd«      }t         j                  j                  ||«       y )NrQ   )rS   rT   rU   é   rU   )ÚMÚNr"   )r%   r#   )
r   r   rV   r   rO   r   Údiagsvdr;   r=   r>   ©rB   r   r   r   rF   rE   s         r   Útest_diagsvdzTestBatch.test_diagsvdc   sw   € ä�i‰i×#Ñ#Ð$:Ó;ˆØ�J‰J�yÓ!×(Ñ(¨Ó/ˆØ�‰œvŸ~™~¨q¼ÀÀQ¼ÐRSˆÓTˆä�~‰~˜a  AÓ&ˆÜ
�
‰
×Ñ  dÕ+r   rC   c                 óâ   — t         j                  j                  d«      }t        d||¬«      }|t        j
                  k(  r|dt        j                  d|¬«      z  z   }| j                  ||«       y )NrQ   rR   ©r   r   rT   rU   ©r   )r   r   rV   r   r   ÚsqrtmÚeyerO   ©rB   rC   r   r   r   s        r   Útest_matmatzTestBatch.test_matmatl   s]   € ô �i‰i×#Ñ#Ð$:Ó;ˆÜ�|¨5°cÔ:ˆð ”&—,‘,ÒØ�A”b—f‘f˜Q eÔ,Ñ,Ñ,ˆAà�‰˜˜QÕr   c                 óž   — t         j                  j                  d«      }t        d||¬«      }| j	                  t
        j                  |«       y )NrQ   ©rS   rT   rU   rh   ro   )r   r   rV   r   rO   r   Ú
null_spacerX   s       r   Útest_null_spacezTestBatch.test_null_space|   s9   € ä�i‰i×#Ñ#Ð$:Ó;ˆÜ�|¨5°cÔ:ˆØ�‰œ×)Ñ)¨1Õ-r   c                 óÒ   — t         j                  j                  d«      }t        d||¬«      }| j	                  t
        j                  |t        t         j                  ¬«      ¬«       y )NrQ   ©r!   rU   rT   rT   ro   )Úfuncr]   )	r   r   rV   r   rO   r   Úfunmr;   ÚsinrX   s       r   Ú	test_funmzTestBatch.test_funm‚   sD   € ä�i‰i×#Ñ#Ð$:Ó;ˆÜ�|¨5°cÔ:ˆØ�‰œŸ™ Q¬t¼¿¹Ô/@ˆÕAr   c                 ó  — t         j                  j                  d«      }t        d||¬«      }| j	                  t
        j                  |ddi¬«      }t        j                  |d«      }t         j                  j                  ||«       y )NrQ   rz   ro   Útg      ø?r]   )	r   r   rV   r   rO   r   Úfractional_matrix_powerr=   r>   rl   s         r   Útest_fractional_matrix_powerz&TestBatch.test_fractional_matrix_powerˆ   si   € ä�i‰i×#Ñ#Ð$:Ó;ˆÜ�|¨5°cÔ:ˆØ�‰œv×=Ñ=¸qÈ#ÈcÈˆÓSˆä×-Ñ-¨a°Ó5ˆÜ
�
‰
×Ñ  dÕ+r   c                 óf  — t         j                  j                  d«      }t        d||¬«      }|dt        j                  d«      z  z   }| j                  t        j                  |«      }t        j                  |«      }t        ||«      D ]%  \  }}t         j                  j                  ||«       Œ' y )Nl	   8ÜÀ*k "¥XtlèTC rR   ro   rT   rU   )r   r   rV   r   rr   rO   r   Úlogmr<   r=   r>   )rB   r   r   r   rF   rE   Úres1iÚres2is           r   Ú	test_logmzTestBatch.test_logm‘   sŠ   € ô �i‰i×#Ñ#Ð$JÓKˆÜ�|¨5°cÔ:ˆØ�”"—&‘&˜“)‘‰OˆØ�‰œvŸ{™{¨AÓ.ˆä�{‰{˜1‹~ˆÜ  d›Oò 	2‰LˆE�5Ü�J‰J×#Ñ# E¨5Õ1ñ	2r   c                 ó¸   — t         j                  j                  d«      }t        d||¬«      }| j	                  t
        j                  |dt        d¬«      ¬«       y )NrQ   rR   ro   r!   T)Úreturn_rank©r$   r%   )r   r   rV   r   rO   r   Úpinvr;   rX   s       r   Ú	test_pinvzTestBatch.test_pinv�   sB   € ä�i‰i×#Ñ#Ð$:Ó;ˆÜ�|¨5°cÔ:ˆØ�‰œŸ™ Q¨a¼ÈÔ8NˆÕOr   c                 óì   — t         j                  j                  d«      }t        d||¬«      }| j	                  t
        j                  |d¬«       | j	                  t
        j                  |dddi¬«       y )	NrQ   rR   ro   r!   ©r$   ÚseparateTrŠ   )r   r   rV   r   rO   r   Úmatrix_balancerX   s       r   Útest_matrix_balancezTestBatch.test_matrix_balance£   s\   € ä�i‰i×#Ñ#Ð$:Ó;ˆÜ�|¨5°cÔ:ˆØ�‰œ×-Ñ-¨q¸ˆÔ:Ø�‰œ×-Ñ-¨q¸À:ÈdÐBSˆÕTr   c           	      óL  — t         j                  j                  d«      }t        d||¬«      }t        j                  t        dd«      D �cg c]  }t        j                  ||«      ‘Œ c}«      j                  d«      }| j                  t        j                  |d¬«       y c c}w )	NrQ   )rU   rU   ro   éýÿÿÿrT   ©r!   rT   rU   rU   r!   rŽ   )r   r   rV   r   r2   r@   ÚtriuÚreshaperO   r   Ú	bandwidth)rB   r   r   r   rM   s        r   Útest_bandwidthzTestBatch.test_bandwidthª   sv   € ä�i‰i×#Ñ#Ð$:Ó;ˆÜ�v U°Ô4ˆÜ�J‰J¬u°R¸«|Ö<¨!œŸ™  1�Ò<Ó=×EÑEÀlÓSˆØ�‰œ×(Ñ(¨!°1ˆÕ5ùò =s   ÁB!Ú	fun_n_outrT   c                 óÊ   — t         j                  j                  d«      }|\  }}t        d|d|«      }|dt        j                  d|¬«      z  z   }| j                  |||¬«       y )NrQ   rR   r   rU   rp   rŽ   )r   r   rV   r   rr   rO   )rB   r™   r   r   rC   r$   r   s          r   Útest_ldl_choleskyzTestBatch.test_ldl_cholesky±   s^   € ô �i‰i×#Ñ#Ð$:Ó;ˆØ‰
ˆˆUÜ  ¨u°a¸Ó=ˆØ�”"—&‘&˜ %Ô(Ñ(Ñ(ˆØ�‰˜˜Q eˆÕ,r   Ú
compute_uvFÚfull_matricesc           	      ó>  — t         j                  j                  d«      }t        d||¬«      }|rdnd}| j	                  t
        j                  ||t        ||¬«      ¬«       t        d||¬«      }| j	                  t
        j                  ||t        ||¬«      ¬«       y )	NrQ   ©rS   rT   r!   rU   ro   rT   r"   )rœ   r�   rŠ   )rS   rT   r!   r   )r   r   rV   r   rO   r   Úsvdr;   )rB   rœ   r�   r   r   r   r$   s          r   Útest_svdzTestBatch.test_svd»   sŒ   € ô �i‰i×#Ñ#Ð$:Ó;ˆÜ�|¨5°cÔ:ˆÙ‘ QˆØ�‰Ü�J‰J˜ Ü :¸]ÔKð 	ô 	
ô
 �|¨5°cÔ:ˆØ�‰Ü�J‰J˜ Ü :¸]ÔKð 	õ 	
r   c                 ó†   — t         j                  j                  d«      }t        d||¬«      }| j	                  ||d¬«       y )NrQ   rŸ   ro   r!   rŽ   ©r   r   rV   r   rO   rs   s        r   Útest_polar_qr_rqzTestBatch.test_polar_qr_rqÍ   ó9   € ô �i‰i×#Ñ#Ð$:Ó;ˆÜ�|¨5°cÔ:ˆØ�‰˜˜Q aˆÕ(r   ÚpivotingÚmode)ÚfullÚeconomicÚrc                 óº   ‡‡— t         j                  j                  d«      }t        d||¬«      }| j	                  ˆˆfd„|‰r‰dk(  rdnddz   ¬	«       y d¬	«       y )
Né90  rŸ   ro   c                 ó4   •— t        j                  | ‰‰¬«      S )N©r§   r¦   )r   Úqr)Úxr§   r¦   s    €€r   ú<lambda>z#TestBatch.test_qr.<locals>.<lambda>Ú   s   ø€ ¤&§)¡)¨A°DÀ8Ô"L€ r   rª   r"   r!   r   rŽ   r£   )rB   r§   r   r¦   r   Úas    ` `  r   Útest_qrzTestBatch.test_qrÔ   s^   ù€ ô �i‰i×#Ñ# EÓ*ˆÜ�|¨5°cÔ:ˆØ�‰ÔLÈaÙ?G D¨C¢K™q°Q¸!Ñ;ð 	õ 	PØMNð 	õ 	Pr   c           
      ó  — t         j                  j                  d«      }t        d||¬«      }t	        j
                  |d|¬«      ^\  }}}}t        |j                  d   «      D ]§  }	t        |j                  d   «      D ]Š  }
t	        j
                  ||	|
d d …d d …f   d|¬«      ^\  }}}}t        ||	|
d d …d d …f   |«       t        ||	|
d d …f   |«       t        ||	|
d d …d d …f   |«       |sŒqt        |d   |	|
d d …f   |d   «       ŒŒ Œ© y )Nr¬   rŸ   ro   Úrawr®   r   r"   )	r   r   rV   r   r   r¯   r@   r   r   )rB   r   r¦   r   r²   Úq_rawÚtaurª   Úotherr.   r/   Úq_raw_ijÚtau_ijÚr_ijÚother_ijs                  r   Útest_qr_rawzTestBatch.test_qr_rawÝ   s  € ô �i‰i×#Ñ# EÓ*ˆÜ�|¨5°cÔ:ˆÜ"(§)¡)¨A°EÀHÔ"MÐ‰ˆ��a˜%ô �q—w‘w˜q‘zÓ"ò 	DˆAÜ˜1Ÿ7™7 1™:Ó&ò 
D�Ü6<·i±iØ�a˜šAšq�j‘M¨¸ô7Ð3Ñ"�˜6 D¨8ô    a¨ªAªq jÑ 1°8Ô<Ü  A qª! G¡¨fÔ5Ü  ! Qªª1 *¡¨tÔ4âÜ# E¨!¡H¨Q°²1¨WÑ$5°xÀ±{ÕCñ
Dñ	Dr   Úcdim)©rS   )rS   rU   )r!   rT   rS   rU   c                 ót  — t         j                  j                  d«      }t        d||¬«      }t        |||¬«      }t	        j
                  ||d¬«      }t	        j                  |«      \  }}||z  }	|t         j                  t         j                  hv rdnd}
t        |d   |	|
¬	«       t        |d
   ||
¬	«       y )NrQ   ©r!   rT   rS   rS   ro   Úleft)r§   ç�íµ ÷Æ°>çê-�™—q=r   r\   r"   )
r   r   rV   r   r   Úqr_multiplyr¯   Úfloat32Ú	complex64r   )rB   r¾   r   r   r   ÚcrI   Úqrª   rL   r   s              r   Útest_qr_multiplyzTestBatch.test_qr_multiplyó   sž   € ô �i‰i×#Ñ#Ð$:Ó;ˆÜ�|¨5°cÔ:ˆÜ�t 5¨cÔ2ˆÜ× Ñ   A¨FÔ3ˆÜ�y‰y˜‹|‰ˆˆ1Ø�!‰eˆØ¤§¡¬R¯\©\Ð :Ñ:‰tÀˆÜ˜˜A™ ¨$Õ/Ü˜˜A™ ¨Ö-r   Úuvdimr¿   )rT   )rU   rS   r!   )rU   rT   r!   c                 óø  — t         j                  j                  d«      }|\  }}t        d||¬«      }t        |||¬«      }t        |||¬«      }t	        j
                  |«      \  }	}
t	        j                  |	|
||«      }t        d«      D ]n  }|	|   |
|   }}|j                  dk(  r||fn	||   ||   f\  }}t	        j                  ||||«      }t        |d   |   |d   «       t        |d   |   |d   «       Œp y )NrQ   ©rU   rS   rT   ro   rU   r"   r   )
r   r   rV   r   r   r¯   Ú	qr_updater@   Úndimr   )rB   rË   r   r   ÚudimÚvdimr   ÚuÚvrÉ   rª   rI   r.   ÚqiÚriÚuiÚviÚref_is                     r   Útest_qr_updatezTestBatch.test_qr_update   sþ   € ô �i‰i×#Ñ#Ð$:Ó;ˆØ‰
ˆˆdÜ�y¨°3Ô7ˆÜ�t 5¨cÔ2ˆÜ�t 5¨cÔ2ˆÜ�y‰y˜‹|‰ˆˆ1Ü×Ñ˜q ! Q¨Ó*ˆÜ�q“ò 	1ˆAØ�q‘T˜1˜Q™4�ˆBØ Ÿv™v¨š{�a˜‘V°°1±°q¸±t°‰FˆB�Ü×$Ñ$ R¨¨R°Ó4ˆEÜ˜C ™F 1™I u¨Q¡xÔ0Ü˜C ™F 1™I u¨Q¡xÕ0ñ	1r   rÐ   )rU   rT   rS   Úkdimr+   ©rU   c                 ó  — t         j                  j                  d«      }t        d||¬«      }t        |||¬«      }|j	                  dd|¬«      }t        j                  |«      \  }}	t        j                  ||	||«      }
t        d«      D ]z  }||   |	|   }}|j                  dk(  r|n||   }|j                  dk(  r|n||   }t        j                  ||||«      }t        |
d   |   |d   «       t        |
d   |   |d   «       Œ| y )	NrQ   ©rU   rS   rS   ro   r   rS   r   rU   r"   )r   r   rV   r   Úintegersr   r¯   Ú	qr_insertr@   rÏ   r   )rB   rÐ   rÚ   r   r   r   rÒ   rM   rÉ   rª   rI   r.   rÔ   rÕ   ÚkirÖ   rØ   s                    r   Útest_qr_insertzTestBatch.test_qr_insert  s   € ô �i‰i×#Ñ#Ð$:Ó;ˆÜ�y¨°3Ô7ˆÜ�t 5¨cÔ2ˆØ�L‰L˜˜A DˆLÓ)ˆÜ�y‰y˜‹|‰ˆˆ1Ü×Ñ˜q ! Q¨Ó*ˆÜ�q“ò 	1ˆAØ�q‘T˜1˜Q™4�ˆBØ—f‘f ’k‘ q¨¡tˆBØ—f‘f ’k‘ q¨¡tˆBÜ×$Ñ$ R¨¨R°Ó4ˆEÜ˜C ™F 1™I u¨Q¡xÔ0Ü˜C ™F 1™I u¨Q¡xÕ0ñ	1r   c                 óÆ  — t         j                  j                  d«      }t        d||¬«      }|j	                  dd|¬«      }t        j                  |«      \  }}t        j                  |||«      }t        d«      D ]c  }	||	   ||	   }}
|j                  dk(  r|n||	   }t        j                  |
||«      }t        |d   |	   |d   «       t        |d   |	   |d   «       Œe y )NrQ   rÝ   ro   r   rU   r   r"   )r   r   rV   r   rÞ   r   r¯   Ú	qr_deleter@   rÏ   r   )rB   rÚ   r   r   r   rM   rÉ   rª   rI   r.   rÔ   rÕ   rà   rØ   s                 r   Útest_qr_deletezTestBatch.test_qr_delete#  sÙ   € ô �i‰i×#Ñ#Ð$:Ó;ˆÜ�y¨°3Ô7ˆØ�L‰L˜˜A DˆLÓ)ˆÜ�y‰y˜‹|‰ˆˆ1Ü×Ñ˜q ! QÓ'ˆÜ�q“ò 	1ˆAØ�q‘T˜1˜Q™4�ˆBØ—f‘f ’k‘ q¨¡tˆBÜ×$Ñ$ R¨¨RÓ0ˆEÜ˜C ™F 1™I u¨Q¡xÔ0Ü˜C ™F 1™I u¨Q¡xÕ0ñ	1r   c                 ó†   — t         j                  j                  d«      }t        d||¬«      }| j	                  ||d¬«       y )NrQ   rR   ro   r!   rŽ   r£   rs   s        r   Útest_schur_luzTestBatch.test_schur_lu2  r¥   r   Úcalc_qc                 óÄ   — t         j                  j                  d«      }t        d||¬«      }|rdnd}| j	                  t
        j                  ||t        |¬«      ¬«       y )NrQ   rR   ro   r!   r"   )rç   rŠ   )r   r   rV   r   rO   r   Ú
hessenbergr;   )rB   rç   r   r   r   r$   s         r   Útest_hessenbergzTestBatch.test_hessenberg9  sO   € ô �i‰i×#Ñ#Ð$:Ó;ˆÜ�|¨5°cÔ:ˆÙ‘ ˆØ�‰œ×)Ñ)¨1°EÄ$ÈfÔBUˆÕVr   Úeigvals_onlyc                 óÄ   — t         j                  j                  d«      }t        d||¬«      }|rdnd}| j	                  t
        j                  ||t        |¬«      ¬«       y )NrQ   rR   ro   r"   r!   ©rë   rŠ   )r   r   rV   r   rO   r   Ú
eig_bandedr;   )rB   rë   r   r   r   r$   s         r   Útest_eig_bandedzTestBatch.test_eig_bandedA  sV   € ô �i‰i×#Ñ#Ð$:Ó;ˆÜ�|¨5°cÔ:ˆÙ!‘ qˆØ�‰œ×)Ñ)¨1°EÜ#°Ô>ð 	õ 	@r   c                 óž   — t         j                  j                  d«      }t        d||¬«      }| j	                  t
        j                  |«       y )NrQ   rR   ro   )r   r   rV   r   rO   r   Úeigvals_bandedrX   s       r   Útest_eigvals_bandedzTestBatch.test_eigvals_bandedJ  s9   € ä�i‰i×#Ñ#Ð$:Ó;ˆÜ�|¨5°cÔ:ˆØ�‰œ×-Ñ-¨qÕ1r   Útwo_inÚ
fun_n_noutc                 ó`  — t         j                  j                  d«      }|\  }}t        d|d|«      }t        d|d|«      }|dt        j                  d«      j                  |«      z  z   }|r||fn|f}	|dk(  r|t        j                  k(  rt        d¬«      ni }
| j                  ||	||
¬	«       y )
NrQ   ©r"   rT   rU   rU   r   ©r!   r"   rU   rU   rU   r"   Trí   rŠ   )
r   r   rV   r   rr   r   r   Úeighr;   rO   )rB   ró   rô   r   r   rC   r$   r   ÚBÚargsr%   s              r   Ú	test_eighzTestBatch.test_eighP  s¥   € ô
 �i‰i×#Ñ#Ð$:Ó;ˆØ‰
ˆˆUÜ  ¨u°a¸Ó=ˆÜ  ¨u°a¸Ó=ˆØ�”"—&‘&˜“)×"Ñ" 5Ó)Ñ)Ñ)ˆÙ��1‰v a TˆØ-2°aªZ¸CÄÇÁÒ<L” 4Õ(ÐSUˆØ�‰˜˜T¨°vˆÕ>r   Úcompute_expmc                 óä   — t         j                  j                  d«      }t        d||¬«      }t        d||¬«      }|rdnd}| j	                  t
        j                  ||f|t        |¬«      ¬«       y )	NrQ   rö   ro   r÷   r!   r"   )rü   rŠ   )r   r   rV   r   rO   r   Úexpm_frechetr;   )rB   rü   r   r   r   ÚEr$   s          r   Útest_expm_frechetzTestBatch.test_expm_frechet^  sh   € ô �i‰i×#Ñ#Ð$:Ó;ˆÜ�|¨5°cÔ:ˆÜ�|¨5°cÔ:ˆÙ!‘ qˆØ�‰œ×+Ñ+¨a°¨V¸5Ü#°Ô>ð 	õ 	@r   c                 óv  — t         j                  j                  d«      }t        d||¬«      }t        d||¬«      }| j	                  t
        j                  ||f«       d\  }}}t        dd||f||¬«      }t        dd||f||¬«      }t        j                  ||«      j                  ddt        ||«      fk(  sJ ‚y )	NrQ   )r"   rT   rU   rT   ro   )r!   r"   rU   rT   rÍ   r"   rT   r!   )	r   r   rV   r   rO   r   Úsubspace_anglesr   Úmin)rB   r   r   r   rù   ri   rj   ÚKs           r   Útest_subspace_angleszTestBatch.test_subspace_anglesh  s°   € ä�i‰i×#Ñ#Ð$:Ó;ˆÜ�|¨5°cÔ:ˆÜ�|¨5°cÔ:ˆØ�‰œ×.Ñ.°°A°Ô7à‰ˆˆ1ˆaÜ˜˜1˜a �|¨5°cÔ:ˆÜ˜˜1˜a �|¨5°cÔ:ˆÜ×%Ñ% a¨Ó+×1Ñ1°a¸¼CÀÀ1»IÐ5FÒFÐFÑFr   c                 ó‚   — t         j                  j                  d«      }t        d||¬«      }| j	                  ||«       y )NrQ   ©r!   rT   rU   rS   ro   r£   rs   s        r   Útest_svdvalszTestBatch.test_svdvalst  s5   € ô �i‰i×#Ñ#Ð$:Ó;ˆÜ�|¨5°cÔ:ˆØ�‰˜˜QÕr   rU   rh   c                 ó°   — t         j                  j                  d«      }|\  }}t        d||¬«      }t        d||¬«      }| j	                  |||f|¬«       y )NrQ   r”   ro   rŽ   r£   )rB   r™   r   r   rC   r$   r   rù   s           r   Útest_two_generic_matrix_inputsz(TestBatch.test_two_generic_matrix_inputs{  sT   € ô �i‰i×#Ñ#Ð$:Ó;ˆØ‰
ˆˆUÜ�|¨5°cÔ:ˆÜ�|¨5°cÔ:ˆØ�‰˜˜a ˜V¨5ˆÕ1r   c                 ó€  — t         j                  j                  d«      }d\  }}t        d||¬«      }|dd |…d |…f   |dd |…|d …f   |d|d …d |…f   |d|d …|d …f   f\  }}}}	t	        j
                  |||«      }
t	        j
                  ||||	f«      }t        |
|«      D ]%  \  }}t         j                  j                  ||«       Œ' t        d«      D ]g  }t        d«      D ]W  }t	        j
                  |||f   ||«      }t        |
|«      D ]*  \  }}t         j                  j                  |||f   |«       Œ, ŒY Œi y )NrQ   )rT   rU   )r!   rT   é
   r  ro   .r!   rT   )
r   r   rV   r   r   Úcossinr<   r=   r>   r@   )rB   r   r   ÚprÉ   ÚXÚx11Úx12Úx21Úx22rI   rL   Úres_irØ   r/   rM   Úref_jkÚref_ijks                     r   Útest_cossinzTestBatch.test_cossin‰  s\  € ä�i‰i×#Ñ#Ð$:Ó;ˆØ‰ˆˆ1Ü�~¨U¸Ô<ˆØ  R a R¨¨!¨ ™n¨a°°R°a°R¸¹°©nØ  Q¡R¨¨!¨ ™n¨a°°Q±R¸¹°©nð>ÑˆˆS�#�sä�m‰m˜A˜q !Ó$ˆÜ�m‰m˜S # s¨CÐ0Ó1ˆÜ  S›Mò 	2‰LˆE�5Ü�J‰J×#Ñ# E¨5Õ1ð	2ô �q“ò 	BˆAÜ˜1“Xò B�ÜŸ™ q¨¨A¨¡w°°1Ó5�Ü&)¨#¨vÓ&6ò B‘N�E˜7Ü—J‘J×+Ñ+¨E°!°Q°$©K¸ÕAñBñBñ	Br   c                 óÜ   — t         j                  j                  d«      }t        d||¬«      }t        d||¬«      }t        d||¬«      }| j	                  t
        j                  |||f«       y )NrQ   rÁ   ro   )r   r   rV   r   rO   r   Úsolve_sylvester)rB   r   r   r   rù   ÚCs         r   Útest_sylvesterzTestBatch.test_sylvester›  s[   € ä�i‰i×#Ñ#Ð$:Ó;ˆÜ�|¨5°cÔ:ˆÜ�|¨5°cÔ:ˆÜ�|¨5°cÔ:ˆØ�‰œ×.Ñ.°°A°q°	Õ:r   c           	      óÜ  — t         j                  j                  d«      }t        d||¬«      }t        d||¬«      }t	        d|d|¬«      }t	        d|d|¬«      }|dt        j
                  d«      z  z   }|dt        j
                  d«      z  z   }|dt        j
                  d«      z  z   }|dt        j
                  d«      z  z   }t        j
                  d«      }t        j                  d«      }	| j                  |||||f«       | j                  ||||||f«       | j                  |||||||	f«        |||||«      }
 ||||||	¬«      }t         j                  j                  |
|«       y )	NrQ   rÁ   ro   r   ©r   r   r   rS   )rS   rS   )Ús)
r   r   rV   r   r   rr   ÚzerosrO   r=   r   )rB   rC   r   r   r²   ÚbrÉ   rª   Úer  rI   rL   s               r   Útest_arezTestBatch.test_are£  sB  € ô �i‰i×#Ñ#Ð$:Ó;ˆÜ�|¨5°cÔ:ˆÜ�|¨5°cÔ:ˆÜ  °UÀÈÔLˆÜ  °UÀÈÔLˆØ�”"—&‘&˜“)‘‰OˆØ�”"—&‘&˜“)‘‰OˆØ�”"—&‘&˜“)‘‰OˆØ�”"—&‘&˜“)‘‰OˆÜ�F‰F�1‹IˆÜ�H‰H�VÓˆØ�‰˜˜a  A q˜\Ô*Ø�‰˜˜a  A q¨!˜_Ô-Ø�‰˜˜a  A q¨!¨QÐ/Ô0á�!�Q˜˜1‹oˆÙ�!�Q˜˜1 Ô"ˆÜ
�
‰
×"Ñ" 3¨Õ,r   c                 óÖ   — t         j                  j                  d«      }t        d||¬«      }t	        j
                  |«      \  }}| j                  t        j                  ||fd¬«       y )NrQ   r”   ro   r!   rŽ   )r   r   rV   r   r   ÚschurrO   Úrsf2csf)rB   r   r   r   ÚTÚZs         r   Útest_rsf2cszTestBatch.test_rsf2csº  sP   € ä�i‰i×#Ñ#Ð$:Ó;ˆÜ�|¨5°cÔ:ˆÜ�|‰|˜A‹‰ˆˆ1Ø�‰œŸ™¨¨A¨°aˆÕ8r   c                 ó²   — t         j                  j                  d«      }t        d||¬«      }d|ddd d …f<   | j	                  t
        j                  |«       y )NrQ   )rS   rU   rT   rh   ro   r  .r   )r   r   rV   r   rO   r   Úcholesky_banded)rB   r   r   Úabs       r   Útest_cholesky_bandedzTestBatch.test_cholesky_bandedÁ  sH   € ä�i‰i×#Ñ#Ð$:Ó;ˆÜ˜¨E°sÔ;ˆØˆˆ3�’Aˆ:‰Ø�‰œ×.Ñ.°Õ3r   c                 ó¬  — t         j                  j                  d«      }t        d||¬«      }t        d||¬«      }t        d||¬«      }t        j                  |d«      }t        j                  |d«      }t        j                  |d«      }| j                  t        j                  |||fd	d	¬
«      }	t        j                  |||«      }
t        |
|	«       y )NrQ   )r"   rT   r"   rT   ro   )r!   r"   rT   rh   )r"   r"   rT   r!   )r!   rT   r"   rT   )r!   rT   rT   rh   )r!   rT   rT   r!   F)r'   r&   )	r   r   rV   r   Úbroadcast_torO   r   Ú
block_diagr   )rB   r   r   r²   r   rÈ   Úa2Úb2Úc2rL   rI   s              r   Útest_block_diagzTestBatch.test_block_diagÈ  s¼   € ä�i‰i×#Ñ#Ð$:Ó;ˆÜ�|¨5°cÔ:ˆÜ�|¨5°cÔ:ˆÜ�|¨5°cÔ:ˆô �_‰_˜Q Ó-ˆÜ�_‰_˜Q Ó-ˆÜ�_‰_˜Q Ó-ˆØ�o‰oœf×/Ñ/°"°b¸"°Ø+0¸Eð ó Cˆô ×Ñ  1 aÓ(ˆÜ˜˜SÕ!r   c                 ó´   — t         j                  j                  d«      }|\  }}t        d||¬«      }t        d||¬«      }| j	                  |||fd|d¬«       y )NrQ   )rT   rU   rS   ro   )rT   rU   rU   r"   F)r#   r$   r&   r£   )rB   r™   r   r   rC   r$   Údr!  s           r   Útest_eigh_tridiagonalzTestBatch.test_eigh_tridiagonalÛ  sX   € ô
 �i‰i×#Ñ#Ð$:Ó;ˆØ‰
ˆˆUÜ�y¨°3Ô7ˆÜ�y¨°3Ô7ˆØ�‰˜˜a ˜V¨a°uÈˆÕNr   Úbdimc                 óÂ  — t         j                  j                  d«      }t        d||¬«      }t        |||¬«      }t	        j
                  ||«      }t        |«      dk(  r*|dt         j                  f   }|dt         j                  f   }t        ||z  |z
  dd¬«       d	}|t         j                  u rd
}t        |t         j                  j                  ||«      |¬«       y ©NrQ   rÁ   ro   r"   .r   ç�íµ ÷ÆÀ>r\   gTäqs*É>g�íµ ÷ÆÐ>)
r   r   rV   r   r   ÚsolverA   Únewaxisr   rÆ   ©rB   r7  r   r   r   r   r°   r   s           r   Ú
test_solvezTestBatch.test_solveæ  s¹   € ô �i‰i×#Ñ#Ð$:Ó;ˆÜ�|¨5°cÔ:ˆÜ�t 5¨cÔ2ˆÜ�L‰L˜˜AÓˆÜˆt‹9˜Š>Ø�#”r—z‘z�/Ñ"ˆAØ�#”r—z‘z�/Ñ"ˆAÜ˜˜A™ ™	 1¨4Õ0ØˆØ”B—J‘JÑØˆDÜ˜œ2Ÿ9™9Ÿ?™?¨1¨aÓ0°tÖ<r   c                 óì  — t         j                  j                  d«      }t        d||¬«      }t        |||¬«      }t	        j
                  |«      }t	        j                  ||«      }t        |«      dk(  r*|dt         j                  f   }|dt         j                  f   }t        ||z  |z
  dd¬«       d	}|t         j                  u rd
}t        |t         j                  j                  ||«      |¬«       y r9  )r   r   rV   r   r   Ú	lu_factorÚlu_solverA   r<  r   rÆ   r;  )	rB   r7  r   r   r   r   Ú
lu_and_pivr°   r   s	            r   Útest_lu_solvezTestBatch.test_lu_solveö  sÉ   € ô �i‰i×#Ñ#Ð$:Ó;ˆÜ�|¨5°cÔ:ˆÜ�t 5¨cÔ2ˆÜ×%Ñ% aÓ(ˆ
Ü�O‰O˜J¨Ó*ˆÜˆt‹9˜Š>Ø�#”r—z‘z�/Ñ"ˆAØ�#”r—z‘z�/Ñ"ˆAÜ˜˜A™ ™	 1¨4Õ0ØˆØ”B—J‘JÑØˆDÜ˜œ2Ÿ9™9Ÿ?™?¨1¨aÓ0°tÖ<r   Úl_and_u)r"   r"   )r!   r"   r   )r   r"   r!   c                 óþ  — t         j                  j                  d«      }|\  }}t        d||¬«      }t        |||¬«      }t	        j
                  ||f||«      }	t        d«      D ]–  }
t        d«      D ]†  }t        |«      dk  r|n||
|f   }t        j                  |«      dk(  r|n||   }t        j                  |«      dk(  r|n||   }t	        j
                  ||f||
|f   |«      }t        |	|
|f   |«       Œˆ Œ˜ y )NrQ   ©r!   rT   rT   rS   ro   r!   rT   r   )
r   r   rV   r   r   Úsolve_bandedr@   rA   rÏ   r   )rB   rD  r7  r   r   ÚlrÒ   r+  r   r°   r.   r/   ÚbijÚljÚujÚxijs                   r   Útest_solve_bandedzTestBatch.test_solve_banded  sù   € ô �i‰i×#Ñ#Ð$:Ó;ˆØ‰ˆˆ1Ü˜¨E°sÔ;ˆÜ�t 5¨cÔ2ˆÜ×Ñ  A ¨¨AÓ.ˆÜ�q“ò 	.ˆAÜ˜1“Xò .�Ü˜t›9¨š>‘a¨q°°A°©w�ÜŸ'™' !›*¨š/‘Q¨q°©t�ÜŸ'™' !›*¨š/‘Q¨q°©t�Ü×)Ñ)¨2¨r¨(°B°q¸!°t±H¸cÓB�Ü  ! Q $¡¨Õ-ñ.ñ	.r   Ú
separate_rc                 ó¼  — t         j                  j                  d«      }t        d||¬«      }t        d||¬«      }|r||fn|}t        |||¬«      }t	        j
                  ||«      }	t        d«      D ]g  }
t        d«      D ]W  }t        |«      dk  r|n||
|f   }|r||
|f   ||
|f   fn||
|f   }t	        j
                  ||«      }t        |	|
|f   |«       ŒY Œi y )NrQ   ©r!   rT   rS   ro   r!   rT   )	r   r   rV   r   r   Úsolve_toeplitzr@   rA   r   )rB   rN  r7  r   r   rÈ   rª   Úc_or_crr   r°   r.   r/   rI  Ú
c_or_cr_ijrL  s                  r   Útest_solve_toeplitzzTestBatch.test_solve_toeplitz  së   € ô �i‰i×#Ñ#Ð$:Ó;ˆÜ�y¨°3Ô7ˆÜ�y¨°3Ô7ˆÙ&�1�a‘&¨AˆÜ�t 5¨cÔ2ˆÜ×!Ñ! '¨1Ó-ˆÜ�q“ò 	.ˆAÜ˜1“Xò .�Ü˜t›9¨š>‘a¨q°°A°©w�Ù3=˜a  1 ™g q¨¨A¨¡wÑ/À1ÀQÈÀTÁ7�
Ü×+Ñ+¨J¸Ó<�Ü  ! Q $¡¨Õ-ñ	.ñ	.r   Úxdimc                 ó¢  — t         j                  j                  d«      }t        d||¬«      }t        d||¬«      }|r||fn|}t        |||¬«      }t	        j
                  ||«      }	|rt	        j                  ||«      |z  }
nt	        j                  |«      |z  }
|t         j                  t         j                  hv rdnd}t        |	|
|¬«       y )NrQ   rP  ro   rÃ   rÄ   r\   )
r   r   rV   r   r   Úmatmul_toeplitzÚtoeplitzrÆ   rÇ   r   )rB   rN  rU  r   r   rÈ   rª   rR  r°   rI   rL   r   s               r   Útest_matmul_toeplitzzTestBatch.test_matmul_toeplitz)  s´   € ô �i‰i×#Ñ#Ð$:Ó;ˆÜ�y¨°3Ô7ˆÜ�y¨°3Ô7ˆÙ&�1�a‘&¨AˆÜ�t 5¨cÔ2ˆÜ×$Ñ$ W¨aÓ0ˆÙÜ—/‘/ ! QÓ'¨!Ñ+‰Cä—/‘/ !Ó$ qÑ(ˆCØ¤§¡¬R¯\©\Ð :Ñ:‰tÀˆÜ˜˜S tÖ,r   c                 óø  — t         j                  j                  d«      }t        d|d|¬«      }|dt        j                  d«      z  z   }t        j                  |«      }t        |||¬«      }t        j                  ||«      }t        |«      dk(  r*|dt         j                  f   }|dt         j                  f   }t        ||z  |z
  dd	¬
«       t        |t         j
                  j                  ||«      d¬
«       y )NrQ   rÁ   r   r  rS   ro   r"   .rÃ   r\   r:  )r   r   rV   r   rr   r   Ú
cho_factorr   Ú	cho_solverA   r<  r   r;  )rB   r7  r   r   r   Úc_and_lowerr   r°   s           r   Útest_cho_solvezTestBatch.test_cho_solve:  sÌ   € ô �i‰i×#Ñ#Ð$:Ó;ˆÜ  °UÀÈÔLˆØ�”"—&‘&˜“)‘‰OˆÜ×'Ñ'¨Ó*ˆÜ�t 5¨cÔ2ˆÜ×Ñ˜[¨!Ó,ˆÜˆt‹9˜Š>Ø�#”r—z‘z�/Ñ"ˆAØ�#”r—z‘z�/Ñ"ˆAÜ˜˜A™ ™	 1¨4Õ0Ü˜œ2Ÿ9™9Ÿ?™?¨1¨aÓ0°tÖ<r   Úlowerc                 óÆ  — t         j                  j                  d«      }t        d||¬«      }|rdnd}d|d d …d d …|f<   t	        j
                  ||¬«      }t        |||¬«      }t	        j                  ||f|«      }	t        d«      D ]W  }
t        d	«      D ]G  }t        |«      dk  r|n||
|f   }t	        j                  ||
|f   |f|«      }t        |	|
|f   |«       ŒI ŒY y )
NrQ   rF  ro   r   r   r  ©r_  r!   rT   )
r   r   rV   r   r   r*  Úcho_solve_bandedr@   rA   r   )rB   r_  r7  r   r   r   Úrow_diagÚcbr   r°   r.   r/   rI  rL  s                 r   Útest_cho_solve_bandedzTestBatch.test_cho_solve_bandedI  sæ   € ô �i‰i×#Ñ#Ð$:Ó;ˆÜ�|¨5°cÔ:ˆÙ‘1 2ˆØˆŠ!ŠQ�ˆ.ÑÜ×#Ñ# A¨UÔ3ˆÜ�t 5¨cÔ2ˆÜ×#Ñ# R¨ K°Ó3ˆÜ�q“ò 	.ˆAÜ˜1“Xò .�Ü˜t›9¨š>‘a¨q°°A°©w�Ü×-Ñ-¨r°!°Q°$©x¸Ð.?ÀÓE�Ü  ! Q $¡¨Õ-ñ.ñ	.r   c                 ó„  — t         j                  j                  d«      }t        d||¬«      }d|d d …d d …df<   t        |||¬«      }t	        j
                  ||«      }t        d«      D ]U  }t        d«      D ]E  }t        |«      dk  r|n|||f   }	t	        j
                  |||f   |	«      }
t        |||f   |
«       ŒG ŒW y )NrQ   rF  ro   r  r   r!   rT   )	r   r   rV   r   r   Úsolveh_bandedr@   rA   r   )rB   r7  r   r   r   r   r°   r.   r/   rI  rL  s              r   Útest_solveh_bandedzTestBatch.test_solveh_bandedZ  sÁ   € ô �i‰i×#Ñ#Ð$:Ó;ˆÜ�|¨5°cÔ:ˆØˆŠ!ŠQ�ˆ(‰Ü�t 5¨cÔ2ˆÜ× Ñ   AÓ&ˆÜ�q“ò 	.ˆAÜ˜1“Xò .�Ü˜t›9¨š>‘a¨q°°A°©w�Ü×*Ñ*¨1¨Q°¨T©7°CÓ8�Ü  ! Q $¡¨Õ-ñ.ñ	.r   c                 ó  — t         j                  j                  d«      }t        d||¬«      }t        j                  |«      }t        |||¬«      }t        j                  ||d¬«      }t        |«      dk(  r*|dt         j                  f   }|dt         j                  f   }|t         j                  t         j                  fv rdnd	}t        ||z  |z
  d
|¬«       t        |t         j
                  j                  ||«      d|z  ¬«       y )NrQ   rÁ   ro   Tra  r"   .g»½×Ùß|Û=g-Cëâ6*?r   r\   rS   )r   r   rV   r   Útrilr   Úsolve_triangularrA   r<  Ú
complex128Úfloat64r   r;  r=  s           r   Útest_solve_triangularzTestBatch.test_solve_triangularh  sÓ   € ô �i‰i×#Ñ#Ð$:Ó;ˆÜ�|¨5°cÔ:ˆÜ�G‰G�A‹JˆÜ�t 5¨cÔ2ˆÜ×#Ñ# A q°Ô5ˆÜˆt‹9˜Š>Ø�#”r—z‘z�/Ñ"ˆAØ�#”r—z‘z�/Ñ"ˆAØ¤"§-¡-´·±Ð!<Ñ<‰uÀ$ˆÜ˜˜A™ ™	 1¨4Õ0Ü˜œ2Ÿ9™9Ÿ?™?¨1¨aÓ0°q¸±vÖ>r   )rÛ   )rU   rT   )r!   rT   rU   rT   c                 óh  — t         j                  j                  d«      }t        d||¬«      }t        |||¬«      }t	        j
                  ||«      }|d   }t        |«      dk(  r*|dt         j                  f   }|dt         j                  f   }t        ||z  |z
  dd¬«       t        |«      d	k(  sJ ‚y )
NrQ   r  ro   r   r"   .r:  r\   rU   )	r   r   rV   r   r   ÚlstsqrA   r<  r   )rB   r7  r   r   r   r   rI   r°   s           r   Ú
test_lstsqzTestBatch.test_lstsqw  s¡   € ô �i‰i×#Ñ#Ð$:Ó;ˆÜ�|¨5°cÔ:ˆÜ�t 5¨cÔ2ˆÜ�l‰l˜1˜aÓ ˆØ�‰FˆÜˆt‹9˜Š>Ø�#”r—z‘z�/Ñ"ˆAØ�#”r—z‘z�/Ñ"ˆAÜ˜˜A™ ™	 1¨4Õ0Ü�3‹x˜1Š}Ð‰}r   c                 ó¸   — t         j                  j                  d«      }t        d||¬«      }| j	                  t
        j                  |t        dd¬«      ¬«       y )NrQ   rv   ro   rT   i¸¿ ©Úsketch_sizer   r]   )r   r   rV   r   rO   r   Úclarkson_woodruff_transformr;   rX   s       r   Ú test_clarkson_woodruff_transformz*TestBatch.test_clarkson_woodruff_transform…  sK   € ä�i‰i×#Ñ#Ð$:Ó;ˆÜ�|¨5°cÔ:ˆØ�‰œ×:Ñ:¸AÜ#°°vÔ>ð 	õ 	@r   c                 ó8  — t         j                  j                  d«      }t        dt         j                  |¬«      }t        j                  |«      }d}t        j                  t        |¬«      5  t        j                  |d|¬«       d d d «       y # 1 sw Y   y xY w)NrQ   rv   ro   z1Batch support for sparse arrays is not available.©ÚmatchrT   rs  )r   r   rV   r   rm  r   Ú	coo_arrayÚpytestÚraisesÚNotImplementedErrorr   ru  )rB   r   r   Úmessages       r   Ú'test_clarkson_woodruff_transform_sparsez1TestBatch.test_clarkson_woodruff_transform_sparseŒ  sx   € Ü�i‰i×#Ñ#Ð$:Ó;ˆÜ�|¬2¯:©:¸3Ô?ˆÜ×Ñ˜QÓˆØEˆÜ�]‰]Ô.°gÔ>ñ 	JÜ×.Ñ.¨q¸aÀSÕI÷	J÷ 	Jñ 	Jús   Á.BÂBzf, args)r   rU   c                 ór   — d}t        j                  t        |¬«      5   ||Ž  d d d «       y # 1 sw Y   y xY w)Nz#does not support zero-size batches.rx  )r{  r|  Ú
ValueError)rB   Úfrú   r~  s       r   Útest_zero_size_batchzTestBatch.test_zero_size_batch”  s3   € ð 8ˆÜ�]‰]œ:¨WÔ5ñ 	Ùˆt‰H÷	÷ 	ñ 	ús   ž-­6)_Ú__name__Ú
__module__Ú__qualname__rO   r{  ÚmarkÚparametrizeÚfloatingrY   rb   rf   rm   r   Úinvrq   ÚsignmÚsinmÚcosmÚtanhmÚsinhmÚcoshmr‹   ÚpinvhÚorthrt   rx   r~   r‚   r‡   rŒ   r‘   r˜   ÚcholeskyÚldlr[  r›   r¡   ÚpolarÚrqr¤   r³   r½   rÊ   rÙ   rá   rä   r$  r@  ræ   rê   rï   rò   rø   ÚeigvalshÚeigvalsrû   r   r  Úsvdvalsr  Úorthogonal_procrustesÚ
khatri_raoÚsolve_continuous_lyapunovÚsolve_discrete_lyapunovÚqzÚordqzr
  r  r  Úsolve_continuous_areÚsolve_discrete_arer"  r(  r,  r3  Úeigh_tridiagonalÚeigvalsh_tridiagonalÚreal_floatingr6  r>  rC  rM  rT  rY  r^  re  rh  rn  rq  rv  r  rX  r   Úonesrƒ  r+   r   r   r    r       sÝ  „ ð 34¸1ÀTÐQUØ!°ô+ðZ ‡[�[×Ñ˜W hÓ/ñ-ó 0ð-ð
 ‡[�[×Ñ˜W hÓ/ñó 0ðð ‡[�[×Ñ˜W hÓ/ñó 0ðð ‡[�[×Ñ˜W hÓ/ñ,ó 0ð,ð ‡[�[×Ñ˜U V§Z¡Z°·±¸v¿|¹|Ø%+§[¡[°&·+±+¸v¿|¹|Ø%+§\¡\°6·<±<ÀÇÁØ%+§[¡[°&·,±,ÀÇÁð%Mó Nð ‡[�[×Ñ˜W hÓ/ñ	 ó 0ó	Nð
	 ð ‡[�[×Ñ˜W hÓ/ñ.ó 0ð.ð
 ‡[�[×Ñ˜W hÓ/ñBó 0ðBð
 ‡[�[×Ñ˜W hÓ/ñ,ó 0ð,ð ‡[�[×Ñ˜W hÓ/ñ	2ó 0ð	2ð ‡[�[×Ñ˜W hÓ/ñPó 0ðPð
 ‡[�[×Ñ˜W hÓ/ñUó 0ðUð ‡[�[×Ñ˜W hÓ/ñ6ó 0ð6ð ‡[�[×Ñ˜[¨F¯O©O¸QÐ+?À&Ç*Á*ÈaÀØ,2×,=Ñ,=¸qÐ+Að+Có Dà‡[�[×Ñ˜W hÓ/ñ-ó 0óDð-ð ‡[�[×Ñ˜\¨E°4¨=Ó9Ø‡[�[×Ñ˜_¨u°d¨mÓ<Ø‡[�[×Ñ˜W hÓ/ñ
ó 0ó =ó :ð
ð ‡[�[×Ñ˜U V§\¡\°6·9±9Ð$=Ó>Ø‡[�[×Ñ˜W hÓ/ñ)ó 0ó ?ð)ð
 ‡[�[×Ñ˜Z¨$°¨Ó7Ø‡[�[×Ñ˜W hÓ/Ø‡[�[×Ñ˜VÒ%>Ó?ñPó @ó 0ó 8ðPð ‡[�[×Ñ˜Z¨$°¨Ó7Ø‡[�[×Ñ˜W hÓ/ñDó 0ó 8ðDð( ‡[�[×Ñ˜VÒ%AÓBØ‡[�[×Ñ˜W hÓ/ñ	.ó 0ó Cð	.ð ‡[�[×Ñ˜W¨¨d |°iÀÐ5KÐ&LÓMØ‡[�[×Ñ˜W hÓ/ñ1ó 0ó Nð1ð ‡[�[×Ñ˜V d¨IÐ%6Ó7Ø‡[�[×Ñ˜V b¨$ ZÓ0Ø‡[�[×Ñ˜W hÓ/ñ1ó 0ó 1ó 8ð1ð ‡[�[×Ñ˜V b¨$ ZÓ0Ø‡[�[×Ñ˜W hÓ/ñ1ó 0ó 1ð1ð ‡[�[×Ñ˜U V§\¡\°6×3CÑ3CÐ$DÓEØ‡[�[×Ñ˜W hÓ/ñ)ó 0ó Fð)ð
 ‡[�[×Ñ˜X¨¨t }Ó5Ø‡[�[×Ñ˜W hÓ/ñWó 0ó 6ðWð ‡[�[×Ñ˜^¨e°T¨]Ó;Ø‡[�[×Ñ˜W hÓ/ñ@ó 0ó <ð@ð ‡[�[×Ñ˜W hÓ/ñ2ó 0ð2ð
 ‡[�[×Ñ˜X¨¨t }Ó5Ø‡[�[×Ñ˜\¨V¯[©[¸!Ð,<¸v¿{¹{ÈAÐ>NØ-3¯_©_¸aÐ,@À6Ç>Á>ÐSTÐBUð,Wó Xà‡[�[×Ñ˜W hÓ/ñ?ó 0óXó 6ð?ð ‡[�[×Ñ˜^¨e°T¨]Ó;Ø‡[�[×Ñ˜W hÓ/ñ@ó 0ó <ð@ð ‡[�[×Ñ˜W hÓ/ñ	Gó 0ð	Gð ‡[�[×Ñ˜U V§^¡^Ð$4Ó5Ø‡[�[×Ñ˜W hÓ/ñ ó 0ó 6ð ð
 ‡[�[×Ñ˜[¨F×,HÑ,HÈ!Ð+LØ,2×,=Ñ,=¸qÐ+AØ,2×,LÑ,LÈaÐ+PØ,2×,JÑ,JÈAÐ+NØ,2¯I©I°q¨>Ø,2¯L©L¸!Ð+<ð+>ó ?ð ‡[�[×Ñ˜W hÓ/ñ2ó 0ó?ð2ð ‡[�[×Ñ˜W hÓ/ñBó 0ðBð" ‡[�[×Ñ˜W hÓ/ñ;ó 0ð;ð ‡[�[×Ñ˜U V×%@Ñ%@Ø%+×%>Ñ%>ð%@ó Aà‡[�[×Ñ˜W hÓ/ñ-ó 0óAð-ð( ‡[�[×Ñ˜W hÓ/ñ9ó 0ð9ð ‡[�[×Ñ˜W hÓ/ñ4ó 0ð4ð ‡[�[×Ñ˜W hÓ/ñ"ó 0ð"ð$ ‡[�[×Ñ˜[¨F×,CÑ,CÀQÐ+GØ,2×,GÑ,GÈÐ+Kð+Mó Nà‡[�[×Ñ˜W mÓ4ñOó 5óNðOð ‡[�[×Ñ˜VÒ%AÓBØ‡[�[×Ñ˜W hÓ/ñ=ó 0ó Cð=ð ‡[�[×Ñ˜VÒ%AÓBØ‡[�[×Ñ˜W hÓ/ñ=ó 0ó Cð=ð ‡[�[×Ñ˜Y¨²)ºZÐ1HÐ(IÓJØ‡[�[×Ñ˜VÒ%AÓBØ‡[�[×Ñ˜W hÓ/ñ.ó 0ó Có Kð.ð ‡[�[×Ñ˜\¨E°4¨=Ó9Ø‡[�[×Ñ˜VÒ%AÓBØ‡[�[×Ñ˜W hÓ/ñ.ó 0ó Có :ð.ð ‡[�[×Ñ˜\¨E°4¨=Ó9Ø‡[�[×Ñ˜VÒ%AÓBØ‡[�[×Ñ˜W hÓ/ñ-ó 0ó Có :ð-ð ‡[�[×Ñ˜VÒ%AÓBØ‡[�[×Ñ˜W hÓ/ñ=ó 0ó Cð=ð ‡[�[×Ñ˜W u¨d mÓ4Ø‡[�[×Ñ˜VÒ%AÓBØ‡[�[×Ñ˜W hÓ/ñ.ó 0ó Có 5ð.ð ‡[�[×Ñ˜VÒ%AÓBØ‡[�[×Ñ˜W hÓ/ñ
.ó 0ó Cð
.ð ‡[�[×Ñ˜VÒ%AÓBØ‡[�[×Ñ˜W hÓ/ñ?ó 0ó Cð?ð ‡[�[×Ñ˜VÒ%AÓBØ‡[�[×Ñ˜W hÓ/ñ
ó 0ó Cð
ð ‡[�[×Ñ˜W hÓ/ñ@ó 0ð@òJð ‡[�[×Ñ˜YØ	�‰˜7˜2Ÿ7™7 6›?Ð,Ð-ð)ó ñóñr   r    zfunc, core_shape)rT   rT   c                 ó4   — t        j                  | |«      d   S )Nr   )r   rp  )r²   r   s     r   r±   r±   ¢  s   € ”6—<‘<  1Ó% aÑ(€ r   )rT   r!   )r;  rk  rp  )Úidsc                 ó¨  — |\  }}t        j                  ||«      }t        j                  |«      } | ||«      }|j                  |fk(  sJ ‚t        j                  |df«      } | ||«      }|j                  |dfk(  sJ ‚t        j                  d|df«      } | ||«      }|j                  d|dfk(  sJ ‚t        j                  d|f«      }d}t	        j
                  t        |¬«      5   | ||«       d d d «       t        j                  |ddg|j                  ¢­«      }t        j                  |«      } | ||«      }|j                  dd|fk(  sJ ‚t        j                  |df«      } | ||«      }|j                  dd|dfk(  sJ ‚t        j                  dd|df«      } | ||«      }|j                  dd|dfk(  sJ ‚t        j                  d|df«      } | ||«      }|j                  dd|dfk(  sJ ‚t        j                  dd|f«      }d}t	        j
                  t        |¬«      5   | ||«       d d d «       y # 1 sw Y   �ŒKxY w# 1 sw Y   y xY w)Né   rU   z=Shape mismatch|incompatible shapes|shapes of a|shape mismatchrx  rS   )r   rr   r¥  r   r{  r|  r�  r.  )r{   Ú
core_shapeÚmÚnr²   r   r°   Úpatterns           r   Útest_shapes_solve_liker®  �  sG  € ð �D€A€qô
 	�‰ˆq�!‹€AÜ
�‰�‹
€AáˆQ�‹
€AØ�7‰7�q�dŠ?Ðˆ?ô 	�‰��A�‹€AÙˆQ�‹
€AØ�7‰7�q˜!�fÒÐÐô 	�‰��A�q�	Ó€AÙˆQ�‹
€AØ�7‰7�q˜!˜Q�iÒÐÐô 	�‰��A�‹€AØM€GÜ	�‰”z¨Ô	1ñ áˆQ�Œ
÷ô
 	�‰˜˜A˜qÐ+ 1§7¡7Ñ+Ó,€Aô 	�‰�‹
€AÙˆQ�‹
€AØ�7‰7�q˜!˜Q�iÒÐÐô 	�‰��A�‹€AÙˆQ�‹
€AØ�7‰7�q˜!˜Q �lÒ"Ð"Ð"ô 	�‰��A�q˜!�Ó€AÙˆQ�‹
€AØ�7‰7�q˜!˜Q �lÒ"Ð"Ð"ô 	�‰��A�q�	Ó€AÙˆQ�‹
€AØ�7‰7�q˜!˜Q �lÒ"Ð"Ð"ô 	�‰��A�q�	Ó€AØM€GÜ	�‰”z¨Ô	1ñ áˆQ�Œ
÷ð ÷=ñ ú÷<ð ús   Ã(
H;È(
IÈ;IÉI)r5   r{  Únumpyr   Únumpy.testingr   Úscipyr   r   rÆ   rm  r¤  rÇ   rl  Úcomplex_floatingr‰  r   r   r    r‡  rˆ  r;  rk  r®  r+   r   r   ú<module>r³     s´   ðÛ Û Û Ý )ß  ð —‘˜RŸZ™ZÐ(€Ø—L‘L "§-¡-Ð0Ð ØÐ+Ñ+€òò÷}	ñ }	ð@ ‡�×ÑØà‡l�l�FÐØ×Ñ˜vÐ&Ù(¨&Ð1ðò
 	0ð ó ñ;óñ;r   