Ë
    â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
mZ d dl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mZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z- d dl.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7 d dl8m9Z9 d dl:m;Z; d dl<m=Z= d d	lm>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZKmLZLmMZMmNZNmOZOmPZP d d
lQmRZR d dlSmTZT d dlUmVZV d dlWmXZX 	 d dlYmZZZ ej                  dk(  xs  ej¸                  «       dv Z]de^fd„Z_ejŠ                  ejÀ                  gZaejŒ                  ejÄ                  gZceaecz   Zdd„ Ze G d„ d«      Zf G d„ d«      Zg G d„ d«      Zh G d„ d«      Zi G d„ d«      Zj G d„ d«      Zk G d „ d!ek«      ZlejÚ                  jÝ                  e]d"¬#«      ejÚ                  jß                  d$«      d%„ «       «       Zp G d&„ d'«      Zq G d(„ d)«      Zr G d*„ d+«      Zs G d,„ d-«      Zt G d.„ d/«      Zu G d0„ d1«      ZvdxZwZxeZ�eZd2   d3   d4   ZweZd2   d3   d5   Zx G d6„ d7«      Zy G d8„ d9«      Zz G d:„ d;«      Z{ G d<„ d=«      Z|d>„ Z}ejÚ                  jÝ                   ej¸                  «       d?k(  d@¬#«      dA„ «       Z~dB„ ZdC„ Z€ejÚ                  �j                  ddD¬E«      dF„ «       Z‚ G dG„ dH«      ZƒdUdI„Z„ejÚ                  �j
                  ejÚ                  jÝ                   e�j                  e�j                  «      �j                  dJk  dK¬#«      dL„ «       «       Z‰dM„ ZŠejÚ                  �j                  dNeŒe^ejŠ                  e�ejŒ                  g«      dO„ «       ZŽ G dP„ dQ«      Z�dR„ Z� G dS„ dT«      Z‘y# e[$ r dZZY �Œ¢w xY w)Vé    N)Úassert_equalÚassert_almost_equalÚassert_array_almost_equalÚassert_array_equalÚassert_Úassert_allclose)Úraises)ÚeigÚeigvalsÚluÚsvdÚsvdvalsÚcholeskyÚqrÚschurÚrsf2csfÚlu_solveÚ	lu_factorÚsolveÚdiagsvdÚ
hessenbergÚrqÚ
eig_bandedÚeigvals_bandedÚeighÚeigvalshÚqr_multiplyÚqzÚorthÚordqzÚsubspace_anglesÚhadamardÚeigvalsh_tridiagonalÚeigh_tridiagonalÚ
null_spaceÚcdf2rdfÚLinAlgError)	ÚdgbtrfÚdgbtrsÚzgbtrfÚzgbtrsÚdsbevÚdsbevdÚdsbevxÚzhbevdÚzhbevx)Únorm)Ú_select_function)Úortho_group)ÚarrayÚdiagÚfullÚlinalgÚargsortÚzerosÚarangeÚfloat32Ú	complex64ÚravelÚsqrtÚ	iscomplexÚshapeÚsortÚsignÚasarrayÚisfiniteÚndarrayÚeye)Úassert_no_overwrite)Úmatrix)Úcheck_free_memory)Ú	HAS_ILP64)ÚCONFIGÚ
emscripten)Úwasm32Úwasm64Fc                 ó´  — |t         v ret        j                  j                  | | «      t        j                  j                  | | «      dz  z   }||j	                  «       j
                  z   dz  }n2t        j                  j                  | | «      }||j
                  z   dz  }|r'|t        d| z  «      t        j                  | «      z  z  }|j                  |«      S )z7Generate random sym/hermitian array of the given size nù              ð?é   )	ÚCOMPLEX_DTYPESÚnpÚrandomÚrandÚconjÚTr>   rF   Úastype)ÚnÚposdefÚdtypeÚAs       ú\/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/scipy/linalg/tests/test_decomp.pyÚ_random_hermitian_matrixr^   ,   s¤   € à”ÑÜ�I‰I�N‰N˜1˜aÓ ¤2§9¡9§>¡>°!°QÓ#7¸Ñ#<Ñ<ˆØ�—‘“—‘‰^˜QÑ‰ä�I‰I�N‰N˜1˜aÓ ˆØ�—‘‰W�a‰KˆáØ	ŒT�!�A‘#‹Y”r—v‘v˜a“yÑ Ñ ˆà�8‰8�E‹?Ðó    c                 ó„  — t        | t        «      r| }|j                  |«      dz  dz
  }nEt        | t        «      r*t	        | j
                  «      dk(  r| j
                  d   }| }nt        d«      ‚t        j                  |«      }|j                  j                  «       t        |«      z  |z  }d|j                  |z   z  }|S )a  Return a random symmetric (Hermitian) matrix.

    If 'dim_or_eigv' is an integer N, return a NxN matrix, with eigenvalues
        uniformly distributed on (-1,1).

    If 'dim_or_eigv' is  1-D real array 'a', return a matrix whose
                      eigenvalues are 'a'.
    rQ   é   r   zinput type not supported.ç      à?)Ú
isinstanceÚintrT   rE   Úlenr@   Ú	TypeErrorr3   ÚrvsrW   rV   r5   )Údim_or_eigvÚrngÚdimÚdÚvÚhs         r]   Úsymrandrn   B   s©   € ô �+œsÔ#ØˆØ�J‰J�s‹O˜AÑ Ñ!‰Ü
�[¤'Ô
*Ü
ˆk×ÑÓ
  AÒ
%Ø×Ñ Ñ"ˆØ‰äÐ3Ó4Ð4ä�‰˜Ó€AØ	�‰�‰‹
”T˜!“WÑ˜qÑ €AàˆQ�S‰S�‰U‰€AØ€Hr_   c                   ór   — e Zd Zd„ Zd„ Zd„ Zd„ Zej                  j                  de
eeeeg«      d„ «       Zy)ÚTestEigValsc                 óŽ   — g d¢g d¢g d¢g}t        |«      }dt        d«      z   dz  ddt        d«      z
  dz  g}t        ||«       y )N©ra   rQ   é   ©rQ   é   é   é	   é]   rQ   r   ©r   r>   r   ©ÚselfÚaÚwÚexact_ws       r]   Útest_simplezTestEigVals.test_simple^   sE   € Úš	¢9Ð-ˆÜ�A‹JˆØ”d˜2“h‘J ‘> 1 q¬¨b«¡z°1¡nÐ5ˆÜ! ! WÕ-r_   c                 óî   — t        g d¢g d¢g d¢gd«      j                  }|j                  «       }|j                  }t        |«      }dt	        d«      z   dz  ddt	        d«      z
  dz  g}t        ||«       y )Nrr   rt   rk   rw   rx   rQ   r   )r4   rW   Úcopyr   r>   r   rz   s       r]   Útest_simple_trzTestEigVals.test_simple_trd   sf   € Ü’9šiªÐ3°SÓ9×;Ñ;ˆØ�F‰F‹HˆØ�C‰CˆÜ�A‹JˆØ”d˜2“h‘J ‘> 1 q¬¨b«¡z°1¡nÐ5ˆÜ! ! WÕ-r_   c                 óŽ   — g d¢g d¢g d¢g}t        |«      }dt        d«      z   dz  ddt        d«      z
  dz  g}t        ||«       y )Nrr   ©rQ   ru   y      @      ð?y      "@      ð?y      W@      @rQ   r   ry   rz   s       r]   Útest_simple_complexzTestEigVals.test_simple_complexl   sO   € Úš	¢<Ð0ˆÜ�A‹JˆØœ˜e›Ñ$ aÑ'ØØœ˜e›Ñ$ aÑ'ð)ˆô 	" ! WÕ-r_   c                 ó’   — g d¢g d¢g d¢g}t        |d¬«      }dt        d«      z   dz  ddt        d«      z
  dz  g}t        ||«       y )	Nrr   rt   F©Úcheck_finiterw   rx   rQ   r   ry   rz   s       r]   Útest_finitezTestEigVals.test_finitet   sH   € Úš	¢9Ð-ˆÜ�A EÔ*ˆØ”d˜2“h‘J ‘> 1 q¬¨b«¡z°1¡nÐ5ˆÜ! ! WÕ-r_   Údtc                 óŠ  — t        j                  d|¬«      }t        |«      }|j                  dk(  sJ ‚|j                  t        t        j
                  d|¬«      «      j                  k(  sJ ‚t        |d¬«      }|j                  dk(  sJ ‚|j                  t        t        j
                  d|¬«      «      j                  k(  sJ ‚y )N©r   r   ©r[   ©r   rQ   T©Úhomogeneous_eigvals©rQ   r   )rS   Úemptyr   r@   r[   rF   )r{   rŠ   r|   r}   s       r]   Ú
test_emptyzTestEigVals.test_emptyz   s™   € ä�H‰H�V 2Ô&ˆÜ�A‹JˆØ�w‰w˜$ŠÐˆØ�w‰wœ'¤"§&¡&¨°"Ô"5Ó6×<Ñ<Ò<Ð<Ð<ä�A¨4Ô0ˆØ�w‰w˜&Ò Ð Ð Ø�w‰wœ'¤"§&¡&¨°"Ô"5Ó6×<Ñ<Ò<Ð<Ñ<r_   N)Ú__name__Ú
__module__Ú__qualname__r   r‚   r…   r‰   ÚpytestÚmarkÚparametrizerd   Úfloatr;   Úcomplexr<   r“   © r_   r]   rp   rp   \   sG   „ ò.ò.ò.ò.ð ‡[�[×Ñ˜T C¨°¸À)Ð#LÓMñ=ó Nñ=r_   rp   c                   óÖ   — e Zd Zd„ Zd„ Zd„ Zd„ Z	 	 dd„Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zej"                  j%                  deeej,                  eej0                  g«      d„ «       Zy)ÚTestEigc                 ób  — t        g d¢g d¢g d¢g«      }t        |«      \  }}dt        d«      z   dz  ddt        d«      z
  dz  g}t        dddt        d«      dz  z   dz  g«      }t        g d	¢«      }t        dddt        d«      dz  z
  dz  g«      }|t        |«      z  }|t        |«      z  }|t        |«      z  }t	        ||«       t	        ||d d …df   t        |d
   «      z  «       t	        ||d d …df   t        |d   «      z  «       t	        ||d d …df   t        |d   «      z  «       t        d«      D ]%  }t	        ||d d …|f   z  ||   |d d …|f   z  «       Œ' t        |dd¬«      \  }}t        d«      D ]/  }t	        |j                  |d d …|f   z  ||   |d d …|f   z  «       Œ1 y )Nrr   rt   rw   rx   rQ   r   ra   rs   ©ç      @r   éÿÿÿÿrŒ   ©r   ra   ©r   rQ   ©ÚleftÚright)r4   r
   r>   r1   r   rB   ÚrangerW   ©	r{   r|   r}   rl   r~   Úv0Úv1Úv2Úis	            r]   r   zTestEig.test_simpleˆ   s¬  € Ü’9šiªÐ3Ó4ˆÜ�1‹v‰ˆˆ1Ø”d˜2“h‘J ‘> 1 q¬¨b«¡z°1¡nÐ5ˆÜ�A�q˜1œT "›X a™Z™<¨Ñ*Ð+Ó,ˆÜ’;ÓˆÜ�A�q˜1œT "›X a™Z™<¨Ñ*Ð+Ó,ˆØ”$�r“(‰]ˆØ”$�r“(‰]ˆØ”$�r“(‰]ˆÜ! ! WÔ-Ü! " aª¨1¨¡g¬d°1°T±7«mÑ&;Ô<Ü! " aª¨1¨¡g¬d°1°T±7«mÑ&;Ô<Ü! " aª¨1¨¡g¬d°1°T±7«mÑ&;Ô<Ü�q“ò 	AˆAÜ% a¨!ªA¨q¨D©'¡k°1°Q±4¸º!¸Q¸$¹±<Õ@ð	Aä�1˜1 AÔ&‰ˆˆ1Ü�q“ò 	CˆAÜ% a§c¡c¨Aªa°¨d©G¡m°Q°q±T¸!ºA¸q¸D¹'±\ÕBñ	Cr_   c                 ó�  — t        ddgddgg«      }t        |dd¬«      \  }}}t        |t        ddg«      «       t        d«      D ]%  }t        ||d d …|f   z  ||   |d d …|f   z  «       Œ' t        d«      D ]K  }t        |j	                  «       j
                  |d d …|f   z  ||   j	                  «       |d d …|f   z  «       ŒM y )Nra   rQ   éþÿÿÿr¥   ù      ð?       @y      ð?       À)r4   r
   r   r¨   rV   rW   ©r{   r|   r}   ÚvlÚvrr­   s         r]   Útest_simple_complex_eigzTestEig.test_simple_complex_eigœ   sÉ   € Ü�A�q�6˜B ˜7Ð#Ó$ˆÜ˜ ¨Ô+‰	ˆˆ2ˆrÜ! !¤U¨D°$¨<Ó%8Ô9Ü�q“ò 	CˆAÜ% a¨"ªQ°¨T©(¡l°A°a±D¸ºA¸q¸D¹±MÕBð	Cä�q“ò 	<ˆAÜ% a§f¡f£h§j¡j°2²a¸°d±8Ñ&;Ø&'¨¡d§i¡i£k°"²Q¸°T±(Ñ&:õ<ñ	<r_   c                 óh  — t        g d¢g d¢g d¢g«      }t        |dd¬«      \  }}}t        d«      D ]%  }t        ||d d …|f   z  ||   |d d …|f   z  «       Œ' t        d«      D ]K  }t        |j	                  «       j
                  |d d …|f   z  ||   j	                  «       |d d …|f   z  «       ŒM y )Nrr   r„   ra   r¥   rs   )r4   r
   r¨   r   rV   rW   r±   s         r]   r…   zTestEig.test_simple_complex¦   s°   € Ü’9šiªÐ6Ó7ˆÜ˜ ¨Ô+‰	ˆˆ2ˆrÜ�q“ò 	CˆAÜ% a¨"ªQ°¨T©(¡l°A°a±D¸ºA¸q¸D¹±MÕBð	Cä�q“ò 	<ˆAÜ% a§f¡f£h§j¡j°2²a¸°d±8Ñ&;Ø&'¨¡d§i¡i£k°"²Q¸°T±(Ñ&:õ<ñ	<r_   c                 óø   — dgg}dgg}t        ||d¬«      \  }}t        |d   d«       t        |d   dk7  «       t        |d«       t        ||«      \  }}t        |t        j
                  «       t        |d«       y )Nra   r   Tr�   ©ra   r   rŒ   )r
   r   r   r   rS   Úinf)r{   r|   Úbr}   r³   s        r]   Útest_gh_3054zTestEig.test_gh_3054¯   su   € ØˆSˆEˆØˆSˆEˆÜ�A�q¨dÔ3‰ˆˆ2Ü˜˜$™ Ô#Ü��$‘˜1‘ÔÜ˜˜AÔä�A�q“	‰ˆˆ2Ü�QœŸ™ÔÜ˜˜AÕr_   c           	      óT  — |�t        |«      t        |«      }}|}n)t        |«      }|}t        j                  |j                  Ž }d|›d|›�}t	        ||d¬«      \  }	}
t        ||d¬«      }||
z  |	dd d …f   z  }||
z  |	dd d …f   z  }t        |j                  d   «      D ]   }t        |d d …|f   |d d …|f   |||¬«       Œ" |€&t        |	dd d …f   d«       t        |dd d …f   d«       t        j                  |	«      }t        j                  |«      }t        |	d d …|f   |d d …|f   dd|¬«       t        j                  t        |
«      «      }t        t        |
«      «      D ]  }t        |
d d …|f   «      ||<   Œ t        |t        j                  |j                  «      |dd¬	«       |	dd d …f   dk7  }|	d|f   |	d|f   z  }t	        ||«      \  }	}
t        ||«      }||
z  }||
z  |	z  }||z
  }t        |j                  d   «      D ]?  }t        j                  t        |d d …|f   «      «      sŒ)t        |d d …|f   d|||¬«       ŒA |	t        |	«         }|t        |«         }d
t        j                   d|z  d¬«      z  }d
t        j                   d|z  d¬«      z  }t#        t%        |«      |j&                  z   «      }t#        t%        |«      |j&                  z   «      }t        ||   ||   dd|¬«       t        j                  t        |
«      «      }t        t        |
«      «      D ]  }t        |
d d …|f   «      ||<   Œ t        |t        j                  |j                  «      |¬«       t        t)        |«      t)        |	t        j                  |	«         «      «       y )Nú
Tr�   ra   r   ©ÚrtolÚatolÚerr_msggH¯¼šò×z>)r¿   r¾   rÀ   )rÀ   r¿   r¾   y       €      ð¿rP   g»½×Ùß|Û=)Útol©rÀ   )rC   rS   rF   r@   r
   r   r¨   r   Úlexsortr’   re   r1   ÚonesÚsizeÚallrD   Úreal_if_closer8   ÚabsÚimagrA   )r{   r\   ÚBÚ
atol_homogÚ
rtol_homogr¿   r¾   ÚB0Úmsgr}   r³   ÚwtÚval1Úval2r­   ÚpermÚpermtÚlengthÚbeta_nonzeroÚwhÚresÚw_finÚwt_fins                          r]   Ú_check_gen_eigzTestEig._check_gen_eig»   s  € àˆ=Ü˜1“:œw q›zˆqˆAØ‰Bä˜“
ˆAØˆBÜ—‘˜Ÿ™Ð ˆAØ�1�%�r˜!˜Ðˆô �A�r¨tÔ4‰ˆˆ2Ü�Q˜°Ô5ˆØ�2‰v˜˜!šQ˜$™ÑˆØ�2‰v˜˜!šQ˜$™ÑˆÜ�t—z‘z !‘}Ó%ò 	KˆAÜ˜D¢ A ™J¨ªQ°¨T©
Ø!+°*ÀcöKð	Kð ˆ:Ü˜A˜a¢˜d™G QÔ'Ü˜B˜q¢!˜t™H aÔ(ä�z‰z˜!‹}ˆÜ—
‘
˜2“ˆÜ˜š!˜T˜'™
 B¢q¨% x¡L°tÀ$Ø #õ	%ô —‘œ#˜b›'Ó"ˆä”s˜2“w“ò 	'ˆAÜ˜R¢ 1 ™X›ˆF�1ŠIð	'ô 	˜¤§¡¨¯©Ó 4¸cØ!¨õ	.ð ˜!šQ˜$™ 1™ˆØˆq�,ˆÑ ! A | OÑ"4Ñ4ˆô �A�r“
‰ˆˆ2Ü�Q˜‹^ˆØ�2‰vˆØ�2‰v˜‰zˆØ�T‰kˆÜ�s—y‘y ‘|Ó$ò 	CˆAÜ�v‰v”h˜s¢1 a 4™yÓ)Õ*Ü ¢A q D¡	¨1Ø%)°¸cöCð	Cð ”(˜1“+‘ˆØ”H˜R“LÑ!ˆð ”b×&Ñ& r¨%¡x°UÔ;Ñ;ˆØ”r×'Ñ'¨¨6©	°uÔ=Ñ=ˆä”s˜5“z E§J¡JÑ.Ó/ˆÜœ˜F› f§k¡kÑ1Ó2ˆä˜˜d™ V¨E¡]Ø!¨°cõ	;ô —‘œ#˜b›'Ó"ˆÜ”s˜2“w“ò 	'ˆAÜ˜R¢ 1 ™X›ˆF�1ŠIð	'ä˜¤§¡¨¯©Ó 4¸cÕBô 	œ˜R›¤$ q¬¯©°Q«Ñ'8Ó"9Õ:r_   c                 óì   — t        g d¢g d¢g d¢g d¢g d¢g«      }t        g d¢g d¢g d¢g d	¢g d
¢g«      }t        j                  d¬«      5  | j                  ||dd¬«       d d d «       y # 1 sw Y   y xY w)N)é   é"   é   rÞ   é   )é-   rà   é*   é   é   )é'   é/   é1   é   rÝ   )é   rÞ   rç   é   é   )é&   é,   rì   é   é   )é   rç   é   rß   rí   )rÞ   é.   é(   rç   é%   )rç   rò   râ   rð   rð   )é   rð   rè   é   é   )rí   é#   é   ré   rÜ   Úignore©rÆ   gê-�™—a=)rË   r¿   )r4   rS   ÚerrstaterÚ   ©r{   r\   rÊ   s      r]   Útest_singularzTestEig.test_singular  s€   € ô Ò'Ú'Ú'Ú'Ú'ð	)ó *ˆô
 Ò'Ú'Ú'Ú'Ú'ð	)ó *ˆô �[‰[˜XÔ&ñ 	DØ×Ñ  1°¸UÐÔC÷	D÷ 	Dñ 	Dús   ÁA*Á*A3c                 ó”  — t        t        g d¢«      «      }t        g d¢g d¢g d¢f«      }t        g d¢g d¢g d¢f«      }t        d«      }t        d	«      }t	        j
                  ||g|| gg«      }t	        j
                  ||g||gg«      }t	        j                  d
¬«      5  | j                  ||«       d d d «       y # 1 sw Y   y xY w)N)ra   r   rs   )rQ   r¢   r¢   )r¢   rQ   r¢   )r¢   r¢   rQ   )ra   r¢   r   )r¢   ra   r   ©r   r   r   ©rs   rs   rs   rù   rú   )r5   r4   r9   rF   rS   Úblockrû   rÚ   )r{   ÚMÚKÚDÚZÚI3r\   rÊ   s           r]   Útest_falkerzTestEig.test_falker  s®   € ä”’yÓ!Ó"ˆÜ’;¢ª[Ð9Ó:ˆÜ’:šzª9Ð5Ó6ˆÜ�&‹MˆÜ�‹VˆÜ�H‰H�r˜1�g  A 2˜wÐ'Ó(ˆÜ�H‰H�q˜"�g  1˜vÐ&Ó'ˆä�[‰[˜XÔ&ñ 	&Ø×Ñ  1Ô%÷	&÷ 	&ñ 	&ús   Â"B>Â>Cc                 óÊ   — d„ }t        j                  d¬«      5  t        d«      D ]&  } ||dz  dz  ¬«      \  }}| j                  ||«       Œ( 	 d d d «       y # 1 sw Y   y xY w)Nc                 ón   — d| dz  z   }d| z  }g d¢g d¢dd|dgddd|gg}g d¢g d¢ddd| gdd|dgg}||fS )	Né÷ÿÿÿrQ   )ra   r   r   r   )r   ra   r   r   r   )r   r   ra   r   )r   r   r   ra   ra   rœ   )ÚomegaÚc1Úc2r\   rÊ   s        r]   Úmatricesz)TestEig.test_bad_geneig.<locals>.matrices&  sm   € Ø�e˜Q‘h‘ˆBØ�5‘ˆBÚÚØ�Q˜˜A�Ø�Q˜˜2�ð ˆAò ÚØ�Q˜˜B˜3�Ø�Q˜˜A�ð ˆAð �a�4ˆKr_   rù   rú   éd   ç      @)r  )rS   rû   r¨   rÚ   )r{   r  Úkr\   rÊ   s        r]   Útest_bad_geneigzTestEig.test_bad_geneig#  sc   € ò	ô �[‰[˜XÔ&ñ 	*Ü˜3“Zò *�Ù a¨¡d¨3¡hÔ/‘��1Ø×#Ñ# A qÕ)ñ*÷	*÷ 	*ñ 	*ús   š5AÁA"c                 óš  — t         j                  j                  d«      }t        d|«      }| j	                  |d «       t        d|«      }| j	                  ||«       |j                  d«      d|j                  d«      z  z   }| j	                  |d «       |j                  d«      d|j                  d«      z  z   }| j	                  ||«       y )NéÒ  rs   r   rP   )rS   rT   ÚRandomStatern   rÚ   )r{   ri   r\   rÊ   s       r]   Útest_make_eigvalszTestEig.test_make_eigvals:  s°   € ô �i‰i×#Ñ# DÓ)ˆÜ�A�s‹OˆØ×Ñ˜A˜tÔ$Ü�A�s‹OˆØ×Ñ˜A˜qÔ!à�J‰J�vÓ  C§J¡J¨vÓ$6Ñ!6Ñ6ˆØ×Ñ˜A˜tÔ$Ø�J‰J�vÓ  C§J¡J¨vÓ$6Ñ!6Ñ6ˆØ×Ñ˜A˜qÕ!r_   c                 ó¸  — g d¢g d¢g d¢g}t        |d¬«      \  }}dt        d«      z   dz  ddt        d«      z
  dz  g}t        d	d	d	t        d«      d
z  z   dz  g«      }t        g d¢«      }t        d	d	d	t        d«      d
z  z
  dz  g«      }|t        |«      z  }|t        |«      z  }|t        |«      z  }t	        ||«       t	        ||d d …df   t        |d   «      z  «       t	        ||d d …d	f   t        |d   «      z  «       t	        ||d d …df   t        |d   «      z  «       t        d
«      D ]%  }t	        ||d d …|f   z  ||   |d d …|f   z  «       Œ' y )Nrr   rt   Fr‡   rw   rx   rQ   r   ra   rs   r    rŒ   r£   r¤   )r
   r>   r4   r1   r   rB   r¨   r©   s	            r]   Útest_check_finitezTestEig.test_check_finiteH  sY  € Úš	¢9Ð-ˆÜ�1 5Ô)‰ˆˆ1Ø”d˜2“h‘J ‘> 1 q¬¨b«¡z°1¡nÐ5ˆÜ�A�q˜1œT "›X a™Z™<¨Ñ*Ð+Ó,ˆÜ’;ÓˆÜ�A�q˜1œT "›X a™Z™<¨Ñ*Ð+Ó,ˆØ”$�r“(‰]ˆØ”$�r“(‰]ˆØ”$�r“(‰]ˆÜ! ! WÔ-Ü! " aª¨1¨¡g¬d°1°T±7«mÑ&;Ô<Ü! " aª¨1¨¡g¬d°1°T±7«mÑ&;Ô<Ü! " aª¨1¨¡g¬d°1°T±7«mÑ&;Ô<Ü�q“ò 	AˆAÜ% a¨!ªA¨q¨D©'¡k°1°Q±4¸º!¸Q¸$¹±<Õ@ñ	Ar_   c                 óx   — t        j                  d«      j                  dd«      }t        t        t
        |«       y)z:Check that passing a non-square array raises a ValueError.rv   rs   rQ   N)rS   r:   ÚreshapeÚassert_raisesÚ
ValueErrorr
   )r{   r\   s     r]   Útest_not_square_errorzTestEig.test_not_square_errorY  s(   € ä�I‰I�a‹L× Ñ   AÓ&ˆÜ”j¤# qÕ)r_   c                 ó¼   — t        d«      }t        j                  d«      j                  dd«      }t	        t
        t        ||«       t	        t
        t        ||«       y)zOCheck that passing arrays of with different shapes
        raises a ValueError.rQ   ç      "@rs   N)rF   rS   r:   r  r  r  r
   rü   s      r]   Útest_shape_mismatchzTestEig.test_shape_mismatch^  sC   € ô �‹FˆÜ�I‰I�c‹N×"Ñ" 1 aÓ(ˆÜ”j¤# q¨!Ô,Ü”j¤# q¨!Õ,r_   c                 óâ  — t        j                  g d¢g d¢g d¢g d¢gd¬«      }t        j                  g d¢g d¢g d	¢g d
¢gd¬«      }t        ||«      \  }}t         j                  j	                  «       5 }|j                  t        d«       t        j                  |dd¬«      j                  «       sJ ‚t        j                  |dd¬«      j                  «       sJ ‚	 d d d «       y # 1 sw Y   y xY w)N)g      (@ç      <@g      S@g     €k@)g      0@g      @@g      T@g      l@)g      8@ç      D@g      V@g      m@)r#  g      L@g      Z@g      o@Úfloat64r�   )ç       @ç      @ç      $@r"  )r¡   r  ç      &@g      =@)r  ç      @g      *@g      ?@)r  r(  g      1@g     €A@z%invalid value encountered in multiplyr&  ç›+¡†›„=©r¿   ç       @)	rS   r4   r
   ÚtestingÚsuppress_warningsÚfilterÚRuntimeWarningÚiscloseÚany)r{   r\   rÊ   r  ÚVÚsups         r]   Útest_gh_11577zTestEig.test_gh_11577f  sÙ   € ô �H‰HÒ/Ú/Ú/Ú0ð2ð :CôDˆô �H‰HÒ,Ú,Ú,Ú-ð/ð 7@ôAˆô
 �1�a‹y‰ˆˆ1ô �Z‰Z×)Ñ)Ó+ð 	8¨sà�J‰J”~Ð'NÔOÜ—:‘:˜a ¨5Ô1×5Ñ5Ô7Ð7Ð7Ü—:‘:˜a ¨5Ô1×5Ñ5Ô7Ð7Ñ7÷		8÷ 	8ñ 	8ús   Á4A'C%Ã%C.rŠ   c                 óR  — t        j                  d|¬«      }t        |«      \  }}t        t        j                  d|¬«      «      \  }}|j                  dk(  sJ ‚|j
                  |j
                  k(  sJ ‚t        |t        j                  d«      «       |j                  dk(  sJ ‚|j
                  |j
                  k(  sJ ‚t        |d¬«      \  }}|j                  dk(  sJ ‚|j
                  |j
                  k(  sJ ‚|j                  dk(  sJ ‚|j
                  |j
                  k(  sJ ‚y )NrŒ   r�   rQ   rŽ   Tr�   r‘   )rS   r’   r
   rF   r@   r[   r   )r{   rŠ   r|   r}   r³   Úw_nÚvr_ns          r]   r“   zTestEig.test_empty‚  sù   € ä�H‰H�V 2Ô&ˆÜ�A“‰ˆˆ2äœŸ™˜q¨Ô+Ó,‰	ˆˆTà�w‰w˜$ŠÐˆØ�w‰w˜#Ÿ)™)Ò#Ð#Ð#ä˜œBŸH™H VÓ,Ô-Ø�x‰x˜6Ò!Ð!Ð!Ø�x‰x˜4Ÿ:™:Ò%Ð%Ð%ä�A¨4Ô0‰ˆˆ2Ø�w‰w˜&Ò Ð Ð Ø�w‰w˜#Ÿ)™)Ò#Ð#Ð#à�x‰x˜6Ò!Ð!Ð!Ø�x‰x˜4Ÿ:™:Ò%Ð%Ñ%r_   N)ç‚vIhÂ%<=r9  r9  r9  )r”   r•   r–   r   r´   r…   rº   rÚ   rý   r  r  r  r  r  r   r5  r—   r˜   r™   rd   rš   rS   r;   r›   r<   r“   rœ   r_   r]   rž   rž   †   s‹   „ òCò(<ò<ò
ð AFØ49óH;òTDò"&ò*ò."òAò"*ò
-ò8ð8 ‡[�[×Ñ˜T C¨°·
±
¸GÀRÇ\Á\Ð#RÓSñ&ó Tñ&r_   rž   c                   óÐ   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zej"                  j%                  deeej,                  eej0                  g«      d„ «       Zy)ÚTestEigBandedc                 ó$   — | j                  «        y ©N)Úcreate_bandmat©r{   s    r]   Úsetup_methodzTestEigBanded.setup_methodš  s   € Ø×ÑÕr_   c                 ó  — d}d| _         d| _        t        t        |d«      «      t        t        |dz
  d«      d«      z   t        t        |dz
  d«      d«      z   t        t        |dz
  d«      d«      z   t        t        |dz
  d«      d«      z   | _        t        t        |d«      «      d	t        t        |dz
  d«      d«      z  z   d	t        t        |dz
  d«      d«      z  z
  t        t        |dz
  d«      d«      z   t        t        |dz
  d«      d«      z   | _        t        t        |d«      «      t        t        |dz
  d«      d«      z   t        t        |dz
  d
«      d«      z   t        t        |dz
  d«      d«      z   t        t        |dz
  d«      d«      z   | _        d	t        t        |d«      «      z  t        t        |dz
  d«      d«      z   d	t        t        |dz
  d
«      d«      z  z   t        t        |dz
  d«      d«      z   t        t        |dz
  d«      d«      z   | _        t        j                  | j                  «      \  }}|j                  }t        |«      }||   | _        |dd…|f   | _        t        j                  | j
                  «      \  }}|j                  }t        |«      }||   | _        |dd…|f   | _        | j                  dz   }t!        ||ft"        ¬«      | _        t!        ||ft&        ¬«      | _        t+        |«      D ]\  }t        | j                  |«      | j$                  ||z
  dz
  ||…f<   t        | j
                  |«      | j(                  ||z
  dz
  ||…f<   Œ^ d| j                   z  | j                  z   dz   }t!        ||ft"        ¬«      | _        t        | j                  «      | j,                  d| j                   z  dd…f<   t+        | j                   «      D ]†  }t        | j                  |dz   «      | j,                  d| j                   z  dz
  |z
  |dz   |…f<   t        | j                  | dz
  «      | j,                  d| j                   z  dz   |z   d|dz
  |z
  …f<   Œˆ t!        ||ft&        ¬«      | _        t        | j                  «      | j.                  d| j                   z  dd…f<   t+        | j                   «      D ]†  }t        | j                  |dz   «      | j.                  d| j                   z  dz
  |z
  |dz   |…f<   t        | j                  | dz
  «      | j.                  d| j                   z  dz   |z   d|dz
  |z
  …f<   Œˆ dt1        |«      z  | _        | j2                  dz  | _        y)zbCreate the full matrix `self.fullmat` and
           the corresponding band matrix `self.bandmat`.é
   rQ   ç      ð?ra   ç      ð¿r¢   ç       Àr¯   rP   ç      Àr%  Nr�   r   ù      ð?      ð?)ÚKLÚKUr5   r6   Úsym_matÚherm_matÚreal_matÚcomp_matr7   r
   Úrealr8   Ú	w_sym_linÚevec_sym_linÚ
w_herm_linÚevec_herm_linr9   rš   Úbandmat_symr›   Úbandmat_hermr¨   Úbandmat_realÚbandmat_compr:   r¹   Úbc)r{   ÚNÚewÚevÚargsÚLDABr­   s          r]   r>  zTestEigBanded.create_bandmat�  s%  € ð ˆØˆŒØˆŒô œT ! S›\Ó*Üœt A a¡C¨›°Ó3ñ4Ü6:¼4ÀÀ!ÁÀT»?ÈAÓ6NñOäœt A a¡C¨›°Ó3ñ4ä6:¼4ÀÀ!ÁÀT»?ÈAÓ6NñOˆŒô
 œd 1 d›mÓ,Øœd¤4¨¨!©¨S£>°2Ó6Ñ6ñ7àœd¤4¨¨!©¨S£>°1Ó5Ñ5ñ6ô  ¤ Q q¡S¨$£°Ó4ñ5ô  ¤ Q q¡S¨$£°Ó3ñ	4ˆŒô œd 1 c›lÓ+Ü¤ Q q¡S¨$£°Ó4ñ5Ü7;¼DÀÀ1ÁÀd»OÈQÓ7OñPä¤ Q q¡S¨#£°Ó3ñ4ä6:¼4ÀÀ!ÁÀT»?ÈAÓ6NñOˆŒð
 œD¤ a¨£Ó.Ñ.Ü¤ Q q¡S¨$£°Ó4ñ5àœd¤4¨¨!©¨T£?°AÓ6Ñ6ñ7ô  ¤ Q q¡S¨#£°Ó3ñ4ô  ¤ Q q¡S¨$£°Ó3ñ	4ˆŒô —‘˜DŸL™LÓ)‰ˆˆBØ�W‰WˆÜ�r‹{ˆØ˜D™ˆŒØšq $˜w™KˆÔä—‘˜DŸM™MÓ*‰ˆˆBØ�W‰WˆÜ�r‹{ˆØ˜T™(ˆŒØ¢ 4 ™[ˆÔð
 �w‰w˜‰{ˆÜ  $¨ ´%Ô8ˆÔÜ! 4¨ )´7Ô;ˆÔÜ�t“ò 	FˆAÜ.2°4·<±<ÀÓ.CˆD×Ñ˜T !™V A™X q¨ s˜]Ñ+Ü/3°D·M±MÀ1Ó/EˆD×Ñ˜d 1™f Q™h¨¨!¨˜mÒ,ð	Fð �—‘‰y˜4Ÿ7™7Ñ" QÑ&ˆÜ! 4¨ )´5Ô9ˆÔÜ*.¨t¯}©}Ó*=ˆ×Ñ˜!˜DŸG™G™)¢Q˜,Ñ'Ü�t—w‘w“ò 	CˆAä6:¸4¿=¹=È!ÈAÉ#Ó6NˆD×Ñ˜a §¡™i¨™k¨!™m¨Q¨q©S°¨UÐ2Ñ3ä8<¸T¿]¹]Ø>?¸RÀ¹Tó9CˆD×Ñ˜a §¡™i¨™k¨!™m¨Q¨q°©s°1©u¨WÐ4Ò5ð		Cô " 4¨ )´7Ô;ˆÔÜ*.¨t¯}©}Ó*=ˆ×Ñ˜!˜DŸG™G™)¢Q˜,Ñ'Ü�t—w‘w“ò 	CˆAä6:¸4¿=¹=È!ÈAÉ#Ó6NˆD×Ñ˜a §¡™i¨™k¨!™m¨Q¨q©S°¨UÐ2Ñ3ä8<¸T¿]¹]Ø>?¸RÀ¹Tó9CˆD×Ñ˜a §¡™i¨™k¨!™m¨Q¨q°©s°1©u¨WÐ4Ò5ð		Cð ”V˜A“Y‘ˆŒØ—&‘&˜FÑ#ˆ�r_   c                 óì   — t        | j                  d¬«      \  }}}|dd…t        |«      f   }t        t	        |«      | j
                  «       t        t        |«      t        | j                  «      «       y)zTCompare dsbev eigenvalues and eigenvectors with
           the result of linalg.eig.ra   ©Ú	compute_vN)r,   rS  r8   r   rA   rO  rÈ   rP  ©r{   r}   ÚevecÚinfoÚevec_s        r]   Ú
test_dsbevzTestEigBanded.test_dsbevî  sY   € ô ˜d×.Ñ.¸!Ô<‰ˆˆ4�Ø’Qœ ›
�]Ñ#ˆÜ!¤$ q£'¨4¯>©>Ô:Ü!¤# e£*¬c°$×2CÑ2CÓ.DÕEr_   c                 óì   — t        | j                  d¬«      \  }}}|dd…t        |«      f   }t        t	        |«      | j
                  «       t        t        |«      t        | j                  «      «       y)zUCompare dsbevd eigenvalues and eigenvectors with
           the result of linalg.eig.ra   r^  N)r-   rS  r8   r   rA   rO  rÈ   rP  r`  s        r]   Útest_dsbevdzTestEigBanded.test_dsbevdö  sY   € ô ˜t×/Ñ/¸1Ô=‰ˆˆ4�Ø’Qœ ›
�]Ñ#ˆÜ!¤$ q£'¨4¯>©>Ô:Ü!¤# e£*¬c°$×2CÑ2CÓ.DÕEr_   c           	      ó*  — t        | j                  «      \  }}t        | j                  ddd|dd¬«      \  }}}}}|dd…t	        |«      f   }t        t        |«      | j                  «       t        t        |«      t        | j                  «      «       y)zUCompare dsbevx eigenvalues and eigenvectors
           with the result of linalg.eig.ç        ra   rQ   ©r_  r¨   N)
r@   rJ  r.   rS  r8   r   rA   rO  rÈ   rP  ©r{   rX  r}   ra  ÚnumÚifailrb  rc  s           r]   Útest_dsbevxzTestEigBanded.test_dsbevxþ  s~   € ô �T—\‘\Ó"‰ˆˆ1ä$*¨4×+;Ñ+;¸SÀ#ÀqÈ!Ø56¸aô%AÑ!ˆˆ4��e˜Tà’Qœ ›
�]Ñ#ˆÜ!¤$ q£'¨4¯>©>Ô:Ü!¤# e£*¬c°$×2CÑ2CÓ.DÕEr_   c                 óì   — t        | j                  d¬«      \  }}}|dd…t        |«      f   }t        t	        |«      | j
                  «       t        t        |«      t        | j                  «      «       y)zUCompare zhbevd eigenvalues and eigenvectors
           with the result of linalg.eig.ra   r^  N)r/   rT  r8   r   rA   rQ  rÈ   rR  r`  s        r]   Útest_zhbevdzTestEigBanded.test_zhbevd	  sY   € ô ˜t×0Ñ0¸AÔ>‰ˆˆ4�Ø’Qœ ›
�]Ñ#ˆÜ!¤$ q£'¨4¯?©?Ô;Ü!¤# e£*¬c°$×2DÑ2DÓ.EÕFr_   c           	      ó*  — t        | j                  «      \  }}t        | j                  ddd|dd¬«      \  }}}}}|dd…t	        |«      f   }t        t        |«      | j                  «       t        t        |«      t        | j                  «      «       y)zUCompare zhbevx eigenvalues and eigenvectors
           with the result of linalg.eig.rh  ra   rQ   ri  N)
r@   rK  r0   rT  r8   r   rA   rQ  rÈ   rR  rj  s           r]   Útest_zhbevxzTestEigBanded.test_zhbevx  s~   € ô �T—]‘]Ó#‰ˆˆ1ä$*¨4×+<Ñ+<¸cÀ3ÈÈ1Ø56¸aô%AÑ!ˆˆ4��e˜Tà’Qœ ›
�]Ñ#ˆÜ!¤$ q£'¨4¯?©?Ô;Ü!¤# e£*¬c°$×2DÑ2DÓ.EÕFr_   c                 ó>  — t        | j                  «      }|j                  }t        t	        |«      | j
                  «       t        | j                  «      }|j                  }t        t	        |«      | j                  «       d}t        j                  d«      }t        | j                  d||f¬«      }t        t	        |«      | j
                  ||dz    «       t        | j                  d||f¬«      }t        t	        |«      | j                  ||dz    «       | j
                  |   dz
  }| j
                  |   dz   }t        | j                  d||f¬«      }	t        t	        |	«      | j
                  ||dz    «       | j                  |   dz
  }| j                  |   dz   }t        | j                  d||f¬«      }
t        t	        |
«      | j                  ||dz    «       t        | j                  d¬	«      }|j                  }t        t	        |«      | j
                  «       y
)z?Compare eigenvalues of eigvals_banded with those of linalg.eig.rQ   rv   r­   ©ÚselectÚselect_rangera   çñhãˆµøä>rl   Fr‡   N)
r   rS  rN  r   rA   rO  rT  rQ  rS   Úlonglong)r{   Úw_symÚw_hermÚind1Úind2Ú	w_sym_indÚ
w_herm_indÚv_lowerÚv_upperÚ	w_sym_valÚ
w_herm_vals              r]   Útest_eigvals_bandedz!TestEigBanded.test_eigvals_banded  sä  € ä˜t×/Ñ/Ó0ˆØ—
‘
ˆÜ!¤$ u£+¨t¯~©~Ô>ä × 1Ñ 1Ó2ˆØ—‘ˆÜ!¤$ v£,°·±Ô@ð ˆÜ�{‰{˜1‹~ˆÜ" 4×#3Ñ#3Ø*-¸TÀ4¸LôJˆ	ä!¤$ y£/Ø"&§.¡.°°d¸1±fÐ"=ô	?ä# D×$5Ñ$5Ø+.¸dÀD¸\ôKˆ
ä!¤$ zÓ"2Ø"&§/¡/°$°t¸A±vÐ">ô	@ð —.‘. Ñ&¨Ñ/ˆØ—.‘. Ñ&¨Ñ/ˆÜ" 4×#3Ñ#3Ø*-¸WÀgÐ<NôPˆ	ä!¤$ y£/Ø"&§.¡.°°d¸1±fÐ"=ô	?ð —/‘/ $Ñ'¨&Ñ0ˆØ—/‘/ $Ñ'¨&Ñ0ˆÜ# D×$5Ñ$5Ø+.Ø29¸7Ð1CôEˆ
ô 	"¤$ zÓ"2Ø"&§/¡/°$°t¸A±vÐ">ô	@ô ˜t×/Ñ/¸eÔDˆØ—
‘
ˆÜ!¤$ u£+¨t¯~©~Õ>r_   c           
      ó2  — t        | j                  «      \  }}|dd…t        |j                  «      f   }t	        t        |«      | j                  «       t	        t        |«      t        | j                  «      «       t        | j                  «      \  }}|dd…t        |j                  «      f   }t	        t        |«      | j                  «       t	        t        |«      t        | j                  «      «       d}d}t        | j                  d||f¬«      \  }	}
t	        t        |	«      | j                  ||dz    «       t	        t        |
«      t        | j                  dd…||dz   …f   «      «       t        | j                  d||f¬«      \  }}t	        t        |«      | j                  ||dz    «       t	        t        |«      t        | j                  dd…||dz   …f   «      «       | j                  |   dz
  }| j                  |   dz   }t        | j                  d||f¬«      \  }}t	        t        |«      | j                  ||dz    «       t	        t        |«      t        | j                  dd…||dz   …f   «      «       | j                  |   dz
  }| j                  |   dz   }t        | j                  d||f¬«      \  }}t	        t        |«      | j                  ||dz    «       t	        t        |«      t        | j                  dd…||dz   …f   «      «       t        | j                  d	¬
«      \  }}|dd…t        |j                  «      f   }t	        t        |«      | j                  «       t	        t        |«      t        | j                  «      «       y)zXCompare eigenvalues and eigenvectors of eig_banded
           with those of linalg.eig. NrQ   rv   r­   rs  ra   rv  rl   Fr‡   )r   rS  r8   rN  r   rA   rO  rÈ   rP  rT  rQ  rR  )r{   rx  Úevec_symÚ	evec_sym_ry  Ú	evec_hermÚ
evec_herm_rz  r{  r|  Úevec_sym_indr}  Úevec_herm_indr~  r  r€  Úevec_sym_valr�  Úevec_herm_vals                      r]   Útest_eig_bandedzTestEigBanded.test_eig_bandedF  s>  € ô % T×%5Ñ%5Ó6‰ˆˆxØšQ¤¨¯
©
Ó 3Ð3Ñ4ˆ	Ü!¤$ u£+¨t¯~©~Ô>Ü!¤# i£.´#°d×6GÑ6GÓ2HÔIä& t×'8Ñ'8Ó9Ñˆ�	Øšq¤'¨&¯+©+Ó"6Ð6Ñ7ˆ
Ü!¤$ v£,°·±Ô@Ü!¤# j£/´3°t×7IÑ7IÓ3JÔKð ˆØˆÜ",¨T×-=Ñ-=Ø47Ø;?À¸,ô#HÑˆ	�<ô 	"¤$ y£/Ø"&§.¡.°°d¸1±fÐ"=ô	?ä!¤# lÓ"3Ü"% d×&7Ñ&7º¸4ÀÀQÁ¸;¸Ñ&GÓ"Hô	Jô %/¨t×/@Ñ/@Ø69Ø=AÀ4¸Lô%JÑ!ˆ
�Mô 	"¤$ zÓ"2Ø"&§/¡/°$°t¸A±vÐ">ô	@ä!¤# mÓ"4Ü"% d×&8Ñ&8º¸DÀÀaÁ¸K¸Ñ&HÓ"Iô	Kð —.‘. Ñ&¨Ñ/ˆØ—.‘. Ñ&¨Ñ/ˆÜ",¨T×-=Ñ-=Ø47Ø;BÀGÐ:Lô#NÑˆ	�<ô 	"¤$ y£/Ø"&§.¡.°°d¸1±fÐ"=ô	?ä!¤# lÓ"3Ü"% d×&7Ñ&7º¸4ÀÀQÁ¸;¸Ñ&GÓ"Hô	Jð —/‘/ $Ñ'¨&Ñ0ˆØ—/‘/ $Ñ'¨&Ñ0ˆÜ$.¨t×/@Ñ/@Ø69Ø=DÀgÐ<Nô%PÑ!ˆ
�Mô 	"¤$ zÓ"2Ø"&§/¡/°$°t¸A±vÐ">ô	@ä!¤# mÓ"4Ü"% d×&8Ñ&8º¸DÀÀaÁ¸K¸Ñ&HÓ"Iô	Kô % T×%5Ñ%5ÀEÔJ‰ˆˆxØšQ¤¨¯
©
Ó 3Ð3Ñ4ˆ	Ü!¤$ u£+¨t¯~©~Ô>Ü!¤# i£.´#°d×6GÑ6GÓ2HÕIr_   c                 óÊ  — t        | j                  «      \  }}t        | j                  | j                  | j
                  «      \  }}}t        |d| j                  z  dd…f   «      }t        | j                  | j
                  z   «      D ]1  }|t        |d| j                  z  dz
  |z
  |dz   |…f   |dz   «      z  }Œ3 t        | j                  d¬«      \  }}	}
t        ||
«       y)zZCompare dgbtrf  LU factorisation with the LU factorisation result
           of linalg.lu.rQ   Nra   r   ©Ú	permute_l)
r@   rL  r(   rU  rH  rI  r5   r¨   r   r   ©r{   r  rX  Úlu_symm_bandÚipivrb  Úur­   Úp_linÚl_linÚu_lins              r]   Útest_dgbtrfzTestEigBanded.test_dgbtrf€  óÑ   € ô �T—]‘]Ó#‰ˆˆ1Ü#)¨$×*;Ñ*;¸T¿W¹WÀdÇgÁgÓ#NÑ ˆ�d˜Dô �˜a §¡™iª˜lÑ+Ó,ˆÜ�t—w‘w §¡Ñ(Ó)ò 	?ˆAØ”�l 1 T§W¡W¡9¨Q¡;¨q¡=°!°A±#°a°%Ð#7Ñ8¸!¸A¹#Ó>Ñ>‰Að	?ô ! §¡¸!Ô<Ñˆˆu�eÜ! ! UÕ+r_   c                 óÊ  — t        | j                  «      \  }}t        | j                  | j                  | j
                  «      \  }}}t        |d| j                  z  dd…f   «      }t        | j                  | j
                  z   «      D ]1  }|t        |d| j                  z  dz
  |z
  |dz   |…f   |dz   «      z  }Œ3 t        | j                  d¬«      \  }}	}
t        ||
«       y)zZCompare zgbtrf  LU factorisation with the LU factorisation result
           of linalg.lu.rQ   Nra   r   rŽ  )
r@   rM  r*   rV  rH  rI  r5   r¨   r   r   r�  s              r]   Útest_zgbtrfzTestEigBanded.test_zgbtrfŽ  r˜  r_   c                 ó.  — t        | j                  | j                  | j                  «      \  }}}t	        || j                  | j                  | j
                  |«      \  }}t        j                  | j                  | j
                  «      }t        ||«       y)zhCompare dgbtrs  solutions for linear equation system  A*x = b
           with solutions of linalg.solve.N)
r(   rU  rH  rI  r)   r¹   r7   r   rL  r   ©r{   r‘  r’  rb  ÚyÚy_lins         r]   Útest_dgbtrszTestEigBanded.test_dgbtrsœ  sk   € ô $*¨$×*;Ñ*;¸T¿W¹WÀdÇgÁgÓ#NÑ ˆ�d˜DÜ˜ t§w¡w°·±¸¿¹ÀÓF‰ˆˆ4ä—‘˜TŸ]™]¨D¯F©FÓ3ˆÜ! ! UÕ+r_   c                 ó.  — t        | j                  | j                  | j                  «      \  }}}t	        || j                  | j                  | j
                  |«      \  }}t        j                  | j                  | j
                  «      }t        ||«       y)zhCompare zgbtrs  solutions for linear equation system  A*x = b
           with solutions of linalg.solve.N)
r*   rV  rH  rI  r+   rW  r7   r   rM  r   rœ  s         r]   Útest_zgbtrszTestEigBanded.test_zgbtrs¦  sk   € ô $*¨$×*;Ñ*;¸T¿W¹WÀdÇgÁgÓ#NÑ ˆ�d˜DÜ˜ t§w¡w°·±¸¿¹À$ÓG‰ˆˆ4ä—‘˜TŸ]™]¨D¯G©GÓ4ˆÜ! ! UÕ+r_   rŠ   c                 óÂ  — t        j                  d|¬«      }t        |«      \  }}t        t        j                  ddgddgg|¬«      «      \  }}|j                  dk(  sJ ‚|j
                  |j
                  k(  sJ ‚|j                  dk(  sJ ‚|j
                  |j
                  k(  sJ ‚t        |d¬«      }|j                  dk(  sJ ‚|j
                  |j
                  k(  sJ ‚y )NrŒ   r�   r   ra   rŽ   T©Úeigvals_only)rS   r’   r   r4   r@   r[   )r{   rŠ   Úa_bandr}   rl   r7  Úv_ns          r]   r“   zTestEigBanded.test_empty°  sÆ   € ä—‘˜&¨Ô+ˆÜ˜&Ó!‰ˆˆ1äœbŸh™h¨¨A¨°°A°Ð'7¸rÔBÓC‰ˆˆSà�w‰w˜$ŠÐˆØ�w‰w˜#Ÿ)™)Ò#Ð#Ð#à�w‰w˜&Ò Ð Ð Ø�w‰w˜#Ÿ)™)Ò#Ð#Ð#ä�v¨DÔ1ˆØ�w‰w˜$ŠÐˆØ�w‰w˜#Ÿ)™)Ò#Ð#Ñ#r_   N)r”   r•   r–   r@  r>  rd  rf  rm  ro  rq  r‚  rŒ  r—  rš  rŸ  r¡  r—   r˜   r™   rd   rš   rS   r;   r›   r<   r“   rœ   r_   r]   r;  r;  ™  s†   „ òòM$òbFòFò	FòGò	Gò(?òT8Jòt,ò,ò,ò,ð ‡[�[×Ñ˜T C¨°·
±
¸GÀRÇ\Á\Ð#RÓSñ$ó Tñ$r_   r;  c                   ó0   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚTestEigTridiagonalc                 ó$   — | j                  «        y r=  )Úcreate_trimatr?  s    r]   r@  zTestEigTridiagonal.setup_methodÂ  s   € Ø×ÑÕr_   c                 ó„  — d}t        |d«      | _        t        |dz
  d«      | _        t        | j                  «      t        | j                  d«      z   t        | j                  d«      z   | _        t        j                  | j                  «      \  }}|j                  }t        |«      }||   | _	        |dd…|f   | _
        y)z>Create the full matrix `self.fullmat`, `self.d`, and `self.e`.rB  rC  ra   rD  r¢   N)r6   rk   Úer5   Úfull_matr7   r
   rN  r8   r}   ra  )r{   rX  rY  rZ  r[  s        r]   rª  z TestEigTridiagonal.create_trimatÅ  s—   € àˆô �a˜“ˆŒÜ�a˜‘c˜4“ˆŒÜ˜dŸf™f›¬¨T¯V©V°RÓ(8Ñ8¼4ÀÇÁÈ»?ÑJˆŒä—‘˜DŸM™MÓ*‰ˆˆBØ�W‰WˆÜ�r‹{ˆØ�D‘ˆŒØ’q˜$�w‘Kˆ�	r_   c                 óÂ  — t        t        t        | j                  | j                  dd «       t        t
        t        | j                  | j                  dz  «       t        t
        t        | j                  | j                  d¬«       t        t        t        | j                  | j                  d¬«       t        t        t        | j                  | j                  dd¬	«       y)
zTest error conditions.Nr¢   rP   rC  ©Úlapack_driverÚfoor­   ©r   r¢   rs  )r  r  r#   rk   r¬  rf   r?  s    r]   Útest_degeneratez"TestEigTridiagonal.test_degenerateÔ  s”   € ô 	”jÔ"6¸¿¹ÀÇÁÀsÈÀÔLä”iÔ!5°t·v±v¸t¿v¹vÈ¹{ÔKä”iÔ!5°t·v±v¸t¿v¹vØ$&õ	(ä”jÔ"6¸¿¹ÀÇÁØ$)õ	+ô 	”jÔ"6¸¿¹ÀÇÁØ ¨wö	8r_   c           
      óB  — dD ]C  }t        | j                  | j                  |¬«      }t        t	        |«      | j
                  «       ŒE dD ]0  }t        t        t         | j                  | j                  |dd¬«       Œ2 dD �]  }t        | j                  | j                  ddt        | j                  «      d	z
  f|¬
«      }t        t	        |«      | j
                  «       d}d}t        | j                  | j                  d||f|¬
«      }t        t	        |«      | j
                  ||d	z    «       | j
                  |   dz
  }| j
                  |   dz   }t        | j                  | j                  d||f|¬
«      }t        t	        |«      | j
                  ||d	z    «       �Œ y)z>Compare eigenvalues of eigvalsh_tridiagonal with those of eig.)ÚsterfÚstevÚstebzÚstemrÚautor¯  )rµ  r¶  r­   r£   ©r°  rt  ru  ©r·  r¸  r¹  r   ra   ©rt  ru  r°  rQ   rv   rv  rl   N)	r#   rk   r¬  r   rA   r}   r  r  re   )	r{   Údriverr}   Úw_indrz  r{  r~  r  Úw_vals	            r]   Útest_eigvalsh_tridiagonalz,TestEigTridiagonal.test_eigvalsh_tridiagonalã  sy  € ð Bò 	7ˆFÜ$ T§V¡V¨T¯V©VÀ6ÔJˆAÜ%¤d¨1£g¨t¯v©vÕ6ð	7ð (ò 	/ˆFÜœ*Ô&:¸D¿F¹FÀDÇFÁFØ(.°sØ'-ö/ð	/ð 1ó 	HˆFä(Ø—‘˜Ÿ™ s¸!¼SÀÇÁ»[È¹]Ð9KØ$ô&ˆEô &¤d¨5£k°4·6±6Ô:ð ˆDØˆDÜ(Ø—‘˜Ÿ™ s¸$À¸Ø$ô&ˆEô &¤d¨5£k°4·6±6¸$¸tÀA¹vÐ3FÔGð —f‘f˜T‘l VÑ+ˆGØ—f‘f˜T‘l VÑ+ˆGÜ(Ø—‘˜Ÿ™ s¸'À7Ð9KØ$ô&ˆEô &¤d¨5£k°4·6±6¸$¸tÀA¹vÐ3FÖGñ+	Hr_   c                 ó@  — t        t        t        | j                  | j                  d¬«       dD ]€  }t        | j                  | j                  |¬«      \  }}|dd…t        |«      f   }t        t        |«      | j                  «       t        t        |«      t        | j                  «      «       Œ‚ t        t        t        | j                  | j                  ddd¬«       d	D �]¹  }d
}t        | j                  «      dz
  }t        | j                  | j                  d||f|¬«      \  }}t        t        |«      | j                  «       t        t        |«      t        | j                  «      «       d}d}t        | j                  | j                  d||f|¬«      \  }}t        t        |«      | j                  ||dz    «       t        t        |«      t        | j                  dd…||dz   …f   «      «       | j                  |   dz
  }| j                  |   dz   }t        | j                  | j                  d||f|¬«      \  }}t        t        |«      | j                  ||dz    «       t        t        |«      t        | j                  dd…||dz   …f   «      «       �Œ¼ y)zWCompare eigenvalues and eigenvectors of eigh_tridiagonal
           with those of eig. rµ  r¯  )r·  r¶  r¸  r¹  Nr¶  r­   r£   rº  r»  r   ra   r¼  rQ   rv   rv  rl   )r  r  r$   rk   r¬  r8   r   rA   r}   rÈ   ra  re   )	r{   r½  r}   ra  rc  rz  r{  r~  r  s	            r]   Útest_eigh_tridiagonalz(TestEigTridiagonal.test_eigh_tridiagonal  s2  € ô 	”jÔ"2°D·F±F¸D¿F¹FØ$+õ	-à8ò 	BˆFÜ& t§v¡v¨t¯v©vÀVÔL‰GˆAˆtØšœG A›J˜Ñ'ˆEÜ%¤d¨1£g¨t¯v©vÔ6Ü%¤c¨%£j´#°d·i±i³.ÕAð		Bô 	”jÔ"2°D·F±F¸D¿F¹FØ$*°3ÀVõ	Mà0ó 	FˆFàˆDÜ�t—v‘v“;˜q‘=ˆDÜ&Ø—‘˜Ÿ™ s¸$À¸Ø$ô&‰GˆAˆtô &¤d¨1£g¨t¯v©vÔ6Ü%¤c¨$£i´°T·Y±Y³Ô@ØˆDØˆDÜ&Ø—‘˜Ÿ™ s¸$À¸Ø$ô&‰GˆAˆtô &¤d¨1£g¨t¯v©v°d¸4À¹6Ð/BÔCÜ%¤c¨$£iÜ&)¨$¯)©)²A°t¸DÀ¹F°{°NÑ*CÓ&DôFð —f‘f˜T‘l VÑ+ˆGØ—f‘f˜T‘l VÑ+ˆGÜ&Ø—‘˜Ÿ™ s¸'À7Ð9KØ$ô&‰GˆAˆtô &¤d¨1£g¨t¯v©v°d¸4À¹6Ð/BÔCÜ%¤c¨$£iÜ&)¨$¯)©)²A°t¸DÀ¹F°{°NÑ*CÓ&DöFñ3	Fr_   c                 óè  — t        j                  dg«      }t        j                  g «      }t        ||d¬«      }|j                  dk(  sJ ‚t	        ||«       t        ||dd¬«      \  }}|j                  dk(  sJ ‚|j                  dk(  sJ ‚t	        ||«       t	        |t        d	gg«      «       t        ||d
d¬«      \  }}|j
                  dk(  sJ ‚|j                  dk(  sJ ‚|j                  dk(  sJ ‚y)zSee gh-20075rE  Tr£  ra   r­   rŒ   rs  rQ   rC  rl   )r¯   r   r   rŽ   r·   N)rS   r4   r$   Úndimr   rÅ   r@   )r{   r|   r¹   Úxr3  s        r]   Útest_eigh_tridiagonal_1x1z,TestEigTridiagonal.test_eigh_tridiagonal_1x1/  sÝ   € ä�H‰H�d�VÓˆÜ�H‰H�R‹LˆÜ˜Q °Ô5ˆØ�v‰v˜Š{Ðˆ{Ü˜˜1ÔÜ  1¨S¸vÔF‰ˆˆ1Ø�v‰v˜Š{Ðˆ{Ø�v‰v˜Š{Ðˆ{Ü˜˜1ÔÜ˜œ5 2 $ ›=Ô)ä  1¨S¸wÔG‰ˆˆ1Ø�v‰v˜Š{Ðˆ{Ø�w‰w˜$ŠÐˆØ�w‰w˜&Ò Ð Ñ r_   N)	r”   r•   r–   r@  rª  r³  rÀ  rÂ  rÆ  rœ   r_   r]   r¨  r¨  Á  s$   „ òò ò8ò HòD(FóT!r_   r¨  c                   óô  — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Ze	j                  j                  de«      e	j                  j                  dd	«      d
„ «       «       Ze	j                  j                  dd	«      d„ «       Ze	j                  j                  dd«      e	j                  j                  dd«      d„ «       «       Zd„ Ze	j                  j                  deeej(                  eej,                  g«      d„ «       Zy)ÚTestEighc                 óB   — t         j                  j                  d«       y )Nr  )rS   rT   Úseedr?  s    r]   Úsetup_classzTestEigh.setup_classC  s   € Ü
�	‰	�‰�tÕr_   c           	      óÔ  — t        t        t        t        j                  ddg«      «       t        t        t        t        j                  ddg«      t        j                  ddg«      «       t        t        t        t        j                  ddg«      t        j                  ddg«      «       t        t        t        t        j                  ddg«      t        j                  ddg«      d¬«       t        t        t        t        j                  ddg«      t        j                  ddg«      ddgddg¬«       t        t        t        t        j                  ddg«      t        j                  ddg«      ddg¬«       t        t        t        t        j                  ddg«      t        j                  ddg«      d	dg¬«       t        t        t        t        j                  ddg«      t        j                  ddg«      ddg¬«       t        t        t        t        j                  ddg«      t        j                  ddg«      ddg¬
«       t        t        t        t        j                  ddg«      d¬«       t        t        t        t        j                  ddg«      d d¬«       t        t        t        t        j                  ddg«      t        j                  ddg«      d¬«       t        t        t        t        j                  ddg«      t        j                  ddg«      dddg¬«       t        t        t        t        j                  ddg«      t        j                  ddg«      dddg¬«       y )Nra   rQ   rs   é   )Útype)Úsubset_by_valueÚsubset_by_indexr   ©rÐ  r¯   ©rÏ  Úwrong©r½  ÚgvxÚevrÚgvd)r½  rÐ  )r  r  r   rS   rÄ   r?  s    r]   Útest_wrong_inputszTestEigh.test_wrong_inputsF  sT  € ä”j¤$¬¯©°°A°«Ô8ä”j¤$¬¯©°°A°«¼¿¹À!ÀQÀ»ÔIä”j¤$¬¯©°°A°«¼¿¹À!ÀQÀ»ÔIä”j¤$¬¯©°°A°«¼¿¹À!ÀQÀ»Øõ	ô 	”j¤$¬¯©°°A°«¼¿¹À!ÀQÀ»Ø'(¨! f¸qÀ!¸fõ	Fô 	”j¤$¬¯©°°A°«¼¿¹À!ÀQÀ»Ø'(¨! fõ	.ô 	”j¤$¬¯©°°A°«¼¿¹À!ÀQÀ»Ø')¨1 gõ	/ô 	”j¤$¬¯©°°A°«¼¿¹À!ÀQÀ»Ø'(¨! fõ	.ô 	”j¤$¬¯©°°A°«¼¿¹À!ÀQÀ»Ø'(¨! fõ	.ô 	”j¤$¬¯©°°A°«ÀÕHä”j¤$¬¯©°°A°«¸ÀeÕLä”j¤$¬¯©°°A°«¼¿¹À!ÀQÀ»Ø"õ	$ô 	”j¤$¬¯©°°A°«¼¿¹À!ÀQÀ»Ø"°Q¸°Fõ	<ä”j¤$¬¯©°°A°«¼¿¹À!ÀQÀ»Ø"°Q¸°Fö	<r_   c           	      ó„   — t        t        t        t        j                  ddg«      t        j                  ddg«      «       y )Nrs   )r  r'   r   rS   rÄ   r?  s    r]   Útest_nonpositive_bzTestEigh.test_nonpositive_bl  s(   € Ü”k¤4¬¯©°!°Q°«¼"¿'¹'À1ÀaÀ&»/ÕJr_   c                 ó’  — t        t        «      D ]µ  \  }}t        d|¬«      }t        |ddg¬«      \  }}t	        |j
                  d   t        |«      «       t        |dkD  |dk  z  «      sJ ‚t        dd|¬«      }t        ||ddg¬«      \  }}t	        |j
                  d   t        |«      «       t        |dkD  |dk  z  «      rŒµJ ‚ y )	Né   r�   r¯   rQ   rÒ  ra   T)rZ   r[   )Ú	enumerateÚDTYPESr^   r   r   r@   re   rÆ   )r{   ÚindrŠ   r|   r}   rl   r¹   s          r]   Útest_value_subsetszTestEigh.test_value_subsetsp  sÀ   € Ü ¤Ó(ò 
	+‰GˆC�ä(¨°2Ô6ˆAÜ˜¨B°¨7Ô3‰DˆAˆqÜ˜Ÿ™ ™¤S¨£VÔ,Ü˜˜B™ 1 q¡5Ñ)Ô*Ð*Ð*ä(¨°DÀÔCˆAÜ˜˜1¨r°1¨gÔ6‰DˆAˆqÜ˜Ÿ™ ™¤S¨£VÔ,Ü˜˜B™ 1 q¡5Ñ)Õ*Ð*Ð*ñ
	+r_   c                 ó‚   — t        ddgddgg«      }t        ddgddgg«      }t        |«      \  }}t        ||«      \  }}y )Nra   rQ   é   rs   ru   )r4   r   )r{   r|   r¹   r}   Úzs        r]   Útest_eigh_integerzTestEigh.test_eigh_integer}  sL   € Ü�A�q�6˜A˜q˜6Ð"Ó#ˆÜ�A�q�6˜A˜q˜6Ð"Ó#ˆÜ�A‹w‰ˆˆ1Ü�A�q‹z‰ˆ‰1r_   c                 óÜ   — dd l }|j                  j                  d«      j                  «       }t	        j
                  |«      }t        t        t        |«       t        t        t        |«       y )Nr   rQ   )	Úscipy.sparseÚsparseÚidentityÚtocscrS   Ú
atleast_2dr  r  r   )r{   Úscipyr|   r¹   s       r]   Útest_eigh_of_sparsezTestEigh.test_eigh_of_sparseƒ  sH   € ãØ�L‰L×!Ñ! !Ó$×*Ñ*Ó,ˆÜ�M‰M˜!ÓˆÜ”j¤$¨Ô*Ü”j¤$¨Õ*r_   Údtype_r½  )rZ  ÚevdrÖ  Úevxc                 ó®   — t        d|¬«      }t        ||¬«      \  }}t        ||z  ||z  z
  ddt        j                  |«      j
                  z  d¬«       y )NrÜ  )rY   r[   rÔ  rh  éè  ©r¿   r¾   )r^   r   r   rS   ÚfinfoÚeps)r{   r½  rí  r|   r}   rl   s         r]   Útest_various_drivers_standardz&TestEigh.test_various_drivers_standard‹  sR   € ô % r°Ô8ˆÜ�A˜fÔ%‰ˆˆ1Ü˜˜A™  Q¡™¨Ø!¤"§(¡(¨6Ó"2×"6Ñ"6Ñ6Øö	!r_   c                 ó  — t        dgg|¬«      \  }}t        |t        dg«      d¬«       t        |t        dgg«      d¬«       t        dgg|¬«      \  }}t        |t        dg«      d¬«       t        |t        dgg«      d¬«       y )Nra   rÔ  rC  çVçž¯Ò<r+  rP   r   )r   r   r4   )r{   r½  r}   rl   s       r]   Útest_1x1_lworkzTestEigh.test_1x1_lwork”  sx   € ä�a�S�E &Ô)‰ˆˆ1Ü˜œ5 " ›;¨UÕ3Ü˜œ5 2 $ ›=¨uÕ5ô �b�T�F 6Ô*‰ˆˆ1Ü˜œ5 ! ›:¨EÕ2Ü˜œ5 2 $ ›=¨uÖ5r_   rÎ  rr   )Úgvr×  rÕ  c                 ó<  — t        j                  d«      }t        d«      }t        dd¬«      }t        ||||¬«      \  }}|dk(  rt	        ||z  |||z  z  z
  d|d¬«       y |d	k(  rt	        ||z  |z  ||z  z
  d|d¬«       y t	        ||z  |z  ||z  z
  d|d¬«       y )
Ng     ˆ³@rÜ  T)rZ   )r|   r¹   r½  rÎ  ra   rh  rò  rQ   )rS   Úspacingr^   r   r   )r{   r½  rÎ  r¿   r|   r¹   r}   rl   s           r]   Ú test_various_drivers_generalizedz)TestEigh.test_various_drivers_generalizedŸ  s§   € ô �z‰z˜%Ó ˆÜ$ RÓ(ˆÜ$ R°Ô5ˆÜ�a˜1 V°$Ô7‰ˆˆ1Ø�1Š9Ü˜A ™E A q¨1¡u¡IÑ-¨r¸À2ÖFØ�QŠYÜ˜A ™E A™I¨¨A©Ñ-¨r¸À2ÖFä˜A ™E A™I¨¨A©Ñ-¨r¸À2ÖFr_   c                 óz  — t        d«      }t        |ddg¬«      }t        t        |«      d«       t        |ddg¬«      }t        t        |«      d«       t	        ||«       t        j                  g d¢«      }t        |ddg¬«      }t        t        |«      d«       t	        |t        j                  dd	g«      «       y )
Nru   ra   rQ   rÑ  )ra   ç333333ó?çÍÌÌÌÌÌô?ç      ø?rQ   gffffffö?rÒ  rþ  rÿ  )r^   r   r   re   r   rS   r5   r4   )r{   r|   r}   Úw2r¹   Úw3s         r]   Útest_eigvalsh_new_argszTestEigh.test_eigvalsh_new_args­  s–   € Ü$ QÓ'ˆÜ�Q¨¨A¨Ô/ˆÜ”S˜“V˜QÔä�a¨!¨Q¨Ô0ˆÜ”S˜“W˜aÔ Ü˜˜2Ôä�G‰GÒ)Ó*ˆÜ�a¨!¨S¨Ô2ˆÜ”S˜“W˜aÔ Ü˜œBŸH™H c¨3 ZÓ0Õ1r_   rŠ   c                 óô  — t        j                  d|¬«      }t        |«      \  }}t        t        j                  d|¬«      «      \  }}|j                  dk(  sJ ‚|j
                  |j
                  k(  sJ ‚|j                  dk(  sJ ‚|j
                  |j
                  k(  sJ ‚t        |d¬«      }t        |t        j                  d«      «       |j                  dk(  sJ ‚|j
                  |j
                  k(  sJ ‚y )NrŒ   r�   rQ   rŽ   Tr£  )rS   r’   r   rF   r@   r[   r   )r{   rŠ   r|   r}   rl   r7  r¦  s          r]   r“   zTestEigh.test_empty»  sÊ   € ä�H‰H�V 2Ô&ˆÜ�A‹w‰ˆˆ1äœŸ™˜q¨Ô+Ó,‰ˆˆSà�w‰w˜$ŠÐˆØ�w‰w˜#Ÿ)™)Ò#Ð#Ð#à�w‰w˜&Ò Ð Ð Ø�w‰w˜#Ÿ)™)Ò#Ð#Ð#ä� Ô&ˆÜ˜œ2Ÿ8™8 D›>Ô*à�w‰w˜$ŠÐˆØ�w‰w˜#Ÿ)™)Ò#Ð#Ñ#r_   N)r”   r•   r–   rË  rØ  rÚ  rà  rä  rì  r—   r˜   r™   rÞ  rõ  rø  rü  r  rd   rš   rS   r;   r›   r<   r“   rœ   r_   r]   rÈ  rÈ  B  s  „ òò$<òLKò+òò+ð ‡[�[×Ñ˜X vÓ.Ø‡[�[×Ñ˜XÐ'BÓCñ!ó Dó /ð!ð ‡[�[×Ñ˜XÐ'BÓCñ6ó Dð6ð ‡[�[×Ñ˜V YÓ/Ø‡[�[×Ñ˜XÐ';Ó<ñ
Gó =ó 0ð
Gò2ð ‡[�[×Ñ˜T C¨°·
±
¸GÀRÇ\Á\Ð#RÓSñ$ó Tñ$r_   rÈ  c                   óL  — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zej                   j#                  e d¬«      ej                   j&                  d„ «       «       Zej                   j+                  dg d¢«      ej                   j+                  dg d¢«      ej                   j+                  de«      d„ «       «       «       Zej                   j+                  deeej6                  eej:                  g«      ej                   j+                  dg d¢«      d„ «       «       Zy)ÚTestSVD_GESDDÚgesddc                 óh   — t        t        t        dggd¬«       t        t        t        dggd¬«       y )NrC  r¯  r±  )r  rf   r   r  r?  s    r]   r³  zTestSVD_GESDD.test_degenerateÑ  s&   € Ü”i¤¨ t f¸BÕ?Ü”j¤#¨¨ v¸UÖCr_   c                 óÊ  — g d¢g d¢g d¢g}dD ]Ó  }t        ||| j                  ¬«      \  }}}t        |j                  |z  t	        d«      «       t        |j                  |z  t	        d«      «       t        |j                  d   |j                  d   f|j                  j                  «      }t        t        |«      «      D ]  }||   |||f<   Œ t        ||z  |z  |«       ŒÕ y )Nrr   ©ra   rÜ  rs   rt   ©TF©Úfull_matricesr°  rs   r   ©r   r°  r   rW   rF   r9   r@   r[   Úcharr¨   re   ©r{   r|   r  r“  ÚsÚvhÚsigmar­   s           r]   r   zTestSVD_GESDD.test_simpleÕ  sÉ   € Úš
¢IÐ.ˆØ*ò 	9ˆMÜ˜1¨MØ)-×);Ñ);ô=‰HˆAˆq�"ä% a§c¡c¨A¡g¬s°1«vÔ6Ü% b§d¡d¨R¡i´°Q³Ô8Ü˜1Ÿ7™7 1™: r§x¡x°¡{Ð3°Q·W±W·\±\ÓBˆEÜœ3˜q›6“]ò #�Ø ™d��a˜�d’ð#ä% a¨%¡i°"¡n°aÕ8ñ	9r_   c                 óÊ  — g d¢g d¢g d¢g}dD ]Ó  }t        ||| j                  ¬«      \  }}}t        |j                  |z  t	        d«      «       t        |j                  |z  t	        d«      «       t        |j                  d   |j                  d   f|j                  j                  «      }t        t        |«      «      D ]  }||   |||f<   Œ t        ||z  |z  |«       ŒÕ y )Nrr   rt   r  r  rs   r   r  r  s           r]   Útest_simple_singularz"TestSVD_GESDD.test_simple_singulará  sÉ   € Úš	¢9Ð-ˆØ*ò 	9ˆMÜ˜1¨MØ)-×);Ñ);ô=‰HˆAˆq�"ä% a§c¡c¨A¡g¬s°1«vÔ6Ü% b§d¡d¨R¡i´°Q³Ô8Ü˜1Ÿ7™7 1™: r§x¡x°¡{Ð3°Q·W±W·\±\ÓBˆEÜœ3˜q›6“]ò #�Ø ™d��a˜�d’ð#ä% a¨%¡i°"¡n°aÕ8ñ	9r_   c                 óš  — g d¢g d¢g}dD ]¾  }t        ||| j                  ¬«      \  }}}t        |j                  |z  t	        |j
                  d   «      «       t        |j
                  d   |j
                  d   f|j                  j                  «      }t        t        |«      «      D ]  }||   |||f<   Œ t        ||z  |z  |«       ŒÀ y )Nrr   ©rÍ  ru   rv   r  r  r   ©r   r°  r   rW   rF   r@   r9   r[   r  r¨   re   r  s           r]   Útest_simple_underdetz"TestSVD_GESDD.test_simple_underdetí  s¹   € Úš	Ð"ˆØ*ò 	9ˆMÜ˜1¨MØ)-×);Ñ);ô=‰HˆAˆq�"ä% a§c¡c¨A¡g¬s°1·7±7¸1±:«Ô?Ü˜1Ÿ7™7 1™: r§x¡x°¡{Ð3°Q·W±W·\±\ÓBˆEÜœ3˜q›6“]ò #�Ø ™d��a˜�d’ð#ä% a¨%¡i°"¡n°aÕ8ñ	9r_   c                 óä  — ddgddgddgg}dD ]à  }t        ||| j                  ¬«      \  }}}t        |j                  |z  t	        |j
                  d   «      «       t        |j                  |z  t	        d«      «       t        |j
                  d   |j
                  d   f|j                  j                  «      }t        t        |«      «      D ]  }||   |||f<   Œ t        ||z  |z  |«       Œâ y )	Nra   rQ   rÍ  ru   rs   r  r  r   r  r  s           r]   Útest_simple_overdetz!TestSVD_GESDD.test_simple_overdetø  sÝ   € Ø�ˆV�a˜�V˜a ˜VÐ$ˆØ*ò 	9ˆMÜ˜1¨MØ)-×);Ñ);ô=‰HˆAˆq�"ä% a§c¡c¨A¡g¬s°1·7±7¸1±:«Ô?Ü% b§d¡d¨R¡i´°Q³Ô8Ü˜1Ÿ7™7 1™: r§x¡x°¡{Ð3°Q·W±W·\±\ÓBˆEÜœ3˜q›6“]ò #�Ø ™d��a˜�d’ð#ä% a¨%¡i°"¡n°aÕ8ñ	9r_   c           
      ó¨  — t         j                  j                  d«      }d}d}t        d«      D �]   }|j                  ||g«      |j                  ||g«      fD ]ô  }dD ]í  }t	        ||| j
                  ¬«      \  }}}	t        |j                  |z  t        |j                  d   «      «       t        |	|	j                  z  t        |	j                  d   «      «       t        |j                  d   |	j                  d   f|j                  j                  «      }
t        t        |«      «      D ]  }||   |
||f<   Œ t        ||
z  |	z  |«       Œï Œö �Œ# y )	Nr  rÜ  rê   rs   r  r  ra   r   )rS   rT   r  r¨   r   r°  r   rW   rF   r@   r9   r[   r  re   )r{   ri   rY   Úmr­   r|   r  r“  r  r  r  s              r]   Útest_randomzTestSVD_GESDD.test_random  s4  € Ü�i‰i×#Ñ# DÓ)ˆØˆØˆÜ�q“ó 
	AˆAØ—j‘j ! Q Ó(¨#¯*©*°a¸°VÓ*<Ð=ò 	A�Ø%2ò A�MÜ" 1°MØ15×1CÑ1Cô E‘H�A�q˜"ä-¨a¯c©c°A©g´s¸1¿7¹7À1¹:³ÔGÜ-¨b°2·4±4©i¼¸R¿X¹XÀa¹[Ó9IÔJÜ! 1§7¡7¨1¡:¨r¯x©x¸©{Ð";¸Q¿W¹W¿\¹\ÓJ�EÜ"¤3 q£6›]ò +˜Ø&'¨¡d˜˜a ˜dšð+ä-¨a°%©i¸"©n¸aÕ@ñAò	Añ
	Ar_   c                 ó:  — g d¢g d¢g d¢g}dD �]
  }t        ||| j                  ¬«      \  }}}t        |j                  «       j                  |z  t        |j                  d   «      «       t        |j                  «       j                  |z  t        |j                  d   «      «       t        |j                  d   |j                  d   f|j                  j                  «      }t        t        |«      «      D ]  }||   |||f<   Œ t        ||z  |z  |«       �Œ y )Nrr   )ra   y               @rs   rt   r  r  ra   r   )r   r°  r   rV   rW   rF   r@   r9   r[   r  r¨   re   r  s           r]   r…   z!TestSVD_GESDD.test_simple_complex  sç   € Úš
¢IÐ.ˆØ*ó 	9ˆMÜ˜1¨MØ)-×);Ñ);ô=‰HˆAˆq�"ä% a§f¡f£h§j¡j°1¡n´c¸!¿'¹'À!¹*³oÔFÜ% b§g¡g£i§k¡k°BÑ&6¼¸B¿H¹HÀQ¹KÓ8HÔIÜ˜1Ÿ7™7 1™: r§x¡x°¡{Ð3°Q·W±W·\±\ÓBˆEÜœ3˜q›6“]ò #�Ø ™d��a˜�d’ð#ä% a¨%¡i°"¡n°aÖ8ñ	9r_   c           
      ó¾  — t         j                  j                  d«      }d}d}t        d«      D �]+  }dD �]"  }|j                  ||g«      |j                  ||g«      fD ]ö  }|d|j                  t	        |j
                  «      «      z  z   }t        ||| j                  ¬«      \  }}}	t        |j                  «       j                  |z  t        |j
                  d   «      «       t        |j
                  d   |	j
                  d	   f|j                  j                  «      }
t        t        |«      «      D ]  }||   |
||f<   Œ t        ||
z  |	z  |«       Œø �Œ% �Œ. y )
Nr  rÜ  rê   rs   r  rP   r  ra   r   )rS   rT   r  r¨   Úlistr@   r   r°  r   rV   rW   rF   r9   r[   r  re   )r{   ri   rY   r  r­   r  r|   r“  r  r  r  s              r]   Útest_random_complexz!TestSVD_GESDD.test_random_complex   s@  € Ü�i‰i×#Ñ# DÓ)ˆØˆØˆÜ�q“ó 	AˆAØ!.ó A�ØŸ*™* a¨ VÓ,¨c¯j©j¸!¸Q¸Ó.@ÐAò A�AØ˜B˜sŸz™z¬$¨q¯w©w«-Ó8Ñ8Ñ8�AÜ" 1°MØ15×1CÑ1Cô E‘H�A�q˜"ä-¨a¯f©f«h¯j©j¸1©nÜ.1°!·'±'¸!±*«oô?ô
 " 1§7¡7¨1¡:¨r¯x©x¸©{Ð";¸Q¿W¹W¿\¹\ÓJ�EÜ"¤3 q£6›]ò +˜Ø&'¨¡d˜˜a ˜dšð+ä-¨a°%©i¸"©n¸aÕ@òAòAñ	Ar_   c                 óH  — t         j                  j                  d«      }g d¢}|D ]z  }t         j                  t         j                  t         j
                  t         j                  fD ]7  } |j                  |Ž j                  |«      }t        || j                  ¬«       Œ9 Œ| y )Nr  ))rï   rö   )rî   é2   )é<   r  r¯  )rS   rT   r  r;   r$  r<   Ú
complex128rU   rX   r   r°  )r{   ri   ÚsizesÚszrŠ   r|   s         r]   Útest_crash_1580zTestSVD_GESDD.test_crash_15804  s|   € Ü�i‰i×#Ñ# DÓ)ˆÚ/ˆØò 	9ˆBÜ—z‘z¤2§:¡:¬r¯|©|¼R¿]¹]ÐKò 9�Ø�C—H‘H˜b�M×(Ñ(¨Ó,�ä�A T×%7Ñ%7Ö8ñ9ñ	9r_   c                 ó¼  — g d¢g d¢g d¢g}t        |d| j                  ¬«      \  }}}t        |j                  |z  t	        d«      «       t        |j                  |z  t	        d«      «       t        |j                  d   |j                  d   f|j                  j                  «      }t        t        |«      «      D ]  }||   |||f<   Œ t        ||z  |z  |«       y )Nrr   r
  rt   F)rˆ   r°  rs   r   r  )r{   r|   r“  r  r  r  r­   s          r]   r  zTestSVD_GESDD.test_check_finite=  s·   € Úš
¢IÐ.ˆÜ�q u¸D×<NÑ<NÔO‰ˆˆ1ˆbÜ! !§#¡#¨¡'¬3¨q«6Ô2Ü! "§$¡$¨¡)¬S°«VÔ4Ü�q—w‘w˜q‘z 2§8¡8¨A¡;Ð/°·±·±Ó>ˆÜ”s˜1“v“ò 	ˆAØ˜A™$ˆE�!�Q�$ŠKð	ä! ! e¡)¨b¡.°!Õ4r_   c                 ót   — t        j                  g d¢g d¢g d¢g d¢g«      }t        || j                  ¬«       y )N)çKÚ}\UUÅ?ç“vWUUå?r,  rh  rh  rh  )rh  r,  r-  r,  rh  rh  )rh  rh  r,  r-  r,  rh  )rh  rh  rh  r,  r-  r,  r¯  )rS   r4   r   r°  )r{   r¹   s     r]   Útest_gh_5039zTestSVD_GESDD.test_gh_5039G  s6   € ô �H‰HÚ=Ú=Ú=Ú=ð?ó@ˆô
 	ˆA˜T×/Ñ/Ö0r_   z64-bit LAPACK required©Úreasonc                 óÞ   — t        d¬«       t        j                  ddgt        j                  ¬«      }d|d<   t	        |d¬«      \  }}}t        |d	   d
«       t        |d   |d   z  d
«       y )NihB  )Úfree_mbra   l        r�   r²  F©r  r   rC  rŒ   )rI   rS   r9   r;   r   r   )r{   r\   r“  r  r  s        r]   Útest_large_matrixzTestSVD_GESDD.test_large_matrixX  sd   € ô 	 %Õ(Ü�H‰H�a˜�Z¤r§z¡zÔ2ˆØˆˆ%‰Ü�q¨Ô.‰ˆˆ1ˆbÜ˜˜!™˜cÔ"Ü˜˜$™ " U¡)Ñ+¨SÕ1r_   r  ©r   ra   rQ   rY   r[   c                 óð  — t        j                  ||f|¬«      }t        ||«      }|j                  j                  }|dv r|j                  «       n|}t        |«      \  }}	}
t        |j                  ||f«       t        |j                  |«       t        |	j                  |f«       t        |	j                  t        j                  |«      «       t        |
j                  ||f«       t        |
j                  |«       t        |d¬«      \  }}	}
t        |j                  ||f«       t        |j                  |«       t        |	j                  |f«       t        |	j                  t        j                  |«      «       t        |
j                  ||f«       t        |
j                  |«       t        |d¬«      }	t        |	j                  |f«       t        |	j                  t        j                  |«      «       y )Nr�   ÚFDFr3  ©Ú
compute_uv)	rS   r9   Úminr[   r  Úlowerr   r   r@   )r{   r  rY   r[   r|   r  ÚdcharÚ
real_dcharr“  r  rl   s              r]   Útest_shape_dtypezTestSVD_GESDD.test_shape_dtypeb  se  € ô �H‰H�a˜�V 5Ô)ˆÜ��1‹IˆØ—‘—‘ˆØ&+¨t¡m�U—[‘[”]¸ˆ
ä�a“&‰ˆˆ1ˆaÜ�Q—W‘W˜q !˜fÔ%Ü�Q—W‘W˜eÔ$Ü�Q—W‘W˜q˜dÔ#Ü�Q—W‘WœbŸh™h zÓ2Ô3Ü�Q—W‘W˜q !˜fÔ%Ü�Q—W‘W˜eÔ$ä�a uÔ-‰ˆˆ1ˆaÜ�Q—W‘W˜q !˜fÔ%Ü�Q—W‘W˜eÔ$Ü�Q—W‘W˜q˜dÔ#Ü�Q—W‘WœbŸh™h zÓ2Ô3Ü�Q—W‘W˜q !˜fÔ%Ü�Q—W‘W˜eÔ$ä�˜eÔ$ˆÜ�Q—W‘W˜q˜dÔ#Ü�Q—W‘WœbŸh™h zÓ2Õ3r_   rŠ   ©r  rY   ©rŒ   r¤   r‘   c                 ó  — t        j                  d|¬«      }t        |«      \  }}}t        j                  ||f|¬«      }t        |«      \  }	}
}t	        |	t        j
                  |«      «       t	        |
t        j                  d«      «       t	        |t        j
                  |«      «       |	j                  |j                  k(  sJ ‚|j                  |j                  k(  sJ ‚|
j                  |j                  k(  sJ ‚t        |d¬«      \  }	}
}t	        |	t        j                  |df«      «       t	        |
t        j                  d«      «       t	        |t        j                  d|f«      «       |	j                  |j                  k(  sJ ‚|j                  |j                  k(  sJ ‚|
j                  |j                  k(  sJ ‚t        |d¬«      }
t	        |
t        j                  d«      «       |
j                  |j                  k(  sJ ‚y )Nrs   r�   rŽ   Fr3  r   r8  )rS   rF   r   r’   r   rè  r[   )r{   rŠ   r  rY   Úa0Úu0Ús0rª   r|   r“  r  rl   s               r]   r“   zTestSVD_GESDD.test_empty  s†  € ô �V‰V�A˜RÔ ˆÜ˜“W‰
ˆˆB�ä�H‰H�a˜�V 2Ô&ˆÜ�a“&‰ˆˆ1ˆaÜ˜œ2Ÿ;™; q›>Ô*Ü˜œ2Ÿ8™8 D›>Ô*Ü˜œ2Ÿ;™; q›>Ô*à�w‰w˜"Ÿ(™(Ò"Ð"Ð"Ø�w‰w˜"Ÿ(™(Ò"Ð"Ð"Ø�w‰w˜"Ÿ(™(Ò"Ð"Ð"ä�a uÔ-‰ˆˆ1ˆaÜ˜œ2Ÿ8™8 Q¨ FÓ+Ô,Ü˜œ2Ÿ8™8 D›>Ô*Ü˜œ2Ÿ8™8 Q¨ FÓ+Ô,à�w‰w˜"Ÿ(™(Ò"Ð"Ð"Ø�w‰w˜"Ÿ(™(Ò"Ð"Ð"Ø�w‰w˜"Ÿ(™(Ò"Ð"Ð"ä�˜eÔ$ˆÜ˜œ2Ÿ8™8 D›>Ô*à�w‰w˜"Ÿ(™(Ò"Ð"Ñ"r_   N)r”   r•   r–   r°  r³  r   r  r  r  r  r…   r"  r)  r  r.  r—   r˜   ÚskipifrJ   Úslowr4  r™   rÞ  r>  rd   rš   rS   r;   r›   r<   r“   rœ   r_   r]   r  r  Î  s*  „ Ø€MòDò
9ò
9ò	9ò
9òAò 
9òAò(9ò5ò1ð" ‡[�[×Ñ˜I˜Ð.FÐÓGØ‡[�[×Ññ2ó ó Hð2ð ‡[�[×Ñ˜S¢)Ó,Ø‡[�[×Ñ˜S¢)Ó,Ø‡[�[×Ñ˜W fÓ-ñ4ó .ó -ó -ð4ð4 ‡[�[×Ñ˜T C¨°·
±
¸GÀRÇ\Á\Ð#RÓSØ‡[�[×Ñ˜ZÒ)AÓBñ#ó Có Tñ#r_   r  c                   ó   — e Zd ZdZy)ÚTestSVD_GESVDÚgesvdN)r”   r•   r–   r°  rœ   r_   r]   rH  rH  �  s   „ Ø�Mr_   rH  zout of memory in WASMr/  rB  c                  ó¬   — t        j                  dt         j                  ¬«      } t        t        «      5  t        | «       d d d «       y # 1 sw Y   y xY w)N)i¿  iŠÏ  r�   )rS   rÄ   r$  r  r  r   )Údfs    r]   Útest_svd_gesdd_nofegfaultrL  £  s<   € ô
 
‡w�wˆ}¤B§J¡JÔ/€BÜ	”zÓ	"ñ ÜˆBŒ÷÷ ñ ús   µA
Á
Ac                   óä   — e Zd Zej                  j                  deeej                  e
ej                  g«      d„ «       Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd	„ Zej                  j(                  d
„ «       Zy)ÚTestSVDValsrŠ   c                 ó^  — g gt        j                  d«      t        j                  d«      fD ]~  }t        j                  ||¬«      }t	        |«      }t        |t        j                  d«      «       t	        t        j                  d|¬«      «      }|j                  |j                  k(  rŒ~J ‚ y )Nr‘   ©r   rs   r�   r   rQ   )rS   r’   rÄ   r4   r   r   rF   r[   )r{   rŠ   r|   r  rD  s        r]   r“   zTestSVDVals.test_empty¯  s�   € à�”r—x‘x Ó'¬¯©°«Ð8ò 	'ˆAÜ—‘˜ "Ô%ˆAÜ˜“
ˆAÜ˜œBŸH™H Q›KÔ(äœŸ™ ¨Ô,Ó-ˆBØ—7‘7˜bŸh™hÓ&Ð&Ð&ñ	'r_   c                 ó¬   — g d¢g d¢g d¢g}t        |«      }t        t        |«      dk(  «       t        |d   |d   cxk\  xr |d   k\  «       y c «       y )Nrr   rt   rs   r   ra   rQ   ©r   r   re   ©r{   r|   r  s      r]   r   zTestSVDVals.test_simple¹  sK   € Úš	¢9Ð-ˆÜ�A‹JˆÜ”�A“˜!‘ÔÜ��!‘˜˜!™Ö$  !¡Ñ$Õ%Ñ$Õ%r_   c                 ó€   — g d¢g d¢g}t        |«      }t        t        |«      dk(  «       t        |d   |d   k\  «       y )Nrr   r  rQ   r   ra   rR  rS  s      r]   r  z TestSVDVals.test_simple_underdet¿  s9   € Úš	Ð"ˆÜ�A‹JˆÜ”�A“˜!‘ÔÜ��!‘˜˜!™‘Õr_   c                 ó†   — ddgddgddgg}t        |«      }t        t        |«      dk(  «       t        |d   |d   k\  «       y )Nra   rQ   rÍ  ru   rs   r   rR  rS  s      r]   r  zTestSVDVals.test_simple_overdetÅ  sG   € Ø�ˆV�a˜�V˜a ˜VÐ$ˆÜ�A‹JˆÜ”�A“˜!‘ÔÜ��!‘˜˜!™‘Õr_   c                 ó¬   — g d¢g d¢g d¢g}t        |«      }t        t        |«      dk(  «       t        |d   |d   cxk\  xr |d   k\  «       y c «       y )Nrr   )ra   rÜ  ù              @rt   rs   r   ra   rQ   rR  rS  s      r]   r…   zTestSVDVals.test_simple_complexË  sK   € Úš¢YÐ/ˆÜ�A‹JˆÜ”�A“˜!‘ÔÜ��!‘˜˜!™Ö$  !¡Ñ$Õ%Ñ$Õ%r_   c                 ó€   — g d¢g d¢g}t        |«      }t        t        |«      dk(  «       t        |d   |d   k\  «       y )Nrr   )rÍ  y              @rv   rQ   r   ra   rR  rS  s      r]   Útest_simple_underdet_complexz(TestSVDVals.test_simple_underdet_complexÑ  s9   € Úš
Ð#ˆÜ�A‹JˆÜ”�A“˜!‘ÔÜ��!‘˜˜!™‘Õr_   c                 ó†   — ddgddgddgg}t        |«      }t        t        |«      dk(  «       t        |d   |d   k\  «       y )Nra   rQ   rÍ  ru   rW  r   rR  rS  s      r]   Útest_simple_overdet_complexz'TestSVDVals.test_simple_overdet_complex×  sG   € Ø�ˆV�a˜�V˜b !˜WÐ%ˆÜ�A‹JˆÜ”�A“˜!‘ÔÜ��!‘˜˜!™‘Õr_   c                 ó°   — g d¢g d¢g d¢g}t        |d¬«      }t        t        |«      dk(  «       t        |d   |d   cxk\  xr |d   k\  «       y c «       y )	Nrr   rt   Fr‡   rs   r   ra   rQ   rR  rS  s      r]   r  zTestSVDVals.test_check_finiteÝ  sN   € Úš	¢9Ð-ˆÜ�A EÔ*ˆÜ”�A“˜!‘ÔÜ��!‘˜˜!™Ö$  !¡Ñ$Õ%Ñ$Õ%r_   c                 ó˜   — t         j                  j                  d«       t         j                  j                  dd«      }t	        |«       y )Nr  iÜ  ið
  )rS   rT   rÊ  rU   r   ©r{   r|   s     r]   Útest_crash_2609zTestSVDVals.test_crash_2609ã  s-   € ä
�	‰	�‰�tÔÜ�I‰I�N‰N˜4 Ó&ˆä��
r_   N)r”   r•   r–   r—   r˜   r™   rd   rš   rS   r;   r›   r<   r“   r   r  r  r…   rY  r[  r  rF  r_  rœ   r_   r]   rN  rN  ­  sz   „ à‡[�[×Ñ˜T C¨°·
±
¸GÀRÇ\Á\Ð#RÓSñ'ó Tð'ò&òòò&òòò&ð ‡[�[×Ññó ñr_   rN  c                   ó   — e Zd Zd„ Zy)ÚTestDiagSVDc                 óH   — t        t        g d¢dd«      g d¢g d¢g d¢g«       y )N©ra   r   r   rs   rÿ   )r   r   r?  s    r]   r   zTestDiagSVD.test_simpleí  s    € Ü!¤'ª)°Q¸Ó":Ú#,ªiºÐ"Cõ	Er_   N)r”   r•   r–   r   rœ   r_   r]   ra  ra  ë  s   „ óEr_   ra  c                   óœ  — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z d„ Z!d „ Z"d!„ Z#d"„ Z$d#„ Z%d$„ Z&d%„ Z'd&„ Z(d'„ Z)d(„ Z*d)„ Z+d*„ Z,d+„ Z-d,„ Z.d-„ Z/d.„ Z0d/„ Z1d0„ Z2d1„ Z3d2„ Z4d3„ Z5d4„ Z6e7jp                  js                  d5g d6¢«      e7jp                  js                  d7g d6¢«      e7jp                  js                  d8d9d:g«      e7jp                  js                  d;e:«      d<„ «       «       «       «       Z;e7jp                  js                  d=g d>¢«      d?„ «       Z<d@„ Z=yA)BÚTestQRc                 ó˜   — g d¢g d¢g d¢g}t        |«      \  }}t        |j                  |z  t        d«      «       t        ||z  |«       y ©N©é   rQ   rs   ©rQ   rw   rs   ©ru   rs   rv   rs   ©r   r   rW   rF   ©r{   r|   ÚqÚrs       r]   r   zTestQR.test_simpleó  s?   € Úš	¢9Ð-ˆÜ�!‹u‰ˆˆ1Ü! !§#¡#¨¡'¬3¨q«6Ô2Ü! ! a¡%¨Õ+r_   c                 óÞ   — g d¢g d¢g d¢g}t        |«      \  }}g d¢}t        ||d«      \  }}t        ||z  |«       t        ||«       t        |t        d«      d«      \  }}t        ||«       y )Nrh  rj  rk  rr   r¦   rs   ©r   r   r   rF   ©r{   r|   rn  ro  ÚcÚqcÚr2s          r]   Útest_simple_leftzTestQR.test_simple_leftù  sj   € Úš	¢9Ð-ˆÜ�!‹u‰ˆˆ1ÚˆÜ˜Q  6Ó*‰ˆˆBÜ! ! a¡%¨Ô,Ü! ! RÔ(Ü˜Q¤ A£¨Ó/‰ˆˆBÜ! ! RÕ(r_   c                 óÚ   — g d¢g d¢g d¢g}t        |«      \  }}g d¢}t        ||«      \  }}t        ||z  |«       t        ||«       t        |t        d«      «      \  }}t        ||«       y )Nrh  rj  rk  rr   rs   rq  rr  s          r]   Útest_simple_rightzTestQR.test_simple_right  sf   € Úš	¢9Ð-ˆÜ�!‹u‰ˆˆ1ÚˆÜ˜Q Ó"‰ˆˆBÜ! ! a¡%¨Ô,Ü! ! RÔ(Ü˜Aœs 1›vÓ&‰ˆˆAÜ! ! RÕ(r_   c                 ó¢  — t        j                  g d¢g d¢g d¢g«      }t        |d¬«      \  }}}t        t	        |«      «      }t        t        j                  |dd  |d d k  «      «       t        |j                  |z  t        d«      «       t        ||z  |d d …|f   «       t        |d d …|f   «      \  }}t        ||«       t        ||«       y )	Nrh  rj  rk  T©Úpivotingra   r¢   rs   ©
rS   rC   r   rÈ   r5   r   rÆ   r   rW   rF   ©r{   r|   rn  ro  Úprk   Úq2ru  s           r]   Útest_simple_pivotingzTestQR.test_simple_pivoting  s¬   € Ü�J‰Jš	¢9ªiÐ8Ó9ˆÜ�Q Ô&‰ˆˆ1ˆaÜ”�Q“‹LˆÜ”—‘�q˜˜�u  # 2 ‘Ó'Ô(Ü! !§#¡#¨¡'¬3¨q«6Ô2Ü! ! a¡%¨ª1¨a¨4©Ô1Ü�A’a˜�d‘G“‰ˆˆBÜ! ! RÔ(Ü! ! RÕ(r_   c                 ó†   — g d¢g d¢g d¢g}t        |d¬«      \  }}}g d¢}t        ||dd«      \  }}}t        ||z  |«       y )Nrh  rj  rk  Trz  rr   r¦   ©r   r   r   ©r{   r|   rn  ro  Újpvtrs  rt  s          r]   Útest_simple_left_pivotingz TestQR.test_simple_left_pivoting  sI   € Úš	¢9Ð-ˆÜ˜ DÔ)‰
ˆˆ1ˆdÚˆÜ! ! Q¨°Ó5‰ˆˆAˆtÜ! ! a¡%¨Õ,r_   c                 ó†   — g d¢g d¢g d¢g}t        |d¬«      \  }}}g d¢}t        ||d¬«      \  }}}t        ||z  |«       y )Nrh  rj  rk  Trz  rr   r‚  rƒ  s          r]   Útest_simple_right_pivotingz!TestQR.test_simple_right_pivoting  sG   € Úš	¢9Ð-ˆÜ˜ DÔ)‰
ˆˆ1ˆdÚˆÜ! ! Q°Ô6‰ˆˆAˆtÜ! ! a¡%¨Õ,r_   c                 ó’   — g d¢g d¢g}t        |«      \  }}t        |j                  |z  t        d«      «       t        ||z  |«       y )Nrh  rj  rQ   rl  rm  s       r]   Útest_simple_trapzTestQR.test_simple_trap&  ó=   € Úš	Ð"ˆÜ�!‹u‰ˆˆ1Ü! !§#¡#¨¡'¬3¨q«6Ô2Ü! ! a¡%¨Õ+r_   c                 óœ  — t        j                  g d¢g d¢g«      }t        |d¬«      \  }}}t        t	        |«      «      }t        t        j                  |dd  |d d k  «      «       t        |j                  |z  t        d«      «       t        ||z  |d d …|f   «       t        |d d …|f   «      \  }}t        ||«       t        ||«       y )Nrh  rj  Trz  ra   r¢   rQ   r|  r}  s           r]   Útest_simple_trap_pivotingz TestQR.test_simple_trap_pivoting,  sª   € Ü�J‰Jš	¢9Ð-Ó.ˆÜ�Q Ô&‰ˆˆ1ˆaÜ”�Q“‹LˆÜ”—‘�q˜˜�u  # 2 ‘Ó'Ô(Ü! !§#¡#¨¡'¬3¨q«6Ô2Ü! ! a¡%¨ª1¨a¨4©Ô1Ü�A’a˜�d‘G“‰ˆˆBÜ! ! RÔ(Ü! ! RÕ(r_   c                 ó˜   — ddgddgddgg}t        |«      \  }}t        |j                  |z  t        d«      «       t        ||z  |«       y ©Nri  rQ   rw   ru   rs   rl  rm  s       r]   Útest_simple_tallzTestQR.test_simple_tall7  sK   € à�ˆV�a˜�V˜a ˜VÐ$ˆÜ�!‹u‰ˆˆ1Ü! !§#¡#¨¡'¬3¨q«6Ô2Ü! ! a¡%¨Õ+r_   c                 ó¢  — t        j                  ddgddgddgg«      }t        |d¬«      \  }}}t        t	        |«      «      }t        t        j                  |dd  |d d	 k  «      «       t        |j                  |z  t        d«      «       t        ||z  |d d …|f   «       t        |d d …|f   «      \  }}t        ||«       t        ||«       y )
Nri  rQ   rw   ru   rs   Trz  ra   r¢   r|  r}  s           r]   Útest_simple_tall_pivotingz TestQR.test_simple_tall_pivoting>  s¸   € ä�J‰J˜˜A˜  A ¨¨A¨Ð/Ó0ˆÜ�Q Ô&‰ˆˆ1ˆaÜ”�Q“‹LˆÜ”—‘�q˜˜�u  # 2 ‘Ó'Ô(Ü! !§#¡#¨¡'¬3¨q«6Ô2Ü! ! a¡%¨ª1¨a¨4©Ô1Ü�A’a˜�d‘G“‰ˆˆBÜ! ! RÔ(Ü! ! RÕ(r_   c                 óô   — ddgddgddgg}t        |d¬«      \  }}t        |j                  |z  t        d«      «       t        ||z  |«       t	        |j
                  d«       t	        |j
                  d	«       y )
Nri  rQ   rw   ru   rs   Úeconomic©Úmode©rs   rQ   ©rQ   rQ   ©r   r   rW   rF   r   r@   rm  s       r]   Útest_simple_tall_ezTestQR.test_simple_tall_eJ  sj   € à�ˆV�a˜�V˜a ˜VÐ$ˆÜ�!˜*Ô%‰ˆˆ1Ü! !§#¡#¨¡'¬3¨q«6Ô2Ü! ! a¡%¨Ô+Ü�Q—W‘W˜fÔ%Ü�Q—W‘W˜fÕ%r_   c                 ó¨  — t        j                  ddgddgddgg«      }t        |dd¬«      \  }}}t        t	        |«      «      }t        t        j                  |d	d  |d d
 k  «      «       t        |j                  |z  t        d«      «       t        ||z  |d d …|f   «       t        |d d …|f   d¬«      \  }}t        ||«       t        ||«       y )Nri  rQ   rw   ru   rs   Tr“  ©r{  r•  ra   r¢   r”  r|  r}  s           r]   Útest_simple_tall_e_pivotingz"TestQR.test_simple_tall_e_pivotingS  s½   € ä�J‰J˜˜A˜  A ¨¨A¨Ð/Ó0ˆÜ�Q ¨JÔ7‰ˆˆ1ˆaÜ”�Q“‹LˆÜ”—‘�q˜˜�u  # 2 ‘Ó'Ô(Ü! !§#¡#¨¡'¬3¨q«6Ô2Ü! ! a¡%¨ª1¨a¨4©Ô1Ü�A’a˜�d‘G *Ô-‰ˆˆBÜ! ! RÔ(Ü! ! RÕ(r_   c                 óD  — ddgddgddgg}t        |d¬«      \  }}ddg}t        ||d	«      \  }}t        ||z  |«       t        ||«       t        g d
¢«      }t        ||d	d¬«      \  }}t        ||d d z  |«       t        |t	        d«      d	«      \  }}t        ||«       y )Nri  rQ   rw   ru   rs   r“  r”  ra   r¦   ©ra   rQ   r   T©Úoverwrite_c©r   r   r   r4   rF   rr  s          r]   Útest_simple_tall_leftzTestQR.test_simple_tall_left_  s¯   € Ø�ˆV�a˜�V˜a ˜VÐ$ˆÜ�!˜*Ô%‰ˆˆ1Ø�ˆFˆÜ˜Q  6Ó*‰ˆˆBÜ! ! a¡%¨Ô,Ü! ! RÔ(Ü’)ÓˆÜ˜Q  6°tÔ<‰ˆˆBÜ! ! a¨¨ e¡)¨RÔ0Ü˜Aœs 1›v vÓ.‰ˆˆAÜ! " aÕ(r_   c                 óî   — ddgddgddgg}t        |dd¬«      \  }}}d	dg}t        ||d
d«      \  }}}t        ||«       t        ||z  |«       t        |t	        d«      d
d«      \  }}}t        ||«       y )Nri  rQ   rw   ru   rs   r“  T©r•  r{  ra   r¦   )r   r   r   r   rF   )r{   r|   rn  ro  r„  rs  rt  Úkpvts           r]   Útest_simple_tall_left_pivotingz%TestQR.test_simple_tall_left_pivotingl  s‰   € Ø�ˆV�a˜�V˜a ˜VÐ$ˆÜ˜ 
°TÔ:‰
ˆˆ1ˆdØ�ˆFˆÜ! ! Q¨°Ó5‰ˆˆAˆtÜ˜4 Ô&Ü! ! a¡%¨Ô,Ü! !¤S¨£V¨V°TÓ:‰ˆˆAˆtÜ! " aÕ(r_   c                 óÞ   — ddgddgddgg}t        |d¬«      \  }}g d¢}t        ||«      \  }}t        ||z  |«       t        ||«       t        |t        d«      «      \  }}t        ||«       y )	Nri  rQ   rw   ru   rs   r“  r”  rr   rq  ©r{   r|   rn  ro  rs  Úcqru  s          r]   Útest_simple_tall_rightzTestQR.test_simple_tall_rightv  su   € Ø�ˆV�a˜�V˜a ˜VÐ$ˆÜ�!˜*Ô%‰ˆˆ1ÚˆÜ˜Q Ó"‰ˆˆBÜ! ! a¡%¨Ô,Ü! ! RÔ(Ü˜Aœs 1›vÓ&‰ˆˆAÜ! " aÕ(r_   c                 óÖ   — ddgddgddgg}t        |dd¬«      \  }}}g d	¢}t        ||d¬
«      \  }}}t        ||z  |«       t        |t        d«      d¬
«      \  }}}t        ||«       y )Nri  rQ   rw   ru   rs   Tr“  r›  rr   rz  rq  ©r{   r|   rn  ro  r„  rs  r©  s          r]   Útest_simple_tall_right_pivotingz&TestQR.test_simple_tall_right_pivoting€  sw   € Ø�ˆV�a˜�V˜a ˜VÐ$ˆÜ˜ D¨zÔ:‰
ˆˆ1ˆdÚˆÜ! ! Q°Ô6‰ˆˆAˆtÜ! ! a¡%¨Ô,Ü! !¤S¨£V°dÔ;‰ˆˆAˆtÜ! " aÕ(r_   c                 óê   — g d¢g d¢g}t        |«      \  }}t        |j                  |z  t        d«      «       t        ||z  |«       t	        |j
                  d«       t	        |j
                  d«       y )N©ri  rQ   ru   rj  rQ   r—  ©rQ   rs   r˜  rm  s       r]   Útest_simple_fatzTestQR.test_simple_fat‰  sY   € âš	Ð"ˆÜ�!‹u‰ˆˆ1Ü! !§#¡#¨¡'¬3¨q«6Ô2Ü! ! a¡%¨Ô+Ü�Q—W‘W˜fÔ%Ü�Q—W‘W˜fÕ%r_   c                 óô  — t        j                  g d¢g d¢g«      }t        |d¬«      \  }}}t        t	        |«      «      }t        t        j                  |dd  |d d k  «      «       t        |j                  |z  t        d«      «       t        ||z  |d d …|f   «       t        |j                  d«       t        |j                  d	«       t        |d d …|f   «      \  }}t        ||«       t        ||«       y )
Nr¯  rj  Trz  ra   r¢   rQ   r—  r°  ©rS   rC   r   rÈ   r5   r   rÆ   r   rW   rF   r   r@   r}  s           r]   Útest_simple_fat_pivotingzTestQR.test_simple_fat_pivoting’  sÆ   € ä�J‰Jš	¢9Ð-Ó.ˆÜ�Q Ô&‰ˆˆ1ˆaÜ”�Q“‹LˆÜ”—‘�q˜˜�u  # 2 ‘Ó'Ô(Ü! !§#¡#¨¡'¬3¨q«6Ô2Ü! ! a¡%¨ª1¨a¨4©Ô1Ü�Q—W‘W˜fÔ%Ü�Q—W‘W˜fÔ%Ü�A’a˜�d‘G“‰ˆˆBÜ! ! RÔ(Ü! ! RÕ(r_   c                 óî   — g d¢g d¢g}t        |d¬«      \  }}t        |j                  |z  t        d«      «       t        ||z  |«       t	        |j
                  d«       t	        |j
                  d«       y )Nrh  ©rQ   rw   ru   r“  r”  rQ   r—  r°  r˜  rm  s       r]   Útest_simple_fat_ezTestQR.test_simple_fat_e   s\   € âš	Ð"ˆÜ�!˜*Ô%‰ˆˆ1Ü! !§#¡#¨¡'¬3¨q«6Ô2Ü! ! a¡%¨Ô+Ü�Q—W‘W˜fÔ%Ü�Q—W‘W˜fÕ%r_   c                 óú  — t        j                  g d¢g d¢g«      }t        |dd¬«      \  }}}t        t	        |«      «      }t        t        j                  |dd  |d d k  «      «       t        |j                  |z  t        d«      «       t        ||z  |d d …|f   «       t        |j                  d	«       t        |j                  d
«       t        |d d …|f   d¬«      \  }}t        ||«       t        ||«       y )Nrh  r¶  Tr“  r›  ra   r¢   rQ   r—  r°  r”  r³  r}  s           r]   Útest_simple_fat_e_pivotingz!TestQR.test_simple_fat_e_pivoting©  sË   € ä�J‰Jš	¢9Ð-Ó.ˆÜ�Q ¨JÔ7‰ˆˆ1ˆaÜ”�Q“‹LˆÜ”—‘�q˜˜�u  # 2 ‘Ó'Ô(Ü! !§#¡#¨¡'¬3¨q«6Ô2Ü! ! a¡%¨ª1¨a¨4©Ô1Ü�Q—W‘W˜fÔ%Ü�Q—W‘W˜fÔ%Ü�A’a˜�d‘G *Ô-‰ˆˆBÜ! ! RÔ(Ü! ! RÕ(r_   c                 óÜ   — g d¢g d¢g}t        |d¬«      \  }}ddg}t        ||d«      \  }}t        ||z  |«       t        ||«       t        |t        d«      d«      \  }}t        ||«       y )Nrh  r¶  r“  r”  ra   rQ   r¦   rq  rr  s          r]   Útest_simple_fat_leftzTestQR.test_simple_fat_left·  so   € Úš	Ð"ˆÜ�!˜*Ô%‰ˆˆ1Ø�ˆFˆÜ˜Q  6Ó*‰ˆˆBÜ! ! a¡%¨Ô,Ü! ! RÔ(Ü˜Aœs 1›v vÓ.‰ˆˆAÜ! " aÕ(r_   c                 óÐ   — g d¢g d¢g}t        |dd¬«      \  }}}ddg}t        ||dd«      \  }}}t        ||z  |«       t        |t        d«      dd«      \  }}}t        ||«       y )	Nrh  r¶  r“  Tr¤  ra   rQ   r¦   rq  rƒ  s          r]   Útest_simple_fat_left_pivotingz$TestQR.test_simple_fat_left_pivotingÁ  sq   € Úš	Ð"ˆÜ˜ 
°TÔ:‰
ˆˆ1ˆdØ�ˆFˆÜ! ! Q¨°Ó5‰ˆˆAˆtÜ! ! a¡%¨Ô,Ü! !¤S¨£V¨V°TÓ:‰ˆˆAˆtÜ! " aÕ(r_   c                 óØ   — g d¢g d¢g}t        |d¬«      \  }}ddg}t        ||«      \  }}t        ||z  |«       t        ||«       t        |t        d«      «      \  }}t        ||«       y )Nrh  r¶  r“  r”  ra   rQ   rq  r¨  s          r]   Útest_simple_fat_rightzTestQR.test_simple_fat_rightÊ  sk   € Úš	Ð"ˆÜ�!˜*Ô%‰ˆˆ1Ø�ˆFˆÜ˜Q Ó"‰ˆˆBÜ! ! a¡%¨Ô,Ü! ! RÔ(Ü˜Aœs 1›vÓ&‰ˆˆAÜ! " aÕ(r_   c                 óÐ   — g d¢g d¢g}t        |dd¬«      \  }}}ddg}t        ||d¬«      \  }}}t        ||z  |«       t        |t        d«      d¬«      \  }}}t        ||«       y )	Nrh  r¶  Tr“  r›  ra   rQ   rz  rq  r¬  s          r]   Útest_simple_fat_right_pivotingz%TestQR.test_simple_fat_right_pivotingÔ  sm   € Úš	Ð"ˆÜ˜ D¨zÔ:‰
ˆˆ1ˆdØ�ˆFˆÜ! ! Q°Ô6‰ˆˆAˆtÜ! ! a¡%¨Ô,Ü! !¤S¨£V°dÔ;‰ˆˆAˆtÜ! " aÕ(r_   c                 ó´   — g d¢g d¢g d¢g}t        |«      \  }}t        |j                  «       j                  |z  t	        d«      «       t        ||z  |«       y ©N©rs   ù      @      @ru   ©ru   rQ   y       @      @©rs   rQ   râ  rs   )r   r   rV   rW   rF   rm  s       r]   r…   zTestQR.test_simple_complexÝ  sE   € Úš<ªÐ3ˆÜ�!‹u‰ˆˆ1Ü! !§&¡&£(§*¡*¨q¡.´#°a³&Ô9Ü! ! a¡%¨Õ+r_   c                 óÆ   — g d¢g d¢g d¢g}t        |«      \  }}g d¢}t        ||d«      \  }}t        ||z  |«       t        |t        d«      d«      \  }}t        ||«       y )NrÄ  rÆ  rÇ  ©ra   rQ   rÅ  r¦   rs   rq  ©r{   r|   rn  ro  rs  rt  s         r]   Útest_simple_complex_leftzTestQR.test_simple_complex_leftã  s`   € Úš<ªÐ3ˆÜ�!‹u‰ˆˆ1ÚˆÜ˜A˜q &Ó)‰ˆˆAÜ! ! a¡%¨Ô,Ü˜Aœs 1›v vÓ.‰ˆˆAÜ! ! RÕ(r_   c                 óÂ   — g d¢g d¢g d¢g}t        |«      \  }}g d¢}t        ||«      \  }}t        ||z  |«       t        |t        d«      «      \  }}t        ||«       y )NrÄ  rÆ  rÇ  rÉ  rs   rq  rÊ  s         r]   Útest_simple_complex_rightz TestQR.test_simple_complex_rightì  s\   € Úš<ªÐ3ˆÜ�!‹u‰ˆˆ1ÚˆÜ˜A˜qÓ!‰ˆˆAÜ! ! a¡%¨Ô,Ü˜Aœs 1›vÓ&‰ˆˆAÜ! ! RÕ(r_   c                 óD  — ddgddgddgg}t        |d¬«      \  }}d	d
g}t        ||d«      \  }}t        ||z  |«       t        ||«       t        g d¢«      }t        ||dd¬«      \  }}t        ||d d z  |«       t        |t	        d«      d«      \  }}t        ||«       y )Nri  y       @      @rQ   rw   y      @      @rs   r“  r”  ra   ù       @       @r¦   rž  TrŸ  r¡  rr  s          r]   Útest_simple_tall_complex_leftz$TestQR.test_simple_tall_complex_leftõ  s¯   € Ø�ˆY˜˜A˜  q 	Ð*ˆÜ�!˜*Ô%‰ˆˆ1Ø�ˆIˆÜ˜Q  6Ó*‰ˆˆBÜ! ! a¡%¨Ô,Ü! ! RÔ(Ü’)ÓˆÜ˜Q  6°tÔ<‰ˆˆBÜ! ! a¨¨ e¡)¨RÔ0Ü˜Aœs 1›v vÓ.‰ˆˆAÜ! " aÕ(r_   c                 óœ   — g d¢g d¢g d¢g}t        |«      \  }}g d¢}t        ||dd¬«      \  }}t        |j                  «       |z  |«       y )NrÄ  rÆ  rÇ  rÉ  r¦   T©Ú	conjugate©r   r   r   rV   rÊ  s         r]   Ú"test_simple_complex_left_conjugatez)TestQR.test_simple_complex_left_conjugate  sH   € Úš<ªÐ3ˆÜ�!‹u‰ˆˆ1ÚˆÜ˜A˜q &°DÔ9‰ˆˆAÜ! !§&¡&£(¨Q¡,°Õ3r_   c                 ó    — ddgddgddgg}t        |d¬«      \  }}ddg}t        ||d	d
¬«      \  }}t        |j                  «       |z  |«       y )Nrs   rÅ  ru   rÏ  rQ   r“  r”  ra   r¦   TrÒ  rÔ  rÊ  s         r]   Ú'test_simple_complex_tall_left_conjugatez.TestQR.test_simple_complex_tall_left_conjugate	  s[   € Ø�ˆY˜˜D˜	 A q 6Ð*ˆÜ�!˜*Ô%‰ˆˆ1Ø�ˆIˆÜ˜A˜q &°DÔ9‰ˆˆAÜ! !§&¡&£(¨Q¡,°Õ3r_   c                 óÀ   — g d¢g d¢g d¢g}t        |«      \  }}t        j                  g d¢«      }t        ||d¬«      \  }}t	        ||j                  «       z  |«       y )NrÄ  rÆ  rÇ  rÉ  TrÒ  )r   rS   r4   r   r   rV   rÊ  s         r]   Ú#test_simple_complex_right_conjugatez*TestQR.test_simple_complex_right_conjugate  sO   € Úš<ªÐ3ˆÜ�!‹u‰ˆˆ1Ü�H‰H’\Ó"ˆÜ˜A˜q¨DÔ1‰ˆˆAÜ! ! a§f¡f£h¡,°Õ3r_   c                 óª  — t        g d¢g d¢g d¢g«      }t        |d¬«      \  }}}t        t        |«      «      }t	        t        j                  |dd  |d d k  «      «       t        |j                  «       j                  |z  t        d«      «       t        ||z  |d d …|f   «       t        |d d …|f   «      \  }}t        ||«       t        ||«       y )	NrÄ  rÆ  rÇ  Trz  ra   r¢   rs   )r4   r   rÈ   r5   r   rS   rÆ   r   rV   rW   rF   r}  s           r]   Útest_simple_complex_pivotingz#TestQR.test_simple_complex_pivoting  s®   € Ü’<¢ªyÐ9Ó:ˆÜ�Q Ô&‰ˆˆ1ˆaÜ”�Q“‹LˆÜ”—‘�q˜˜�u  # 2 ‘Ó'Ô(Ü! !§&¡&£(§*¡*¨q¡.´#°a³&Ô9Ü! ! a¡%¨ª1¨a¨4©Ô1Ü�A’a˜�d‘G“‰ˆˆBÜ! ! RÔ(Ü! ! RÕ(r_   c                 ó˜   — t        g d¢g d¢g d¢g«      }t        |d¬«      \  }}}g d¢}t        ||dd«      \  }}}t        ||z  |«       y )NrÄ  rÆ  rÇ  Trz  rÉ  r¦   ©r4   r   r   r   rƒ  s          r]   Ú!test_simple_complex_left_pivotingz(TestQR.test_simple_complex_left_pivoting"  sN   € Ü’<¢ªyÐ9Ó:ˆÜ˜ DÔ)‰
ˆˆ1ˆdÚˆÜ! ! Q¨°Ó5‰ˆˆAˆtÜ! ! a¡%¨Õ,r_   c                 ó˜   — t        g d¢g d¢g d¢g«      }t        |d¬«      \  }}}g d¢}t        ||d¬«      \  }}}t        ||z  |«       y )NrÄ  rÆ  rÇ  Trz  rÉ  rÝ  rƒ  s          r]   Ú"test_simple_complex_right_pivotingz)TestQR.test_simple_complex_right_pivoting)  sL   € Ü’<¢ªyÐ9Ó:ˆÜ˜ DÔ)‰
ˆˆ1ˆdÚˆÜ! ! Q°Ô6‰ˆˆAˆtÜ! ! a¡%¨Õ,r_   c                 ó
  — t         j                  j                  d«      }d}t        d«      D ]T  }|j                  ||g«      }t	        |«      \  }}t        |j                  |z  t        |«      «       t        ||z  |«       ŒV y ©Nr  rÜ  rQ   ©rS   rT   r  r¨   r   r   rW   rF   ©r{   ri   rY   r  r|   rn  ro  s          r]   r  zTestQR.test_random0  sq   € Ü�i‰i×#Ñ# DÓ)ˆØˆÜ�q“ò 	0ˆAØ—
‘
˜A˜q˜6Ó"ˆAÜ�a“5‰DˆAˆqÜ% a§c¡c¨A¡g¬s°1«vÔ6Ü% a¨!¡e¨QÕ/ñ		0r_   c                 óT  — t         j                  j                  d«      }d}t        d«      D ]y  }|j                  ||g«      }t	        |«      \  }}|j                  |g«      }t        ||d«      \  }}t        ||z  |«       t        |t        |«      d«      \  }}t        ||«       Œ{ y )Nr  rÜ  rQ   r¦   ©rS   rT   r  r¨   r   r   r   rF   ©	r{   ri   rY   r  r|   rn  ro  rs  rt  s	            r]   Útest_random_leftzTestQR.test_random_left9  sœ   € Ü�i‰i×#Ñ# DÓ)ˆØˆÜ�q“ò 	-ˆAØ—
‘
˜A˜q˜6Ó"ˆAÜ�a“5‰DˆAˆqØ—
‘
˜A˜3“ˆAÜ  1 fÓ-‰EˆB�Ü% a¨!¡e¨RÔ0Ü ¤3 q£6¨6Ó2‰EˆB�Ü% a¨Õ,ñ	-r_   c                 óP  — t         j                  j                  d«      }d}t        d«      D ]w  }|j                  ||g«      }t	        |«      \  }}|j                  |g«      }t        ||«      \  }}t        ||z  |«       t        |t        |«      «      \  }}t        ||«       Œy y râ  ræ  ©	r{   ri   rY   r  r|   rn  ro  rs  r©  s	            r]   Útest_random_rightzTestQR.test_random_rightE  s˜   € Ü�i‰i×#Ñ# DÓ)ˆØˆÜ�q“ò 	-ˆAØ—
‘
˜A˜q˜6Ó"ˆAÜ�a“5‰DˆAˆqØ—
‘
˜A˜3“ˆAÜ  1Ó%‰EˆB�Ü% a¨!¡e¨RÔ0Ü ¤3 q£6Ó*‰EˆB�Ü% a¨Õ,ñ	-r_   c           	      óî  — t         j                  j                  d«      }d}t        d«      D ]Æ  }|j                  ||g«      }t	        |d¬«      \  }}}t        t        |«      «      }t        t        j                  |dd  |d d k  «      «       t        |j                  |z  t        |«      «       t        ||z  |d d …|f   «       t	        |d d …|f   «      \  }	}
t        ||	«       t        ||
«       ŒÈ y )Nr  rÜ  rQ   Trz  ra   r¢   ©rS   rT   r  r¨   r   rÈ   r5   r   rÆ   r   rW   rF   ©r{   ri   rY   r  r|   rn  ro  r~  rk   r  ru  s              r]   Útest_random_pivotingzTestQR.test_random_pivotingQ  sÕ   € Ü�i‰i×#Ñ# DÓ)ˆØˆÜ�q“ò 		-ˆAØ—
‘
˜A˜q˜6Ó"ˆAÜ˜ TÔ*‰GˆAˆq�!Ü”D˜“G“ˆAÜ”B—F‘F˜1˜Q˜R˜5 A c r F™?Ó+Ô,Ü% a§c¡c¨A¡g¬s°1«vÔ6Ü% a¨!¡e¨Qªq°!¨t©WÔ5Ü˜š!˜Q˜$™“[‰FˆB�Ü% a¨Ô,Ü% a¨Õ,ñ		-r_   c                 ó  — t         j                  j                  d«      }d}d}t        d«      D ]T  }|j                  ||g«      }t	        |«      \  }}t        |j                  |z  t        |«      «       t        ||z  |«       ŒV y ©Nr  éÈ   r  rQ   rã  ©r{   ri   r  rY   r  r|   rn  ro  s           r]   Útest_random_tallzTestQR.test_random_tall_  sv   € Ü�i‰i×#Ñ# DÓ)ˆàˆØˆÜ�q“ò 	0ˆAØ—
‘
˜A˜q˜6Ó"ˆAÜ�a“5‰DˆAˆqÜ% a§c¡c¨A¡g¬s°1«vÔ6Ü% a¨!¡e¨QÕ/ñ		0r_   c                 ó\  — t         j                  j                  d«      }d}d}t        d«      D ]{  }|j                  ||g«      }t	        |d¬«      \  }}|j                  |g«      }t        ||d«      \  }	}t        ||z  |	«       t        |t        |«      d«      \  }	}t        |	|«       Œ} y )Nr  rò  r  rQ   r“  r”  r¦   ræ  )
r{   ri   r  rY   r  r|   rn  ro  rs  rt  s
             r]   Útest_random_tall_leftzTestQR.test_random_tall_leftj  s¤   € Ü�i‰i×#Ñ# DÓ)ˆàˆØˆÜ�q“ò 	-ˆAØ—
‘
˜A˜q˜6Ó"ˆAÜ�a˜jÔ)‰DˆAˆqØ—
‘
˜A˜3“ˆAÜ  1 fÓ-‰EˆB�Ü% a¨!¡e¨RÔ0Ü ¤3 q£6¨6Ó2‰EˆB�Ü% b¨!Õ,ñ	-r_   c                 óX  — t         j                  j                  d«      }d}d}t        d«      D ]y  }|j                  ||g«      }t	        |d¬«      \  }}|j                  |g«      }t        ||«      \  }	}t        ||z  |	«       t        |t        |«      «      \  }	}t        |	|«       Œ{ y ©Nr  rò  r  rQ   r“  r”  ræ  )
r{   ri   r  rY   r  r|   rn  ro  rs  r©  s
             r]   Útest_random_tall_rightzTestQR.test_random_tall_rightx  s    € Ü�i‰i×#Ñ# DÓ)ˆàˆØˆÜ�q“ò 	-ˆAØ—
‘
˜A˜q˜6Ó"ˆAÜ�a˜jÔ)‰DˆAˆqØ—
‘
˜A˜3“ˆAÜ  1Ó%‰EˆB�Ü% a¨!¡e¨RÔ0Ü ¤3 q£6Ó*‰EˆB�Ü% b¨!Õ,ñ	-r_   c           	      óò  — t         j                  j                  d«      }d}d}t        d«      D ]Æ  }|j                  ||g«      }t	        |d¬«      \  }}}t        t        |«      «      }	t        t        j                  |	dd  |	d d k  «      «       t        |j                  |z  t        |«      «       t        ||z  |d d …|f   «       t	        |d d …|f   «      \  }
}t        ||
«       t        ||«       ŒÈ y )	Nr  rò  r  rQ   Trz  ra   r¢   rí  ©r{   ri   r  rY   r  r|   rn  ro  r~  rk   r  ru  s               r]   Útest_random_tall_pivotingz TestQR.test_random_tall_pivoting†  sÚ   € Ü�i‰i×#Ñ# DÓ)ˆàˆØˆÜ�q“ò 		-ˆAØ—
‘
˜A˜q˜6Ó"ˆAÜ˜ TÔ*‰GˆAˆq�!Ü”D˜“G“ˆAÜ”B—F‘F˜1˜Q˜R˜5 A c r F™?Ó+Ô,Ü% a§c¡c¨A¡g¬s°1«vÔ6Ü% a¨!¡e¨Qªq°!¨t©WÔ5Ü˜š!˜Q˜$™“[‰FˆB�Ü% a¨Ô,Ü% a¨Õ,ñ		-r_   c                 ór  — t         j                  j                  d«      }d}d}t        d«      D ]†  }|j                  ||g«      }t	        |d¬«      \  }}t        |j                  |z  t        |«      «       t        ||z  |«       t        |j                  ||f«       t        |j                  ||f«       Œˆ y rø  )
rS   rT   r  r¨   r   r   rW   rF   r   r@   ró  s           r]   Útest_random_tall_ezTestQR.test_random_tall_e–  s�   € Ü�i‰i×#Ñ# DÓ)ˆàˆØˆÜ�q“ò 	*ˆAØ—
‘
˜A˜q˜6Ó"ˆAÜ�a˜jÔ)‰DˆAˆqÜ% a§c¡c¨A¡g¬s°1«vÔ6Ü% a¨!¡e¨QÔ/Ü˜Ÿ™ 1 a &Ô)Ü˜Ÿ™ 1 a &Õ)ñ	*r_   c           	      óX  — t         j                  j                  d«      }d}d}t        d«      D ]ù  }|j                  ||g«      }t	        |dd¬«      \  }}}t        t        |«      «      }	t        t        j                  |	dd  |	d d	 k  «      «       t        |j                  |z  t        |«      «       t        ||z  |d d …|f   «       t        |j                  ||f«       t        |j                  ||f«       t	        |d d …|f   d¬
«      \  }
}t        ||
«       t        ||«       Œû y )Nr  rò  r  rQ   Tr“  r›  ra   r¢   r”  )rS   rT   r  r¨   r   rÈ   r5   r   rÆ   r   rW   rF   r   r@   rû  s               r]   Útest_random_tall_e_pivotingz"TestQR.test_random_tall_e_pivoting£  s  € Ü�i‰i×#Ñ# DÓ)ˆàˆØˆÜ�q“ò 	-ˆAØ—
‘
˜A˜q˜6Ó"ˆAÜ˜ T°
Ô;‰GˆAˆq�!Ü”D˜“G“ˆAÜ”B—F‘F˜1˜Q˜R˜5 A c r F™?Ó+Ô,Ü% a§c¡c¨A¡g¬s°1«vÔ6Ü% a¨!¡e¨Qªq°!¨t©WÔ5Ü˜Ÿ™ 1 a &Ô)Ü˜Ÿ™ 1 a &Ô)Ü˜š!˜Q˜$™ jÔ1‰FˆB�Ü% a¨Ô,Ü% a¨Õ,ñ	-r_   c                 ó  — t         j                  j                  d«      }d}d}t        d«      D ]T  }|j                  ||g«      }t	        |«      \  }}t        |j                  |z  t        |«      «       t        ||z  |«       ŒV y ©Nr  r  rò  rQ   rã  ró  s           r]   Útest_random_trapzTestQR.test_random_trapµ  sv   € Ü�i‰i×#Ñ# DÓ)ˆØˆØˆÜ�q“ò 	0ˆAØ—
‘
˜A˜q˜6Ó"ˆAÜ�a“5‰DˆAˆqÜ% a§c¡c¨A¡g¬s°1«vÔ6Ü% a¨!¡e¨QÕ/ñ		0r_   c           	      óò  — t         j                  j                  d«      }d}d}t        d«      D ]Æ  }|j                  ||g«      }t	        |d¬«      \  }}}t        t        |«      «      }	t        t        j                  |	dd  |	d d k  «      «       t        |j                  |z  t        |«      «       t        ||z  |d d …|f   «       t	        |d d …|f   «      \  }
}t        ||
«       t        ||«       ŒÈ y )	Nr  r  rò  rQ   Trz  ra   r¢   rí  rû  s               r]   Útest_random_trap_pivotingz TestQR.test_random_trap_pivoting¿  sÚ   € Ü�i‰i×#Ñ# DÓ)ˆØˆØˆÜ�q“ò 		-ˆAØ—
‘
˜A˜q˜6Ó"ˆAÜ˜ TÔ*‰GˆAˆq�!Ü”D˜“G“ˆAÜ”B—F‘F˜1˜Q˜R˜5 A c r F™?Ó+Ô,Ü% a§c¡c¨A¡g¬s°1«vÔ6Ü% a¨!¡e¨Qªq°!¨t©WÔ5Ü˜š!˜Q˜$™“[‰FˆB�Ü% a¨Ô,Ü% a¨Õ,ñ		-r_   c                 óT  — t         j                  j                  d«      }d}t        d«      D ]y  }|j                  ||g«      d|j                  ||g«      z  z   }t	        |«      \  }}t        |j                  «       j                  |z  t        |«      «       t        ||z  |«       Œ{ y ©Nr  rÜ  rQ   rP   )	rS   rT   r  r¨   r   r   rV   rW   rF   rä  s          r]   r"  zTestQR.test_random_complexÎ  sŽ   € Ü�i‰i×#Ñ# DÓ)ˆØˆÜ�q“ò 	0ˆAØ—
‘
˜A˜q˜6Ó" R¨¯
©
°A°q°6Ó(:Ñ%:Ñ:ˆAÜ�a“5‰DˆAˆqÜ% a§f¡f£h§j¡j°1¡n´c¸!³fÔ=Ü% a¨!¡e¨QÕ/ñ		0r_   c                 ó®  — t         j                  j                  d«      }d}t        d«      D ]¦  }|j                  ||g«      d|j                  ||g«      z  z   }t	        |«      \  }}|j                  |g«      d|j                  |g«      z  z   }t        ||d«      \  }}t        ||z  |«       t        |t        |«      d«      \  }}t        ||«       Œ¨ y )Nr  rÜ  rQ   rP   r¦   ræ  rç  s	            r]   Útest_random_complex_leftzTestQR.test_random_complex_left×  sÇ   € Ü�i‰i×#Ñ# DÓ)ˆØˆÜ�q“ò 	-ˆAØ—
‘
˜A˜q˜6Ó" R¨¯
©
°A°q°6Ó(:Ñ%:Ñ:ˆAÜ�a“5‰DˆAˆqØ—
‘
˜A˜3“ " S§Z¡Z°°£_Ñ"4Ñ4ˆAÜ  1 fÓ-‰EˆB�Ü% a¨!¡e¨RÔ0Ü ¤3 q£6¨6Ó2‰EˆB�Ü% a¨Õ,ñ	-r_   c                 óª  — t         j                  j                  d«      }d}t        d«      D ]¤  }|j                  ||g«      d|j                  ||g«      z  z   }t	        |«      \  }}|j                  |g«      d|j                  |g«      z  z   }t        ||«      \  }}t        ||z  |«       t        |t        |«      «      \  }}t        ||«       Œ¦ y r  ræ  rê  s	            r]   Útest_random_complex_rightz TestQR.test_random_complex_rightã  sÃ   € Ü�i‰i×#Ñ# DÓ)ˆØˆÜ�q“ò 	-ˆAØ—
‘
˜A˜q˜6Ó" R¨¯
©
°A°q°6Ó(:Ñ%:Ñ:ˆAÜ�a“5‰DˆAˆqØ—
‘
˜A˜3“ " S§Z¡Z°°£_Ñ"4Ñ4ˆAÜ  1Ó%‰EˆB�Ü% a¨!¡e¨RÔ0Ü ¤3 q£6Ó*‰EˆB�Ü% a¨Õ,ñ	-r_   c           	      ó8  — t         j                  j                  d«      }d}t        d«      D ]ë  }|j                  ||g«      d|j                  ||g«      z  z   }t	        |d¬«      \  }}}t        t        |«      «      }t        t        j                  |dd  |d d k  «      «       t        |j                  «       j                  |z  t        |«      «       t        ||z  |d d …|f   «       t	        |d d …|f   «      \  }	}
t        ||	«       t        ||
«       Œí y )	Nr  rÜ  rQ   rP   Trz  ra   r¢   )rS   rT   r  r¨   r   rÈ   r5   r   rÆ   r   rV   rW   rF   rî  s              r]   Útest_random_complex_pivotingz#TestQR.test_random_complex_pivotingï  sò   € Ü�i‰i×#Ñ# DÓ)ˆØˆÜ�q“ò 		-ˆAØ—
‘
˜A˜q˜6Ó" R¨¯
©
°A°q°6Ó(:Ñ%:Ñ:ˆAÜ˜ TÔ*‰GˆAˆq�!Ü”D˜“G“ˆAÜ”B—F‘F˜1˜Q˜R˜5 A c r F™?Ó+Ô,Ü% a§f¡f£h§j¡j°1¡n´c¸!³fÔ=Ü% a¨!¡e¨Qªq°!¨t©WÔ5Ü˜š!˜Q˜$™“[‰FˆB�Ü% a¨Ô,Ü% a¨Õ,ñ		-r_   c                 óœ   — g d¢g d¢g d¢g}t        |d¬«      \  }}t        |j                  |z  t        d«      «       t        ||z  |«       y ©Nrh  rj  rk  Fr‡   rs   rl  rm  s       r]   r  zTestQR.test_check_finiteý  sB   € Úš	¢9Ð-ˆÜ�! %Ô(‰ˆˆ1Ü! !§#¡#¨¡'¬3¨q«6Ô2Ü! ! a¡%¨Õ+r_   c                 óŽ  — g d¢g d¢g d¢g}t        |d ¬«      \  }}t        |d¬«      \  }}t        ||«       t        ||«       t        |d¬«      \  }}t        ||«       t        ||«       t        |d¬«      \  }}	t        ||«       t        |	|«       t        t        t         |fdd	i«       t        t        t         |fdd
i«       y )Nrh  rj  rk  )Úlworkrs   rB  r¢   r  r   rQ   )r   r   r  Ú	Exception)
r{   r|   rn  ro  r  ru  Úq3Úr3Úq4Úr4s
             r]   Ú
test_lworkzTestQR.test_lwork  s·   € Úš	¢9Ð-ˆä�!˜4Ô ‰ˆˆ1ô �A˜Q”‰ˆˆBÜ! " aÔ(Ü! " aÔ(ô �A˜R”‰ˆˆBÜ! " aÔ(Ü! " aÔ(ô �A˜R”‰ˆˆBÜ! " aÔ(Ü! " aÔ(ô 	”i¤ a T¨G°Q¨<Ô8Ü”i¤ a T¨G°Q¨<Õ8r_   r  r5  rY   r{  FTr[   c                 ó`  — t        ||«      }t        j                  ||f|¬«      }t        ||¬«      ^}}}	t	        |j
                  ||f«       t	        |j                  |«       t	        |j
                  ||f«       t	        |j                  |«       t        |	«      |rdndk(  sJ ‚|r?|	\  }
t	        |
j
                  |f«       t	        |
j                  t        j                  «       t        |d|¬«      ^}}	t	        |j
                  ||f«       t	        |j                  |«       t        |	«      |rdndk(  sJ ‚|r?|	\  }
t	        |
j
                  |f«       t	        |
j                  t        j                  «       t        |d|¬«      ^}}}	t	        |j
                  ||f«       t	        |j                  |«       t	        |j
                  ||f«       t	        |j                  |«       t        |	«      |rdndk(  sJ ‚|r?|	\  }
t	        |
j
                  |f«       t	        |
j                  t        j                  «       t        |d|¬«      ^\  }}}}	t	        |j
                  ||f«       t	        |j                  |«       t	        |j
                  |f«       t	        |j                  |«       t	        |j
                  ||f«       t	        |j                  |«       t        |	«      |rdndk(  sJ ‚|r@|	\  }
t	        |
j
                  |f«       t	        |
j                  t        j                  «       y y )	Nr�   rz  ra   r   ro  r¤  r“  Úraw)	r:  rS   r9   r   r   r@   r[   re   Úint32)r{   r  rY   r{  r[   r  r|   rn  ro  Úotherr~  r  Útaus                r]   r>  zTestQR.test_shape_dtype  s  € ô
 ��1‹Iˆä�H‰H�a˜�V 5Ô)ˆÜ˜! hÔ/ˆˆˆ1ˆuÜ�Q—W‘W˜q !˜fÔ%Ü�Q—W‘W˜eÔ$Ü�Q—W‘W˜q !˜fÔ%Ü�Q—W‘W˜eÔ$Ü�5‹z¡8™a°Ò3Ð3Ð3ÙØ‰BˆAÜ˜Ÿ™ 1 $Ô'Ü˜Ÿ™¤"§(¡(Ô+ä�q˜s¨XÔ6ˆ	ˆˆEÜ�Q—W‘W˜q !˜fÔ%Ü�Q—W‘W˜eÔ$Ü�5‹z¡8™a°Ò3Ð3Ð3ÙØ‰BˆAÜ˜Ÿ™ 1 $Ô'Ü˜Ÿ™¤"§(¡(Ô+ä˜! *°xÔ@ˆˆˆ1ˆuÜ�Q—W‘W˜q !˜fÔ%Ü�Q—W‘W˜eÔ$Ü�Q—W‘W˜q !˜fÔ%Ü�Q—W‘W˜eÔ$Ü�5‹z¡8™a°Ò3Ð3Ð3ÙØ‰BˆAÜ˜Ÿ™ 1 $Ô'Ü˜Ÿ™¤"§(¡(Ô+ä " 1¨5¸8Ô DÐ‰
ˆˆc�A˜Ü�S—Y‘Y  A Ô'Ü�S—Y‘Y Ô&Ü�S—Y‘Y  Ô%Ü�S—Y‘Y Ô&Ü�Q—W‘W˜q !˜fÔ%Ü�Q—W‘W˜eÔ$Ü�5‹z¡8™a°Ò3Ð3Ð3ÙØ‰BˆAÜ˜Ÿ™ 1 $Ô'Ü˜Ÿ™¤"§(¡(Õ+ð r_   r?  r@  c                 ó´  — t        ||«      }t        j                  ||f«      }t        |«      \  }}t	        |t        j
                  |«      «       t	        |t        j                  ||f«      «       t        |d¬«      \  }}}t	        |t        j
                  |«      «       t	        |t        j                  ||f«      «       t	        |t        j                  |«      «       t        |d¬«      \  }t	        |t        j                  ||f«      «       t        |d¬«      \  }}t	        |t        j                  ||f«      «       t	        |t        j                  ||f«      «       t        |d¬«      \  \  }}	}t	        |t        j                  ||f«      «       t	        |	t        j                  |f«      «       t	        |t        j                  ||f«      «       y )NTrz  ro  r”  r“  r  )r:  rS   r’   r   r   rè  r:   )
r{   r  rY   r  r|   rn  ro  r~  r  r  s
             r]   r“   zTestQR.test_emptyO  sZ  € ä��1‹Iˆä�H‰H�a˜�VÓˆÜ�!‹u‰ˆˆ1Ü˜œ2Ÿ;™; q›>Ô*Ü˜œ2Ÿ8™8 Q¨ FÓ+Ô,ä�Q Ô&‰ˆˆ1ˆaÜ˜œ2Ÿ;™; q›>Ô*Ü˜œ2Ÿ8™8 Q¨ FÓ+Ô,Ü˜œ2Ÿ9™9 Q›<Ô(ä�˜Œ_‰ˆÜ˜œ2Ÿ8™8 Q¨ FÓ+Ô,ä�!˜*Ô%‰ˆˆ1Ü˜œ2Ÿ8™8 Q¨ FÓ+Ô,Ü˜œ2Ÿ8™8 Q¨ FÓ+Ô,ä˜1 5Ô)‰‰
ˆˆc�AÜ˜œRŸX™X q¨! fÓ-Ô.Ü˜œRŸX™X q d›^Ô,Ü˜œ2Ÿ8™8 Q¨ FÓ+Õ,r_   c                 ó  — t        j                  d«      }t        j                  d«      }t        ||«      \  }}t        |t        j                  d«      «       t        j                  d«      }t        j                  d«      }t        ||«      \  }}t        |t        j                  d«      «       t        j                  d«      }t        j                  d«      }t        ||«      \  }}t        |t        j                  d«      «       y )NrŒ   r¤   r‘   )rS   r’   r   r   )r{   r|   rs  r©  ro  s        r]   Útest_multiply_emptyzTestQR.test_multiply_emptyi  s¿   € Ü�H‰H�VÓˆÜ�H‰H�VÓˆÜ˜A˜qÓ!‰ˆˆAÜ˜œBŸH™H VÓ,Ô-ä�H‰H�VÓˆÜ�H‰H�VÓˆÜ˜A˜qÓ!‰ˆˆAÜ˜œBŸH™H VÓ,Ô-ä�H‰H�VÓˆÜ�H‰H�VÓˆÜ˜A˜qÓ!‰ˆˆAÜ˜œBŸH™H VÓ,Õ-r_   N)>r”   r•   r–   r   rv  rx  r€  r…  r‡  r‰  rŒ  r�  r‘  r™  rœ  r¢  r¦  rª  r­  r±  r´  r·  r¹  r»  r½  r¿  rÁ  r…   rË  rÍ  rÐ  rÕ  r×  rÙ  rÛ  rÞ  rà  r  rè  rë  rï  rô  rö  rù  rü  rþ  r   r  r  r"  r	  r  r  r  r  r—   r˜   r™   rÞ  r>  r“   r  rœ   r_   r]   re  re  ò  s§  „ ò,ò)ò)ò	)ò-ò-ò,ò	)ò,ò
)ò&ò
)ò)ò)ò)ò)ò&ò)ò&ò)ò)ò)ò)ò)ò,ò)ò)ò)ò4ò4ò4ò	)ò-ò-ò0ò
-ò
-ò-ò	0ò-ò-ò-ò *ò-ò$0ò-ò0ò
-ò
-ò-ò,ò9ð0 ‡[�[×Ñ˜S¢)Ó,Ø‡[�[×Ñ˜S¢)Ó,Ø‡[�[×Ñ˜Z¨%°¨Ó7Ø‡[�[×Ñ˜W fÓ-ñ.,ó .ó 8ó -ó -ð.,ð` ‡[�[×Ñ˜ZÒ)AÓBñ-ó Cð-ó2.r_   re  c                   ój  — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zej"                  j%                  dg d¢«      ej"                  j%                  dg d¢«      ej"                  j%                  de«      d„ «       «       «       Zej"                  j%                  dg d¢«      d„ «       Zy)ÚTestRQc                 ó˜   — g d¢g d¢g d¢g}t        |«      \  }}t        ||j                  z  t        d«      «       t        ||z  |«       y rg  ©r   r   rW   rF   ©r{   r|   ro  rn  s       r]   r   zTestRQ.test_simple{  s?   € Úš	¢9Ð-ˆÜ�!‹u‰ˆˆ1Ü! ! a§c¡c¡'¬3¨q«6Ô2Ü! ! a¡%¨Õ+r_   c                 óh   — g d¢g d¢g d¢g}t        |«      \  }}t        |d¬«      }t        ||«       y )Nrh  rj  rk  ro  r”  )r   r   )r{   r|   ro  rn  ru  s        r]   Útest_rzTestRQ.test_r�  s0   € Úš	¢9Ð-ˆÜ�!‹u‰ˆˆ1Ü�˜Œ_ˆÜ! ! RÕ(r_   c                 ó
  — t         j                  j                  d«      }d}t        d«      D ]T  }|j                  ||g«      }t	        |«      \  }}t        ||j                  z  t        |«      «       t        ||z  |«       ŒV y râ  ©rS   rT   r  r¨   r   r   rW   rF   ©r{   ri   rY   r  r|   ro  rn  s          r]   r  zTestRQ.test_random‡  sq   € Ü�i‰i×#Ñ# DÓ)ˆØˆÜ�q“ò 	0ˆAØ—
‘
˜A˜q˜6Ó"ˆAÜ�a“5‰DˆAˆqÜ% a¨!¯#©#¡g¬s°1«vÔ6Ü% a¨!¡e¨QÕ/ñ		0r_   c                 ó’   — g d¢g d¢g}t        |«      \  }}t        |j                  |z  t        d«      «       t        ||z  |«       y )Nrh  rj  rs   r#  r$  s       r]   r‰  zTestRQ.test_simple_trap�  rŠ  r_   c                 ó˜   — ddgddgddgg}t        |«      \  }}t        |j                  |z  t        d«      «       t        ||z  |«       y rŽ  r#  r$  s       r]   r�  zTestRQ.test_simple_tall–  sK   € Ø�ˆV�a˜�V˜a ˜VÐ$ˆÜ�!‹u‰ˆˆ1Ü! !§#¡#¨¡'¬3¨q«6Ô2Ü! ! a¡%¨Õ+r_   c                 ó’   — g d¢g d¢g}t        |«      \  }}t        ||j                  z  t        d«      «       t        ||z  |«       y )Nr¯  rj  rs   r#  r$  s       r]   r±  zTestRQ.test_simple_fatœ  s=   € Úš	Ð"ˆÜ�!‹u‰ˆˆ1Ü! ! a§c¡c¡'¬3¨q«6Ô2Ü! ! a¡%¨Õ+r_   c                 ó´   — g d¢g d¢g d¢g}t        |«      \  }}t        ||j                  «       j                  z  t	        d«      «       t        ||z  |«       y rÃ  )r   r   rV   rW   rF   r$  s       r]   r…   zTestRQ.test_simple_complex¢  sE   € Úš<ªÐ3ˆÜ�!‹u‰ˆˆ1Ü! ! a§f¡f£h§j¡j¡.´#°a³&Ô9Ü! ! a¡%¨Õ+r_   c                 ó  — t         j                  j                  d«      }d}d}t        d«      D ]T  }|j                  ||g«      }t	        |«      \  }}t        ||j                  z  t        |«      «       t        ||z  |«       ŒV y rñ  r(  ©r{   ri   r  rY   r  r|   ro  rn  s           r]   rô  zTestRQ.test_random_tall¨  óv   € Ü�i‰i×#Ñ# DÓ)ˆØˆØˆÜ�q“ò 	0ˆAØ—
‘
˜A˜q˜6Ó"ˆAÜ�a“5‰DˆAˆqÜ% a¨!¯#©#¡g¬s°1«vÔ6Ü% a¨!¡e¨QÕ/ñ		0r_   c                 ó  — t         j                  j                  d«      }d}d}t        d«      D ]T  }|j                  ||g«      }t	        |«      \  }}t        ||j                  z  t        |«      «       t        ||z  |«       ŒV y r  r(  r/  s           r]   r  zTestRQ.test_random_trap²  r0  r_   c                 ór  — t         j                  j                  d«      }d}d}t        d«      D ]†  }|j                  ||g«      }t	        |d¬«      \  }}t        ||j                  z  t        |«      «       t        ||z  |«       t        |j                  ||f«       t        |j                  ||f«       Œˆ y )Nr  r  rò  rQ   r“  r”  )
rS   rT   r  r¨   r   r   rW   rF   r   r@   r/  s           r]   Útest_random_trap_economicz TestRQ.test_random_trap_economic¼  s�   € Ü�i‰i×#Ñ# DÓ)ˆØˆØˆÜ�q“ò 	*ˆAØ—
‘
˜A˜q˜6Ó"ˆAÜ�a˜jÔ)‰DˆAˆqÜ% a¨!¯#©#¡g¬s°1«vÔ6Ü% a¨!¡e¨QÔ/Ü˜Ÿ™ 1 a &Ô)Ü˜Ÿ™ 1 a &Õ)ñ	*r_   c                 óT  — t         j                  j                  d«      }d}t        d«      D ]y  }|j                  ||g«      d|j                  ||g«      z  z   }t	        |«      \  }}t        ||j                  «       j                  z  t        |«      «       t        ||z  |«       Œ{ y r  )	rS   rT   r  r¨   r   r   rV   rW   rF   r)  s          r]   r"  zTestRQ.test_random_complexÈ  sŽ   € Ü�i‰i×#Ñ# DÓ)ˆØˆÜ�q“ò 	0ˆAØ—
‘
˜A˜q˜6Ó" R¨¯
©
°A°q°6Ó(:Ñ%:Ñ:ˆAÜ�a“5‰DˆAˆqÜ% a¨!¯&©&«(¯*©*¡n´c¸!³fÔ=Ü% a¨!¡e¨QÕ/ñ		0r_   c                 ó¼  — t         j                  j                  d«      }d}d}t        d«      D ]«  }|j                  ||g«      d|j                  ||g«      z  z   }t	        |d¬«      \  }}t        ||j                  «       j                  z  t        |«      «       t        ||z  |«       t        |j                  ||f«       t        |j                  ||f«       Œ­ y )Nr  r  rò  rQ   rP   r“  r”  )rS   rT   r  r¨   r   r   rV   rW   rF   r   r@   r/  s           r]   Útest_random_complex_economicz#TestRQ.test_random_complex_economicÑ  sº   € Ü�i‰i×#Ñ# DÓ)ˆØˆØˆÜ�q“ò 	*ˆAØ—
‘
˜A˜q˜6Ó" R¨¯
©
°A°q°6Ó(:Ñ%:Ñ:ˆAÜ�a˜jÔ)‰DˆAˆqÜ% a¨!¯&©&«(¯*©*¡n´c¸!³fÔ=Ü% a¨!¡e¨QÔ/Ü˜Ÿ™ 1 a &Ô)Ü˜Ÿ™ 1 a &Õ)ñ	*r_   c                 óœ   — g d¢g d¢g d¢g}t        |d¬«      \  }}t        ||j                  z  t        d«      «       t        ||z  |«       y r  r#  r$  s       r]   r  zTestRQ.test_check_finiteÝ  sB   € Úš	¢9Ð-ˆÜ�! %Ô(‰ˆˆ1Ü! ! a§c¡c¡'¬3¨q«6Ô2Ü! ! a¡%¨Õ+r_   r  r5  rY   r[   c                 óp  — t        ||«      }t        j                  ||f|¬«      }t        |«      \  }}t	        |j
                  ||f«       t	        |j
                  ||f«       t	        |j                  |«       t	        |j                  |«       t        |d¬«      }t	        |j
                  ||f«       t	        |j                  |«       t        |d¬«      \  }}t	        |j
                  ||f«       t	        |j                  |«       t	        |j
                  ||f«       t	        |j                  |«       y )Nr�   ro  r”  r“  )r:  rS   r9   r   r   r@   r[   )r{   r  rY   r[   r  r|   ro  rn  s           r]   r>  zTestRQ.test_shape_dtypeã  së   € ô ��1‹Iˆä�H‰H�a˜�V 5Ô)ˆÜ�!‹u‰ˆˆ1Ü�Q—W‘W˜q !˜fÔ%Ü�Q—W‘W˜q !˜fÔ%Ü�Q—W‘W˜eÔ$Ü�Q—W‘W˜eÔ$äˆq�sŒOˆÜ�Q—W‘W˜q !˜fÔ%Ü�Q—W‘W˜eÔ$ä�!˜*Ô%‰ˆˆ1Ü�Q—W‘W˜q !˜fÔ%Ü�Q—W‘W˜eÔ$Ü�Q—W‘W˜q !˜fÔ%Ü�Q—W‘W˜eÕ$r_   r?  r@  c                 óæ  — t        ||«      }t        j                  ||f«      }t        |«      \  }}t	        |t        j                  ||f«      «       t	        |t        j
                  |«      «       t        |d¬«      }t	        |t        j                  ||f«      «       t        |d¬«      \  }}t	        |t        j                  ||f«      «       t	        |t        j                  ||f«      «       y )Nro  r”  r“  )r:  rS   r’   r   r   rè  )r{   r  rY   r  r|   ro  rn  s          r]   r“   zTestRQ.test_emptyú  sµ   € ä��1‹Iˆä�H‰H�a˜�VÓˆÜ�!‹u‰ˆˆ1Ü˜œ2Ÿ8™8 Q¨ FÓ+Ô,Ü˜œ2Ÿ;™; q›>Ô*äˆq�sŒOˆÜ˜œ2Ÿ8™8 Q¨ FÓ+Ô,ä�!˜*Ô%‰ˆˆ1Ü˜œ2Ÿ8™8 Q¨ FÓ+Ô,Ü˜œ2Ÿ8™8 Q¨ FÓ+Õ,r_   N)r”   r•   r–   r   r&  r  r‰  r�  r±  r…   rô  r  r3  r"  r6  r  r—   r˜   r™   rÞ  r>  r“   rœ   r_   r]   r!  r!  z  sÁ   „ ò,ò)ò0ò,ò,ò,ò,ò0ò0ò
*ò0ò
*ò,ð ‡[�[×Ñ˜S¢)Ó,Ø‡[�[×Ñ˜S¢)Ó,Ø‡[�[×Ñ˜W fÓ-ñ%ó .ó -ó -ð%ð( ‡[�[×Ñ˜ZÒ)AÓBñ-ó Cñ-r_   r!  c                   ón  — e Zd Zd„ Zd„ Zej                  j                  dd ej                  d«       d ej                  d«      dgfd ej                  d«      d ej                  d«       dgfd	dd ej                  d«       ej                  d«       gfd
 ej                  d«       ej                  d«       ddgfd„  ej                  d«      d ej                  d«       dgfg«      d„ «       Z
d„ Zd„ Zej                  j                  deeej                  eej"                  g«      d„ «       Zej                  j                  dd	d
g«      ej                  j                  dddg«      ej                  j                  dej                  ej&                  ej"                  ej(                  g«      d„ «       «       «       Zej                  j                  dddg«      ej                  j                  dej                  ej&                  ej"                  ej(                  g«      d„ «       «       Zy)Ú	TestSchurc                 óô   — t        ||z  |j                  «       j                  z  |||d¬«       t        ||j                  «       j                  z  t        j                  t        |«      «      z
  dd|d¬«       y )Nz&Schur decomposition does not match 'a'r½   r   zu is not unitary)r   rV   rW   rS   rF   re   )r{   r|   Útr“  r¾   r¿   s         r]   Úcheck_schurzTestSchur.check_schur  s]   € ä˜˜A™ §¡£§
¡
Ñ*¨A°D¸tØ Hõ	Jô 	˜˜AŸF™F›HŸJ™J™¬¯©´°A³«Ñ7¸ÀÈØ 2ö	4r_   c           	      ó¨  — g d¢g d¢g d¢g}t        |«      \  }}| j                  |||dd¬«       t        |d«      \  }}t        t        j                  t        t        |«      «      «      xr' t        j                  t        t        |«      «      «      «       | j                  |||dd¬«       t        ||«      \  }}| j                  |||dd¬«       y )N©ri  é   rs   rj  ©rB  rs   rv   r*  ç›+¡†›„ö<©r¾   r¿   r›   )r   r>  r   rS   r2  r=   r?   r   )r{   r|   r=  rã  ÚtcÚzcÚtc2Úzc2s           r]   r   zTestSchur.test_simple  s¶   € Úš¢JÐ/ˆÜ�Q‹x‰ˆˆ1Ø×Ñ˜˜A˜q u°5ÐÔ9Ü�q˜)Ó$‰ˆˆBÜ”—‘”uœY r›]Ó+Ó,ÒM´·±¼¼iÈ»mÓ8LÓ1MÔNØ×Ñ˜˜B ¨°UÐÔ;Ü˜2˜r“?‰ˆˆSØ×Ñ˜˜C ¨5°uÐÕ=r_   zsort, expected_diagÚlhprQ   ç      à¿rb   ÚrhpÚiucÚoucc                 ó   — | dk\  S )Nrh  rœ   )rÅ  s    r]   ú<lambda>zTestSchur.<lambda>&  s
   € �A˜‘H€ r_   c                 óÈ   — g d¢g d¢g d¢g d¢g}t        ||¬«      \  }}}| j                  |||dd¬«       t        t        j                  |«      |d	¬
«       t        d|«       y )N©r&  r¡   rC  rD  ©g      Àg      ÀrD  rC  ©r  ç      @ç      Àg      @©rT  r&  rF  ç      @©rA   r*  rC  rD  çê-�™—q=©r¾   rQ   )r   r>  r   rS   r5   r   )r{   rA   Úexpected_diagr|   r=  r“  Úsdims          r]   Ú	test_sortzTestSchur.test_sort   sb   € ò Ú"ÚÚð!ˆô ˜1 4Ô(‰
ˆˆ1ˆdØ×Ñ˜˜A˜q u°5ÐÔ9ÜœŸ™ ›
 M¸Õ>Ü�Q˜Õr_   c                 ó|   — g d¢g d¢g d¢g d¢g}t        t        t        |d¬«       t        t        t        |d¬«       y )NrQ  rR  rS  rV  ÚunsupportedrX  ra   )r  r  r   r^  s     r]   Útest_sort_errorszTestSchur.test_sort_errors4  s3   € ÚÚ"ÚÚð!ˆô 	”j¤%¨°Õ?Ü”j¤%¨°Ö3r_   c                 óŽ   — g d¢g d¢g d¢g}t        |d¬«      \  }}t        ||z  |j                  «       j                  z  |«       y )Nr@  rj  rB  Fr‡   )r   r   rV   rW   )r{   r|   r=  rã  s       r]   r  zTestSchur.test_check_finite<  s;   € Úš¢JÐ/ˆÜ�Q UÔ+‰ˆˆ1Ü! ! a¡%¨!¯&©&«(¯*©*Ñ"4°aÕ8r_   rŠ   c                 óž  — t        j                  d|¬«      }t        |«      \  }}t        t        j                  d|¬«      «      \  }}t	        |t        j                  d«      «       t	        |t        j                  d«      «       |j
                  |j
                  k(  sJ ‚|j
                  |j
                  k(  sJ ‚t        |d¬«      \  }}}t	        |t        j                  d«      «       t	        |t        j                  d«      «       t        |d«       |j
                  |j
                  k(  sJ ‚|j
                  |j
                  k(  sJ ‚y )NrŒ   r�   rQ   rI  rX  r   )rS   r’   r   rF   r   r[   r   )r{   rŠ   r|   r=  rã  Út0Úz0r\  s           r]   r“   zTestSchur.test_emptyA  sø   € ä�H‰H�V 2Ô&ˆÜ�Q‹x‰ˆˆ1Ü”r—v‘v˜a rÔ*Ó+‰ˆˆBÜ˜œ2Ÿ8™8 FÓ+Ô,Ü˜œ2Ÿ8™8 FÓ+Ô,Ø�w‰w˜"Ÿ(™(Ò"Ð"Ð"Ø�w‰w˜"Ÿ(™(Ò"Ð"Ð"ä˜1 5Ô)‰
ˆˆ1ˆdÜ˜œ2Ÿ8™8 FÓ+Ô,Ü˜œ2Ÿ8™8 FÓ+Ô,Ü�T˜1ÔØ�w‰w˜"Ÿ(™(Ò"Ð"Ð"Ø�w‰w˜"Ÿ(™(Ò"Ð"Ñ"r_   rA   ÚoutputrN  r›   r[   c                 ó¢   — t        j                  ddgddgg«      }t        |j                  |«      ||¬«      d   }|dk(  r|dk(  s
J ‚|dk(  sJ ‚y y )Nçš™™™™™¹?r¯   rQ   ©rA   re  r¢   rL  r   )rS   rC   r   rX   )r{   rA   re  r[   r\   r\  s         r]   Útest_gh_13137_sort_strz TestSchur.test_gh_13137_sort_strR  s_   € ô  �J‰J˜˜b˜	 A s 8Ð,Ó-ˆô �Q—X‘X˜e“_¨4¸Ô?ÀÑCˆØ  EšMˆt�qŠyÐ8Ð8¨t°qªyÐ8Ð8¨yˆyr_   c                 óü   ‡— t        j                  ddgddgg«      }|dk(  xr" |t         j                  t         j                  hv Šd	ˆfd„	}t	        |j                  |«      ||¬«      d   }‰r|dk(  s
J ‚|dk(  sJ ‚y y )
Nrg  r¯   rQ   rN  c                 óÒ   •— ‰r9t        j                  | «      rJ ‚|�t        j                  |«      sJ ‚| |dz  z   }nt        j                  | «      sJ ‚|�J ‚| }|j                  dkD  S )NrP   r÷  )rS   ÚiscomplexobjÚisrealrÉ   )rÅ  r�  rã  Úall_reals      €r]   rA   z1TestSchur.test_gh_13137_sort_custom.<locals>.sorty  si   ø€ ÙÜŸ?™?¨1Ô-Ð-Ð-Ø�}¬¯©°1¬Ð5Ð5Ø˜˜"™‘H‘ä—‘ qÔ)Ð)Ð)Ø�yÐ �yØ�Ø—6‘6˜E‘>Ð!r_   rh  r¢   ra   r=  )rS   rC   r;   r$  r   rX   )r{   re  r[   r\   rA   r\  rn  s         @r]   Útest_gh_13137_sort_customz#TestSchur.test_gh_13137_sort_customh  s�   ø€ ô �J‰J˜˜b˜	 A s 8Ð,Ó-ˆà˜6‘>ÒG e´·
±
¼B¿J¹JÐ/GÐ&Gˆõ		"ô �Q—X‘X˜e“_¨4¸Ô?ÀÑCˆÙ$ˆt�qŠyÐ3Ð3¨$°!ª)Ð3Ð3¨)ˆyr_   N)r”   r•   r–   r>  r   r—   r˜   r™   rS   r>   r]  r`  r  rd   rš   r;   r›   r<   r“   r$  r&  ri  ro  rœ   r_   r]   r;  r;    s#  „ ò4ò>ð ‡[�[×ÑØØ
�7�2—7‘7˜1“:�+˜t W R§W¡W¨Q£Z°Ð5Ð	6Ø
�'�"—'‘'˜!“*˜c G B§G¡G¨A£J ;°Ð5Ð	6Ø
�$˜˜W˜RŸW™W Q›Z¨'¨"¯'©'°!«*¨Ð5Ð	6Ø
�'�"—'‘'˜!“*˜w˜rŸw™w q›z˜k¨4°Ð5Ð	6Ù
˜w˜rŸw™w q›z¨3°°·±¸³°¸TÐBÐ	Cð		Eóñ
óð
ò4ò9ð
 ‡[�[×Ñ˜T C¨°·
±
¸GÀRÇ\Á\Ð#RÓSñ#ó Tð#ð  ‡[�[×Ñ˜V e¨U ^Ó4Ø‡[�[×Ñ˜X¨°	Ð':Ó;Ø‡[�[×Ñ˜W r§z¡z°2·:±:Ø')§|¡|°R·]±]ð'Dó Eñ9óEó <ó 5ð9ð$ ‡[�[×Ñ˜X¨°	Ð':Ó;Ø‡[�[×Ñ˜W r§z¡z°2·:±:Ø')§|¡|°R·]±]ð'Dó Eñ4óEó <ñ4r_   r;  c                   óŠ   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
ej                  j                  d	eeeeeg«      d
„ «       Zy)ÚTestHessenbergc                 ó¤   — g d¢g d¢g d¢g}g d¢g d¢g d¢g}t        |d¬«      \  }}t        |j                  |z  |z  |«       t        ||d	¬
«       y )N©ikÿÿÿiÎÿÿÿifÿÿÿ©é  é´   é"  ©iåÿÿÿr
  éçÿÿÿ©g      bÀgüs×E@gã¥›Ä ŠcÀ©gçŒ(mÍ€Àgkšwœ¢c@gÏfÕçjW�À©r   gÂ&S£²?g,eâX—@ra   ©Úcalc_qrÍ  ©Údecimal©r   r   rW   ©r{   r|   Úh1rm   rn  s        r]   r   zTestHessenberg.test_simple�  sX   € ÚÚÚðˆò .Ú.Ú!ð#ˆô ˜! AÔ&‰ˆˆ1Ü! !§#¡#¨¡'¨A¡+¨qÔ1Ü! ! R°Ö3r_   c                 óŽ   — g d¢g d¢g d¢g}t        |d¬«      \  }}t        |j                  «       j                  |z  |z  |«       y )Nrs  )ru  y             €f@rw  )y       €      ;Àr
  ry  ra   r}  )r   r   rV   rW   ©r{   r|   rm   rn  s       r]   r…   z"TestHessenberg.test_simple_complex˜  sA   € ÚÚÚðˆô ˜! AÔ&‰ˆˆ1Ü! !§&¡&£(§*¡*¨q¡.°1Ñ"4°aÕ8r_   c                 óŠ   — g d¢g d¢g d¢g d¢g d¢g d¢g d¢g}t        |d¬	«      \  }}t        |j                  |z  |z  |«       y )
N)ra   rQ   rs   rÍ  ru   rv   râ  )r   rQ   rs   rÍ  rv   râ  rQ   )r   rQ   rQ   rs   r   rs   rQ   )r   r   rQ   ri  r   r   rQ   )r   rs   ra   rQ   r   ra   rQ   )r   ra   rQ   rs   r   ra   r   )r   r   r   r   r   ra   rQ   ra   r}  r�  r…  s       r]   Útest_simple2zTestHessenberg.test_simple2Ÿ  sF   € Ú"Ú"Ú"Ú"Ú"Ú"Ú"ð$ˆô ˜! AÔ&‰ˆˆ1Ü! !§#¡#¨¡'¨A¡+¨qÕ1r_   c                 ó�   — t        j                  d«      }d|d<   t        |d¬«      \  }}t        |j                  |z  |z  |«       y )Nrs   rQ   )r¢   r   ra   r}  )rS   rF   r   r   rW   r…  s       r]   Útest_simple3zTestHessenberg.test_simple3ª  s>   € Ü�F‰F�1‹IˆØˆˆ%‰Ü˜! AÔ&‰ˆˆ1Ü! !§#¡#¨¡'¨A¡+¨qÕ1r_   c                 óä   — t         j                  j                  d«      }d}t        d«      D ]A  }|j                  ||g«      }t	        |d¬«      \  }}t        |j                  |z  |z  |«       ŒC y )Nr  rÜ  rQ   ra   r}  )rS   rT   r  r¨   r   r   rW   ©r{   ri   rY   r  r|   rm   rn  s          r]   r  zTestHessenberg.test_random°  sf   € Ü�i‰i×#Ñ# DÓ)ˆØˆÜ�q“ò 	6ˆAØ—
‘
˜A˜q˜6Ó"ˆAÜ˜a¨Ô*‰DˆAˆqÜ% a§c¡c¨A¡g°¡k°1Õ5ñ	6r_   c                 ó.  — t         j                  j                  d«      }d}t        d«      D ]f  }|j                  ||g«      d|j                  ||g«      z  z   }t	        |d¬«      \  }}t        |j                  «       j                  |z  |z  |«       Œh y )Nr  rÜ  rQ   rP   ra   r}  )rS   rT   r  r¨   r   r   rV   rW   r‹  s          r]   r"  z"TestHessenberg.test_random_complex¸  s„   € Ü�i‰i×#Ñ# DÓ)ˆØˆÜ�q“ò 	=ˆAØ—
‘
˜A˜q˜6Ó" R¨¯
©
°A°q°6Ó(:Ñ%:Ñ:ˆAÜ˜a¨Ô*‰DˆAˆqÜ% a§f¡f£h§j¡j°1¡n°qÑ&8¸!Õ<ñ	=r_   c                 ó¦   — g d¢g d¢g d¢g}g d¢g d¢g d¢g}t        |dd¬	«      \  }}t        |j                  |z  |z  |«       t        ||d
¬«       y )Nrs  rt  rx  rz  r{  r|  ra   F)r~  rˆ   rÍ  r  r�  r‚  s        r]   r  z TestHessenberg.test_check_finiteÀ  sZ   € ÚÚÚðˆò .Ú.Ú!ð#ˆô ˜! A°EÔ:‰ˆˆ1Ü! !§#¡#¨¡'¨A¡+¨qÔ1Ü! ! R°Ö3r_   c                 ó  — ddgddgg}t        |d¬«      \  }}t        |t        j                  d«      «       t        ||«       ddgdd	gg}t        |d¬«      \  }}t        |t        j                  d«      «       t        ||«       y )
NrQ   ra   râ  rA  r}  y       @      Àr°   y      @      @y      (@       À)r   r   rS   rF   )r{   r|   rm   rn  r¹   Úh2r  s          r]   Útest_2x2zTestHessenberg.test_2x2Ë  s~   € Ø�ˆV�a˜�WÐˆä˜! AÔ&‰ˆˆ1Ü! !¤R§V¡V¨A£YÔ/Ü! ! QÔ'à�Dˆ\˜D %˜=Ð)ˆÜ˜A aÔ(‰ˆˆBÜ! "¤b§f¡f¨Q£iÔ0Ü! " aÕ(r_   rŠ   c                 óÌ  — t        j                  d|¬«      }t        |«      }|j                  dk(  sJ ‚|j                  t        t        j
                  d|¬«      «      j                  k(  sJ ‚t        |d¬«      \  }}t        |d¬«      \  }}|j                  dk(  sJ ‚|j                  |j                  k(  sJ ‚|j                  dk(  sJ ‚|j                  |j                  k(  sJ ‚y )NrŒ   r�   rs   Tr}  )rS   r’   r   r@   r[   rF   )r{   rŠ   r|   rm   rn  Úh3r  s          r]   r“   zTestHessenberg.test_empty×  sÅ   € ä�H‰H�V 2Ô&ˆÜ�q‹MˆØ�w‰w˜&Ò Ð Ð Ø�w‰wœ*¤R§V¡V¨A°RÔ%8Ó9×?Ñ?Ò?Ð?Ð?ä˜! DÔ)‰ˆˆ1Ü˜A dÔ+‰ˆˆBØ�w‰w˜&Ò Ð Ð Ø�w‰w˜"Ÿ(™(Ò"Ð"Ð"à�w‰w˜&Ò Ð Ð Ø�w‰w˜"Ÿ(™(Ò"Ð"Ñ"r_   N)r”   r•   r–   r   r…   r‡  r‰  r  r"  r  r�  r—   r˜   r™   rd   rš   r;   r›   r<   r“   rœ   r_   r]   rq  rq  ‹  s[   „ ò	4ò9ò	2ò2ò6ò=ò	4ò
)ð ‡[�[×Ñ˜T C¨°¸À)Ð#LÓMñ#ó Nñ#r_   rq  zBuild DependenciesÚblasÚnameÚversionc                   ó6   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	y)	ÚTestQZc                 ó\  — t         j                  j                  d«      }d}|j                  ||g«      j                  t        «      }|j                  ||g«      j                  t        «      }t        ||«      \  }}}}t        ||z  |j                  z  |d¬«       t        ||z  |j                  z  |d¬«       t        ||j                  z  t        |«      d¬«       t        ||j                  z  t        |«      d¬«       t        t        j                  t        |«      dk\  «      «       y )Né90  ru   r  r   )rS   rT   r  rX   r;   r   r   rW   rF   r   rÆ   r5   ©	r{   ri   rY   r\   rÊ   ÚAAÚBBÚQr  s	            r]   Útest_qz_singlezTestQZ.test_qz_singleî  sá   € Ü�i‰i×#Ñ# EÓ*ˆØˆØ�J‰J˜˜1�vÓ×%Ñ%¤gÓ.ˆØ�J‰J˜˜1�vÓ×%Ñ%¤gÓ.ˆÜ˜!˜Q“x‰ˆˆB��1Ü! ! b¡&¨1¯3©3¡,°¸1Õ=Ü! ! b¡&¨1¯3©3¡,°¸1Õ=Ü! ! a§c¡c¡'¬3¨q«6¸1Õ=Ü! ! a§c¡c¡'¬3¨q«6¸1Õ=Ü”—‘”t˜B“x 1‘}Ó%Õ&r_   c                 ó   — t         j                  j                  d«      }d}|j                  ||g«      }|j                  ||g«      }t        ||«      \  }}}}t	        ||z  |j
                  z  |«       t	        ||z  |j
                  z  |«       t	        ||j
                  z  t        |«      «       t	        ||j
                  z  t        |«      «       t        t        j                  t        |«      dk\  «      «       y )Nr™  ru   r   ©
rS   rT   r  r   r   rW   rF   r   rÆ   r5   rš  s	            r]   Útest_qz_doublezTestQZ.test_qz_doubleú  sÃ   € Ü�i‰i×#Ñ# EÓ*ˆØˆØ�J‰J˜˜1�vÓˆØ�J‰J˜˜1�vÓˆÜ˜!˜Q“x‰ˆˆB��1Ü! ! b¡&¨1¯3©3¡,°Ô2Ü! ! b¡&¨1¯3©3¡,°Ô2Ü! ! a§c¡c¡'¬3¨q«6Ô2Ü! ! a§c¡c¡'¬3¨q«6Ô2Ü”—‘”t˜B“x 1‘}Ó%Õ&r_   c                 ó4  — t         j                  j                  d«      }d}|j                  ||g«      d|j                  ||g«      z  z   }|j                  ||g«      d|j                  ||g«      z  z   }t        ||«      \  }}}}t	        ||z  |j                  «       j                  z  |«       t	        ||z  |j                  «       j                  z  |«       t	        ||j                  «       j                  z  t        |«      «       t	        ||j                  «       j                  z  t        |«      «       t        t        j                  t        |«      dk\  «      «       t        t        j                  t        |«      j                  dk(  «      «       y )Nr™  ru   rP   r   )rS   rT   r  r   r   rV   rW   rF   r   rÆ   r5   rÉ   rš  s	            r]   Útest_qz_complexzTestQZ.test_qz_complex	  s)  € Ü�i‰i×#Ñ# EÓ*ˆØˆØ�J‰J˜˜1�vÓ  C§J¡J°°1¨vÓ$6Ñ!6Ñ6ˆØ�J‰J˜˜1�vÓ  C§J¡J°°1¨vÓ$6Ñ!6Ñ6ˆÜ˜!˜Q“x‰ˆˆB��1Ü! ! b¡&¨1¯6©6«8¯:©:Ñ"5°qÔ9Ü! ! b¡&¨1¯6©6«8¯:©:Ñ"5°qÔ9Ü! ! a§f¡f£h§j¡j¡.´#°a³&Ô9Ü! ! a§f¡f£h§j¡j¡.´#°a³&Ô9Ü”—‘”t˜B“x 1‘}Ó%Ô&Ü”—‘”t˜B“x—}‘}¨Ñ)Ó*Õ+r_   c                 ó�  — t         j                  j                  d«      }d}|j                  ||g«      d|j                  ||g«      z  z   j                  t        «      }|j                  ||g«      d|j                  ||g«      z  z   j                  t        «      }t        ||«      \  }}}}t        ||z  |j                  «       j                  z  |d¬«       t        ||z  |j                  «       j                  z  |d¬«       t        ||j                  «       j                  z  t        |«      d¬«       t        ||j                  «       j                  z  t        |«      d¬«       t        t        j                  t        |«      dk\  «      «       t        t        j                  t        |«      j                  dk(  «      «       y )Nr™  ru   rP   r  r   )rS   rT   r  rX   r<   r   r   rV   rW   rF   r   rÆ   r5   rÉ   rš  s	            r]   Útest_qz_complex64zTestQZ.test_qz_complex64	  sG  € Ü�i‰i×#Ñ# EÓ*ˆØˆØ�Z‰Z˜˜A˜Ó " S§Z¡Z°°A°Ó%7Ñ"7Ñ7×?Ñ?Ä	ÓJˆØ�Z‰Z˜˜A˜Ó " S§Z¡Z°°A°Ó%7Ñ"7Ñ7×?Ñ?Ä	ÓJˆÜ˜!˜Q“x‰ˆˆB��1Ü! ! b¡&¨1¯6©6«8¯:©:Ñ"5°qÀ!ÕDÜ! ! b¡&¨1¯6©6«8¯:©:Ñ"5°qÀ!ÕDÜ! ! a§f¡f£h§j¡j¡.´#°a³&À!ÕDÜ! ! a§f¡f£h§j¡j¡.´#°a³&À!ÕDÜ”—‘”t˜B“x 1‘}Ó%Ô&Ü”—‘”t˜B“x—}‘}¨Ñ)Ó*Õ+r_   c                 óü  — t         j                  j                  d«      }d}|j                  ||g«      }|j                  ||g«      }t        ||d¬«      \  }}}}||z  |j	                  «       j
                  z  }	t        |	j                  |«       t        |	j                  d«       ||z  |j	                  «       j
                  z  }
t        |
j                  |«       t        |
j                  d«       t        ||j	                  «       j
                  z  t        |«      «       t        ||j	                  «       j
                  z  t        |«      «       t        t        j                  t        |«      dk\  «      «       y )Nr™  ru   r›   )re  r   )rS   rT   r  r   rV   rW   r   rN  rÉ   rF   r   rÆ   r5   )r{   ri   rY   r\   rÊ   r›  rœ  r�  r  ÚaaÚbbs              r]   Útest_qz_double_complexzTestQZ.test_qz_double_complex 	  s  € Ü�i‰i×#Ñ# EÓ*ˆØˆØ�J‰J˜˜1�vÓˆØ�J‰J˜˜1�vÓˆÜ˜!˜Q yÔ1‰ˆˆB��1Ø�‰V�a—f‘f“h—j‘jÑ ˆÜ! "§'¡'¨1Ô-Ü! "§'¡'¨1Ô-Ø�‰V�a—f‘f“h—j‘jÑ ˆÜ! "§'¡'¨1Ô-Ü! "§'¡'¨1Ô-Ü! ! a§f¡f£h§j¡j¡.´#°a³&Ô9Ü! ! a§f¡f£h§j¡j¡.´#°a³&Ô9Ü”—‘”t˜B“x 1‘}Ó%Õ&r_   c                 óº   — t        j                  g d¢g d¢g d¢g d¢g«      }t        j                  g d¢g d¢g d¢g d¢g«      }t        t        t        ||d	„ ¬
«       y )N)ç333333@ç      )@ç     @AÀg      @©ç333333@ç     €5@g     ÀGÀg      @)r¯  r   ç     ÀEÀrW  )çš™™™™™@rT  ç      GÀrT  )rC  rC  rF  rC  )rC  r¡   g      Àr²  )rC  r%  rU  rC  )rþ  r¡   rU  r&  c                 ó   — |dk(  S )Nr   rœ   )ÚarÚaiÚbetas      r]   rO  z,TestQZ.test_qz_double_sort.<locals>.<lambda>H	  s
   € ÀbÈAÁg€ r_   rX  )	rS   r4   r  r  r   r   r   rW   rÈ   )r{   r\   rÊ   r›  rœ  r�  r  r\  s           r]   Útest_qz_double_sortzTestQZ.test_qz_double_sort0	  sZ   € ô �H‰HÒ-Ú-Ú,Ú,ð.ó /ˆô
 �H‰HÒ+Ú+Ú+Ú+ð-ó .ˆô
 	”j¤" a¨Ñ1MÕNØr_   c                 ó  — t         j                  j                  d«      }d}|j                  ||g«      }|j                  ||g«      }t        ||d¬«      \  }}}}t	        ||z  |j
                  z  |«       t	        ||z  |j
                  z  |«       t	        ||j
                  z  t        |«      «       t	        ||j
                  z  t        |«      «       t        t        j                  t        |«      dk\  «      «       y )Nr™  ru   Fr‡   r   r   rš  s	            r]   r  zTestQZ.test_check_finite“	  sÆ   € Ü�i‰i×#Ñ# EÓ*ˆØˆØ�J‰J˜˜1�vÓˆØ�J‰J˜˜1�vÓˆÜ˜!˜Q¨UÔ3‰ˆˆB��1Ü! ! b¡&¨1¯3©3¡,°Ô2Ü! ! b¡&¨1¯3©3¡,°Ô2Ü! ! a§c¡c¡'¬3¨q«6Ô2Ü! ! a§c¡c¡'¬3¨q«6Ô2Ü”—‘”t˜B“x 1‘}Ó%Õ&r_   N)
r”   r•   r–   rž  r¡  r£  r¥  r©  r¸  r  rœ   r_   r]   r—  r—  í  s'   „ ò
'ò
'ò,ò,ò'ò 5FóF
'r_   r—  c                   ó^   — e Zd Ze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)Ú	TestOrdQZc                 óF  — t        j                  g d¢g d¢g d¢g d¢g«      }t        j                  g d¢g d¢g d¢g d¢g«      }t        j                  g d	¢g d
¢g d¢g d¢g«      }t        j                  g d¢g d¢g d¢g d¢g«      }t        j                  g d¢g d¢g d¢g d¢g«      }t        j                  g d¢g d¢g d¢g d¢g«      }t        j                  d«      }t        j                  ddg«      }t        j                  ddg«      }	|||||	g| _        |||||	g| _        y )N)yš™™™™5À     €6Ày     ÀJ@     @IÀy     @AÀ     à_@y      @      à?)yq=
×£pÝ¿…ëQ¸Ày      À     ÀBÀy      /À     @M@y      %À      ø¿)y333333@      Àyš™™™™ÙC@š™™™™1Ày      QÀ      )@y      À      À)y      @š™™™™™@yÍÌÌÌÌÌ,@fffff¦E@y     @@À      GÀy      3À     @@À)y      ð?      Àyš™™™™™ù?333333ó?y      À        y              ð¿)yš™™™™™é?333333ã¿y              Ày      À      @y333333Àš™™™™™	À)y      ð?        y333333@ÍÌÌÌÌÌü?y      À      Ày              À)rP   yÍÌÌÌÌÌü¿333333@y              Ày      @      À)r«  r¬  r­  rJ  r®  )r¯  r°  r±  rW  )r²  g      :@r³  rT  )ra   rQ   éýÿÿÿra   )ra   rs   éûÿÿÿrÍ  )ra   rs   éüÿÿÿrs   )ra   rs   r¿  rÍ  )r  rC  r¡   r¡   )r&  r&  r%  r)  )r)  r&  rC  r¡   )rh  r&  r,  r)  )r,  r'  rT  r'  )r)  r)  r%  r  )r  rC  rT  rT  )r  rC  r&  r)  rQ   r   ra   )rS   r4   rF   r5   r\   rÊ   )
ÚclsÚA1ÚB1ÚA2ÚB2ÚA3ÚB3ÚA4ÚB4ÚA5s
             r]   rË  zTestOrdQZ.setup_class¡	  s(  € ô �X‰Xò $ò&ò%ò'ð(ó )ˆô �X‰XÒDÚDÚDÚDðFó Gˆô �X‰XÒ/Ú.Ú.Ú.ð0ó 1ˆô
 �X‰X’}Ú$Ú$Ú$ð&ó 'ˆô �X‰XÒ'Ú'Ú'Ú'ð)ó *ˆô �X‰XÒ)Ú'Ú'Ú'ð)ó *ˆô �V‰V�A‹YˆÜ�W‰W�a˜�V‹_ˆô �W‰W�a˜�V‹_ˆà�R˜˜R Ð$ˆŒØ�R˜˜R Ð$ˆ�r_   c           
      ó
  — t        j                  d¬«      5  t        | j                  | j                  «      D ��cg c]  \  }}t        |||¬«      ‘Œ }}}d d d «       t        |«      S c c}}w # 1 sw Y   t        «      S xY w)NÚraiserú   rX  )rS   rû   Úzipr\   rÊ   r    Útuple)r{   rA   ÚAiÚBiÚrets        r]   Ú	qz_decompzTestOrdQZ.qz_decompØ	  sj   € Ü�[‰[˜WÔ%ñ 	OÜ:=¸d¿f¹fÀdÇfÁfÓ:M×N±°°B”5˜˜R dÖ+ÐNˆCÑN÷	Oä�S‹zÐùó O÷	Oä�S‹zÐús   —$A/»A)ÁA/Á)A/Á/Bc
           	      óh  — t        j                  |j                  Ž }
t        ||j                  j                  «       z  |
«       t        |	|	j                  j                  «       z  |
«       t        ||z  ||	z  «       t        ||z  ||	z  «       t        t        j                  |d«      t        j                  |j                  «      «       t        t        j                  |d«      t        j                  |j                  «      «       t        |j                  d   «      D �]%  }|dkD  r|||dz
  f   dk7  rŒ||j                  d   dz
  k  rŠ||dz   |f   dk7  r}t        |||dz   …||dz   …f   |||dz   …||dz   …f   «      \  }}|d   j                  dk  r|ddg   }|||dz    |||dz    z  }|d   j                  dk  r|ddg   }t        ||«       Œ¶||   dk(  r+||   dk(  r#t        |||f   d«       t        |||f   d«       Œé||   dk(  rt        |||f   d«       �Œt        |||f   |||f   z  ||   ||   z  «       �Œ( t        |«      }d}t        |j                  d   «      D ]A  } |t        j                  ||   g«      t        j                  ||   g«      «      }|s|rJ ‚|}ŒC y )Nr¯   r¢   r   ra   rQ   T)rS   rF   r@   r   rW   rV   r   Útrilr9   r¨   r
   rÉ   r   r   r2   r4   )r{   r\   rÊ   rA   r›  rœ  Úalphar·  r�  r  ÚIdr­   ÚevalsÚ_ÚtmpÚsortfunÚlastsortÚcursorts                     r]   ÚcheckzTestOrdQZ.checkÝ	  s   € Ü�V‰V�Q—W‘WÐˆä! ! a§c¡c§h¡h£j¡.°"Ô5Ü! ! a§c¡c§h¡h£j¡.°"Ô5ä! ! b¡&¨!¨a©%Ô0Ü! ! b¡&¨!¨a©%Ô0äœ2Ÿ7™7 2 r›?¬B¯H©H°R·X±XÓ,>Ô?Üœ2Ÿ7™7 2 r›?¬B¯H©H°R·X±XÓ,>Ô?ä�q—w‘w˜q‘zÓ"ó 	MˆAð �1Šu˜˜1˜a !™e˜8™¨Ò)Øà�2—8‘8˜A‘; ‘?Ò" r¨!¨a©%°¨(¡|°qÒ'8Ü˜r ! A¨¡E '¨1¨Q°©U¨7Ð"2Ñ3°R¸¸!¸a¹%¸ÀÀ1ÀqÁ5ÀÐ8HÑ5IÓJ‘��qð ˜‘8—=‘= 1Ò$Ø! 1 a &™M�EØ˜A˜a !™e�n T¨!¨A°©E ]Ñ2�Ø�q‘6—;‘; ’?Ø˜q !˜f™+�CÜ)¨%°Õ5à˜‘8˜q’= T¨!¡W°¢\Ü   A q D¡¨1Ô-Ü   A q D¡¨1Õ-Ø˜!‘W ’\Ü   A q D¡¨1Ö-ä'¨¨1¨a¨4©°°A°q°D±Ñ(9¸5À¹8ÀDÈÁGÑ;KÖLð/	Mô0 # 4Ó(ˆØˆÜ�q—w‘w˜q‘zÓ"ò 	ˆAÙœbŸh™h¨¨a© zÓ2´B·H±H¸dÀ1¹g¸YÓ4GÓHˆGñ Ù"Ð"�{Ø‰Hñ	r_   c                 ó¤   — | j                  |«      }t        || j                  | j                  «      D ]  \  }}} | j                  |||g|¢­Ž  Œ y r=  )rÑ  rÌ  r\   rÊ   rÜ  )r{   rA   rÐ  ÚretirÎ  rÏ  s         r]   Ú	check_allzTestOrdQZ.check_all
  sM   € Ø�n‰n˜TÓ"ˆä  T§V¡V¨T¯V©VÓ4ò 	,‰LˆD�"�bØˆD�J‰J�r˜2˜tÐ+ dÔ+ñ	,r_   c                 ó&   — | j                  d«       y )NrI  ©rß  r?  s    r]   Útest_lhpzTestOrdQZ.test_lhp
  ó   € Ø�‰�uÕr_   c                 ó&   — | j                  d«       y )NrK  rá  r?  s    r]   Útest_rhpzTestOrdQZ.test_rhp
  rã  r_   c                 ó&   — | j                  d«       y )NrL  rá  r?  s    r]   Útest_iuczTestOrdQZ.test_iuc
  rã  r_   c                 ó&   — | j                  d«       y )NrM  rá  r?  s    r]   Útest_ouczTestOrdQZ.test_ouc
  rã  r_   c                 ó,   — d„ }| j                  |«       y )Nc                 óˆ   — t        j                  | t        ¬«      }|dk7  }d|| <   | |   ||   z  j                  dk(  ||<   |S ©Nr�   r   F©rS   Ú
empty_likeÚboolrÉ   ©rÅ  r�  ÚoutÚnonzeros       r]   rA   z TestOrdQZ.test_ref.<locals>.sort
  óL   € Ü—-‘- ¬Ô.ˆCØ˜A‘vˆGØ!ˆC��‰MØ˜g™J q¨¡zÑ1×7Ñ7¸1Ñ<ˆC�‰LØˆJr_   rá  ©r{   rA   s     r]   Útest_refzTestOrdQZ.test_ref
  ó   € ò	ð 	�‰�tÕr_   c                 ó,   — d„ }| j                  |«       y )Nc                 óˆ   — t        j                  | t        ¬«      }|dk7  }d|| <   | |   ||   z  j                  dk7  ||<   |S rì  rí  rð  s       r]   rA   z TestOrdQZ.test_cef.<locals>.sort*
  ró  r_   rá  rô  s     r]   Útest_cefzTestOrdQZ.test_cef(
  rö  r_   c                 ó`  — t        | j                  d   | j                  d   d¬«      } | j                  | j                  d   | j                  d   dg|¢­Ž  t        | j                  d   | j                  d   d¬«      } | j                  | j                  d   | j                  d   dg|¢­Ž  y )Nra   rQ   rI  rX  )r    r\   rÊ   rÜ  )r{   rÐ  s     r]   Útest_diff_input_typeszTestOrdQZ.test_diff_input_types3
  sŒ   € Ü�D—F‘F˜1‘I˜tŸv™v a™y¨uÔ5ˆØˆ�
‰
�4—6‘6˜!‘9˜dŸf™f Q™i¨Ð5°Ó5ä�D—F‘F˜1‘I˜tŸv™v a™y¨uÔ5ˆØˆ�
‰
�4—6‘6˜!‘9˜dŸf™f Q™i¨Ð5°Ô5r_   c                 óº  — t        j                  d«      }t        j                  ddg«      }dddgfdddgfdddgfdddgfg}t        j                  d«      }t        j                  d	d
g«      }dddgfdddgfdddgfdddgfg}t        j                  d«      }t        j                  ddg«      }ddt         j                  gfddt         j                  gfdt         j                  dgfg}	t        j                  d«      }
t        j                  ddg«      }ddt         j                  gfddt         j                  gfdt         j                  dgfg}t        j                  ddg«      }t        j                  ddg«      }ddt         j                  gfddt         j                  gfg}||||
|g}|||||g}|||	||g}t        |||«      D ]Ž  \  }}}|D ]ƒ  \  }}t        |||¬«      \  }}}}}}|dk(  }|dk(  }t        j                  |«      }t         j                  |||z  <   t         j                  || |z  <   ||    ||    z  || <   t        ||«       Œ… Œ� y )NrQ   r¯   rb   rI  rJ  rK  rL  rM  y       À      ð?y      à?      à?yš™™™™™Ù¿š™™™™™É¿ù      ð?      ð¿r   ra   rX  )	rS   rF   r5   r¸   ÚnanrÌ  r    rî  r   )r{   rÁ  rÂ  Ú	expected1rÃ  rÄ  Ú	expected2rÅ  rÆ  Ú	expected3rÇ  rÈ  Ú	expected4rÉ  ÚB5Ú	expected5r\   rÊ   ÚexpectedrÎ  rÏ  Ú	expectediÚsortstrÚexpected_eigvalsr×  rÔ  r·  ÚazeroÚbzerorÅ  s                                 r]   Útest_sort_explicitzTestOrdQZ.test_sort_explicit:
  s   € ô �V‰V�A‹YˆÜ�W‰W�b˜#�YÓˆØ˜d A˜YÐ'Ø˜a ˜YÐ'Ø˜d A˜YÐ'Ø˜a ˜YÐ'ð)ˆ	ô �V‰V�A‹YˆÜ�W‰W�g˜zÐ*Ó+ˆØ˜k¨>Ð:Ð;Ø˜n¨kÐ:Ð;Ø˜k¨>Ð:Ð;Ø˜n¨kÐ:Ð;ð=ˆ	ô
 �V‰V�A‹YˆÜ�W‰W�a˜�V‹_ˆØ˜c¤2§6¡6˜]Ð+Ø˜c¤2§6¡6˜]Ð+ØœbŸf™f c˜]Ð+ð-ˆ	ô �V‰V�A‹YˆÜ�W‰W�b˜!�WÓˆØ˜d¤B§F¡F˜^Ð,Ø˜d¤B§F¡F˜^Ð,ØœbŸf™f d˜^Ð,ð.ˆ	ô �W‰W�a˜�V‹_ˆÜ�W‰W�a˜�XÓˆà˜a¤§¡˜[Ð)Ø˜a¤§¡˜[Ð)ð+ˆ	ð ��R˜˜RÐ ˆØ��R˜˜RÐ ˆØ˜y¨)°YÀ	ÐJˆÜ!$ Q¨¨8Ó!4ò 		5ÑˆB��IØ-6ò 5Ñ)�Ð)Ü*/°°B¸WÔ*EÑ'��1�e˜T 1 aØ !™�Ø ™�Ü—M‘M %Ó(�Ü#%§6¡6��%˜%‘-Ñ Ü$&§F¡F��5�&˜5‘.Ñ!Ø! 5 &™M¨$°¨v©,Ñ6��5�&‘	ÜÐ 0°!Õ4ñ5ñ		5r_   N)r”   r•   r–   ÚclassmethodrË  rÑ  rÜ  rß  râ  rå  rç  ré  rõ  rù  rû  r  rœ   r_   r]   r»  r»   	  sM   „ Øñ4%ó ð4%òlò
,ò\,òòòòò	ò	ò6ó-5r_   r»  c                   ó†   — e Zd Zej                  j                  d«      d„ «       Zej                  j                  d„ «       Zy)ÚTestOrdQZWorkspaceSizeru   c                 ó*  — t         j                  j                  d«      }d}t         j                  t         j                  fD ]V  }|j                  ||f«      j                  |«      }|j                  ||f«      j                  |«      }t        ||d„ d¬«      }ŒX t         j                  t         j                  fD ]V  }|j                  ||f«      j                  |«      }|j                  ||f«      j                  |«      }t        ||d„ d¬«      }ŒX y )Nr™  éÊ   c                 ó   — | |k  S r=  rœ   ©rÔ  r·  s     r]   rO  z7TestOrdQZWorkspaceSize.test_decompose.<locals>.<lambda>t
  ó
   € °U¸T±\€ r_   rN  rh  c                 ó   — | |k  S r=  rœ   r  s     r]   rO  z7TestOrdQZWorkspaceSize.test_decompose.<locals>.<lambda>z
  r  r_   r›   )	rS   rT   r  r;   r$  rX   r    r&  r<   )r{   ri   rX  Úddtyper\   rÊ   r×  s          r]   Útest_decomposez%TestOrdQZWorkspaceSize.test_decomposek
  sñ   € ä�i‰i×#Ñ# EÓ*ˆØˆä—z‘z¤2§:¡:Ð.ò 	%ˆFØ—
‘
˜A˜q˜6Ó"×)Ñ)¨&Ó1ˆAØ—
‘
˜A˜q˜6Ó"×)Ñ)¨&Ó1ˆAä�a˜Ñ!AØ#ô%‰Að		%ô —}‘}¤b§l¡lÐ3ò 	(ˆFØ—
‘
˜A˜q˜6Ó"×)Ñ)¨&Ó1ˆAØ—
‘
˜A˜q˜6Ó"×)Ñ)¨&Ó1ˆAÜ�a˜Ñ!AØ&ô(‰Añ	(r_   c                 ó~  — t         j                  j                  d«      }d}t         j                  t         j                  t         j
                  t         j                  fD ][  }|j                  ||f«      j                  |«      }|j                  ||f«      j                  |«      }t        ||d¬«      \  }}}}	}
}Œ] y )Nr™  r  rM  rX  )	rS   rT   r  r;   r$  r&  r<   rX   r    )r{   ri   rX  r  r\   rÊ   ÚSrW   rÔ  r·  ÚUr3  s               r]   Útest_decompose_oucz)TestOrdQZWorkspaceSize.test_decompose_ouc}
  s˜   € ä�i‰i×#Ñ# EÓ*ˆØˆä—z‘z¤2§:¡:¬r¯}©}¼b¿l¹lÐKò 	>ˆFØ—
‘
˜A˜q˜6Ó"×)Ñ)¨&Ó1ˆAØ—
‘
˜A˜q˜6Ó"×)Ñ)¨&Ó1ˆAÜ&+¨A¨q°uÔ&=Ñ#ˆAˆq�%˜˜q¡!ñ	>r_   N)	r”   r•   r–   r—   r˜   Ú	fail_slowr  rF  r  rœ   r_   r]   r  r  j
  sA   „ Ø‡[�[×Ñ˜1Óñ(ó ð(ð" ‡[�[×Ññ>ó ñ>r_   r  c                   ó   — e Zd Zd„ Zy)ÚTestDatacopiedc                 ó`  ‡— ddl m} t        ddgddgg«      }t        |«      Š|j	                  «       }|j                  «       } G ˆfd„d«      } G ˆfd„d	«      } |«       } |«       }|d
f‰d
f|df|d
f|d
f|d
ffD ].  \  }	}
t        |	«      }t         |||	«      |
t        |	«      ¬«       Œ0 y )Nr   )Ú_datacopiedra   rQ   rs   c                   ó   •— e Zd Zdˆ fd„	Zy)ú-TestDatacopied.test_datacopied.<locals>.Fake1Nc                 ó   •— ‰S r=  rœ   )r{   r[   r�   r\   s      €r]   Ú	__array__z7TestDatacopied.test_datacopied.<locals>.Fake1.__array__“
  s   ø€ Ø�r_   )NN)r”   r•   r–   r#  ©r\   s   €r]   ÚFake1r!  ’
  s   ø„ ör_   r%  c                   ó(   •— e Zd ZW ° j                  Zy)ú-TestDatacopied.test_datacopied.<locals>.Fake2N)r”   r•   r–   Ú__array_interface__r$  s   €r]   ÚFake2r'  –
  s   ø„ Ù"#×"7Ñ"7Ñr_   r)  FTrÂ   )Úscipy.linalg._decompr  rH   rC   Útolistr�   r   Úrepr)r{   r  r  ÚLÚM2r%  r)  ÚF1ÚF2ÚitemÚstatusÚarrr\   s               @r]   Útest_datacopiedzTestDatacopied.test_datacopiedŠ
  s¿   ø€ Ý4ä�Q˜�F˜Q ˜FÐ#Ó$ˆÜ�A‹JˆØ�H‰H‹JˆØ�V‰V‹Xˆ÷	ó 	÷	8ó 	8ñ ‹WˆÙ‹Wˆà ˜Z¨!¨U¨°a¸°YØ  %˜[¨2¨u¨+¸¸E°{ðDò 	-‰LˆD�&ä˜$“-ˆCÜ™ S¨$Ó/°Ü!% d£ö-ñ	-r_   N)r”   r•   r–   r4  rœ   r_   r]   r  r  ˆ
  s   „ ó-r_   r  c                  óÞ   — t        dt        j                  ¬«      } t        j                  | j                  ddt
        ¬«      }d|_        t        |d¬«       t        |j                  d¬«       y	)
z4Check linalg works with non-aligned memory (float32)i’  r�   rQ   r  ©ÚoffsetÚcountr[   ©rB  rB  T©Úoverwrite_aN)	r:   rS   Úuint8Ú
frombufferÚdatar;   r@   r
   rW   ©r|   rã  s     r]   Útest_aligned_mem_floatr@  £
  sM   € ô 	ˆsœ"Ÿ(™(Ô#€Aô 	�‰�a—f‘f Q¨c¼ÔA€AØ€A„Gäˆ�tÕÜˆ�‰˜Ör_   Úppc64lezcrashes on ppc64lec                  óÞ   — t        dt        j                  ¬«      } t        j                  | j                  ddt
        ¬«      }d|_        t        |d¬«       t        |j                  d¬«       y	)
z4Check linalg works with non-aligned memory (float64)i$  r�   rÍ  r  r6  r9  Tr:  N)	r:   rS   r<  r=  r>  rš   r@   r
   rW   r?  s     r]   Útest_aligned_memrC  °
  sM   € ô
 	ˆsœ"Ÿ(™(Ô#€Aô 	�‰�a—f‘f Q¨c¼Ô?€AØ€A„Gäˆ�tÕÜˆ�‰˜Ör_   c                  óÞ   — t        dt        j                  ¬«      } t        j                  | j                  ddt
        ¬«      }d|_        t        |d¬«       t        |j                  d¬«       y	)
z>Check that complex objects don't need to be completely alignediH  r�   ri  r  r6  r9  Tr:  N)	r9   rS   r<  r=  r>  r›   r@   r
   rW   r?  s     r]   Útest_aligned_mem_complexrE  ¿
  sM   € ô 	ˆdœ"Ÿ(™(Ô#€Aô 	�‰�a—f‘f Q¨c¼ÔA€AØ€A„Gäˆ�tÕäˆ�‰˜Ör_   c                 ól  — t        |«      }t        t        |«      «      D �]  }|d d  }t        ||   t        j
                  «      sŒ't	        j                  ||   j                  ||   j                  j                  z  dz   t        j                  ¬«      }t	        j                  |j                  d||   j                  ||   j                  ¬«      }||   j                  |_        ||   |d<   |||<    | |i |¤Ž t        ||   j                  «      dkD  sŒø||   j                  ||<    | |i |¤Ž �Œ y )Nri  r�   rÍ  r6  .ra   )r!  r¨   re   rc   rS   rE   r9   rÅ   r[   Úitemsizer<  r=  r>  r@   rW   )Úfuncr[  Úkwargsr­   r|   r§  s         r]   Úcheck_lapack_misalignedrJ  Í
  s  € Ü�‹:€DÜ”3�t“9Óó #ˆØ‘ˆGˆÜ�a˜‘dœBŸJ™JÕ'ä—‘˜!˜A™$Ÿ)™) A a¡D§J¡J×$7Ñ$7Ñ7¸Ñ9ÄÇÁÔJˆBÜ—‘˜rŸw™w¨q¸¸!¹¿	¹	Ø%& q¡T§Z¡Zô1ˆBà˜‘t—z‘zˆBŒHØ˜‘dˆBˆs‰GØˆAˆa‰DÙ�!Ð�vÒÜ�1�Q‘4—:‘:‹ Ó"Ø˜‘t—v‘v��!‘Ù�aÐ"˜6Ô"ñ#r_   z0Ticket #1152, triggers a segfault in rare cases.)Úrunr0  c                  óô  — t        j                  dt        ¬«      } t        j                  d«      }d|_        t        j                  dt         j
                  ¬«      }t        j                  |j                  ddt        ¬«      }d|_        t        j                  d«      }t        |«      \  }}t        |ft        d¬	«      ft        |ft        d¬	«      ft        |ft        d¬	«      ft        |ft        d¬	«      ft        ||f|ft        d¬
«      ft        ||ft        dd¬«      ft         | ft        d¬	«      ft         |ft        d¬	«      ft         |ft        d¬	«      ft"        |ft        «       ft"        |ft        d¬	«      ft$        | ft        d¬	«      ft&        |ft        d¬	«      ft(        |ft        d¬	«      ft*        |ft        d¬	«      ft,        |ft        d¬	«      ffD ]  \  }}}t/        |||«       Œ y )NrB  r�   r  r9  i N  rÍ  r6  Tr:  )Úoverwrite_b)r;  rM  )rS   rF   rš   r:   r@   r<  r=  r>  rÄ   r   r
   Údictr   r   r   r   r   r   r   r   r   r   r   rJ  )	r  ÚRr  r¹   ÚLUÚpivrH  r[  rI  s	            r]   Útest_lapack_misalignedrR  ß
  s²  € ô 	�‰ˆrœÔ€AÜ
�	‰	�#‹€AØ€A„GÜ
�	‰	�%œrŸx™xÔ(€AÜ
�‰�a—f‘f Q¨c¼Ô?€AØ€A„GÜ
�‰�‹€AÜ˜‹l�G€Bˆä�1�$œ¨Ô.Ð/Ü�q�dœD¨TÔ2Ð3Ü�!�”t¨Ô-Ð.Ü˜˜œd¨tÔ4Ð5Ü˜˜S˜	 1�~¤t¸Ô'=Ð>Ü�Q˜�FœD¨T¸tÔDÐEÜ�1�$œ¨Ô.Ð/Ü�1�$œ¨Ô.Ð/Ü�1�$œ¨Ô.Ð/Ü�q�dœD›FÐ#Ü�q�dœD¨TÔ2Ð3Ü˜�tœT¨dÔ3Ð4Ü�!�”t¨Ô-Ð.Ü�!�”t¨Ô-Ð.Ü˜!˜œt°Ô5Ð6Ü�Q�Dœ$¨4Ô0Ð1ð!!ò 4Ñˆˆt�Vô$ 	   d¨FÕ3ñ%4r_   c                   ól   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚTestOverwritec                 óJ   — t        t        dg«       t        t        ddg«       y ©Nr   )rG   r
   r?  s    r]   Útest_eigzTestOverwrite.test_eig  s   € ÜœC & Ô*ÜœC &¨&Ð!1Õ2r_   c                 óJ   — t        t        dg«       t        t        ddg«       y rV  )rG   r   r?  s    r]   Ú	test_eighzTestOverwrite.test_eigh  s   € ÜœD 6 (Ô+ÜœD 6¨6Ð"2Õ3r_   c                 ó&   — t        t        dg«       y ©Nr–  )rG   r   r?  s    r]   rŒ  zTestOverwrite.test_eig_banded
  ó   € ÜœJ¨¨Õ1r_   c                 ó&   — t        t        dg«       y rV  )rG   r   r?  s    r]   Útest_eigvalszTestOverwrite.test_eigvals  ó   € ÜœG f XÕ.r_   c                 ó&   — t        t        dg«       y rV  )rG   r   r?  s    r]   Útest_eigvalshzTestOverwrite.test_eigvalsh  s   € ÜœH v hÕ/r_   c                 ó&   — t        t        dg«       y r[  )rG   r   r?  s    r]   r‚  z!TestOverwrite.test_eigvals_banded  s   € ÜœN¨V¨HÕ5r_   c                 ó&   — t        t        dg«       y rV  )rG   r   r?  s    r]   Útest_hessenbergzTestOverwrite.test_hessenberg  r\  r_   c                 ó&   — t        t        dg«       y rV  )rG   r   r?  s    r]   Útest_lu_factorzTestOverwrite.test_lu_factor  s   € ÜœI¨ xÕ0r_   c                 óx   ‡— t        j                  g d¢g d¢g d¢g«      }t        |«      Št        ˆfd„dg«       y )Nrr   r  )râ  ri  ri  c                 ó   •— t        ‰| «      S r=  )r   )r¹   Úxlus    €r]   rO  z-TestOverwrite.test_lu_solve.<locals>.<lambda>  s   ø€ ¤h¨s°AÓ&6€ r_   )rs   )rS   r4   r   rG   )r{   rÅ  ri  s     @r]   Útest_lu_solvezTestOverwrite.test_lu_solve  s.   ø€ Ü�H‰H’i¢ªIÐ6Ó7ˆÜ˜‹lˆÜÓ6¸¸Õ?r_   c                 ó&   — t        t        dg«       y rV  )rG   r   r?  s    r]   Útest_luzTestOverwrite.test_lu!  ó   € ÜœB  Õ)r_   c                 ó&   — t        t        dg«       y rV  )rG   r   r?  s    r]   Útest_qrzTestOverwrite.test_qr$  rm  r_   c                 ó&   — t        t        dg«       y rV  )rG   r   r?  s    r]   Útest_rqzTestOverwrite.test_rq'  rm  r_   c                 ó&   — t        t        dg«       y rV  )rG   r   r?  s    r]   Ú
test_schurzTestOverwrite.test_schur*  s   € ÜœE F 8Õ,r_   c                 ó`   — t        d„ dgt        j                  t        j                  g¬«       y )Nc                 ó   — t        | d«      S )Nr›   )r   ©r|   s    r]   rO  z2TestOverwrite.test_schur_complex.<locals>.<lambda>.  s   € ¤e¨A¨yÓ&9€ r_   r   )Údtypes)rG   rS   r;   r$  r?  s    r]   Útest_schur_complexz TestOverwrite.test_schur_complex-  s!   € ÜÑ9¸F¸8Ü$&§J¡J´·
±
Ð#;ö	=r_   c                 óB   — t        t        dg«       t        d„ dg«       y )Nr   c                 ó   — t        | d¬«      S )NrI  r¯  )r   rv  s    r]   rO  z(TestOverwrite.test_svd.<locals>.<lambda>3  s   € ¤c¨!¸7Ô&C€ r_   )rG   r   r?  s    r]   Útest_svdzTestOverwrite.test_svd1  s   € ÜœC & Ô*ÜÑCÀfÀXÕNr_   c                 ó&   — t        t        dg«       y rV  )rG   r   r?  s    r]   Útest_svdvalszTestOverwrite.test_svdvals5  r_  r_   N)r”   r•   r–   rW  rY  rŒ  r^  ra  r‚  rd  rf  rj  rl  ro  rq  rs  rx  r{  r}  rœ   r_   r]   rT  rT    sT   „ ò3ò4ò2ò/ò0ò6ò2ò1ò@ò
*ò*ò*ò-ò=òOó/r_   rT  c                 óV  — t        j                  | dft        ¬«      j                  |«      }t        j                  |«      j
                  }d|z  }t        |«      }t        |j                  | df«       t        ||j                  «       |¬«       t        |j                  «      }t        |j                  d«       t        ||j                  «       |¬«       | dkD  rÎ|sËt         j                  j                  d«      }|j                  | d«      |j                  d| «      z  }|d|j                  | d«      z  |j                  d| «      z  z   }|j                  |«      }t        |d	¬
«      }t        |j                  | df«       t        |d¬
«      }t        |j                  | df«       y y y )NrQ   r�   rñ  ra   r+  ©rQ   ra   ru   ç-Cëâ6?çü©ñÒMbP?©Úrcondç�íµ ÷Æ°>rv   )rS   rÄ   rš   rX   ró  rô  r   r   r@   r   ÚmeanrW   rT   r  rU   )rY   r[   Úskip_bigÚXrô  rÁ   ÚYri   s           r]   Ú_check_orthr‰  9  sJ  € Ü
�‰��A�œeÔ$×+Ñ+¨EÓ2€Aä
�(‰(�5‹/×
Ñ
€CØ
�‰*€CäˆQ‹€AÜ�—‘˜1˜a˜&Ô!Ü�A�q—v‘v“x cÕ*äˆQ�S‰S‹	€AÜ�—‘˜&Ô!Ü�A�q—v‘v“x cÕ*àˆ1‚u‘XÜ�i‰i×#Ñ# AÓ&ˆØ�H‰H�Q˜‹N˜SŸX™X a¨›^Ñ+ˆØ��s—x‘x  1“~Ñ%¨¯©°°A«Ñ6Ñ6ˆØ�H‰H�U‹Oˆä�˜$ÔˆÜ�Q—W‘W˜q !˜fÔ%ä�˜$ÔˆÜ�Q—W‘W˜q %˜jÕ)ð €ur_   ri  z"test only on 64-bit, else too slowc                  ó|   — d} 	 t        | t        j                  d¬«       y # t        $ r}t	        d«      |‚d }~ww xY w)Ni€–˜ T)r†  z.memory error perhaps caused by orth regression)r‰  rS   r$  ÚMemoryErrorÚAssertionError)rY   r¬  s     r]   Útest_orth_memory_efficiencyr�  T  sA   € ð 	€AðÜ�A”r—z‘z¨DÖ1øÜò ÜØ<ó
àð	ûðús   „! ¡	;ª6¶;c                  óÜ   — t         j                  t         j                  t         j                  t         j                  g} g d¢}t        j                  | |«      D ]  \  }}t        ||«       Œ y )N©ra   rQ   rs   rB  r  )rS   r;   r$  r<   r&  Ú	itertoolsÚproductr‰  )rw  r'  rŠ   rY   s       r]   Ú	test_orthr’  e  sO   € Ü�j‰jœ"Ÿ*™*¤b§l¡l´B·M±MÐB€FÚ€EÜ×"Ñ" 6¨5Ó1ò ‰ˆˆAÜ�A�rÕñr_   rŠ   c                 óà   — t        j                  d| ¬«      }t        j                  d| ¬«      }t        |«      }|j                  t        |«      j                  k(  sJ ‚|j
                  dk(  sJ ‚y ©NrŒ   r�   rQ   )rS   r’   rF   r   r[   r@   )rŠ   r|   rB  Úoas       r]   Útest_orth_emptyr–  k  sW   € ä
�‰�˜rÔ"€AÜ	�‰�˜Ô	€Bä	ˆa‹€BØ�8‰8”t˜B“x—~‘~Ò%Ð%Ð%Ø�8‰8�vÒÐÑr_   c                   óT  — e Zd Zd„ Zej
                  j                  deee	j                  ee	j                  g«      d„ «       Zej
                  j                  dddg«      ej
                  j                  dddg«      ej
                  j                  dd	d
g«      d„ «       «       «       Zy)ÚTestNullSpacec                 óÒ  — t         j                  j                  d«      }t         j                  t         j                  t         j
                  t         j                  g}g d¢}t        j                  ||«      D �]ì  \  }}t        j                  d|f|¬«      }t        j                  |«      j                  }d|z  }t        |«      }	t        |	j                  ||dz
  f«       t        ||	z  d|¬«       t        |j                   «      }	t        |	j                  d«       t        |j                   |	z  d|¬«       |j#                  d|dz  z   |«      }t        |«      }	t        |	j                  ||dz
  |dz  z
  f«       t        ||	z  d|¬«       |d	kD  s�Œt         j                  j                  d«      }|j%                  |d	«      |j%                  d	|«      z  }|d
|j%                  |d«      z  |j%                  d|«      z  z   }|j'                  |«      }t        |d¬«      }	t        |	j                  ||d	z
  f«       t        |d¬«      }	t        |	j                  ||dz
  f«       �Œï y )Nra   r�  rQ   r�   rñ  r   r+  r  ru   r€  r�  r‚  r„  rv   )rS   rT   r  r;   r$  r<   r&  r�  r‘  rÄ   ró  rô  r%   r   r@   r   rW   ÚrandnrU   rX   )
r{   ri   rw  r'  rŠ   rY   r‡  rô  rÁ   rˆ  s
             r]   Útest_null_spacezTestNullSpace.test_null_spacev  sé  € Ü�i‰i×#Ñ# AÓ&ˆä—*‘*œbŸj™j¬"¯,©,¼¿¹ÐFˆÚ"ˆä×&Ñ& v¨uÓ5ó 	2‰EˆB�Ü—‘˜˜A˜ bÔ)ˆAä—(‘(˜2“,×"Ñ"ˆCØ˜‘*ˆCä˜1“ˆAÜ˜Ÿ™ 1 a¨¡c (Ô+Ü˜A ™E 1¨3Õ/ä˜1Ÿ3™3“ˆAÜ˜Ÿ™ &Ô)Ü˜AŸC™C !™G Q¨SÕ1à—	‘	˜!˜a ™d™( AÓ&ˆAÜ˜1“ˆAÜ˜Ÿ™ 1 a¨!¡e¨a°©d¡lÐ"3Ô4Ü˜A ™E 1¨3Õ/à�1ŒuÜ—i‘i×+Ñ+¨AÓ.�Ø—H‘H˜Q “N S§X¡X¨a°£^Ñ3�Ø˜˜sŸx™x¨¨1›~Ñ-°·±¸¸A³Ñ>Ñ>�Ø—H‘H˜R“L�ä˜q¨Ô-�Ü˜QŸW™W q¨!¨a©% jÔ1ä˜q¨Ô-�Ü˜QŸW™W q¨!¨a©% jÖ1ñ;	2r_   rŠ   c                 óà   — t        j                  d|¬«      }t        j                  d|¬«      }t        |«      }|j                  dk(  sJ ‚|j
                  t        |«      j
                  k(  sJ ‚y r”  )rS   r’   rF   r%   r@   r[   )r{   rŠ   r|   rB  Únsas        r]   Útest_null_space_emptyz#TestNullSpace.test_null_space_empty›  sY   € ä�H‰H�V 2Ô&ˆÜ�V‰V�A˜RÔ ˆÜ˜‹mˆà�y‰y˜FÒ"Ð"Ð"Ø�y‰yœJ r›N×0Ñ0Ò0Ð0Ñ0r_   r;  TFrˆ   r°  r  rI  c                 ó(  — t         j                  j                  d«      }d}|j                  d|dz  z   |f«      }t	        |j                  «       |||¬«      }t        ||z  dt        j                  |j                  «      j                  dz  ¬«       y )	Nl   š'–YþœeN rB  ra   rQ   )r;  rˆ   r°  r   r  r+  )
rS   rT   Údefault_rngÚstandard_normalr%   r�   r   ró  r[   rô  )r{   r;  rˆ   r°  ri   rY   r‡  rˆ  s           r]   Útest_null_space_optionsz%TestNullSpace.test_null_space_options¤  s{   € ô �i‰i×#Ñ#Ð$;Ó<ˆØˆØ×Ñ  Q¨¡T¡¨1 Ó.ˆÜ�q—v‘v“x¨[À|Ø%2ô4ˆä˜˜A™˜q¤r§x¡x°·±Ó'8×'<Ñ'<¸SÑ'@ÖAr_   N)r”   r•   r–   r›  r—   r˜   r™   rd   rš   rS   r;   r›   r<   rž  r¢  rœ   r_   r]   r˜  r˜  u  s¨   „ ò#2ðJ ‡[�[×Ñ˜T C¨°·
±
¸GÀRÇ\Á\Ð#RÓSñ1ó Tð1ð ‡[�[×Ñ˜]¨T°5¨MÓ:Ø‡[�[×Ñ˜^¨d°E¨]Ó;Ø‡[�[×Ñ˜_¨w¸Ð.@ÓAñBó Bó <ó ;ñBr_   r˜  c            	      óB  — t        dt        «      } | d d …d d…f   }| d d …dd …f   }t        t        ||«      t        j
                  dz  gdz  d¬«       t        t        ||«      t        j
                  dz  gdz  d¬«       ||fD ]:  }t        t        ||«      t	        j                  |j                  d   «      d¬«       Œ< t	        j                  g d¢g d¢g d	¢g d
¢g«      }d}t        t        |d d …d d…f   |d d …dd …f   «      d   |d¬«       t        t        |d d …dd …f   |d d …d d…f   «      d   |d¬«       d}t        t        |d d …d d…f   |d d …dgf   «      |d¬«       t        t        |d d …dgf   |d d …d d…f   «      |d¬«       d}t        t        |d d …d d…f   |d d …dgf   «      |d¬«       t        t        |d d …dgf   |d d …d d…f   «      |d¬«       d}t        t        |d d …d d…f   |d d …dd …f   «      |dgd¬«       t        t        t        |d   |«       t        t        t        ||d   «       t        t        t        |d d |«       t	        j                  g d¢g d¢g d¢g d¢g d¢g«      }t	        j                  g d¢g d¢g d¢g d¢g d¢g«      }t	        j                  t        j
                  dz  ddg«      }t        t        ||«      |d¬«       dgdgg}ddgddgg}t        t        ||«      dd¬«       t        t        ||«      dd¬«       t	        j                  d«      }t	        j                  d«      }t        t        ||«      t	        j                  d«      «       t	        j                  d«      }t	        j                  d«      }t        t        ||«      t	        j                  d«      «       t	        j                  d«      }t	        j                  d«      }t        t        ||«      t	        j                  d«      «       y ) Nri  rs   r%  r*  r+  ra   )gñ�·‘4á?gVðR¦fÔ?g8Ô!“Ž @g•ÂÐë‚6ç?)gN÷$Ð—Wý?gÂã�Jìô¿gÑ~ý™Î'@gÊ÷3:]$°¿)g¢v•MÀg© çÀø¿Û¿g÷PT#™õ¿g eŸ‚,ßæ?)gºßÎ€ì–ë?gÜò¥+�íÕ?gòNô…G@g˜êS<Ê¿g™"Ó	´÷?rQ   r   rY  rZ  g¦®LÔ0âç?g•Ä¹»°-ß?gyßôv†Õ?r¢   rc  )r   ra   r   )r   r   ra   rÿ   rG  rý  rh  rŒ   rŽ   r‘   r¤   rP  )r"   rš   r   r!   rS   Úpir9   r@   r4   r  r  r’   )ÚHr\   rÊ   rÅ  r  r|   r¹   s          r]   Útest_subspace_anglesr¦  °  s´  € Ü�”EÓ€AØ	Š!ˆRˆaˆRˆ%‰€AØ	Š!ˆQ‰Rˆ%‰€AÜ”O A qÓ)¬B¯E©E°B©J¨<¸!Ñ+;À%ÕHÜ”O A qÓ)¬B¯E©E°B©J¨<¸!Ñ+;À%ÕHØ�ˆVò $ˆÜœ¨¨1Ó-¬r¯x©x¸¿¹À¹
Ó/CØ"ö	$ð$ô
 	�‰Ú	UÚ	WÚ	XÚ	Vð	Xó	Y€Að
 !€HÜ”O A¢a¨¨!¨ e¡H¨a²°1±2°©hÓ7¸Ñ:¸HØõ ä”O A¢a¨© e¡H¨a²°2°A°2°©hÓ7¸Ñ:¸HØõ à €HÜ”O A¢a¨¨!¨ e¡H¨a²°A°3°©iÓ8¸(ÈÕOÜ”O A¢a¨!¨ f¡I¨q²°B°Q°B°©xÓ8¸(ÈÕOØ €HÜ”O A¢a¨¨!¨ e¡H¨a²°A°3°©iÓ8¸(ÈÕOÜ”O A¢a¨!¨ f¡I¨q²°B°Q°B°©xÓ8¸(ÈÕOØ €HÜ”O A¢a¨¨!¨ e¡H¨a²°1±2°©hÓ7¸(ÀA¸Øõ ô ”*œo¨q°©t°QÔ7Ü”*œo¨q°!°A±$Ô7Ü”*œo¨q°°"¨v°qÔ9ô 	�‰’)ÚÚÚÚð	ó 	€Aô
 	�‰’)ÚÚÚÚð	ó 	€Aô
 �x‰xœŸ™˜q™ ! Q˜Ó(€HÜ”O A qÓ)¨8¸%Õ@ð
 ˆ�A�3ˆ€AØ
�!ˆ�q˜!�fÐ€AÜ”O A qÓ)¨2°EÕ:Ü”O A qÓ)¨2°EÕ:ô 	�‰�Ó€AÜ
�‰�Ó€AÜ”O A qÓ)¬2¯8©8°D«>Ô:Ü
�‰�Ó€AÜ
�‰�Ó€AÜ”O A qÓ)¬2¯8©8°D«>Ô:Ü
�‰�Ó€AÜ
�‰�Ó€AÜ”O A qÓ)¬2¯8©8°D«>Õ:r_   c                   ó`   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zy)ÚTestCDF2RDFc                 ó0   — t        j                  d||«      S )Nz...ij,...jk->...ik)rS   Úeinsum)r{   r|   r¹   s      r]   ÚmatmulzTestCDF2RDF.matmul÷  s   € Ü�y‰yÐ-¨q°!Ó4Ð4r_   c                 ó\   — t        | j                  ||«      | j                  ||«      «       y r=  )r   r«  )r{   r}   rl   rÅ  s       r]   Úassert_eig_validzTestCDF2RDF.assert_eig_validú  s&   € Ü!Ø�K‰K˜˜1ÓØ�K‰K˜˜1Óõ	
r_   c                 óÆ   — t        j                  d«      }t        j                  d«      t        j                  d«      }}t        ||«      \  }}| j                  |||«       y )NrŒ   r   )rS   r’   r&   r­  ©r{   r‡  r}   rl   Úwrr³   s         r]   Útest_single_array0x0realz$TestCDF2RDF.test_single_array0x0real   sK   € ä�H‰H�VÓˆÜ�x‰x˜‹{œBŸH™H VÓ,ˆ1ˆÜ˜˜A“‰ˆˆBØ×Ñ˜b " aÕ(r_   c                 óÂ   — t        j                  ddgddgg«      }t         j                  j                  |«      \  }}t	        ||«      \  }}| j                  |||«       y )Nra   rQ   rs   r¢   ©rS   r4   r7   r
   r&   r­  r¯  s         r]   Útest_single_array2x2_realz%TestCDF2RDF.test_single_array2x2_real  sT   € Ü�H‰H�q˜!�f˜q "˜gÐ&Ó'ˆÜ�y‰y�}‰}˜QÓ‰ˆˆ1Ü˜˜A“‰ˆˆBØ×Ñ˜b " aÕ(r_   c                 óÂ   — t        j                  ddgddgg«      }t         j                  j                  |«      \  }}t	        ||«      \  }}| j                  |||«       y )Nra   rQ   r¯   r³  r¯  s         r]   Útest_single_array2x2_complexz(TestCDF2RDF.test_single_array2x2_complex  sT   € Ü�H‰H�q˜!�f˜r 1˜gÐ&Ó'ˆÜ�y‰y�}‰}˜QÓ‰ˆˆ1Ü˜˜A“‰ˆˆBØ×Ñ˜b " aÕ(r_   c                 óÈ   — t        j                  g d¢g d¢g d¢g«      }t         j                  j                  |«      \  }}t	        ||«      \  }}| j                  |||«       y )Nrr   rt   r³  r¯  s         r]   Útest_single_array3x3_realz%TestCDF2RDF.test_single_array3x3_real  sN   € Ü�H‰H’i¢ªIÐ6Ó7ˆÜ�y‰y�}‰}˜QÓ‰ˆˆ1Ü˜˜A“‰ˆˆBØ×Ñ˜b " aÕ(r_   c                 óÈ   — t        j                  g d¢g d¢g d¢g«      }t         j                  j                  |«      \  }}t	        ||«      \  }}| j                  |||«       y ©Nrr   )r   rÍ  ru   )r   r¾  rÍ  r³  r¯  s         r]   Útest_single_array3x3_complexz(TestCDF2RDF.test_single_array3x3_complex  sN   € Ü�H‰H’i¢ªJÐ7Ó8ˆÜ�y‰y�}‰}˜QÓ‰ˆˆ1Ü˜˜A“‰ˆˆBØ×Ñ˜b " aÕ(r_   c                 ó.  — t        dd«      D ]†  }t        j                  j                  d«       t        j                  j	                  d||«      }t        j
                  j                  |«      \  }}t        ||«      \  }}| j                  |||«       Œˆ y )Nra   râ  iÿÉš;r  )	r¨   rS   rT   rÊ  rU   r7   r
   r&   r­  ©r{   r  r‡  r}   rl   r°  r³   s          r]   Útest_random_1d_stacked_arraysz)TestCDF2RDF.test_random_1d_stacked_arrays  st   € ä�q˜!“ò 	-ˆAÜ�I‰I�N‰N˜9Ô%Ü—	‘	—‘˜s A qÓ)ˆAÜ—9‘9—=‘= Ó#‰DˆAˆqÜ˜Q “]‰FˆB�Ø×!Ñ! " b¨!Õ,ñ	-r_   c                 óò   — t        dd«      D ]h  }t        j                  j                  dd||«      }t        j                  j                  |«      \  }}t        ||«      \  }}| j                  |||«       Œj y )Nra   râ  rB  )r¨   rS   rT   rU   r7   r
   r&   r­  r½  s          r]   Útest_random_2d_stacked_arraysz)TestCDF2RDF.test_random_2d_stacked_arrays(  sf   € ä�q˜!“ò 	-ˆAÜ—	‘	—‘˜r 2 q¨!Ó,ˆAÜ—9‘9—=‘= Ó#‰DˆAˆqÜ˜Q “]‰FˆB�Ø×!Ñ! " b¨!Õ,ñ		-r_   c                 ó„   — t        j                  d«      t        j                  d«      }}t        t        t
        ||«       y )Nrœ   )rQ   )rS   r’   r4   r  r  r&   ©r{   r}   rl   s      r]   Útest_low_dimensionality_errorz)TestCDF2RDF.test_low_dimensionality_error0  s)   € Ü�x‰x˜‹|œRŸX™X d›^ˆ1ˆÜ”j¤'¨1¨aÕ0r_   c                 ó¤   — t        j                  d«      t        j                  d«      j                  dd«      }}t        t        t
        ||«       y )Nrs   rv   rQ   ©rS   r:   r  r  r  r&   rÂ  s      r]   r  z!TestCDF2RDF.test_not_square_error4  s6   € ä�y‰y˜‹|œRŸY™Y q›\×1Ñ1°!°QÓ7ˆ1ˆÜ”j¤'¨1¨aÕ0r_   c                 ó°   — t        j                  g d¢g d¢g d¢g«      }t         j                  j                  |«      \  }}t	        t
        t        ||«       y rº  ©rS   r4   r7   r
   r  r  r&   ©r{   r‡  r}   rl   s       r]   Útest_swapped_v_w_errorz"TestCDF2RDF.test_swapped_v_w_error9  s;   € ä�H‰H’i¢ªJÐ7Ó8ˆÜ�y‰y�}‰}˜QÓ‰ˆˆ1Ü”j¤'¨1¨aÕ0r_   c                 ó¤   — t        j                  d«      t        j                  d«      j                  dd«      }}t        t        t
        ||«       y )Nrs   rô   rÍ  rÅ  rÂ  s      r]   Útest_non_associated_errorz%TestCDF2RDF.test_non_associated_error?  s6   € ä�y‰y˜‹|œRŸY™Y r›]×2Ñ2°1°aÓ8ˆ1ˆÜ”j¤'¨1¨aÕ0r_   c                 ór  — t        j                  g d¢g d¢g d¢g«      }t         j                  j                  |«      \  }}t	        t
        t        ||«       t        j                  g d¢g d¢g d¢gg d¢g d¢g d¢gg«      }t         j                  j                  |«      \  }}t	        t
        t        ||«       y )Nrr   r„   )rQ   ru   y      @      ð¿rÇ  rÈ  s       r]   Útest_not_conjugate_pairsz$TestCDF2RDF.test_not_conjugate_pairsD  sŠ   € ä�H‰H’i¢ªLÐ9Ó:ˆÜ�y‰y�}‰}˜QÓ‰ˆˆ1Ü”j¤'¨1¨aÔ0ô �H‰HÚš	¢<Ð0Úš	¢<Ð0ð
ó ˆô �y‰y�}‰}˜QÓ‰ˆˆ1Ü”j¤'¨1¨aÕ0r_   N)r”   r•   r–   r«  r­  r±  r´  r¶  r¸  r»  r¾  rÀ  rÃ  r  rÉ  rË  rÍ  rœ   r_   r]   r¨  r¨  õ  sH   „ ò5ò
ò)ò)ò)ò)ò)ò-ò-ò1ò1ò
1ò1ó
1r_   r¨  )F)’r�  ÚplatformÚsysÚnumpyrS   Únumpy.testingr   r   r   r   r   r   r—   r	   r  Úscipy.linalgr
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   Úscipy.linalg.lapackr(   r)   r*   r+   r,   r-   r.   r/   r0   Úscipy.linalg._miscr1   Úscipy.linalg._decomp_qzr2   Úscipy.statsr3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   Úscipy.linalg._testutilsrG   Úscipy.sparse._sputilsrH   Úscipy._lib._testutilsrI   Úscipy.linalg.blasrJ   Úscipy.__config__rK   ÚImportErrorÚmachineÚIS_WASMrš   r^   r$  ÚREAL_DTYPESr&  rR   rÞ  rn   rp   rž   r;  r¨  rÈ  r  rH  r˜   rE  r  rL  rN  ra  re  r!  r;  rq  Úblas_providerÚblas_versionr—  r»  r  r  r@  rC  rE  rJ  ÚxfailrR  rT  r‰  rF  r[   ÚintprG  r�  r’  r™   rd   r›   r–  r˜  r¦  r¨  rœ   r_   r]   ú<module>rä     s·  ðÛ Û Û 
ã ÷5÷ 5ó Ý *÷N÷ N÷ N÷ N÷ N÷ N÷ N÷ N÷A÷ Aõ Aõ $Ý 4Ý #÷;÷ ;÷ ;÷ ;÷ ;ñ ;õ 8Ý (å 3Ý 'ðÝ'ð �<‰<˜<Ñ'ÒUÐ+;¨8×+;Ñ+;Ó+=ÐAUÐ+U€ð (-°Eó ð �z‰z˜2Ÿ:™:Ð&€Ø—,‘, §¡Ð.€Ø	�~Ñ	%€ò
÷4'=ñ '=÷TO&ñ O&÷ff$ñ f$÷P	~!ñ ~!÷BJ$ñ J$÷XM#ñ M#ô^�Mô ð ‡�×Ñ�GÐ$;ÐÓ<Ø‡�×Ñ�rÓñó ó =ð÷;ñ ;÷|Eñ E÷E
.ñ E
.÷PN-ñ N-÷b}4ñ }4÷@Y#ñ Y#ðx  $Ð #€�Ø	ÐØÐ/Ñ0°Ñ8¸Ñ@€MØÐ.Ñ/°Ñ7¸	ÑB€L÷p'ñ p'÷fG5ñ G5÷T>ñ >÷<-ñ -ò6
ð ‡�×ÑÐ$�H×$Ñ$Ó&¨)Ñ3Ø/ð ó 1ñ
ó1ð
òò#ð$ ‡�×Ò�uØLð ó Nñ4óNð4÷@5/ñ 5/óp*ð6 ‡�×ÒØ‡�×Ñ�H�B—H’H˜RŸWšWÓ%×.Ò.°Ñ2Ø?ð ó AñóAó ðòð ‡�×Ò˜  U¨B¯J©J¸ÀÇÁÐNÓOñó Pð÷8Bñ 8BòvB;÷J[1ò [1øð_^ ò ØƒFðús   ÃM4 Í4M?Í>M?