Ë
    ›2Úi1 ã                   óT  — d Z ddlZddlZddlZddlZ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mZmZ ddlmZ ddlmZmZmZmZ ddlmZ ddlmZmZmZmZmZ 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+ 	 ddl,Zd
„ Z.e&Z/dÝd„Z&d„ Z0d„ Z1d„ Z2h d£Z3 G d„ d«      Z4d„ Z5e	jl                  jo                  d«       g Z8e8 e5d e4d e
ddgddgge¬«       e
ddge¬«      «       e4d e
ddgddgge¬«       e
ddge¬«      «       e4d e
ddgddgge¬«       e
g d¢g d¢ge¬«      «       e4d e
d d!gd"d#gge¬«       e
d$d ge¬«      «       e4d% e
d d!gd"d#gge¬«       e
d$d ge¬«      «       e4d& e
d d!gd"d#gge¬«       e
g d'¢g d(¢ge¬«      «       e4d) e	jr                  d*e¬«       e	jr                  d+e¬«      d,h¬-«       e4d.e	jl                  ju                  d/d/«      e	jl                  ju                  d/«      «       e4d0e	jl                  ju                  d1d1«      e	jl                  ju                  d1«      «       e4d2d1d3gd4d5ggd3d1g«      g
«      z  Z8e8 e5d6 e4d7 e
g d8¢g d¢ge¬«       e
ddge¬«      «       e4d9 e
ddgddgd:d;gge¬«       e
g d<¢e¬«      «       e4d= e
g d8¢g d¢ge¬«       e
ddge¬«      «       e4d> e
ddgddgd:d;gge¬«       e
g d<¢e¬«      «       e4d? e
g d@¢g dA¢ge¬«       e
d$d ge¬«      «       e4dB e
dCdDgdEdFgdGdHgge¬«       e
g dI¢e¬«      «       e4dJ e
g d@¢g dA¢ge¬«       e
d$d ge¬«      «       e4dK e
dCdDgdEdFgdGdHgge¬«       e
g dI¢e¬«      «       e4dL e
g d@¢g dA¢ge¬«       e
d$d gdMdNgge¬«      «       e4dO e
dCdDgdEdFgdGdHgge¬«       e
d$d gdMdNgdMdNgge¬«      «       e4dPe	jl                  ju                  d/dQ«      e	jl                  ju                  d/«      «       e4dRe	jl                  ju                  d1dS«      e	jl                  ju                  d1«      «       e4dTe	jl                  ju                  dSd1«      e	jl                  ju                  dS«      «       e4dUe	jl                  ju                  dd5«      e	jl                  ju                  d«      d,h¬-«       e4dVe	jl                  ju                  d5d«      e	jl                  ju                  d5«      d,h¬-«      g«      z  Z8e8 e5dW e4dX e
ddgddgge¬«      d«       e4dY e
ddgddgge¬«      d«       e4dZ e
dd!gd[d1gge¬«      d«       e4d\ e
dd!gd[d1gge¬«      d«       e4d] e	jr                  d*e¬«      dd,h¬-«       e4d^d1d3gd3d1ggd«       e4d_ e
ddgddgg«      d«       e4d`e	jl                  ju                  d1d1«      d«      g«      z  Z8da„ Z;e8 e;«       z  Z8db„ Z<dc„ Z=e8 e=«       z  Z8 G dd„ de«      Z> G df„ dge>«      Z? G dh„ die>«      Z@ G dj„ dke>«      ZA G dl„ dme>«      ZB G dn„ doe>«      ZC G dp„ dqe>«      ZDdr„ ZEds„ ZF G dt„ due?eB«      ZG G dv„ dweG«      ZH G dx„ dye?eB«      ZI G dz„ d{eI«      ZJ G d|„ d}e?eB«      ZK G d~„ deK«      ZL G d€„ d�e?eB«      ZM G d‚„ dƒeM«      ZN G d„„ d…«      ZO G d†„ d‡e?eB«      ZP G dˆ„ d‰ePeO«      ZQ G dŠ„ d‹eAeD«      ZR G dŒ„ d�eReO«      ZS G dŽ„ d�e?eB«      ZT G d�„ d‘eT«      ZU G d’„ d“e?e@eBeC«      ZV G d”„ d•eV«      ZW G d–„ d—eAeD«      ZX G d˜„ d™eX«      ZY G dš„ d›e?eB«      ZZ G dœ„ d�eZ«      Z[ G dž„ dŸe?e@«      Z\ G d „ d¡e\«      Z]ej¼                  j¿                  d¢d£D � cg c]  }  e	jÀ                  | «      ‘Œ c} «       G d¤„ d¥«      «       Za G d¦„ d§eAeD«      Zb G d¨„ d©«      Zc G dª„ d«eAeD«      Zd G d¬„ d­«      Ze G d®„ d¯«      Zf G d°„ d±ef«      Zg G d²„ d³ef«      Zh G d´„ dµeheg«      Zi G d¶„ d·«      Zj G d¸„ d¹ef«      Zk G dº„ d»ef«      Zl G d¼„ d½ef«      Zm G d¾„ d¿eiek«      Zn G dÀ„ dÁeiel«      Zo G dÂ„ dÃeiem«      Zp G dÄ„ dÅ«      ZqdÆ„ Zr G dÇ„ dÈ«      Zs G dÉ„ dÊ«      ZtdË„ Zuej¼                  jí                  e+dÌ¬Í«      dÎ„ «       ZwdÏ„ Zxej¼                  jí                  e+dÐ¬Í«      ej¼                  jò                  dÑ„ «       «       Zz G dÒ„ dÓ«      Z{ G dÔ„ dÕ«      Z| G dÖ„ d×«      Z}dØ„ Z~ej¼                  jÿ                  dÙ¬Í«      dÚ„ «       Z€ej¼                  �j                  e* dÛ¬Í«      dÜ„ «       Z‚y# e-$ r Y �Œ¡w xY wc c} w )Þz# Test functions for linalg module

é    N)ÚarrayÚsingleÚdoubleÚcsingleÚcdoubleÚdotÚidentityÚmatmul)Úswapaxes)ÚmultiplyÚ
atleast_2dÚinfÚasarray)Úlinalg)Úmatrix_powerÚnormÚmatrix_rankÚ	multi_dotÚLinAlgError)Ú_multi_dot_matrix_chain_order)
Úassert_Úassert_equalÚassert_raisesÚassert_array_equalÚassert_almost_equalÚassert_allcloseÚsuppress_warningsÚassert_raises_regexÚHAS_LAPACK64ÚIS_WASMc                 ó„   — t        | «      t        |t        j                  «      rt        |«      u S t        j                  u S ©N)ÚtypeÚ
isinstanceÚnpÚndarray)ÚoutÚin_s     úU/var/www/html/acx/venv/lib/python3.12/site-packages/numpy/linalg/tests/test_linalg.pyÚconsistent_subclassr*   !   s9   € ô �‹9¤j°´b·j±jÔ&Aœ˜c›ð *ð *Ü Ÿj™jð*ð *ó    c                 ó‚   — t        | «      j                  j                  t        t        fv r|}n|}t        | |fd|i|¤Ž y )NÚdecimal)r   Údtyper#   r   r   Úold_assert_almost_equal)ÚaÚbÚsingle_decimalÚdouble_decimalÚkwr-   s         r)   r   r   +   s=   € Üˆqƒz×Ñ×Ñ¤¬Ð 1Ñ1Ø ‰à ˆÜ˜A˜qÑ8¨'Ð8°RÓ8r+   c                 ó\   — t         t         t        t        t        t         t        t        i|    S r"   )r   r   r   r   ©r.   s    r)   Úget_real_dtyper7   3   s&   € Ü”FœF¤FÜ”VœW¤fð.Ø.3ñ5ð 5r+   c                 ó\   — t         t        t        t        t        t        t        t        i|    S r"   )r   r   r   r   r6   s    r)   Úget_complex_dtyper9   8   s&   € Ü”GœV¤WÜ”Wœg¤wð0Ø05ñ7ð 7r+   c                 ó"   — | t         t        fv ryy)Ngñhãˆµøä>g•dyáý¥=)r   r   r6   s    r)   Úget_rtolr;   =   s   € à”œÐ!Ñ!Øàr+   >   ÚsquareÚstridedÚ	hermitianÚ	nonsquareÚgeneralizedúsize-0c                   ó,   — e Zd Z e«       fd„Zd„ Zd„ Zy)Ú
LinalgCasec                 ó€   — t        t        |t        «      «       || _        || _        || _        t        |«      | _        y)z¢
        A bundle of arguments to be passed to a test case, with an identifying
        name, the operands a and b, and a set of tags to filter the tests
        N)r   r$   ÚstrÚnamer0   r1   Ú	frozensetÚtags)ÚselfrF   r0   r1   rH   s        r)   Ú__init__zLinalgCase.__init__M   s3   € ô
 	”
˜4¤Ó%Ô&ØˆŒ	ØˆŒØˆŒÜ˜d“Oˆ�	r+   c                 óV   —  || j                   | j                  | j                  ¬«       y)zN
        Run the function `do` on this test case, expanding arguments
        ©rH   N)r0   r1   rH   )rI   Údos     r)   ÚcheckzLinalgCase.checkX   s   € ñ 	ˆ4�6‰6�4—6‘6 §	¡	Ö*r+   c                 ó"   — d| j                   › d�S )Nz<LinalgCase: ú>)rF   ©rI   s    r)   Ú__repr__zLinalgCase.__repr__^   s   € Ø˜tŸy™y˜k¨Ð+Ð+r+   N)Ú__name__Ú
__module__Ú__qualname__ÚsetrJ   rN   rR   © r+   r)   rC   rC   L   s   „ Ù(+«ó 	$ò+ó,r+   rC   c                 ó\   — | t         v sJ d«       ‚|D ]  }|j                  | hz  |_        Œ |S )z^
    Add the given tag (a string) to each of the cases (a list of LinalgCase
    objects)
    zInvalid tag)Úall_tagsrH   )ÚtagÚcasesÚcases      r)   Ú	apply_tagr]   b   s;   € ð
 ”(‰?Ð)˜MÓ)ˆ?Øò &ˆØ—I‘I  Ñ%ˆ�	ð&à€Lr+   éÒ  r<   r   ç      ð?ç       @ç      @ç      @r6   r   Údouble_2)r`   r_   rb   )ra   rb   ç      @r   ù      ð?       @y       @      @y      @      @y      @      @ù       @      ð?r   Ú	cdouble_2)rf   re   y      ð?      @)y      ð?       Ày      ð?      Ày      ð?      ÀÚ0x0©r   r   ©r   rA   rL   Ú8x8é   Ú1x1é   Únonarrayé   é   é   r?   Úsingle_nsq_1)r_   r`   ra   Úsingle_nsq_2g      @rd   )r`   r_   ra   Údouble_nsq_1Údouble_nsq_2Úcsingle_nsq_1)ù      ð?      ð?ù       @       @ù      @      À)y      @      Ày      @      "@y      @       @Úcsingle_nsq_2rx   ry   rz   y      @      "Ày      @      Ày      @       @)rf   re   rz   Úcdouble_nsq_1Úcdouble_nsq_2Úcdouble_nsq_1_2y      ð?      ð¿y       @       ÀÚcdouble_nsq_2_2Ú8x11é   Ú1x5é   Ú5x1Ú0x4Ú4x0r>   ÚhsingleÚhdoubleÚhcsingley       @      ÀÚhcdoubleÚhemptyÚ	hnonarrayÚmatrix_b_onlyÚhmatrix_1x1c                  ó¶  — g } t         D �]Ì  }t        |j                  t        j                  «      sŒ)t        j
                  |j                  d|j                  z  d|j                  z  g«      }|j                  €d }n<t        j
                  |j                  d|j                  z  d|j                  z  g«      }t        |j                  dz   |||j                  dhz  ¬«      }| j                  |«       t        j
                  |j                  gdz  dz  «      j                  d|j                  j                  z   «      }|j                  €d }nLt        j
                  |j                  gdz  dz  «      j                  d|j                  j                  z   «      }t        |j                  d	z   |||j                  dhz  ¬«      }| j                  |«       �ŒÏ | S )
Nrp   rq   é   é   Ú_tile3r@   rL   ©rq   rp   Ú_tile213)ÚCASESr$   r0   r%   r&   r   r1   rC   rF   rH   ÚappendÚreshapeÚshape)Ú	new_casesr\   r0   r1   Únew_cases        r)   Ú_make_generalized_casesr›   ò   sw  € Ø€Iäó #ˆÜ˜$Ÿ&™&¤"§*¡*Ô-Øä�H‰H�d—f‘f˜a $§&¡&™j¨!¨d¯f©f©*Ð5Ó6ˆØ�6‰6ˆ>Ø‰Aä—‘˜$Ÿ&™& ! d§f¡f¡*¨a°$·&±&©jÐ9Ó:ˆAÜ˜dŸi™i¨(Ñ2°A°qØ#'§9¡9°¨Ñ#>ô@ˆà×Ñ˜Ô"ä�H‰H�d—f‘f�X ‘\ AÑ%Ó&×.Ñ.¨v¸¿¹¿¹Ñ/DÓEˆØ�6‰6ˆ>Ø‰Aä—‘˜$Ÿ&™&˜ A™¨Ñ)Ó*×2Ñ2°6¸D¿F¹F¿L¹LÑ3HÓIˆAÜ˜dŸi™i¨*Ñ4°a¸Ø#'§9¡9°¨Ñ#>ô@ˆà×Ñ˜Ö"ð)#ð, Ðr+   c              #   óò  K  — t        | t        j                  «      s| df–— ydg| j                  z  }d|d<   | j                  dkD  rd|d<   | j                  dkD  rd	|d
<   t	        j
                  t        |«      Ž D �]f  }t        | j                  |«      D ��cg c]  \  }}t        ||z  «      ‘Œ }}}t        |D �cg c]  }t        dd|«      ‘Œ c}«      }t        j                  || j                  ¬«      }|j                  t        j                  «      j                  d«       ||   }| |d<   |j                  | j                   «      }t#        t        j$                  || k(  «      «       |ddj'                  |D �	cg c]  }	d|	z  ‘Œ	 c}	«      z   f–— | j                  dk\  r]| j                  d   dk(  rKt)        | j*                  «      }
d|
d<   t        j,                  j.                  j1                  | |
¬«      }|df–— | j                  dk\  r]| j                  d   dk(  rKt)        | j*                  «      }
d|
d<   t        j,                  j.                  j1                  | |
¬«      }|df–— | j                  dk\  s�Œ| j                  dd dk(  s�Œt)        | j*                  «      }
d|
d<   d|
d<   t        j,                  j.                  j1                  | |
¬«      }|df–— �Œi yc c}}w c c}w c c}	w ­w)z<
    Generate cartesian product of strides for all axes
    ÚnopN©rn   )rn   rq   éüÿÿÿéÿÿÿÿrn   éþÿÿÿrp   )rn   rŸ   éýÿÿÿr6   l   ï>[= .Ústride_Ú_z%+dr   )ÚstridesÚstride_xxx_0Ústride_xxx_0_x©rn   rn   Ústride_xxx_0_0)r$   r%   r&   ÚndimÚ	itertoolsÚproductÚtupleÚzipr˜   ÚabsÚsliceÚemptyr.   ÚviewÚuint32ÚfillÚ	__class__r   ÚallÚjoinÚlistr¥   ÚlibÚstride_tricksÚ
as_strided)ÚxÚ
stride_setÚrepeatsr0   r1   Ú	new_shapeÚrepeatÚslicesÚxiÚjÚss              r)   Ú_stride_comb_iterrÅ     sƒ  è ø€ ô
 �aœŸ™Ô$Ø�ˆhŠØà�˜!Ÿ&™&‘€JØ€Jˆr�NØ‡v�v�‚zØ#ˆ
�2‰Ø‡v�v�‚zØ ˆ
�2‰ä×$Ñ$¤e¨JÓ&7Ð8ó 'ˆÜ,/°·±¸Ó,A×B¡D A q”S˜˜Q™•ZÐBˆ	ÑBÜÀÖH°fœ˜d D¨&Õ1ÒHÓIˆô �X‰X�i q§w¡wÔ/ˆØ
�‰”—	‘	Ó×Ñ 
Ô+Ø�‰ZˆØˆˆ3‰Ø�W‰W�Q—[‘[Ó!ˆÜ”—‘�r˜Q‘w“Ô Ø�)˜cŸh™h¸7Ö'C°a¨°«	Ò'CÓDÑDÐDÒDð �6‰6�QŠ;˜1Ÿ7™7 2™;¨!Ò+Ü�Q—Y‘Y“ˆAØˆAˆb‰EÜ—‘×%Ñ%×0Ñ0°¸AÐ0Ó>ˆBØ�nÐ$Ò$Ø�6‰6�QŠ;˜1Ÿ7™7 2™;¨!Ò+Ü�Q—Y‘Y“ˆAØˆAˆb‰EÜ—‘×%Ñ%×0Ñ0°¸AÐ0Ó>ˆBØÐ&Ð&Ò&Ø�6‰6�QŒ;˜1Ÿ7™7 3 B˜<¨6Ô1Ü�Q—Y‘Y“ˆAØˆAˆb‰EØˆAˆb‰EÜ—‘×%Ñ%×0Ñ0°¸AÐ0Ó>ˆBØÐ&Ð&Ô&ñ;'ùÛBùÚHùò (Dùs9   ‚BK7ÂK'Â1K7Â=K-
ÃB-K7Å>K2Æ
C3K7É?K7ÊA$K7c            
      ó  — g } t         D ]€  }t        |j                  «      D ]f  \  }}t        |j                  «      D ]I  \  }}t	        |j
                  dz   |z   dz   |z   |||j                  dhz  ¬«      }| j                  |«       ŒK Œh Œ‚ | S )Nr¤   r=   rL   )r•   rÅ   r0   r1   rC   rF   rH   r–   )r™   r\   r0   Úa_labelr1   Úb_labelrš   s          r)   Ú_make_strided_casesrÉ   D  sœ   € Ø€IÜò +ˆÜ+¨D¯F©FÓ3ò 	+‰JˆAˆwÜ/°·±Ó7ò +‘
��7Ü% d§i¡i°#¡o¸Ñ&?À#Ñ&EÈÑ&OÐQRÐTUØ+/¯9©9¸	°{Ñ+BôD�à× Ñ  Õ*ñ+ñ	+ð+ð Ðr+   c                   ó0   — e Zd ZeZ e«        e«       fd„Zy)ÚLinalgTestCasec                 ó  — | j                   D ]A  }|j                  |z  |k7  rŒ|j                  |z  rŒ&	 |j                  | j                  «       ŒC y# t        $ r.}d|›d�}|t        j                  «       z  }t        |«      |‚d}~ww xY w)zx
        Run func on each of the cases with all of the tags in require, and none
        of the tags in exclude
        zIn test case: z

N)Ú
TEST_CASESrH   rN   rM   Ú	ExceptionÚ	tracebackÚ
format_excÚAssertionError)rI   ÚrequireÚexcluder\   ÚeÚmsgs         r)   Úcheck_caseszLinalgTestCase.check_casesX  s�   € ð
 —O‘Oò 	1ˆDà�y‰y˜7Ñ" gÒ-ØØ�y‰y˜7Ò"Øð1Ø—
‘
˜4Ÿ7™7Õ#ñ	1øô ò 1Ø& t h¨dÐ3�Ø”y×+Ñ+Ó-Ñ-�Ü$ SÓ)¨qÐ0ûð1ús   ´AÁ	B	Á)BÂB	N)rS   rT   rU   r•   rÍ   rV   rÖ   rW   r+   r)   rË   rË   U  s   „ Ø€Já"%£%±³ô 1r+   rË   c                   ó   — e Zd Zd„ Zd„ Zy)ÚLinalgSquareTestCasec                 ó0   — | j                  dhddh¬«       y )Nr<   r@   rA   ©rÒ   rÓ   ©rÖ   rQ   s    r)   Útest_sq_casesz"LinalgSquareTestCase.test_sq_casesn  s!   € Ø×Ñ ( Ø"/°Ð!:ð 	õ 	<r+   c                 ó0   — | j                  ddhdh¬«       y )Nr<   rA   r@   rÚ   rÛ   rQ   s    r)   Útest_empty_sq_casesz(LinalgSquareTestCase.test_empty_sq_casesr  s!   € Ø×Ñ (¨HÐ!5Ø"/ ð 	õ 	2r+   N)rS   rT   rU   rÜ   rÞ   rW   r+   r)   rØ   rØ   l  ó   „ ò<ó2r+   rØ   c                   ó   — e Zd Zd„ Zd„ Zy)ÚLinalgNonsquareTestCasec                 ó0   — | j                  dhddh¬«       y )Nr?   r@   rA   rÚ   rÛ   rQ   s    r)   Útest_nonsq_casesz(LinalgNonsquareTestCase.test_nonsq_casesy  ó!   € Ø×Ñ + Ø"/°Ð!:ð 	õ 	<r+   c                 ó0   — | j                  ddhdh¬«       y )Nr?   rA   r@   rÚ   rÛ   rQ   s    r)   Útest_empty_nonsq_casesz.LinalgNonsquareTestCase.test_empty_nonsq_cases}  ó!   € Ø×Ñ +¨xÐ!8Ø"/ ð 	õ 	2r+   N)rS   rT   rU   rã   ræ   rW   r+   r)   rá   rá   w  rß   r+   rá   c                   ó   — e Zd Zd„ Zd„ Zy)ÚHermitianTestCasec                 ó0   — | j                  dhddh¬«       y )Nr>   r@   rA   rÚ   rÛ   rQ   s    r)   Útest_herm_casesz!HermitianTestCase.test_herm_cases„  rä   r+   c                 ó0   — | j                  ddhdh¬«       y )Nr>   rA   r@   rÚ   rÛ   rQ   s    r)   Útest_empty_herm_casesz'HermitianTestCase.test_empty_herm_casesˆ  rç   r+   N)rS   rT   rU   rë   rí   rW   r+   r)   ré   ré   ‚  rß   r+   ré   c                   ó|   — e Zd Zej                  j
                  d„ «       Zej                  j
                  d„ «       Zy)ÚLinalgGeneralizedSquareTestCasec                 ó0   — | j                  ddhdh¬«       y )Nr@   r<   rA   rÚ   rÛ   rQ   s    r)   Útest_generalized_sq_casesz9LinalgGeneralizedSquareTestCase.test_generalized_sq_cases�  s!   € à×Ñ -°Ð!:Ø"* ð 	õ 	-r+   c                 ó,   — | j                  h d£¬«       y )N>   r<   r@   rA   ©rÒ   rÛ   rQ   s    r)   Útest_generalized_empty_sq_casesz?LinalgGeneralizedSquareTestCase.test_generalized_empty_sq_cases”  s   € à×ÑÒ!DÐÕEr+   N)rS   rT   rU   ÚpytestÚmarkÚslowrñ   rô   rW   r+   r)   rï   rï   �  s>   „ à‡[�[×Ññ-ó ð-ð ‡[�[×ÑñFó ñFr+   rï   c                   ó|   — e Zd Zej                  j
                  d„ «       Zej                  j
                  d„ «       Zy)Ú"LinalgGeneralizedNonsquareTestCasec                 ó0   — | j                  ddhdh¬«       y )Nr@   r?   rA   rÚ   rÛ   rQ   s    r)   Útest_generalized_nonsq_casesz?LinalgGeneralizedNonsquareTestCase.test_generalized_nonsq_cases›  ó!   € à×Ñ -°Ð!=Ø"* ð 	õ 	-r+   c                 ó,   — | j                  h d£¬«       y )N>   r?   r@   rA   ró   rÛ   rQ   s    r)   Ú"test_generalized_empty_nonsq_caseszELinalgGeneralizedNonsquareTestCase.test_generalized_empty_nonsq_cases   s   € à×ÑÒ!GÐÕHr+   N)rS   rT   rU   rõ   rö   r÷   rû   rþ   rW   r+   r)   rù   rù   ™  s>   „ à‡[�[×Ññ-ó ð-ð ‡[�[×ÑñIó ñIr+   rù   c                   ó|   — e Zd Zej                  j
                  d„ «       Zej                  j
                  d„ «       Zy)ÚHermitianGeneralizedTestCasec                 ó0   — | j                  ddhdh¬«       y )Nr@   r>   rA   rÚ   rÛ   rQ   s    r)   Útest_generalized_herm_casesz8HermitianGeneralizedTestCase.test_generalized_herm_cases§  rü   r+   c                 ó0   — | j                  h d£dh¬«       y )N>   r>   r@   rA   ÚnonerÚ   rÛ   rQ   s    r)   Ú!test_generalized_empty_herm_casesz>HermitianGeneralizedTestCase.test_generalized_empty_herm_cases¬  s   € à×ÑÒ!GØ"( ð 	õ 	+r+   N)rS   rT   rU   rõ   rö   r÷   r  r  rW   r+   r)   r   r   ¥  s<   „ à‡[�[×Ññ-ó ð-ð ‡[�[×Ññ+ó ñ+r+   r   c                 ó  — t        | «      } | j                  dk\  rä| j                  |j                  k(  r | j                  d d |j                  dd  z   }n7| j                  |j                  dz   k(  r| j                  d d }nt        d«      ‚t	        j
                  |t	        j                  | |«      ¬«      }t        j                  t        t        | j                  d d «      Ž D ]  }t        | |   ||   «      ||<   Œ |S t        | |«      S )Nrq   r    rn   zNot implemented...r6   r¡   )r   rª   r˜   Ú
ValueErrorr%   r±   Úcommon_typer«   r¬   ÚmapÚranger   )r0   r1   r¿   ÚrÚcs        r)   Údot_generalizedr  ²  sá   € Ü�‹
€AØ‡v�v�‚{Ø�6‰6�Q—V‘VÒàŸ™  ˜ q§w¡w¨r¨s |Ñ3‰IØ�V‰V�q—v‘v ‘zÒ!àŸ™  ˜‰IäÐ1Ó2Ð2Ü�H‰H�Y¤b§n¡n°Q¸Ó&:Ô;ˆÜ×"Ñ"¤C¬¨q¯w©w°s¸¨|Ó$<Ð=ò 	#ˆAÜ�q˜‘t˜Q˜q™T“?ˆAˆaŠDð	#àˆä�1�a‹yÐr+   c                 óö   — t        | «      } | j                  dk\  rHt        j                  | j                  | j
                  ¬«      }t        | j                  d   «      |d<   |S t        | j                  d   «      S )Nrq   r6   r¡   .r   )r   rª   r%   r±   r˜   r.   r	   )r0   r  s     r)   Úidentity_like_generalizedr  Å  s\   € Ü�‹
€AØ‡v�v�‚{Ü�H‰H�Q—W‘W A§G¡GÔ,ˆÜ˜!Ÿ'™' "™+Ó&ˆˆ#‰Øˆä˜Ÿ™ ™
Ó#Ð#r+   c                   ó   — e Zd Zd„ Zy)Ú
SolveCasesc                 ó†   — t        j                  ||«      }t        |t        ||«      «       t	        t        ||«      «       y r"   )r   Úsolver   r  r   r*   )rI   r0   r1   rH   r¼   s        r)   rM   zSolveCases.doÑ  s3   € Ü�L‰L˜˜AÓˆÜ˜Aœ¨q°!Ó4Ô5ÜÔ# A qÓ)Õ*r+   N©rS   rT   rU   rM   rW   r+   r)   r  r  Ï  s   „ ó+r+   r  c                   ód   — e Zd Zej                  j                  deeee	g«      d„ «       Z
d„ Zd„ Zy)Ú	TestSolver.   c                 ó’   — t        j                  ddgddgg|¬«      }t        t        j                  ||«      j
                  |«       y ©Nrn   ç      à?r6   )r%   r   r   r   r  r.   ©rI   r.   r¼   s      r)   Ú
test_typeszTestSolve.test_typesØ  s:   € ä�H‰H�q˜#�h  a Ð)°Ô7ˆÜ”V—\‘\ ! QÓ'×-Ñ-¨uÕ5r+   c           
      óÖ  —  G d„ dt         j                  «      }t        j                  d«      j                  ddd«      }t        j                  d«      j                  ddd«      j	                  |«      }t        j                  ||«      d d …dd…d d …f   }t        j                  |d d …dd…dd…f   |d d …dd…d d …f   «      }t        ||«       t        t        ||«      «       t        t
        j                  t
        j                  |d d …dd…dd…f   |«       t        t        t
        j                  ||d d …dd…d d …f   «       t        j                  d«      j                  ddd«      }t        t        t
        j                  ||«       t        t        t
        j                  |dd |dd «       t        j                  d«      j                  dd«      j	                  |«      }t        j                  ||«      d d …dd…f   }t        j                  |d d …dd…dd…f   |d d …dd…f   «      }t        ||«       t        t        ||«      «       t        j                  d«      j                  dd«      }t        t        t
        j                  ||«       t        t        t
        j                  |dd |dd «       t        t        t
        j                  |d d …dd…dd…f   |«       y )	Nc                   ó   — e Zd Zy)ú,TestSolve.test_0_size.<locals>.ArraySubclassN©rS   rT   rU   rW   r+   r)   ÚArraySubclassr  Þ  ó   „ Ør+   r   rl   rp   r‘   rn   rq   r   )r%   r&   Úaranger—   r²   r   r  r   r   r$   r   r   r  ©rI   r   r0   r1   ÚexpectedÚresults         r)   Útest_0_sizezTestSolve.test_0_sizeÝ  sR  € ô	œBŸJ™Jô 	ô �I‰I�a‹L× Ñ   A qÓ)ˆÜ�I‰I�a‹L× Ñ   A qÓ)×.Ñ.¨}Ó=ˆä—<‘<  1Ó%¢a¨¨1¨ªa iÑ0ˆÜ—‘˜a¢ 1 Q 3¨¨!¨ ™n¨a²°1°Q°3º°	©lÓ;ˆÜ˜6 8Ô,Ü”
˜6 =Ó1Ô2ô 	”f×(Ñ(¬&¯,©,¸º!¸Q¸q¸SÀ!ÀAÀ#¸+¹ÈÔJÜ”j¤&§,¡,°°1²Q¸¸!¸ºQ°Y±<Ô@ô �I‰I�a‹L× Ñ   A qÓ)ˆÜ”j¤&§,¡,°°1Ô5Ü”j¤&§,¡,°°!°A°¸¸!¸A¸Ô?ô �I‰I�a‹L× Ñ   AÓ&×+Ñ+¨MÓ:ˆÜ—<‘<  1Ó%¢a¨¨1¨ fÑ-ˆÜ—‘˜a¢ 1 Q 3¨¨!¨ ™n¨a²°1°Q°3°©iÓ8ˆÜ˜6 8Ô,Ü”
˜6 =Ó1Ô2ä�I‰I�a‹L× Ñ   AÓ&ˆÜ”j¤&§,¡,°°1Ô5Ü”j¤&§,¡,°°!°A°¸¸!¸A¸Ô?Ü”j¤&§,¡,°²!°Q°q°S¸!¸A¸#°+±ÀÕBr+   c                 ó˜  —  G d„ dt         j                  «      }t        j                  d«      j                  ddd«      }t        j                  d«      j                  ddd«      j	                  |«      }t        j                  ||«      d d …d d …dd…f   }t        j                  ||d d …d d …dd…f   «      }t        ||«       t        t        ||«      «       t        j                  ||«      d d …dd…dd…f   }t        j                  |d d …dd…dd…f   |d d …dd…dd…f   «      }t        ||«       t        t        ||«      «       y )	Nc                   ó   — e Zd Zy)ú.TestSolve.test_0_size_k.<locals>.ArraySubclassNr  rW   r+   r)   r   r)     r!  r+   r   rr   rn   rp   r‘   rq   r   )
r%   r&   r"  r—   r²   r   r  r   r   r$   r#  s         r)   Útest_0_size_kzTestSolve.test_0_size_kþ  s  € ô	œBŸJ™Jô 	ä�I‰I�a‹L× Ñ   A qÓ)ˆÜ�I‰I�a‹L× Ñ   A qÓ)×.Ñ.¨}Ó=ˆä—<‘<  1Ó%¢aª¨A¨a¨C iÑ0ˆÜ—‘˜a ¢1¢a¨¨1¨ 9¡Ó.ˆÜ˜6 8Ô,Ü”
˜6 =Ó1Ô2ô —<‘<  1Ó%¢a¨¨1¨¨a°¨c kÑ2ˆÜ—‘˜a¢ 1 Q 3¨¨!¨ ™n¨a²°1°Q°3¸¸!¸°©nÓ=ˆÜ˜6 8Ô,Ü”
˜6 =Ó1Õ2r+   N)rS   rT   rU   rõ   rö   Úparametrizer   r   r   r   r  r&  r*  rW   r+   r)   r  r  ×  s;   „ Ø‡[�[×Ñ˜W v¨v°wÀÐ&HÓIñ6ó Jð6òCóB3r+   r  c                   ó   — e Zd Zd„ Zy)ÚInvCasesc                 ó–   — t        j                  |«      }t        t        ||«      t	        |«      «       t        t        ||«      «       y r"   )r   Úinvr   r  r  r   r*   )rI   r0   r1   rH   Úa_invs        r)   rM   zInvCases.do  s8   € Ü—
‘
˜1“ˆÜœO¨A¨uÓ5Ü5°aÓ8ô	:äÔ# E¨1Ó-Õ.r+   Nr  rW   r+   r)   r-  r-    s   „ ó/r+   r-  c                   ó^   — e Zd Zej                  j                  deeee	g«      d„ «       Z
d„ Zy)ÚTestInvr.   c                 ó�   — t        j                  ddgddgg|¬«      }t        t        j                  |«      j
                  |«       y r  )r%   r   r   r   r/  r.   r  s      r)   r  zTestInv.test_types  s7   € ä�H‰H�q˜#�h  a Ð)°Ô7ˆÜ”V—Z‘Z “]×(Ñ(¨%Õ0r+   c                 óê  —  G d„ dt         j                  «      }t        j                  dt         j                  ¬«      j	                  |«      }t        j                  |«      }t        |j                  j                  t         j                  u «       t        |j                  |j                  «       t        t        ||«      «       t        j                  dt         j                  ¬«      j	                  |«      }t        j                  |«      }t        |j                  j                  t         j                  u «       t        |j                  |j                  «       t        t        ||«      «       y )Nc                   ó   — e Zd Zy)ú*TestInv.test_0_size.<locals>.ArraySubclassNr  rW   r+   r)   r   r6  "  r!  r+   r   ©r   rn   rn   r6   ri   )r%   r&   ÚzerosÚint_r²   r   r/  r   r.   r#   Úfloat64r   r˜   r$   Ú	complex64©rI   r   r0   Úress       r)   r&  zTestInv.test_0_size   sÞ   € ô	œBŸJ™Jô 	ä�H‰H�Y¤b§g¡gÔ.×3Ñ3°MÓBˆÜ�j‰j˜‹mˆÜ�—	‘	—‘¤"§*¡*Ð,Ô-Ü�Q—W‘W˜cŸi™iÔ(Ü”
˜3 Ó.Ô/ä�H‰H�V¤2§<¡<Ô0×5Ñ5°mÓDˆÜ�j‰j˜‹mˆÜ�—	‘	—‘¤"§,¡,Ð.Ô/Ü�Q—W‘W˜cŸi™iÔ(Ü”
˜3 Ó.Õ/r+   N©rS   rT   rU   rõ   rö   r+  r   r   r   r   r  r&  rW   r+   r)   r2  r2    s4   „ Ø‡[�[×Ñ˜W v¨v°wÀÐ&HÓIñ1ó Jð1ó0r+   r2  c                   ó   — e Zd Zd„ Zy)ÚEigvalsCasesc                 óv   — t        j                  |«      }t        j                  |«      \  }}t        ||«       y r"   )r   ÚeigvalsÚeigr   )rI   r0   r1   rH   ÚevÚevaluesÚevectorss          r)   rM   zEigvalsCases.do3  s,   € Ü�^‰^˜AÓˆÜ"ŸJ™J q›MÑˆ�Ü˜B Õ(r+   Nr  rW   r+   r)   r@  r@  1  s   „ ó)r+   r@  c                   ó^   — e Zd Zej                  j                  deeee	g«      d„ «       Z
d„ Zy)ÚTestEigvalsr.   c                 ó.  — t        j                  ddgddgg|¬«      }t        t        j                  |«      j
                  |«       t        j                  ddgddgg|¬«      }t        t        j                  |«      j
                  t        |«      «       y ©Nrn   r  r6   r    )r%   r   r   r   rB  r.   r9   r  s      r)   r  zTestEigvals.test_types:  st   € ä�H‰H�q˜#�h  a Ð)°Ô7ˆÜ”V—^‘^ AÓ&×,Ñ,¨eÔ4Ü�H‰H�q˜#�h  Q Ð(°Ô6ˆÜ”V—^‘^ AÓ&×,Ñ,Ô.?ÀÓ.FÕGr+   c                 óú  —  G d„ dt         j                  «      }t        j                  dt         j                  ¬«      j	                  |«      }t        j                  |«      }t        |j                  j                  t         j                  u «       t        d|j                  «       t        t        |t         j                  «      «       t        j                  dt         j                  ¬«      j	                  |«      }t        j                  |«      }t        |j                  j                  t         j                  u «       t        d|j                  «       t        t        |t         j                  «      «       y )Nc                   ó   — e Zd Zy)ú.TestEigvals.test_0_size.<locals>.ArraySubclassNr  rW   r+   r)   r   rM  C  r!  r+   r   r7  r6   ©r   rn   ri   rj   )r%   r&   r8  r9  r²   r   rB  r   r.   r#   r:  r   r˜   r$   r;  r<  s       r)   r&  zTestEigvals.test_0_sizeA  sà   € ô	œBŸJ™Jô 	ä�H‰H�Y¤b§g¡gÔ.×3Ñ3°MÓBˆÜ�n‰n˜QÓˆÜ�—	‘	—‘¤"§*¡*Ð,Ô-Ü�V˜SŸY™YÔ'ä”
˜3¤§
¡
Ó+Ô,ä�H‰H�V¤2§<¡<Ô0×5Ñ5°mÓDˆÜ�n‰n˜QÓˆÜ�—	‘	—‘¤"§,¡,Ð.Ô/Ü�T˜3Ÿ9™9Ô%ä”
˜3¤§
¡
Ó+Õ,r+   Nr>  rW   r+   r)   rH  rH  9  s6   „ Ø‡[�[×Ñ˜W v¨v°wÀÐ&HÓIñHó JðHó-r+   rH  c                   ó   — e Zd Zd„ Zy)ÚEigCasesc           	      ó@  — t        j                  |«      }|j                  |j                  }}t	        t        ||«      t        j                  |«      t        j                  |«      dd d d …f   z  t        |j                  «      ¬«       t        t        ||«      «       y )N.©Úrtol)r   rC  ÚeigenvaluesÚeigenvectorsr   r  r%   r   r;   r.   r   r*   )rI   r0   r1   rH   r=  rT  rU  s          r)   rM   zEigCases.doV  sz   € Ü�j‰j˜‹mˆØ$'§O¡O°S×5EÑ5E�\ˆÜœ¨¨<Ó8ÜŸ
™
 <Ó0´2·:±:¸kÓ3JÈ3ÐPTÒVWÈ<Ñ3XÑXÜ% k×&7Ñ&7Ó8õ	:ô 	Ô# L°!Ó4Õ5r+   Nr  rW   r+   r)   rP  rP  T  s   „ ó6r+   rP  c                   ó^   — e Zd Zej                  j                  deeee	g«      d„ «       Z
d„ Zy)ÚTestEigr.   c                 óÔ  — t        j                  ddgddgg|¬«      }t         j                  j                  |«      \  }}t	        |j
                  |«       t	        |j
                  |«       t        j                  ddgddgg|¬«      }t         j                  j                  |«      \  }}t	        |j
                  t        |«      «       t	        |j
                  t        |«      «       y rJ  )r%   r   r   rC  r   r.   r9   ©rI   r.   r¼   ÚwÚvs        r)   r  zTestEig.test_types`  s¬   € ä�H‰H�q˜#�h  a Ð)°Ô7ˆÜ�y‰y�}‰}˜QÓ‰ˆˆ1Ü�Q—W‘W˜eÔ$Ü�Q—W‘W˜eÔ$ä�H‰H�q˜#�h  Q Ð(°Ô6ˆÜ�y‰y�}‰}˜QÓ‰ˆˆ1Ü�Q—W‘WÔ/°Ó6Ô7Ü�Q—W‘WÔ/°Ó6Õ7r+   c                 óB  —  G d„ dt         j                  «      }t        j                  dt         j                  ¬«      j	                  |«      }t        j                  |«      \  }}t        |j                  j                  t         j                  u «       t        |j                  j                  t         j                  u «       t        |j                  |j                  «       t        d|j                  «       t        t        |t         j                  «      «       t        j                  dt         j                  ¬«      j	                  |«      }t        j                  |«      \  }}t        |j                  j                  t         j                  u «       t        |j                  j                  t         j                  u «       t        |j                  |j                  «       t        d|j                  «       t        t        |t         j                  «      «       y )Nc                   ó   — e Zd Zy)ú*TestEig.test_0_size.<locals>.ArraySubclassNr  rW   r+   r)   r   r^  n  r!  r+   r   r7  r6   rN  ri   rj   )r%   r&   r8  r9  r²   r   rC  r   r.   r#   r:  r   r˜   r$   r;  ©rI   r   r0   r=  Úres_vs        r)   r&  zTestEig.test_0_sizel  s@  € ô	œBŸJ™Jô 	ä�H‰H�Y¤b§g¡gÔ.×3Ñ3°MÓBˆÜ—Z‘Z “]‰
ˆˆUÜ�—‘× Ñ ¤B§J¡JÐ.Ô/Ü�—	‘	—‘¤"§*¡*Ð,Ô-Ü�Q—W‘W˜eŸk™kÔ*Ü�V˜SŸY™YÔ'ä”
˜1œbŸj™jÓ)Ô*ä�H‰H�V¤2§<¡<Ô0×5Ñ5°mÓDˆÜ—Z‘Z “]‰
ˆˆUÜ�—‘× Ñ ¤B§L¡LÐ0Ô1Ü�—	‘	—‘¤"§,¡,Ð.Ô/Ü�Q—W‘W˜eŸk™kÔ*Ü�T˜3Ÿ9™9Ô%ä”
˜1œbŸj™jÓ)Õ*r+   Nr>  rW   r+   r)   rW  rW  _  s4   „ Ø‡[�[×Ñ˜W v¨v°wÀÐ&HÓIñ	8ó Jð	8ó+r+   rW  c                   ó\   — e Zd ZdZej
                  j                  deee	e
g«      d„ «       Zy)ÚSVDBaseTestsFr.   c                 óÈ  — t        j                  ddgddgg|¬«      }t        j                  |«      }|j                  |j
                  |j                  }}}t        |j                  |«       t        |j                  t        |«      «       t        |j                  |«       t        j                  |d| j                  ¬«      }t        |j                  t        |«      «       y )Nrn   r  r6   F©Ú
compute_uvr>   )r%   r   r   ÚsvdÚUÚSÚVhr   r.   r7   r>   )rI   r.   r¼   r=  rg  rh  ri  rÄ   s           r)   r  zSVDBaseTests.test_types†  s�   € ä�H‰H�q˜#�h  a Ð)°Ô7ˆÜ�j‰j˜‹mˆØ—5‘5˜#Ÿ%™% §¡ˆbˆ1ˆÜ�Q—W‘W˜eÔ$Ü�Q—W‘Wœn¨UÓ3Ô4Ü�R—X‘X˜uÔ%Ü�J‰J�q U°d·n±nÔEˆÜ�Q—W‘Wœn¨UÓ3Õ4r+   N)rS   rT   rU   r>   rõ   rö   r+  r   r   r   r   r  rW   r+   r)   rb  rb  ƒ  s4   „ Ø€Ià‡[�[×Ñ˜W v¨v°wÀÐ&HÓIñ5ó Jñ5r+   rb  c                   ó   — e Zd Zd„ Zy)ÚSVDCasesc                 ój  — t        j                  |d«      \  }}}t        |t        t	        j
                  |«      t	        j
                  |«      dd d d …f   z  t	        j
                  |«      «      t        |j                  «      ¬«       t        t        ||«      «       t        t        ||«      «       y )NF.rR  )
r   rf  r   r  r%   r   r;   r.   r   r*   )rI   r0   r1   rH   ÚurÄ   Úvts          r)   rM   zSVDCases.do”  s…   € Ü—:‘:˜a Ó'‰ˆˆ1ˆbÜ˜œ?¬2¯:©:°a«=¼2¿:¹:Àa»=ÈÈdÒTUÈÑ;VÑ+VÜ+-¯:©:°b«>ó;ä% a§g¡gÓ.õ	0ô 	Ô# A qÓ)Ô*ÜÔ# B¨Ó*Õ+r+   Nr  rW   r+   r)   rk  rk  ’  s   „ ó,r+   rk  c                   ó   — e Zd Zd„ Zy)ÚTestSVDc                 ó  — t        j                  d«      }t        j                  |d| j                  ¬«      \  }}}t        |j                  d«       t        |j                  d«       t        |t        j                  d«      «       t        j                  d«      }t        j                  |d| j                  ¬«      \  }}}t        |j                  d«       t        |j                  d«       t        |t        j                  d«      «       y)	z6 Empty input should put an identity matrix in u or vh )rr   r   Trd  ©rr   rr   ri   rr   )r   rr   N)r%   r±   r   rf  r>   r   r˜   Úeye)rI   r¼   rm  rÄ   Úvhs        r)   Útest_empty_identityzTestSVD.test_empty_identityž  s²   € ä�H‰H�VÓˆÜ—:‘:˜a¨D¸D¿N¹NÔK‰ˆˆ1ˆbÜ�Q—W‘W˜fÔ%Ü�R—X‘X˜vÔ&Ü�QœŸ™˜q›	Ô"ä�H‰H�VÓˆÜ—:‘:˜a¨D¸D¿N¹NÔK‰ˆˆ1ˆbÜ�Q—W‘W˜fÔ%Ü�R—X‘X˜vÔ&Ü�RœŸ™ ›Õ#r+   N)rS   rT   rU   ru  rW   r+   r)   rp  rp  �  s   „ ó$r+   rp  c                   ó   — e Zd Zd„ Zy)ÚSVDHermitianCasesc                 óR  — t        j                  |dd¬«      \  }}}t        |t        t	        j
                  |«      t	        j
                  |«      dd d d …f   z  t	        j
                  |«      «      t        |j                  «      ¬«       d„ }t        t	        j                  | ||«      «      t	        j                  t	        j                  |j                  d   «      |j                  «      «       t        t	        j                  | ||«      «      t	        j                  t	        j                  |j                  d   «      |j                  «      «       t        t	        j                  |«      dd d d…f   |«       t        t!        ||«      «       t        t!        ||«      «       y )NFT©r>   .rR  c                 ó´   — t        t        | j                  «      «      }|d   |d   c|d<   |d<   t        j                  t        j
                  | |¬«      «      S )Nr¡   r    ©Úaxes)r¸   r
  rª   r%   ÚconjÚ	transpose)Úmatr|  s     r)   r>   z'SVDHermitianCases.do.<locals>.hermitian´  sJ   € Üœ˜cŸh™h›Ó(ˆDØ!% b¡¨4°©8ÐˆD�‰H�d˜2‘hÜ—7‘7œ2Ÿ<™<¨°$Ô7Ó8Ð8r+   r    )r   rf  r   r  r%   r   r;   r.   r   r
   Úbroadcast_tors  r˜   r   Úsortr   r*   )rI   r0   r1   rH   rm  rÄ   rn  r>   s           r)   rM   zSVDHermitianCases.do¯  s)  € Ü—:‘:˜a °$Ô7‰ˆˆ1ˆbÜ˜œ?¬2¯:©:°a«=¼2¿:¹:Àa»=ÈÈdÒTUÈÑ;VÑ+VÜ+-¯:©:°b«>ó;ä% a§g¡gÓ.õ	0ò	9ô
 	œBŸI™I a©°1«Ó6¼¿¹ÌÏÉÈqÏwÉwÐWYÉ{ÓH[Ð]^×]dÑ]dÓ8eÔfÜœBŸI™I b©)°B«-Ó8¼"¿/¹/Ì"Ï&É&ÐQS×QYÑQYÐZ\ÑQ]ÓJ^Ð`b×`hÑ`hÓ:iÔjÜ”R—W‘W˜Q“Z ¡T r T 	Ñ*¨AÔ.ÜÔ# A qÓ)Ô*ÜÔ# B¨Ó*Õ+r+   Nr  rW   r+   r)   rw  rw  ­  s   „ ó,r+   rw  c                   ó   — e Zd ZdZy)ÚTestSVDHermitianTN)rS   rT   rU   r>   rW   r+   r)   rƒ  rƒ  À  s   „ Ø�Ir+   rƒ  c                   ó   — e Zd Zd„ Zy)Ú	CondCasesc           	      óÈ  — t        |«      }d|v r t        t        t        j                  |«       y t        j
                  |d¬«      }t        t        j                  |«      |d   |d   z  dd¬«       t        t        j                  |d	«      |d   |d   z  dd¬«       t        t        j                  |d
«      |d   |d   z  dd¬«       t        j                  j                  |«      }t        t        j                  |d«      t        |«      j                  d
«      j                  d«      t        |«      j                  d
«      j                  d«      z  dd¬«       t        t        j                  |d«      t        |«      j                  d
«      j                  d«      t        |«      j                  d
«      j                  d«      z  dd¬«       t        t        j                  |t        j                  «      t        |«      j                  d«      j                  d«      t        |«      j                  d«      j                  d«      z  dd¬«       t        t        j                  |t        j                   «      t        |«      j                  d«      j                  d«      t        |«      j                  d«      j                  d«      z  dd¬«       t        t        j                  |d«      t        j                  t        |«      d	z  j                  d«      j                  d«      t        |«      d	z  j                  d«      j                  d«      z  «      dd¬«       y )NrA   F)re  ).r   ).r    rƒ   r�   ©r2   r3   rp   r¡   rn   r    Úfro)r   r   r   r   Úcondrf  r   r%   r/  r¯   ÚsumÚmaxÚminr   Úsqrt)rI   r0   r1   rH   r  rÄ   Úcinvs          r)   rM   zCondCases.doÇ  s�  € Ü�A‹JˆØ�tÑÜœ+¤v§{¡{°AÔ6Øô �J‰J�q UÔ+ˆÜÜ�K‰K˜‹N˜A˜f™I¨¨'©
Ñ2Ø¨Rõ	1ô 	Ü�K‰K˜˜1Ó˜q ™y¨1¨W©:Ñ5Ø¨Rõ	1ô 	Ü�K‰K˜˜2Ó  '¡
¨Q¨v©YÑ 6Ø¨Rõ	1ô
 �y‰y�}‰}˜QÓˆÜÜ�K‰K˜˜1ÓÜ�‹F�J‰J�r‹N×Ñ˜rÓ"¤S¨£Y§]¡]°2Ó%6×%:Ñ%:¸2Ó%>Ñ>Ø¨Rõ	1ô 	Ü�K‰K˜˜2ÓÜ�‹F�J‰J�r‹N×Ñ˜rÓ"¤S¨£Y§]¡]°2Ó%6×%:Ñ%:¸2Ó%>Ñ>Ø¨Rõ	1ô 	Ü�K‰K˜œ2Ÿ6™6Ó"Ü�‹F�J‰J�r‹N×Ñ˜rÓ"¤S¨£Y§]¡]°2Ó%6×%:Ñ%:¸2Ó%>Ñ>Ø¨Rõ	1ô 	Ü�K‰K˜œBŸF™F˜7Ó#Ü�‹F�J‰J�r‹N×Ñ˜rÓ"¤S¨£Y§]¡]°2Ó%6×%:Ñ%:¸2Ó%>Ñ>Ø¨Rõ	1ô 	Ü�K‰K˜˜5Ó!Ü�G‰G”S˜“V˜Q‘Y—O‘O BÓ'×+Ñ+¨BÓ/Ü˜4“y !‘|×(Ñ(¨Ó,×0Ñ0°Ó4ñ5ó 6à¨Rö		1r+   Nr  rW   r+   r)   r…  r…  Ä  s   „ ó(1r+   r…  c                   óf   — e Zd Zd„ Zd„ Zej                  j                  ddd¬«      d„ «       Zd„ Z	y	)
ÚTestCondc                 ó¤  — t        g d¢g d¢g d¢g«      }t        t        j                  |t        «      d«       t        t        j                  |t         «      d«       t        t        j                  |d«      d«       t        t        j                  |d«      d«       t        t        j                  |d	«      t        j                  d
«      «       y )N)r_   r   rn   )r   g       Àr   )r   r   ra   rr   gUUUUUUå?rn   r    r  rˆ  gUUUUU6@)r   r   r   r‰  r   r%   r�  ©rI   ÚAs     r)   Útest_basic_nonsvdzTestCond.test_basic_nonsvdó  s‡   € ä’:š{ªJÐ7Ó8ˆÜœFŸK™K¨¬3Ó/°Ô3ÜœFŸK™K¨¬C¨4Ó0°#Ô6ÜœFŸK™K¨¨1Ó-¨qÔ1ÜœFŸK™K¨¨2Ó.°Ô4ÜœFŸK™K¨¨5Ó1´2·7±7¸8Ó3DÕEr+   c                 óP  — t        j                  d«      t        j                  d«      g}g d¢}ddg}t        j                  ||«      D ]'  \  }}t        t        j                  ||«      dkD  «       Œ) t        j                  ||«      D ]  \  }}t        j                  ||«       Œ y )N©rp   rp   ©Nrn   rp   rˆ  r    r¡   ç  4&õkC)r%   r8  Úonesr«   r¬   r   r   r‰  )rI   ÚAsÚp_posÚp_negr“  Úps         r)   Útest_singularzTestCond.test_singularü  s—   € ô �h‰h�vÓ¤§¡¨£Ð0ˆÚ#ˆØ�R�ˆÜ×%Ñ% b¨%Ó0ò 	.‰DˆAˆqô ”F—K‘K  1Ó%¨Ñ,Õ-ð	.ô ×%Ñ% b¨%Ó0ò 	‰DˆAˆqÜ�K‰K˜˜1Õñ	r+   TFz/Platform/LAPACK-dependent failure, see gh-18914)ÚrunÚreasonc                 óÂ  — g d¢}g d¢}t        j                  d«      }t         j                  |d<   |D ]Y  }t        j                  ||«      }t        t        |t         j                  «      «       t        t        j                  |«      «       Œ[ t        j                  d«      }t         j                  |d<   |D ]¤  }t        j                  ||«      }t        t        j                  |d   «      «       ||v r#t        |d   d	kD  «       t        |d
   d	kD  «       Œat        t        j                  |d   «       «       t        t        j                  |d
   «       «       Œ¦ y )N)Nrn   r    rp   r¡   rˆ  r—  r–  rN  )rq   rp   rp   ©rn   r   rn   rn   r   r˜  rp   )	r%   r™  Únanr   r‰  r   r$   Úfloat_Úisnan)rI   Úpsr›  r“  r�  r  s         r)   Útest_nanzTestCond.test_nan
  s  € ò
 )ˆÚ#ˆä�G‰G�F‹OˆÜ—‘ˆˆ#‰Øò 	!ˆAÜ—‘˜A˜qÓ!ˆAÜ”J˜q¤"§)¡)Ó,Ô-Ü”B—H‘H˜Q“KÕ ð	!ô
 �G‰G�IÓˆÜ—6‘6ˆˆ%‰Øò 	,ˆAÜ—‘˜A˜qÓ!ˆAÜ”B—H‘H˜Q˜q™T“NÔ#Ø�E‰zÜ˜˜!™˜t™Ô$Ü˜˜!™˜t™Õ$äœBŸH™H Q q¡T›NÐ*Ô+ÜœBŸH™H Q q¡T›NÐ*Õ+ñ	,r+   c                 óÌ  — t         j                  j                  d«       t         j                  j                  dddd«      }d|d<   d|d<   dD ]”  }t	        j
                  ||«      }t        |d   t         j                  «       t        |d   t         j                  «       t        t        j                  |d   «      «       t        t        j                  |d   «      «       Œ– y )	Nr^   rp   r   ri   r¨   )Nrn   rp   rˆ  r    r¡   rN  ©rn   r   )
r%   ÚrandomÚseedÚrandr   r‰  r   r   r   Úisfinite)rI   r“  r�  r  s       r)   Útest_stacked_singularzTestCond.test_stacked_singular%  s«   € ô 	�	‰	�‰�tÔÜ�I‰I�N‰N˜1˜a  AÓ&ˆØˆˆ#‰Øˆˆ#‰à,ò 	)ˆAÜ—‘˜A˜qÓ!ˆAÜ˜˜3™¤§¡Ô(Ü˜˜3™¤§¡Ô(Ü”B—K‘K  #¡Ó'Ô(Ü”B—K‘K  #¡Ó'Õ(ñ	)r+   N)
rS   rT   rU   r”  rž  rõ   rö   Úxfailr§  r®  rW   r+   r)   r�  r�  ò  sC   „ òFòð ‡[�[×Ñ�t ð-ð ó .ñ,ó.ð,ó0)r+   r�  c                   ó   — e Zd Zd„ Zy)Ú	PinvCasesc                 óž   — t        j                  |«      }t        }t         | |||«      |«      |dd¬«       t	        t        ||«      «       y )Nrƒ   r�   r‡  ©r   Úpinvr  r   r   r*   ©rI   r0   r1   rH   Úa_ginvr   s         r)   rM   zPinvCases.do:  s@   € Ü—‘˜Q“ˆäˆÜ™C¡ A v£°Ó2°AÀaÐXZÕ[ÜÔ# F¨AÓ.Õ/r+   Nr  rW   r+   r)   r±  r±  5  s   „ ó
0r+   r±  c                   ó   — e Zd Zy)ÚTestPinvNr  rW   r+   r)   r¸  r¸  B  ó   „ Ør+   r¸  c                   ó   — e Zd Zd„ Zy)ÚPinvHermitianCasesc                 ó¢   — t        j                  |d¬«      }t        }t         | |||«      |«      |dd¬«       t	        t        ||«      «       y )NTry  rƒ   r�   r‡  r³  rµ  s         r)   rM   zPinvHermitianCases.doH  sC   € Ü—‘˜Q¨$Ô/ˆäˆÜ™C¡ A v£°Ó2°AÀaÐXZÕ[ÜÔ# F¨AÓ.Õ/r+   Nr  rW   r+   r)   r»  r»  F  s   „ ó0r+   r»  c                   ó   — e Zd Zy)ÚTestPinvHermitianNr  rW   r+   r)   r¾  r¾  P  r¹  r+   r¾  c                   ó   — e Zd Zd„ Zy)ÚDetCasesc                 óþ  — t        j                  |«      }t        j                  |«      }|j                  |j                  }}t        |«      j                  j                  t        t        fv rt        |«      j                  t        «      }nt        |«      j                  t        «      }t        j                  |«      }	t        |t        j                  |	d¬«      «       t        |t!        j"                  |«      z  t        j                  |	d¬«      «       t!        j$                  |«      }t!        j$                  |«      }|dk7  }
t        t!        j&                  ||
   «      d«       t)        ||
    t*         «       y )Nr    ©Úaxisr   rn   )r   ÚdetÚslogdetÚsignÚ	logabsdetr   r.   r#   r   r   Úastyper   rB  r   r   Úreducer%   ÚexpÚ
atleast_1dr¯   r   r   )rI   r0   r1   rH   Údr=  rÄ   ÚldÚadrD  Úms              r)   rM   zDetCases.doV  s  € Ü�J‰J�q‹MˆÜ�n‰n˜QÓˆØ—‘˜#Ÿ-™-ˆ2ˆÜ�1‹:×Ñ× Ñ ¤V¬VÐ$4Ñ4Ü˜“×"Ñ"¤6Ó*‰Bä˜“×"Ñ"¤7Ó+ˆBÜ�^‰^˜BÓˆÜ˜AœxŸ™¨r¸Ô;Ô<Ü˜A¤§¡ r£
™N¬H¯O©O¸BÀRÔ,HÔIä�M‰M˜!ÓˆÜ�]‰]˜2ÓˆØ�!‰VˆÜœBŸF™F 1 Q¡4›L¨!Ô,Ü�R˜˜‘Vœc˜TÕ"r+   Nr  rW   r+   r)   rÀ  rÀ  T  s   „ ó#r+   rÀ  c                   ód   — e Zd Zd„ Zej
                  j                  deee	e
g«      d„ «       Zd„ Zy)ÚTestDetc                 óh  — t        t        j                  dgg«      d«       t        t        t        j                  dgg«      «      t        «       t        t        j                  dgg«      d«       t        t        t        j                  dgg«      «      t
        «       t        t        j                  dgg«      dt         f«       t        t        t        j                  dgg«      d   «      t        «       t        t        t        j                  dgg«      d   «      t        «       t        t        j                  dgg«      dt         f«       t        t        t        j                  dgg«      d   «      t
        «       t        t        t        j                  dgg«      d   «      t        «       y )Nç        y                r   rn   )r   r   rÄ  r#   r   r   rÅ  r   rQ   s    r)   Ú	test_zerozTestDet.test_zeroj  s&  € Ü”V—Z‘Z #  Ó(¨#Ô.Ü”Tœ&Ÿ*™* s e WÓ-Ó.´Ô7Ü”V—Z‘Z $  Ó)¨3Ô/Ü”Tœ&Ÿ*™* t f XÓ.Ó/´Ô9ä”V—^‘^ c U GÓ,¨s´S°D¨kÔ:Ü”Tœ&Ÿ.™.¨3¨%¨Ó1°!Ñ4Ó5´vÔ>Ü”Tœ&Ÿ.™.¨3¨%¨Ó1°!Ñ4Ó5´vÔ>Ü”V—^‘^ d V HÓ-°´s°d¨|Ô<Ü”Tœ&Ÿ.™.¨4¨&¨Ó2°1Ñ5Ó6¼Ô@Ü”Tœ&Ÿ.™.¨4¨&¨Ó2°1Ñ5Ó6¼Õ?r+   r.   c                 óR  — t        j                  ddgddgg|¬«      }t        t         j                  j	                  |«      j
                  |«       t         j                  j                  |«      \  }}t        |j
                  t        |«      «       t        |j
                  |«       y r  )r%   r   r   r   rÄ  r.   rÅ  r7   )rI   r.   r¼   ÚphrÄ   s        r)   r  zTestDet.test_typesw  su   € ä�H‰H�q˜#�h  a Ð)°Ô7ˆÜ”R—Y‘Y—]‘] 1Ó%×+Ñ+¨UÔ3Ü—	‘	×!Ñ! !Ó$‰ˆˆAÜ�Q—W‘Wœn¨UÓ3Ô4Ü�R—X‘X˜uÕ%r+   c                 óì  — t        j                  dt         j                  ¬«      }t        j                  |«      }t        |d«       t        |j                  j                  t         j                  u «       t        j                  |«      }t        |d«       t        |d   j                  j                  t         j                  u «       t        |d   j                  j                  t         j                  u «       t        j                  dt         j                  ¬«      }t        j                  |«      }t        |d«       t        |j                  j                  t         j                  u «       t        j                  |«      }t        |d«       t        |d   j                  j                  t         j                  u «       t        |d   j                  j                  t         j                  u «       y )Nri   r6   r_   r©  r   rn   )r%   r8  r;  r   rÄ  r   r   r.   r#   rÅ  Úfloat32r:  )rI   r0   r=  s      r)   r&  zTestDet.test_0_size  s6  € Ü�H‰H�V¤2§<¡<Ô0ˆÜ�j‰j˜‹mˆÜ�S˜"ÔÜ�—	‘	—‘¤"§,¡,Ð.Ô/Ü�n‰n˜QÓˆÜ�S˜&Ô!Ü��A‘—‘×!Ñ!¤R§\¡\Ð1Ô2Ü��A‘—‘×!Ñ!¤R§Z¡ZÐ/Ô0ä�H‰H�V¤2§:¡:Ô.ˆÜ�j‰j˜‹mˆÜ�S˜"ÔÜ�—	‘	—‘¤"§*¡*Ð,Ô-Ü�n‰n˜QÓˆÜ�S˜&Ô!Ü��A‘—‘×!Ñ!¤R§Z¡ZÐ/Ô0Ü��A‘—‘×!Ñ!¤R§Z¡ZÐ/Õ0r+   N)rS   rT   rU   rÔ  rõ   rö   r+  r   r   r   r   r  r&  rW   r+   r)   rÑ  rÑ  i  s<   „ ò@ð ‡[�[×Ñ˜W v¨v°wÀÐ&HÓIñ&ó Jð&ó1r+   rÑ  c                   ó   — e Zd Zd„ Zy)Ú
LstsqCasesc                 ó0  — t        j                  |«      }|j                  \  }}t        j                  |d«      \  }}}	t        j
                  ||d¬«      \  }
}}}|dk(  rt        |
dk(  j                  «       «       ||k  r#t        |t        ||
«      «       t        ||«       nt        ||«       t        ||j                  |«      «       ||k(  r¬||kD  r§t        j                  t        t        j                  ||
«      |z
  «      «      dz  j                  d¬«      }t        j                  |«      }t        j                  |«      j                  dk(  rUd|_        t        |j                  |j                  «       n-t        j                  g «      j!                  t#        |
«      «      }t        ||«       t        t        j$                  |j&                  t         j(                  «      «       t        t+        |
|«      «       t        t+        ||«      «       y )	NFr    ©Úrcondr   rp   rÂ  rn   rž   )r%   r   r˜   r   rf  Úlstsqr   r¶   r   r   r   Ú__array_wrap__r¯   rŠ  rª   r   r²   r#   Ú
issubdtyper.   Úfloatingr*   )rI   r0   r1   rH   ÚarrrÏ  Únrm  rÄ   rn  r¼   Ú	residualsÚrankÚsvÚexpect_residss                  r)   rM   zLstsqCases.do•  sˆ  € Ü�j‰j˜‹mˆØ�y‰y‰ˆˆ1Ü—:‘:˜a Ó'‰ˆˆ1ˆbÜ!'§¡¨a°¸"Ô!=Ñˆˆ9�d˜BØ�Š6Ü�Q˜!‘V—L‘L“NÔ#Ø�Š6Ü ¤3 q¨!£9Ô-Ü˜˜qÕ!ä˜˜qÔ!Ü˜B × 1Ñ 1°!Ó 4Ô5Ø�1Š9˜˜Qšä—
‘
œ3œrŸv™v a¨›|¨aÑ/Ó0Ó1°QÑ6¿¹À¸»ð äŸJ™J }Ó5ˆMÜ�z‰z˜!‹}×!Ñ! QÒ&Ø&*�Ô#Ü˜YŸ_™_¨m×.AÑ.AÕBäŸH™H R›L×-Ñ-¬d°1«gÓ6ˆMÜ˜I }Ô5Ü”—‘˜iŸo™o¬r¯{©{Ó;Ô<ÜÔ# A qÓ)Ô*ÜÔ# I¨qÓ1Õ2r+   Nr  rW   r+   r)   rÚ  rÚ  “  s   „ ó3r+   rÚ  c                   ód   — e Zd Zd„ Zej
                  j                  g d¢g d¢«      d„ «       Zd„ Zy)Ú	TestLstsqc                 ó  — t        j                  g d¢g d¢g d¢g d¢g«      j                  }t        j                  g d¢«      }t        «       5 }|j	                  t
        d«      }t        j                  ||«      \  }}}}t        |dk(  «       t        j                  ||d¬	«      \  }}}}t        |dk(  «       t        j                  ||d ¬	«      \  }}}}t        |d
k(  «       t        t        |«      dk(  «       d d d «       y # 1 sw Y   y xY w)N)rÓ  r_   rÓ  r_   r`   rÓ  )rÓ  r`   rÓ  rÓ  r_   rÓ  )r_   rÓ  r_   rÓ  rÓ  rb   )rÓ  rÓ  rÓ  r`   ra   rÓ  )rn   r   r   r   r   r   z`rcond` parameter will changerr   r    rÜ  rq   rn   )
r%   r   ÚTr   ÚrecordÚFutureWarningr   rÞ  r   Úlen)	rI   r0   r1   ÚsuprZ  r¼   rä  rå  rÄ   s	            r)   Útest_future_rcondzTestLstsq.test_future_rcond²  sí   € Ü�H‰HÒ2Ú2Ú2Ú2ð4ó 5÷ 67±Qð 	
ô
 �H‰HÒ'Ó(ˆÜÓ ð 		! CØ—
‘
œ=Ð*IÓJˆAÜ$*§L¡L°°AÓ$6Ñ!ˆAˆy˜$ Ü�D˜A‘IÔÜ$*§L¡L°°A¸RÔ$@Ñ!ˆAˆy˜$ Ü�D˜A‘IÔÜ$*§L¡L°°A¸TÔ$BÑ!ˆAˆy˜$ Ü�D˜A‘IÔä”C˜“F˜a‘KÔ ÷		!÷ 		!ñ 		!ús   ÁB-DÄD)rÏ  rã  Ún_rhs))rr   rp   rp   )r   rr   rn   )r   rr   rp   )rr   r   rn   )rr   r   rp   )rr   rp   r   )r   r   r   c                 ó\  — t        j                  ||z  «      j                  ||«      }t        j                  ||f«      }t	        j
                  ||d ¬«      \  }}}}	|dk(  rt        |dk(  j                  «       «       t        |j                  ||f«       t        |j                  ||kD  r|fnd«       ||kD  r=|dkD  r8|t        j                  ||«      z
  }
t        ||
|
z  j                  d¬«      «       t        |t        ||«      «       t        |	j                  t        ||«      f«       y )NrÜ  r   rj   r¡   rÂ  )r%   r"  r—   r™  r   rÞ  r   r¶   r   r˜   r   r   rŠ  rŒ  )rI   rÏ  rã  rñ  r0   r1   r¼   rä  rå  rÄ   r  s              r)   Útest_empty_a_bzTestLstsq.test_empty_a_bÄ  só   € ô �I‰I�a˜!‘eÓ×$Ñ$ Q¨Ó*ˆÜ�G‰G�Q˜�JÓˆÜ &§¡¨Q°¸Ô >Ñˆˆ9�d˜AØ�Š6Ü�Q˜!‘V—L‘L“NÔ#Ü�Q—W‘W˜q %˜jÔ)Ü�Y—_‘_°1°q²5¨¡x¸dÔDØˆqŠ5�U˜Q’Yà”B—F‘F˜1˜a“LÑ ˆAÜ 	¨A°©E¯;©;¸B¨;Ó+?Ô@Ü�Tœ3˜q !›9Ô%Ü�Q—W‘Wœs 1 a›y˜lÕ+r+   c                 óT  — t        j                  g d¢«      }t        j                  g d¢«      }t        j                  |t        j                  t	        |«      «      g«      j
                  }t        t        d«      5  t        j                  ||d ¬«       d d d «       y # 1 sw Y   y xY w)N)r   rn   rp   rq   )r    gš™™™™™É?gÍÌÌÌÌÌì?gÍÌÌÌÌÌ @gffffff
@zIncompatible dimensionsrÜ  )
r%   r   Úvstackr™  rî  rë  r   r   r   rÞ  )rI   r¼   Úyr“  s       r)   Útest_incompatible_dimsz TestLstsq.test_incompatible_dimsÜ  st   € ä�H‰H’\Ó"ˆÜ�H‰HÒ-Ó.ˆÜ�I‰I�qœ"Ÿ'™'¤# a£&›/Ð*Ó+×-Ñ-ˆÜ ¤Ð.GÓHñ 	+Ü�L‰L˜˜A TÕ*÷	+÷ 	+ñ 	+ús   Á<BÂB'N)	rS   rT   rU   rð  rõ   rö   r+  ró  r÷  rW   r+   r)   ré  ré  ±  s7   „ ò!ð$ ‡[�[×ÑÒ0ò 3ó ñ,óð,ó+r+   ré  Údtz?bBhHiIqQefdgFDGOc                   óŽ  — e Zd Z ej                  d«      Zeg d¢   Zeg d¢   Zeg d¢   ZeeeegZ	 e
ddgddgg«      Z ej                  egggdz  «      Ze ej                  d«       ej                  d	«       ej                  d
«      gZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zej2                  j5                  ed¬«      d„ «       Zy)ÚTestMatrixPowerrr   )rq   r   rn   rp   )rp   rq   r   rn   )rn   rp   rq   r   rn   r   rp   rÔ   ÚgÚGc                 óš  — | j                   j                  |«      }t        t        |ddz  dz   dz   dz   «      | j                  «       t        t        |ddz  dz   dz   dz   «      | j                   «       t        t        |ddz  dz   dz   dz   «      | j
                  «       t        t        |ddz  dz   dz   dz   «      | j                  «       y )Nrp   éd   i   é    r   rn   rq   )Úrshft_1rÈ  r   r   Úrshft_0Úrshft_2Úrshft_3)rI   rø  Úrshfts      r)   Útest_large_powerz TestMatrixPower.test_large_powerò  sÂ   € Ø—‘×#Ñ# BÓ'ˆÜÜ˜  3¡¨¡°Ñ 5¸Ñ 9Ó:¸D¿L¹Lô	JäÜ˜  3¡¨¡°Ñ 5¸Ñ 9Ó:¸D¿L¹Lô	JäÜ˜  3¡¨¡°Ñ 5¸Ñ 9Ó:¸D¿L¹Lô	JäÜ˜  3¡¨¡°Ñ 5¸Ñ 9Ó:¸D¿L¹Lõ	Jr+   c                 ó°   — d„ }| j                   D ]D  } ||j                  |«      «       |t        k7  sŒ$ || j                  j                  |«      «       ŒF y )Nc                 ó†   — t        | d«      }t        |t        | «      «       t        |j                  | j                  «       y )Nr   )r   r   r  r.   )ÚMÚmzs     r)   Útzz.TestMatrixPower.test_power_is_zero.<locals>.tzþ  s0   € Ü˜a Ó#ˆBÜ˜Ô6°qÓ9Ô:Ü˜Ÿ™ 1§7¡7Õ+r+   ©Ú	rshft_allrÈ  ÚobjectÚstacked©rI   rø  r
  r  s       r)   Útest_power_is_zeroz"TestMatrixPower.test_power_is_zeroý  sJ   € ò	,ð
 —>‘>ò 	,ˆCÙˆs�z‰z˜"‹~ÔØ”V‹|Ù�4—<‘<×&Ñ& rÓ*Õ+ñ	,r+   c                 ó°   — d„ }| j                   D ]D  } ||j                  |«      «       |t        k7  sŒ$ || j                  j                  |«      «       ŒF y )Nc                 ót   — t        | d«      }t        || «       t        |j                  | j                  «       y )Nrn   )r   r   r.   )r  r	  s     r)   r
  z-TestMatrixPower.test_power_is_one.<locals>.tz	  s*   € Ü˜c 1Ó%ˆBÜ˜˜SÔ!Ü˜Ÿ™ 3§9¡9Õ-r+   r  r  s       r)   Útest_power_is_onez!TestMatrixPower.test_power_is_one  sJ   € ò	.ð
 —>‘>ò 	,ˆCÙˆs�z‰z˜"‹~ÔØ”V‹|Ù�4—<‘<×&Ñ& rÓ*Õ+ñ	,r+   c                 ó°   — d„ }| j                   D ]D  } ||j                  |«      «       |t        k7  sŒ$ || j                  j                  |«      «       ŒF y )Nc                 óÀ   — t        | d«      }| j                  t        k7  rt        nt        }t        | || | «      «       t        |j                  | j                  «       y )Nrp   )r   r.   r  r
   r   r   )r  r	  Úmmuls      r)   r
  z-TestMatrixPower.test_power_is_two.<locals>.tz  sB   € Ü˜c 1Ó%ˆBØ ŸY™Y¬&Ò0•6´cˆDÜ˜™T # s›^Ô,Ü˜Ÿ™ 3§9¡9Õ-r+   r  r  s       r)   Útest_power_is_twoz!TestMatrixPower.test_power_is_two  sJ   € ò	.ð —>‘>ò 	,ˆCÙˆs�z‰z˜"‹~ÔØ”V‹|Ù�4—<‘<×&Ñ& rÓ*Õ+ñ	,r+   c                 óx   — d„ }| j                   D ](  }|| j                  vsŒ ||j                  |«      «       Œ* y )Nc                 ó’   — t        | d«      }| j                  t        k7  rt        nt        }t         ||| «      t        | «      «       y ©Nr    )r   r.   r  r
   r   r   r  )r  Úinvmatr  s      r)   r
  z3TestMatrixPower.test_power_is_minus_one.<locals>.tz   s;   € Ü! # rÓ*ˆFØ ŸY™Y¬&Ò0•6´cˆDÜÙ�V˜SÓ!Ô#<¸SÓ#AõCr+   )r  ÚdtnoinvrÈ  r  s       r)   Útest_power_is_minus_onez'TestMatrixPower.test_power_is_minus_one  s9   € ò	Cð —>‘>ò 	#ˆCØ˜Ÿ™Ò%Ù�3—:‘:˜b“>Õ"ñ	#r+   c                 ó”   — | j                   j                  |«      }t        t        t        |d«       t        t        t        |dg«       y )Ng      ø?rn   )r  rÈ  r   Ú	TypeErrorr   ©rI   rø  r  s      r)   Útest_exceptions_bad_powerz)TestMatrixPower.test_exceptions_bad_power*  s4   € Ø�l‰l×!Ñ! "Ó%ˆÜ”i¤¨s°CÔ8Ü”i¤¨s°Q°CÕ8r+   c                 ó
  — t        t        t        t        j                  dg|«      d«       t        t        t        t        j                  dgdgg|«      d«       t        t        t        t        j
                  d|«      d«       y )Nrn   rp   )rr   rq   rp   )r   r   r   r%   r   r™  )rI   rø  s     r)   Útest_exceptions_non_squarez*TestMatrixPower.test_exceptions_non_square/  sW   € Ü”k¤<´·±¸1¸#¸rÓ1BÀAÔFÜ”k¤<´·±¸A¸3ÀÀ¸*ÀbÓ1IÈ1ÔMÜ”k¤<´·±¸ÀBÓ1GÈÕKr+   úfp errors don't work in wasm©r   c                 ó„   — || j                   v ry | j                  j                  |«      }t        t        t
        |d«       y r  )r  ÚnoninvrÈ  r   r   r   r   s      r)   Útest_exceptions_not_invertiblez.TestMatrixPower.test_exceptions_not_invertible4  s3   € à�—‘ÑØØ�k‰k× Ñ  Ó$ˆÜ”k¤<°°bÕ9r+   N)rS   rT   rU   r%   rs  r  r   r  r  r  r   r'  Úblockr  r  r.   r  r  r  r  r  r  r!  r#  rõ   rö   Úskipifr    r(  rW   r+   r)   rú  rú  å  së   „ ð ˆb�f‰f�Q‹i€GØ’lÑ#€GØ’lÑ#€GØ’lÑ#€GØ˜' 7¨GÐ4€IÙ�Q˜�F˜Q ˜FÐ#Ó$€FØˆb�h‰h˜'˜˜�} Q‘Ó'€Gà�x�r—x‘x “} h b§h¡h¨s£m°X°R·X±X¸c³]ÐC€Gò	Jò	,ò	,ò
,ò	#ò9ò
Lð
 ‡[�[×Ñ˜Ð(FÐÓGñ:ó Hñ:r+   rú  c                   ó   — e Zd Zd„ Zy)ÚTestEigvalshCasesc                 ó4  — t        j                  |d«      }t        j                  |«      \  }}|j                  d¬«       t	        ||t        |j                  «      ¬«       t        j                  |d«      }t	        ||t        |j                  «      ¬«       y )NÚLr    rÂ  rR  rg  )r   ÚeigvalshrC  r�  r   r;   r.   )rI   r0   r1   rH   rD  rE  rF  Úev2s           r)   rM   zTestEigvalshCases.do>  sn   € ô �_‰_˜Q Ó$ˆÜ"ŸJ™J q›MÑˆ�Ø�‰˜"ˆÔÜ˜˜G¬(°2·8±8Ó*<Õ=ä�o‰o˜a Ó%ˆÜ˜˜W¬8°B·H±HÓ+=Ö>r+   Nr  rW   r+   r)   r,  r,  <  s   „ ó	?r+   r,  c                   ój   — e Zd Zej                  j                  deeee	g«      d„ «       Z
d„ Zd„ Zd„ Zy)ÚTestEigvalshr.   c                 óº   — t        j                  ddgddgg|¬«      }t         j                  j                  |«      }t	        |j
                  t        |«      «       y r  )r%   r   r   r/  r   r.   r7   )rI   r.   r¼   rZ  s       r)   r  zTestEigvalsh.test_typesK  sF   € ä�H‰H�q˜#�h  a Ð)°Ô7ˆÜ�I‰I×Ñ˜qÓ!ˆÜ�Q—W‘Wœn¨UÓ3Õ4r+   c                 óX  — t        j                  ddgddggt         j                  ¬«      }t        t        t         j
                  j                  |d¬«       t        t        t         j
                  j                  |d«       t        t        t         j
                  j                  |d«       y ©Nrn   r  r6   Úlrong©ÚUPLOÚlowerÚupper)r%   r   rØ  r   r  r   r/  ©rI   r¼   s     r)   Útest_invalidzTestEigvalsh.test_invalidQ  sk   € Ü�H‰H�q˜#�h  a Ð)´·±Ô<ˆÜ”j¤"§)¡)×"4Ñ"4°a¸gÕFÜ”j¤"§)¡)×"4Ñ"4°a¸ÔAÜ”j¤"§)¡)×"4Ñ"4°a¸ÕAr+   c                 ó  — t        j                  ddgddggt         j                  ¬«      }t        j                  ddgddggt         j                  ¬«      }t        j                  ddgt         j                  ¬«      }t        t         j                  «      }t         j                  j                  |«      }t        |||¬«       t         j                  j                  |d¬«      }t        |||¬«       t         j                  j                  |d¬«      }t        |||¬«       t         j                  j                  |d	¬«      }t        |||¬«       t         j                  j                  |d
¬«      }t        |||¬«       y ©Nr   rn   r6   r    rR  r.  r7  Úlrg  rm  )r%   r   r   r;   r   r/  r   )rI   ÚKloÚKupÚtgtrS  rZ  s         r)   Ú	test_UPLOzTestEigvalsh.test_UPLOW  s   € Ü�h‰h˜˜A˜  A Ð'¬r¯y©yÔ9ˆÜ�h‰h˜˜A˜  A Ð'¬r¯y©yÔ9ˆÜ�h‰h˜˜A�w¤b§i¡iÔ0ˆÜœŸ	™	Ó"ˆô �I‰I×Ñ˜sÓ#ˆÜ˜˜3 TÕ*ä�I‰I×Ñ˜s¨ÐÓ-ˆÜ˜˜3 TÕ*ä�I‰I×Ñ˜s¨ÐÓ-ˆÜ˜˜3 TÕ*ä�I‰I×Ñ˜s¨ÐÓ-ˆÜ˜˜3 TÕ*ä�I‰I×Ñ˜s¨ÐÓ-ˆÜ˜˜3 TÖ*r+   c                 óú  —  G d„ dt         j                  «      }t        j                  dt         j                  ¬«      j	                  |«      }t        j                  |«      }t        |j                  j                  t         j                  u «       t        d|j                  «       t        t        |t         j                  «      «       t        j                  dt         j                  ¬«      j	                  |«      }t        j                  |«      }t        |j                  j                  t         j                  u «       t        d|j                  «       t        t        |t         j                  «      «       y )Nc                   ó   — e Zd Zy)ú/TestEigvalsh.test_0_size.<locals>.ArraySubclassNr  rW   r+   r)   r   rF  o  r!  r+   r   r7  r6   rN  ri   rj   )r%   r&   r8  r9  r²   r   r/  r   r.   r#   r:  r   r˜   r$   r;  rØ  r<  s       r)   r&  zTestEigvalsh.test_0_sizem  sà   € ô	œBŸJ™Jô 	ä�H‰H�Y¤b§g¡gÔ.×3Ñ3°MÓBˆÜ�o‰o˜aÓ ˆÜ�—	‘	—‘¤"§*¡*Ð,Ô-Ü�V˜SŸY™YÔ'ä”
˜3¤§
¡
Ó+Ô,ä�H‰H�V¤2§<¡<Ô0×5Ñ5°mÓDˆÜ�o‰o˜aÓ ˆÜ�—	‘	—‘¤"§*¡*Ð,Ô-Ü�T˜3Ÿ9™9Ô%ä”
˜3¤§
¡
Ó+Õ,r+   N©rS   rT   rU   rõ   rö   r+  r   r   r   r   r  r<  rC  r&  rW   r+   r)   r2  r2  J  s?   „ Ø‡[�[×Ñ˜W v¨v°wÀÐ&HÓIñ5ó Jð5ò
Bò+ó,-r+   r2  c                   ó   — e Zd Zd„ Zy)ÚTestEighCasesc                 ó˜  — t        j                  |«      }|j                  |j                  }}t        j                  |«      \  }}|j                  d¬«       t        ||«       t        t        ||«      t        j                  |«      dd d d …f   t        j                  |«      z  t        |j                  «      ¬«       t        j                  |d«      \  }	}
t        |	|«       t        t        ||
«      t        j                  |	«      dd d d …f   t        j                  |
«      z  t        |j                  «      t        |«      ¬«       y )Nr    rÂ  .rR  rg  )rS  Úerr_msg)r   ÚeighrT  rU  rC  r�  r   r   r  r%   r   r;   r.   Úrepr)rI   r0   r1   rH   r=  rD  ÚevcrE  rF  r0  Úevc2s              r)   rM   zTestEighCases.do‚  sö   € ô �k‰k˜!‹nˆØ—/‘/ 3×#3Ñ#3ˆCˆÜ"ŸJ™J q›MÑˆ�Ø�‰˜"ˆÔÜ˜B Ô(äœ¨¨3Ó/ÜŸ
™
 2› s¨D²! |Ñ4´r·z±zÀ#³ÑFÜ% b§h¡hÓ/õ	1ô —K‘K  3Ó'‰	ˆˆTÜ˜C Ô)äœ¨¨4Ó0ÜŸ
™
 3›¨¨T²1¨Ñ5¼¿
¹
À4Ó8HÑHÜ% b§h¡hÓ/¼¸a»ö	Br+   Nr  rW   r+   r)   rI  rI  €  s   „ óBr+   rI  c                   ój   — e Zd Zej                  j                  deeee	g«      d„ «       Z
d„ Zd„ Zd„ Zy)ÚTestEighr.   c                 óì   — t        j                  ddgddgg|¬«      }t         j                  j                  |«      \  }}t	        |j
                  t        |«      «       t	        |j
                  |«       y r  )r%   r   r   rL  r   r.   r7   rY  s        r)   r  zTestEigh.test_types˜  sV   € ä�H‰H�q˜#�h  a Ð)°Ô7ˆÜ�y‰y�~‰~˜aÓ ‰ˆˆ1Ü�Q—W‘Wœn¨UÓ3Ô4Ü�Q—W‘W˜eÕ$r+   c                 óX  — t        j                  ddgddggt         j                  ¬«      }t        t        t         j
                  j                  |d¬«       t        t        t         j
                  j                  |d«       t        t        t         j
                  j                  |d«       y r5  )r%   r   rØ  r   r  r   rL  r;  s     r)   r<  zTestEigh.test_invalidŸ  se   € Ü�H‰H�q˜#�h  a Ð)´·±Ô<ˆÜ”j¤"§)¡)§.¡.°!¸'ÕBÜ”j¤"§)¡)§.¡.°!°WÔ=Ü”j¤"§)¡)§.¡.°!°WÕ=r+   c                 ó   — t        j                  ddgddggt         j                  ¬«      }t        j                  ddgddggt         j                  ¬«      }t        j                  ddgt         j                  ¬«      }t        t         j                  «      }t         j                  j                  |«      \  }}t        |||¬«       t         j                  j                  |d¬«      \  }}t        |||¬«       t         j                  j                  |d¬«      \  }}t        |||¬«       t         j                  j                  |d	¬«      \  }}t        |||¬«       t         j                  j                  |d
¬«      \  }}t        |||¬«       y r>  )r%   r   r   r;   r   rL  r   )rI   r@  rA  rB  rS  rZ  r[  s          r)   rC  zTestEigh.test_UPLO¥  s&  € Ü�h‰h˜˜A˜  A Ð'¬r¯y©yÔ9ˆÜ�h‰h˜˜A˜  A Ð'¬r¯y©yÔ9ˆÜ�h‰h˜˜A�w¤b§i¡iÔ0ˆÜœŸ	™	Ó"ˆô �y‰y�~‰~˜cÓ"‰ˆˆ1Ü˜˜3 TÕ*ä�y‰y�~‰~˜c¨ˆ~Ó,‰ˆˆ1Ü˜˜3 TÕ*ä�y‰y�~‰~˜c¨ˆ~Ó,‰ˆˆ1Ü˜˜3 TÕ*ä�y‰y�~‰~˜c¨ˆ~Ó,‰ˆˆ1Ü˜˜3 TÕ*ä�y‰y�~‰~˜c¨ˆ~Ó,‰ˆˆ1Ü˜˜3 TÖ*r+   c                 óB  —  G d„ dt         j                  «      }t        j                  dt         j                  ¬«      j	                  |«      }t        j                  |«      \  }}t        |j                  j                  t         j                  u «       t        |j                  j                  t         j                  u «       t        |j                  |j                  «       t        d|j                  «       t        t        |t         j                  «      «       t        j                  dt         j                  ¬«      j	                  |«      }t        j                  |«      \  }}t        |j                  j                  t         j                  u «       t        |j                  j                  t         j                  u «       t        |j                  |j                  «       t        d|j                  «       t        t        |t         j                  «      «       y )Nc                   ó   — e Zd Zy)ú+TestEigh.test_0_size.<locals>.ArraySubclassNr  rW   r+   r)   r   rW  ½  r!  r+   r   r7  r6   rN  ri   rj   )r%   r&   r8  r9  r²   r   rL  r   r.   r#   r:  r   r˜   r$   r;  rØ  r_  s        r)   r&  zTestEigh.test_0_size»  s@  € ô	œBŸJ™Jô 	ä�H‰H�Y¤b§g¡gÔ.×3Ñ3°MÓBˆÜ—[‘[ “^‰
ˆˆUÜ�—‘× Ñ ¤B§J¡JÐ.Ô/Ü�—	‘	—‘¤"§*¡*Ð,Ô-Ü�Q—W‘W˜eŸk™kÔ*Ü�V˜SŸY™YÔ'ä”
˜1œbŸj™jÓ)Ô*ä�H‰H�V¤2§<¡<Ô0×5Ñ5°mÓDˆÜ—[‘[ “^‰
ˆˆUÜ�—‘× Ñ ¤B§L¡LÐ0Ô1Ü�—	‘	—‘¤"§*¡*Ð,Ô-Ü�Q—W‘W˜eŸk™kÔ*Ü�T˜3Ÿ9™9Ô%ä”
˜1œbŸj™jÓ)Õ*r+   NrG  rW   r+   r)   rQ  rQ  —  s>   „ Ø‡[�[×Ñ˜W v¨v°wÀÐ&HÓIñ%ó Jð%ò>ò+ó,+r+   rQ  c                   ó$   — e Zd ZdZdZed„ «       Zy)Ú_TestNormBaseNc                 ó$  — t        | j                  j                  t        j                  «      r+t        |j                  | j                  j                  «       y t        t        |j                  j                  t        j                  «      «       y r"   )	Ú
issubclassr.   r#   r%   Úinexactr   Úrealr   rá  )r¼   r=  s     r)   Úcheck_dtypez_TestNormBase.check_dtypeÖ  sK   € ä�a—g‘g—l‘l¤B§J¡JÔ/Ü˜Ÿ™ A§F¡F§L¡LÕ1ô ”J˜sŸy™yŸ~™~¬r¯{©{Ó;Õ<r+   )rS   rT   rU   rø  ÚdecÚstaticmethodr^  rW   r+   r)   rY  rY  Ò  s   „ Ø	€BØ
€Càñ=ó ñ=r+   rY  c                   ó*   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zy)Ú_TestNormGeneralc           
      óè   — t        t        g «      d«       t        t        t        g | j                  ¬«      «      d«       t        t        t	        t        g | j                  ¬«      «      «      d«       y )NrÓ  r6   )r   r   r   rø  r   rQ   s    r)   Ú
test_emptyz_TestNormGeneral.test_emptyá  sI   € Ü”T˜"“X˜sÔ#Ü”Tœ% ¨$¯'©'Ô2Ó3°SÔ9Ü”Tœ*¤U¨2°T·W±WÔ%=Ó>Ó?ÀÕEr+   c                 ó‚  — t        j                  g d¢«      }t         j                  d   }t         j                  d   }||z   }|D �]ê  }|j                  |«      }t	        |t         j
                   «      }| j                  ||«       t        |d«       t        «       5 }|j                  t        d«       t	        |d«      }| j                  ||«       t        |d«       d d d «       t	        |d«      }| j                  ||«       t        |d«       t	        |d	«      }| j                  ||«       t        |d
«       t	        |d«      }| j                  ||«       t        ||j                  j                  d
«      |j                  j                  d«      z  «       t	        |d«      }| j                  ||«       t        ||j                  j                  d
«      |j                  j                  d«      z  «       t	        |t         j
                  «      }| j                  ||«       t        |d«       �Œí y # 1 sw Y   �ŒXxY w)Nr¢  Ú
AllIntegerÚAllFloatrÓ  údivide by zero encounteredr    r   rp   rn   r`   r  rr   g      Ð?r_   )r%   r   Ú	typecodesrÈ  r   r   r^  r   r   ÚfilterÚRuntimeWarningr.   r#   ©	rI   r0   Úexact_typesÚinexact_typesÚ	all_typesÚ	each_typeÚatÚanrï  s	            r)   Útest_vector_return_typez(_TestNormGeneral.test_vector_return_typeæ  sÎ  € Ü�H‰H’YÓˆä—l‘l <Ñ0ˆÜŸ™ ZÑ0ˆà -Ñ/ˆ	à"ó 	)ˆIØ—‘˜)Ó$ˆBä�bœ2Ÿ6™6˜'Ó"ˆBØ×Ñ˜R Ô$Ü  CÔ(ä"Ó$ð -¨Ø—
‘
œ>Ð+GÔHÜ˜"˜b“\�Ø× Ñ   RÔ(Ü# B¨Ô,÷	-ô �b˜!“ˆBØ×Ñ˜R Ô$Ü  AÔ&ä�b˜!“ˆBØ×Ñ˜R Ô$Ü  CÔ(ä�b˜!“ˆBØ×Ñ˜R Ô$Ü  B§H¡H§M¡M°#Ó$6¸¿¹¿¹ÀgÓ8NÑ$NÔOä�b˜!“ˆBØ×Ñ˜R Ô$Ü  B§H¡H§M¡M°#Ó$6¸¿¹¿¹ÀgÓ8NÑ$NÔOä�bœ"Ÿ&™&Ó!ˆBØ×Ñ˜R Ô$Ü  CÖ(ñ?	)÷-ñ -ús   ÂAH4È4H>	c                 óî   ‡ — g d¢}g d¢}g d¢}ˆ fd„}|||fD ]
  } ||«       Œ t        |‰ j                  ¬«      t        |‰ j                  ¬«      t        |‰ j                  ¬«      fD ]
  } ||«       Œ y )N)rn   rp   rq   rr   )r    r¡   r¢   rŸ   )r    rp   r¢   rr   c                 óv  •— t         j                  j                  t        | «      d‰j                  ¬«       t         j                  j                  t        | t
        «      d‰j                  ¬«       t         j                  j                  t        | t
         «      d‰j                  ¬«       t         j                  j                  t        | d«      d‰j                  ¬«       t         j                  j                  t        | d«      d‰j                  ¬«       t         j                  j                  t        | d	«      d‰j                  ¬«       t         j                  j                  t        | d
«      d‰j                  ¬«       t         j                  j                  t        | d«      d‰j                  ¬«       y )Ng�¥6Ò­è@©r-   rb   r_   rn   ç      $@r    g¸…ëQ¸Þ?rp   r¡   gÊsÔcÙÑê?r   rr   )r%   Útestingr   r   r_  r   )r[  rI   s    €r)   Ú_testz+_TestNormGeneral.test_vector.<locals>._test  sD  ø€ Ü�J‰J×*Ñ*¬4°«7°IØ37·8±8ð +ô =ä�J‰J×*Ñ*¬4°´3«<¸Ø37·8±8ð +ô =ä�J‰J×*Ñ*¬4°´C°4«=¸#Ø37·8±8ð +ô =ä�J‰J×*Ñ*¬4°°1«:°tØ37·8±8ð +ô =ä�J‰J×*Ñ*¬4°°2«;¸	Ø37·8±8ð +ô =ä�J‰J×*Ñ*¬4°°1«:°yØ37·8±8ð +ô =ä�J‰J×*Ñ*¬4°°2«;Ð9MØ37·8±8ð +ô =ä�J‰J×*Ñ*¬4°°1«:°qØ37·8±8ð +õ =r+   r6   )r   rø  )rI   r0   r1   r  ry  r[  s   `     r)   Útest_vectorz_TestNormGeneral.test_vector  sx   ø€ ÚˆÚˆÚˆô	=ð$ �Q˜�ò 	ˆAÙ�!�Hð	ô ˜ §¡Ô)¬5°¸$¿'¹'Ô+BÜ˜ §¡Ô)ð+ò 	ˆAá�!�Hñ	r+   c                 ó  — t        g d¢g d¢g| j                  ¬«      }d dddddt        j                  t        j                   fD ]   }t	        |j
                  d   «      D �cg c]  }t        |d d …|f   |¬	«      ‘Œ }}t        t        ||d¬
«      |«       t	        |j
                  d   «      D �cg c]  }t        ||d d …f   |¬	«      ‘Œ }}t        t        ||d¬
«      |«       Œ¢ t        j                  dd| j                  ¬«      j                  ddd«      }|j                  }d ddddt        j                  t        j                   dfD �]  }t        j                  t	        | |«      d«      D ]ó  }|\  }	}
|	dk  r|	|z  }	|
dk  r|
|z  }
|	|
k(  rt        t        t        |||¬
«       Œ:t        |||¬
«      }||	|
z   z
  }|	|
k  rEt	        |j
                  |   «      D �cg c]#  }t        |d d  j                  ||¬«      |¬	«      ‘Œ% }}nNt	        |j
                  |   «      D �cg c]-  }t        |d d  j                  ||¬«      j                   |¬	«      ‘Œ/ }}t        ||«       Œõ �Œ y c c}w c c}w c c}w c c}w )N©rn   rp   rq   ©rr   rƒ   r‘   r6   r    r   rn   rp   rq   ©Úord©r  rÃ  é   rr   r¡   rˆ  rÂ  )r   rø  r%   ÚInfr
  r˜   r   r   r"  r—   rª   r«   Úcombinationsr   r  Útakerë  )rI   r“  ÚorderÚkÚ	expected0Ú	expected1ÚBÚndrÃ  Úrow_axisÚcol_axisrã  Úk_indexr$  s                 r)   Ú	test_axisz_TestNormGeneral.test_axis-  sc  € ô ’9šiÐ(°·±Ô8ˆØ˜B  1 a¨¬B¯F©F´R·V±V°GÐ<ò 	GˆEÜ;@ÀÇÁÈÁÓ;LÖM°aœ˜a¢ 1 ™g¨5Ö1ÐMˆIÐMÜ¤ Q¨E¸Ô :¸IÔFÜ;@ÀÇÁÈÁÓ;LÖM°aœ˜a ¢1 ™g¨5Ö1ÐMˆIÐMÜ¤ Q¨E¸Ô :¸IÕFð		Gô �I‰I�a˜ 4§7¡7Ô+×3Ñ3°A°q¸!Ó<ˆØ�V‰VˆØ˜B  2 q¬"¯&©&´2·6±6°'¸5ÐAó 	5ˆEÜ!×.Ñ.¬u°b°S¸"«~¸qÓAò 5�Ø%)Ñ"�˜(Ø˜a’<Ø ‘N�HØ˜a’<Ø ‘N�HØ˜xÒ'Ü!¤*¬d°A¸5ÀtÖLä˜Q E°Ô5�Að ! H¨xÑ$7Ñ8�GØ (Ò*ä-2°1·7±7¸7Ñ3CÓ-Dö$FØ()ô %)¨©1¨¯©°1¸7¨Ó)CÈÖ$Oð $F˜ñ $Fô .3°1·7±7¸7Ñ3CÓ-Dö$FØ()ô %)¨©1¨¯©°1¸7¨Ó)C×)EÑ)EÈ5Ö$Qð $F˜ð $Fä'¨¨8Õ4ò)5ñ	5ùò NùâMùò,$Fùò$Fs   Á"I-Â1I2Ç"(I7È'2I<c                 ót  — t        j                  dd| j                  ¬«      j                  ddd«      }d}d}t	        |d d ¬	«      }t	        |d d d
¬«      }t        t        j                  |«      ||j                  d d «      ¬«       d}t        |j                  |k(  |j                  |j                  |d d «      «       d dddddt         j                  t         j                   fD ]Ä  }t        |j                  «      D ]ª  }t	        |||¬	«      }t	        |||d
¬«      }t        t        j                  |«      ||j                  ||«      ¬«       t        |j                  «      }d||<   t        |«      }t        |j                  |k(  |j                  |j                  |||«      «       Œ¬ ŒÆ d ddddt         j                  t         j                   ddf	D ]ã  }t        j                   t        |j                  «      d«      D ]µ  }t	        |||¬	«      }t	        |||d
¬«      }t        t        j                  |«      ||j                  ||«      ¬«       t        |j                  «      }d||d   <   d||d   <   t        |«      }t        |j                  |k(  |j                  |j                  |||«      «       Œ· Œå y )Nrn   r�  r6   rp   rq   rr   zorder {0}, axis = {1}z;Shape mismatch found {0}, expected {1}, order={2}, axis={3}r€  T)r  rÃ  Úkeepdims)rK  )rn   rn   rn   r    r   r¡   rˆ  Únuc)r%   r"  rø  r—   r   r   ÚsqueezeÚformatr   r˜   r‚  r
  rª   r¸   r­   r«   Úpermutations)	rI   r“  Úallclose_errÚ	shape_errr$  ÚfoundÚexpected_shaper…  r†  s	            r)   Útest_keepdimsz_TestNormGeneral.test_keepdimsR  sy  € Ü�I‰I�a˜ 4§7¡7Ô+×3Ñ3°A°q¸!Ó<ˆà.ˆØQˆ	ô ˜˜t¨$Ô/ˆÜ�Q˜D t°dÔ;ˆÜœŸ
™
 5Ó)¨8Ø ,× 3Ñ 3°D¸$Ó ?õ	Aà"ˆÜ�—‘˜~Ñ-Ø× Ñ  §¡¨n¸dÀDÓIô	Kð ˜B  1 a¨¬B¯F©F´R·V±V°GÐ<ò 
	QˆEÜ˜1Ÿ6™6“]ò 	Q�Ü  u°1Ô5�Ü˜Q E°¸DÔA�Ü¤§
¡
¨5Ó 1°8Ø(4×(;Ñ(;¸EÀ1Ó(EõGä!% a§g¡g£�Ø$%�˜qÑ!Ü!& ~Ó!6�Ü˜Ÿ™ ~Ñ5Ø!×(Ñ(¨¯©°nÀeÈQÓOõQñ	Qð
	Qð ˜B  2 q¬"¯&©&´2·6±6°'¸5À%ÐHò 	QˆEÜ×+Ñ+¬E°!·&±&«M¸1Ó=ò 
Q�Ü  u°1Ô5�Ü˜Q E°¸DÔA�Ü¤§
¡
¨5Ó 1°8Ø(4×(;Ñ(;¸EÀ1Ó(EõGä!% a§g¡g£�Ø'(�˜q ™tÑ$Ø'(�˜q ™tÑ$Ü!& ~Ó!6�Ü˜Ÿ™ ~Ñ5Ø!×(Ñ(¨¯©°nÀeÈQÓOõQñ
Qñ	Qr+   N)rS   rT   rU   rd  rs  rz  rŽ  r™  rW   r+   r)   rb  rb  ß  s   „ òFò
')òRò<#5óJ(Qr+   rb  c                   óB   — e Zd Zej                  Zd„ Zd„ Zd„ Zd„ Zd„ Z	y)Ú_TestNorm2Dc                 óf   — t        t        | j                  g g| j                  ¬«      «      d«       y )Nr6   rÓ  )r   r   r   rø  rQ   s    r)   Útest_matrix_emptyz_TestNorm2D.test_matrix_empty‚  s$   € Ü”T˜$Ÿ*™* b T°·±˜*Ó9Ó:¸CÕ@r+   c                 ó  — | j                  g d¢g d¢g«      }t        j                  d   }d}||z   }|D �]À  }|j                  |«      }t	        |t        j
                   «      }| j                  ||«       t        |d«       t        «       5 }|j                  t        d«       t	        |d«      }| j                  ||«       t        |d«       d d d «       t	        |d	«      }| j                  ||«       t        |d«       t	        |d
«      }| j                  ||«       t        |d«       t	        |d«      }| j                  ||«       t        |d«       t	        |t        j
                  «      }| j                  ||«       t        |d«       t	        |d«      }| j                  ||«       t        |d«       t	        |d«      }| j                  ||«       t        j                  j                  |dd¬«       �ŒÃ y # 1 sw Y   �Œ.xY w)Nr¢  r7  rf  ÚfdFDr`   rh  r    r_   rn   rp   gªLXèz¶û?r¡   rˆ  r‘  gU&,t=Û@r‘   rv  )r   r%   ri  rÈ  r   r   r^  r   r   rj  rk  rx  rl  s	            r)   Útest_matrix_return_typez#_TestNorm2D.test_matrix_return_type…  sÈ  € Ø�J‰Jš	¢9Ð-Ó.ˆä—l‘l <Ñ0ˆð
 ˆà -Ñ/ˆ	à"ó %	NˆIØ—‘˜)Ó$ˆBä�bœ2Ÿ6™6˜'Ó"ˆBØ×Ñ˜R Ô$Ü  CÔ(ä"Ó$ð -¨Ø—
‘
œ>Ð+GÔHÜ˜"˜b“\�Ø× Ñ   RÔ(Ü# B¨Ô,÷	-ô �b˜!“ˆBØ×Ñ˜R Ô$Ü  CÔ(ä�b˜!“ˆBØ×Ñ˜R Ô$Ü  NÔ3ä�b˜"“ˆBØ×Ñ˜R Ô$Ü  CÔ(ä�bœ"Ÿ&™&Ó!ˆBØ×Ñ˜R Ô$Ü  CÔ(ä�b˜%“ˆBØ×Ñ˜R Ô$Ü  CÔ(ä�b˜%“ˆBØ×Ñ˜R Ô$ô �J‰J×*Ñ*¨2Ð/AÈ1Ð*ÖMñK%	N÷-ñ -ús   ÂAG9Ç9H	c                 ój  — | j                  ddgddgg| j                  ¬«      }t        t        |«      d«       t        t        |d«      d«       t        t        |d«      d	«       t        t        |t        «      d
«       t        t        |t         «      d«       t        t        |d«      d	«       t        t        |d«      d«       t        t        |d«      d«       t        t        |d«      d«       t        t        t        |d«       t        t        t        |d«       t        t        t        |d«       y )Nrn   rq   rƒ   r�   r6   g…¹ŽT"@rˆ  r‘  rw  g      (@rb   r    rd   rp   g„öW³?"@r¡   gÑ—€Ê„ì?Únofror¢   r   )r   rø  r   r   r   r   r  r’  s     r)   Útest_matrix_2x2z_TestNorm2D.test_matrix_2x2¸  sá   € Ø�J‰J˜˜A˜  A Ð'¨t¯w©wˆJÓ7ˆÜœD ›G YÔ/ÜœD  E›N¨IÔ6ÜœD  E›N¨DÔ1ÜœD ¤C›L¨$Ô/ÜœD ¤S D›M¨3Ô/ÜœD  A›J¨Ô-ÜœD  B›K¨Ô-ÜœD  A›JÐ(:Ô;ÜœD  B›KÐ)<Ô=ä”j¤$¨¨7Ô3Ü”j¤$¨¨2Ô.Ü”j¤$¨¨1Õ-r+   c                 óò  — d| j                  g d¢g d¢g d¢g| j                  ¬«      z  }t        t        |«      d«       t        t        |d«      d«       t        t        |d«      d	«       t        t        |t        «      d
«       t        t        |t         «      d«       t        t        |d«      d«       t        t        |d«      d«       t        t        |d«      d«       t        t        |d«      d«       y )Ngš™™™™™¹?r|  )r‘   r   rƒ   )rq   rp   rn   r6   grj=Q0î?rˆ  r‘  gþB+pcõ?gš™™™™™ñ?g333333ã?rn   r_   r    gš™™™™™Ù?rp   gû&Þê.dì?r¡   gÜ¸Õ ˆçÈ?)r   rø  r   r   r   r’  s     r)   Útest_matrix_3x3z_TestNorm2D.test_matrix_3x3È  s¿   € ð
 Ø�J‰Jš	¢9ªiÐ8ÀÇÁˆJÓHñIˆäœD ›GÐ%9Ô:ÜœD  E›NÐ,@ÔAÜœD  E›NÐ,>Ô?ÜœD ¤C›L¨#Ô.ÜœD ¤S D›M¨3Ô/ÜœD  A›J¨Ô,ÜœD  B›K¨Ô-ÜœD  A›JÐ(;Ô<ÜœD  B›KÐ)<Õ=r+   c                 óì  — | j                  g d¢g d¢g| j                  ¬«      }t        j                  dd| j                  ¬«      j	                  ddd«      }t        t        t        |d	d
«       t        t        t        |dd
«       t        t        t        ddgd	d «       t        t        t        ddgdd «       t        t        t        ddgdd «       dD ]G  }t        t        t        ||d «       t        t        t        ||d«       t        t        t        ||d«       ŒI t        t        j                  t        |d d«       t        t        j                  t        |d d«       t        t        t        |d d«       y )Nr|  r}  r6   rn   r�  rp   rq   rr   rˆ  r   r‘  Útest©r   rq   rN  )rn   rp   ©rp   rq   )r   rn   rp   )	r   rø  r%   r"  r—   r   r  r   Ú	AxisError)rI   r“  r‰  r…  s       r)   Útest_bad_argsz_TestNorm2D.test_bad_argsÙ  s  € ð �J‰Jš	¢9Ð-°T·W±WˆJÓ=ˆÜ�I‰I�a˜ 4§7¡7Ô+×3Ñ3°A°q¸!Ó<ˆô
 	”j¤$¨¨5°!Ô4Ü”j¤$¨¨5°!Ô4Ü”j¤$¨¨A¨°°tÔ<Ü”j¤$¨¨A¨°°tÔ<Ü”j¤$¨¨A¨°¸Ô=ð ò 	>ˆEÜœ*¤d¨A¨u°dÔ;Üœ*¤d¨A¨u°fÔ=Üœ*¤d¨A¨u°fÕ=ð	>ô 	”b—l‘l¤D¨!¨T°1Ô5Ü”b—l‘l¤D¨!¨T°6Ô:Ü”j¤$¨¨4°Õ;r+   N)
rS   rT   rU   r%   r   r�  r   r£  r¥  r«  rW   r+   r)   r›  r›  }  s)   „ ð �H‰H€EòAò1Nòf.ò >ó"<r+   r›  c                   ó   — e Zd Zy)Ú	_TestNormNr  rW   r+   r)   r­  r­  õ  r¹  r+   r­  c                   ó   — e Zd Zd„ Zd„ Zd„ Zy)ÚTestNorm_NonSystematicc                 ó€   — t        j                  dt         j                  ¬«      }t        t	        |d¬«      dd¬«       y )Né
   r6   rq   r~  gÍÌÌÌÌL)@rp   rv  )r%   r"  Ú
longdoubler/   r   r;  s     r)   Útest_longdouble_normz+TestNorm_NonSystematic.test_longdouble_normû  s*   € ô �I‰I�b¤§¡Ô.ˆÜ¤ Q¨A¤°¸qÖAr+   c                 ó‚   — t        j                  dgt         j                  ¬«      }t        t	        |d¬«      dd¬«       y )Ni   €r6   rq   r~  l        rƒ   rv  )r%   r   Úint32r/   r   r;  s     r)   Útest_intminz"TestNorm_NonSystematic.test_intmin  s,   € ô �H‰H�h�Z¤r§x¡xÔ0ˆÜ¤ Q¨A¤°ÀÖCr+   c                 óð  — t        j                  dt         j                  ¬«      }d|d<   d|d<   d}t        t         j                  j                  |d¬	«      |d
¬«       |j                  t         j                  «      }t        t         j                  j                  |d¬	«      |d¬«       |j                  t         j                  «      }t        t         j                  j                  |d¬	«      |d¬«       y )N©rp   r6   y      @      @r   y      À      @rn   g¨ËþÿV;'@rq   r~  r±  rv  é	   rƒ   )	r%   r±   Úclongdoubler/   r   r   rÈ  Ú
complex128r;  )rI   rÌ  r=  s      r)   Útest_complex_high_ordz,TestNorm_NonSystematic.test_complex_high_ord  s¨   € ä�H‰H�T¤§¡Ô0ˆØˆˆ!‰Øˆˆ!‰ØˆÜ¤§	¡	§¡¨q°a Ó 8¸#ÀrÕJØ�H‰H”R—]‘]Ó#ˆÜ¤§	¡	§¡¨q°a Ó 8¸#ÀqÕIØ�H‰H”R—\‘\Ó"ˆÜ¤§	¡	§¡¨q°a Ó 8¸#ÀqÖIr+   N)rS   rT   rU   r³  r¶  r¼  rW   r+   r)   r¯  r¯  ù  s   „ òBòDó
Jr+   r¯  c                   ó(   — e Zd Zej                  ZdZy)Ú_TestNormDoubleBaseé   N)rS   rT   rU   r%   r   rø  r_  rW   r+   r)   r¾  r¾    s   „ Ø	�‰€BØ
�Cr+   r¾  c                   ó(   — e Zd Zej                  ZdZy)Ú_TestNormSingleBaser‘   N)rS   rT   rU   r%   rØ  rø  r_  rW   r+   r)   rÁ  rÁ    s   „ Ø	�‰€BØ
�Cr+   rÁ  c                   ó(   — e Zd Zej                  ZdZy)Ú_TestNormInt64Baser¿  N)rS   rT   rU   r%   Úint64rø  r_  rW   r+   r)   rÃ  rÃ    s   „ Ø	�‰€BØ
�Cr+   rÃ  c                   ó   — e Zd Zy)ÚTestNormDoubleNr  rW   r+   r)   rÆ  rÆ  $  r¹  r+   rÆ  c                   ó   — e Zd Zy)ÚTestNormSingleNr  rW   r+   r)   rÈ  rÈ  (  r¹  r+   rÈ  c                   ó   — e Zd Zy)ÚTestNormInt64Nr  rW   r+   r)   rÊ  rÊ  ,  r¹  r+   rÊ  c                   ó   — e Zd Zd„ Zd„ Zy)ÚTestMatrixRankc                 ó¦  — t        dt        t        j                  d«      «      «       t        j                  d«      }d|d<   t        t        |«      d«       t        t        t        j                  d«      «      d«       t        t        g d¢«      d«       t        t        t        j                  d	«      «      d«       t        t        dg«      d«       t        j
                  |t        j                  d«      t        j                  d«      g«      }t        t        |«      t        j
                  g d
¢«      «       t        t        d«      d«       y )Nrr   rÓ  ©r    r    rq   rr  r   )rn   r   r   r   rn   )rr   )rq   rr   r   )r   r   r%   rs  r8  r   )rI   ÚIÚmss      r)   Útest_matrix_rankzTestMatrixRank.test_matrix_rank2  sÖ   € ä�Qœ¤B§F¡F¨1£IÓ.Ô/ä�F‰F�1‹IˆØˆˆ&‰	Ü”[ “^ QÔ'ä”[¤§¡¨&Ó!1Ó2°AÔ6ä”[¢Ó.°Ô2Ü”[¤§¡¨$£Ó0°!Ô4ä”[ ! Ó% qÔ)ä�X‰X�qœ"Ÿ&™& ›)¤R§X¡X¨e£_Ð5Ó6ˆÜ”[ “_¤b§h¡hªyÓ&9Ô:ä”[ “^ QÕ'r+   c                 óÌ  — t        dt        t        j                  d«      d¬«      «       t        dt        t        j                  d«      d¬«      «       t        dt        t        j
                  d«      d¬«      «       t        j                  d«      }d|d<   t        d	t        |d¬«      «       d
|d<   t        dt        |dd¬«      «       t        d	t        |dd¬«      «       y )Nrr   Try  rn   rr  r   rÓ  rÎ  rq   g:Œ0âŽyE>g¾Ü|"•BE>)r>   Útolgµ;ä¡ˆ°E>)r   r   r%   rs  r™  r8  )rI   rÏ  s     r)   Útest_symmetric_rankz"TestMatrixRank.test_symmetric_rankF  s¤   € Ü�Qœ¤B§F¡F¨1£I¸Ô>Ô?Ü�Qœ¤B§G¡G¨F£O¸tÔDÔEÜ�Qœ¤B§H¡H¨VÓ$4ÀÔEÔFä�F‰F�1‹IˆØˆˆ&‰	Ü�Qœ A°Ô6Ô7àˆˆ&‰	Ü�Qœ A°¸7ÔCÔDÜ�Qœ A°¸7ÔCÕDr+   N)rS   rT   rU   rÑ  rÔ  rW   r+   r)   rÌ  rÌ  0  s   „ ò(ó(Er+   rÌ  c                  óB  — t         j                  j                  d«      } t        d«      D ]r  }| j	                  d¬«      }|d d …df   |d d …df   z   |d d …df<   t        t        |«      d«       |d d …d	f   |d d …d
f   z   |d d …df<   t        t        |«      d«       Œt y )NiŠ3rþ  )é(   r±  ©Úsizern   rp   r   r¹  rr   rƒ   rq   rl   )r%   rª  ÚRandomStater
  Únormalr   r   )ÚrngÚiÚXs      r)   Útest_reduced_rankrÞ  T  s™   € ä
�)‰)×
Ñ
 Ó
)€CÜ�3‹Zò (ˆà�J‰J˜HˆJÓ%ˆØ’A�q�D‘'˜Aša ˜d™GÑ#ˆŠ!ˆQˆ$‰ä”[ “^ QÔ'Ø’A�q�D‘'˜Aša ˜d™GÑ#ˆŠ!ˆQˆ$‰Ü”[ “^ QÕ'ñ(r+   c            	       ó¨  — e Zd Zej                  Zd„ Zej                  j                  ddgg d¢«      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j                  ej                  ej                  ej                   g«      d„ «       «       «       Zy)ÚTestQRc                 óª  — t        |«      }|j                  }|j                  \  }}t        ||«      }t	        j
                  |d¬«      }|j                  |j                  }	}t        |j                  |k(  «       t        |	j                  |k(  «       t        t        ||«      «       t        t        |	|«      «       t        |j                  ||fk(  «       t        |	j                  ||fk(  «       t        t        ||	«      |«       t        t        |j                  j                  «       |«      t        j                  |«      «       t        t        j                   |	«      |	«       t	        j
                  |d¬«      \  }
}t        |
j                  |k(  «       t        |j                  |k(  «       t        t        |
|«      «       t        t        ||«      «       t        |
j                  ||fk(  «       t        |j                  ||fk(  «       t        t        |
|«      |«       t        t        |
j                  j                  «       |
«      t        j                  |«      «       t        t        j                   |«      |«       t	        j
                  |d¬«      }t        |j                  |k(  «       t        t        ||«      «       t        ||«       y )NÚcomplete©ÚmodeÚreducedr  )r#   r.   r˜   rŒ  r   ÚqrÚQÚRr   r$   r   r   rë  r}  r%   rs  Útriu)rI   r0   Úa_typeÚa_dtyperÏ  rã  r†  r=  rç  rè  Úq1Úr1Úr2s                r)   Úcheck_qrzTestQR.check_qre  s  € ô �a“ˆØ—'‘'ˆØ�w‰w‰ˆˆ1Ü��1‹Iˆô �i‰i˜ 
Ô+ˆØ�u‰u�c—e‘eˆ1ˆÜ�—‘˜7Ñ"Ô#Ü�—‘˜7Ñ"Ô#Ü”
˜1˜fÓ%Ô&Ü”
˜1˜fÓ%Ô&Ü�—‘˜A˜q˜6Ñ!Ô"Ü�—‘˜A˜q˜6Ñ!Ô"ÜœC  1›I qÔ)ÜœC §¡§¡£
¨AÓ.´·±°q³	Ô:ÜœBŸG™G A›J¨Ô*ô —‘˜1 9Ô-‰ˆˆBÜ�—‘˜GÑ#Ô$Ü�—‘˜GÑ#Ô$Ü”
˜2˜vÓ&Ô'Ü”
˜2˜vÓ&Ô'Ü�—‘˜Q ˜FÑ"Ô#Ü�—‘˜Q ˜FÑ"Ô#ÜœC  B›K¨Ô+ÜœC §¡§	¡	£¨RÓ0´"·&±&¸³)Ô<ÜœBŸG™G B›K¨Ô,ô �Y‰Y�q˜sÔ#ˆÜ�—‘˜GÑ#Ô$Ü”
˜2˜vÓ&Ô'Ü˜B Õ#r+   rÏ  rã  )©rq   r   r¨  ri   c                 ó¢  — t        ||«      }t        j                  ||f«      }| j                  |«       t        j                  j                  |d¬«      \  }}t        |j                  t        j                  «       t        |j                  t        j                  «       t        |j                  ||f«       t        |j                  |f«       y )NÚrawrã  )
rŒ  r%   r±   rï  r   ræ  r   r.   r   r˜   )rI   rÏ  rã  r†  r0   ÚhÚtaus          r)   Útest_qr_emptyzTestQR.test_qr_empty�  s�   € ô ��1‹IˆÜ�H‰H�a˜�VÓˆà�‰�aÔä—‘—‘˜a e�Ó,‰ˆˆ3Ü�Q—W‘WœbŸi™iÔ(Ü�S—Y‘Y¤§	¡	Ô*Ü�Q—W‘W˜q !˜fÔ%Ü�S—Y‘Y  Õ%r+   c                 óÄ  — | j                  ddgddgddggt        j                  ¬«      }t        j                  |d¬	«      \  }}t        |j                  t        j                  k(  «       t        |j                  t        j                  k(  «       t        |j                  d
k(  «       t        |j                  dk(  «       t        j                  |j                  d¬	«      \  }}t        |j                  t        j                  k(  «       t        |j                  t        j                  k(  «       t        |j                  dk(  «       t        |j                  dk(  «       y )Nrn   rp   rq   rr   rƒ   r‘   r6   rò  rã  r©  r¸  r“   )	r   r%   r   r   ræ  r   r.   r˜   rë  )rI   r0   ró  rô  s       r)   Útest_mode_rawzTestQR.test_mode_rawž  só   € ð �J‰J˜˜A˜  A ¨¨A¨Ð/´r·y±yˆJÓAˆô —‘˜1 5Ô)‰ˆˆ3Ü�—‘œ2Ÿ9™9Ñ$Ô%Ü�—	‘	œRŸY™YÑ&Ô'Ü�—‘˜6Ñ!Ô"Ü�—	‘	˜TÑ!Ô"ä—‘˜1Ÿ3™3 UÔ+‰ˆˆ3Ü�—‘œ2Ÿ9™9Ñ$Ô%Ü�—	‘	œRŸY™YÑ&Ô'Ü�—‘˜6Ñ!Ô"Ü�—	‘	˜TÑ!Õ"r+   c                 ó  — | j                  ddgddgg«      }| j                  ddgddgddgg«      }dD ]a  }|j                  |«      }|j                  |«      }| j                  |«       | j                  |«       | j                  |j                  «       Œc dD ]m  }dd|j                  |«      z  z   }dd|j                  |«      z  z   }| j                  |«       | j                  |«       | j                  |j                  «       Œo y )	Nrn   rp   rq   rr   rƒ   r‘   Úfdù              ð?)r   rÈ  rï  rë  )rI   r0   r1   rø  Úm1Úm2s         r)   Útest_mode_all_but_economicz!TestQR.test_mode_all_but_economic´  sö   € Ø�J‰J˜˜A˜  A Ð'Ó(ˆØ�J‰J˜˜A˜  A ¨¨A¨Ð/Ó0ˆØò 	 ˆBØ—‘˜"“ˆBØ—‘˜"“ˆBØ�M‰M˜"ÔØ�M‰M˜"ÔØ�M‰M˜"Ÿ$™$Õð	 ð ò 	 ˆBØ�R˜!Ÿ(™( 2›,Ñ&Ñ&ˆBØ�R˜!Ÿ(™( 2›,Ñ&Ñ&ˆBØ�M‰M˜"ÔØ�M‰M˜"ÔØ�M‰M˜"Ÿ$™$Õñ	 r+   c           	      óâ  — t        |«      }|j                  }|j                  dd  \  }}t        ||«      }t	        j
                  |d¬«      \  }}t        |j                  |k(  «       t        |j                  |k(  «       t        t        ||«      «       t        t        ||«      «       t        |j                  dd  ||fk(  «       t        |j                  dd  ||fk(  «       t        t        ||«      |«       t        j                  |j                  d   «      }	t        j                  |	|j                  d d |j                  d   fdz  z   «      }
t        t        t        |dd«      j                  «       |«      |
«       t        t        j                  |dd d …d d …f   «      |«       t	        j
                  |d¬«      \  }}t        |j                  |k(  «       t        |j                  |k(  «       t        t        ||«      «       t        t        ||«      «       t        |j                  dd  ||fk(  «       t        |j                  dd  ||fk(  «       t        t        ||«      |«       t        j                  |j                  d   «      }	t        j                  |	|j                  d d |j                  d   fdz  z   «      }
t        t        t        |dd«      j                  «       |«      |
«       t        t        j                  |dd d …d d …f   «      |«       t	        j
                  |d¬«      }t        |j                  |k(  «       t        t        ||«      «       t        ||«       y )	Nr¡   râ  rã  r    rp   .rå  r  )r#   r.   r˜   rŒ  r   ræ  r   r$   r   r
   r%   r	   r€  r   r}  ré  )rI   r0   rê  rë  rÏ  rã  r†  Úqr  ÚI_matÚstack_I_matrì  rí  rî  s                 r)   Úcheck_qr_stackedzTestQR.check_qr_stackedÅ  s¹  € ô �a“ˆØ—'‘'ˆØ�w‰w�r�sˆ|‰ˆˆ1Ü��1‹Iˆô �y‰y˜ Ô,‰ˆˆ1Ü�—‘˜7Ñ"Ô#Ü�—‘˜7Ñ"Ô#Ü”
˜1˜fÓ%Ô&Ü”
˜1˜fÓ%Ô&Ü�—‘˜˜�  A Ñ&Ô'Ü�—‘˜˜�  A Ñ&Ô'ÜœF 1 a›L¨!Ô,Ü—‘˜AŸG™G B™KÓ(ˆÜ—o‘o eØŸ™  ˜¨¯©°© ~°aÑ'7Ñ7ó9ˆäœF¤8¨A¨r°2Ó#6×#;Ñ#;Ó#=¸qÓAÀ;ÔOÜœBŸG™G A cª1ªa i¡LÓ1°1Ô5ô —‘˜1 9Ô-‰ˆˆBÜ�—‘˜GÑ#Ô$Ü�—‘˜GÑ#Ô$Ü”
˜2˜vÓ&Ô'Ü”
˜2˜vÓ&Ô'Ü�—‘˜˜� ! Q Ñ'Ô(Ü�—‘˜˜� ! Q Ñ'Ô(ÜœF 2 r›N¨AÔ.Ü—‘˜BŸH™H R™LÓ)ˆÜ—o‘o eØŸ™  "˜¨¯©°"©¨¸Ñ(9Ñ9ó;ˆäœF¤8¨B°°BÓ#7×#<Ñ#<Ó#>ÀÓCØ'ô	)äœBŸG™G B sªAªq y¡MÓ2°BÔ7ô �Y‰Y�q˜sÔ#ˆÜ�—‘˜GÑ#Ô$Ü”
˜2˜vÓ&Ô'Ü˜B Õ#r+   rØ  ))rq   rr   )rr   rq   rr  rð  r¨  Ú
outer_size)r–  r¸  )rp   rq   rr   rø  c                 ó  — t         j                  j                  ||z   ¬«      j                  |«      }t         j                  j                  ||z   ¬«      j                  |«      }| j	                  |«       | j	                  |d|z  z   «       y )Nr×  rú  )r%   rª  rÚ  rÈ  r  )rI   r  rØ  rø  r“  r‰  s         r)   Útest_stacked_inputszTestQR.test_stacked_inputsò  sv   € ô �I‰I×Ñ *¨tÑ"3ÐÓ4×;Ñ;¸BÓ?ˆÜ�I‰I×Ñ *¨tÑ"3ÐÓ4×;Ñ;¸BÓ?ˆØ×Ñ˜aÔ Ø×Ñ˜a # a¡%™iÕ(r+   N)rS   rT   rU   r%   r   rï  rõ   rö   r+  rõ  r÷  rý  r  r   r   r   r   r  rW   r+   r)   rà  rà  a  sÑ   „ à�H‰H€Eò%$ðP ‡[�[×Ñ˜c 3˜Zò *ó ñ

&óð

&ò#ò, ò"+$ðZ ‡[�[×Ñ˜Vò &ó ð ‡[�[×Ñ˜\ò ,!ó "à‡[�[×Ñ˜TØ
�	‰	�2—9‘9Ø
�
‰
�B—J‘Jð$ ó !ñ)ó!ó"óñ)r+   rà  c                   óð   — e Zd Zej                  j                  dg d¢«      ej                  j                  dej                  ej                  ej                  ej                  f«      d„ «       «       Zd„ Zy)ÚTestCholeskyr˜   )r¨   r–  ©rq   rq   )é2   r	  )rq   r±  r±  r.   c                 ól  — t         j                  j                  d«       t        j                  j                  |Ž }t        j                  |t         j
                  «      r"|dt        j                  j                  |Ž z  z   }t        t        t        |«      «      «      }d|dd  t        j                  |j                  |«      j                  «       |«      }t        j                  ||¬«      }t         j                  j                  |«      }t        j                  ||j                  |«      j                  «       «      }t        j                  «       5  d|j                   d   z  t        j"                  |«      j$                  z  }d d d «       t'        |||› d|› d	|› d	|› �¬
«       y # 1 sw Y   Œ$xY w)Nrn   rú  )r    r¡   r¡   r6   iô  r   ú ú
)ÚatolrK  )r%   rª  r«  Úrandnrà  Úcomplexfloatingr¸   r
  rî  r
   r~  r}  r   r   ÚcholeskyÚ_no_nep50_warningr˜   ÚfinfoÚepsr   )rI   r˜   r.   r0   Útr  r1   r  s           r)   Útest_basic_propertyz TestCholesky.test_basic_property  sE  € ô 	�	‰	�‰�qÔÜ�I‰I�O‰O˜UÐ#ˆÜ�=‰=˜¤× 2Ñ 2Ô3Ø�B”r—y‘y—‘¨Ð.Ñ.Ñ.ˆAä””s˜5“zÓ"Ó#ˆØˆˆ"ˆ#ˆä�I‰I�a—k‘k !“n×)Ñ)Ó+¨QÓ/ˆÜ�J‰J�q Ô&ˆä�I‰I×Ñ˜qÓ!ˆä�I‰I�a˜Ÿ™ Q›×,Ñ,Ó.Ó/ˆÜ×!Ñ!Ó#ñ 	:Ø˜Ÿ™ ™Ñ#¤b§h¡h¨u£o×&9Ñ&9Ñ9ˆD÷	:ä˜˜1 4°E°7¸!¸E¸7À"ÀQÀCÀrÈ!ÈÐ1MÖN÷	:ð 	:ús   Å3F*Æ*F3c                 ó"  —  G d„ dt         j                  «      }t        j                  dt         j                  ¬«      j	                  |«      }t        j                  |«      }t        |j                  |j                  «       t        |j                  j                  t         j                  u «       t        t        |t         j                  «      «       t        j                  dt         j                  ¬«      j	                  |«      }t        j                  |«      }t        |j                  |j                  «       t        |j                  j                  t         j                  u «       t        t        |t         j                  «      «       y )Nc                   ó   — e Zd Zy)ú/TestCholesky.test_0_size.<locals>.ArraySubclassNr  rW   r+   r)   r   r     r!  r+   r   r7  r6   )rn   r   r   )r%   r&   r8  r9  r²   r   r  r   r˜   r   r.   r#   r:  r$   r;  r<  s       r)   r&  zTestCholesky.test_0_size  sè   € ô	œBŸJ™Jô 	ä�H‰H�Y¤b§g¡gÔ.×3Ñ3°MÓBˆÜ�o‰o˜aÓ ˆÜ�Q—W‘W˜cŸi™iÔ(Ü�—	‘	—‘¤"§*¡*Ð,Ô-ä”
˜3¤§
¡
Ó+Ô,ä�H‰H�Y¤b§l¡lÔ3×8Ñ8¸ÓGˆÜ�o‰o˜aÓ ˆÜ�Q—W‘W˜cŸi™iÔ(Ü�—	‘	—‘¤"§,¡,Ð.Ô/Ü”
˜3¤§
¡
Ó+Õ,r+   N)rS   rT   rU   rõ   rö   r+  r%   rØ  r:  r;  r»  r  r&  rW   r+   r)   r  r    si   „ ð ‡[�[×ÑØÒ@óð ‡[�[×ÑØ�"—*‘*˜bŸj™j¨"¯,©,¸¿¹ÐFóñOóóðOó(-r+   r  c                  ó  — t         j                  dk(  rd} nd} t        j                  t        j                  fD ]É  }t        j
                  d|¬«      }|j                  | «      }|j                  d«      j                  «       }t        |j                  j                  d«       t        j                  t        j                  t        j                  fD ].  } ||«      }t        | ||«      «       t        | ||«      «       Œ0 ŒË y )NÚlittleú<rP   rr   r6   rh  ú=)ÚsysÚ	byteorderr%   rØ  r:  rs  ÚnewbyteorderÚbyteswapr   r.   r   r/  rÄ  r´  r   )ÚnativeÚdttrâ  Ún_arrÚsw_arrÚroutiner=  s          r)   Útest_byteorder_checkr&  0  sÈ   € ä
‡}�}˜Ò Ø‰àˆä—
‘
œBŸJ™JÐ'ò 5ˆÜ�f‰f�Q˜cÔ"ˆØ× Ñ  Ó(ˆØ×!Ñ! #Ó&×/Ñ/Ó1ˆÜ�S—Y‘Y×(Ñ(¨#Ô.ÜŸ
™
¤F§J¡J´·±Ð<ò 	5ˆGá˜#“,ˆCä˜s¡G¨E£NÔ3ä˜s¡G¨F£OÕ4ñ	5ñ5r+   r$  r%  c                  ó8  — t        j                  ddgddgg«      } t        j                  ddgddgg«      }t        j                  g d¢«      dd d…   }| |d<   ||d<   t        t         j                  j
                  t         j                  j                  |«       y )Nrn   rp   rq   rr   )rr   rr   rp   rp   .ri   )r%   r   r8  r   r   r   r/  )Ú
invertibleÚnon_invertibler¼   s      r)   Ú test_generalized_raise_multiloopr*  E  sƒ   € ô
 —‘˜A˜q˜6 A q 6Ð*Ó+€JÜ—X‘X  1˜v¨¨1 vÐ.Ó/€Nä
�‰’Ó˜q˜t !˜tÑ$€AØ€A€c�FØ€A€d�Gä”"—)‘)×'Ñ'¬¯©¯©¸Õ:r+   c                  óÈ  — d} 	 t        j                  «       }dk(  ràt        j                  d«       t        j                  d«       dd l}|j                  |j                  d«       	 t        j                  j                  j                  «        	 t        j$                  dgg«      }t        j                  j                  j'                  ddd|d||dd«	       t        j                   t         j"                  «       y t        j*                  «       \  }}t        j,                  |«      | k7  rt	        j
                  d«       y y # t        t        f$ r t	        j
                  d«       Y �ŒRw xY w# t        $ r Y Œét        $ r' t        j                   t         j"                  «       Y �Œw xY w# t        $ r-}dt)        |«      v rt        j                   | «       Y d }~�Œd }~ww xY w)	Néÿ   zNot POSIX or fork failed.r   rn   ri   r_   zDORGQR parameter number 5zNumpy xerbla not linked in.)ÚosÚforkÚOSErrorÚAttributeErrorrõ   ÚskipÚcloseÚresourceÚ	setrlimitÚRLIMIT_COREr%   r   Úlapack_liteÚxerblar  rÎ   Ú_exitÚ	EX_CONFIGr   ÚdorgqrrE   ÚwaitÚWEXITSTATUS)Ú	XERBLA_OKÚpidr3  r0   rÔ   Ústatuss         r)   Útest_xerbla_overrider@  T  sq  € ð
 €Ið1Ü�g‰g‹iˆð
 ˆa‚xä
�‰�ŒÜ
�‰�ŒãØ×Ñ˜8×/Ñ/°Ô8ð	#Ü�I‰I×!Ñ!×(Ñ(Ô*ð
	$Ü—‘˜2˜$˜Ó ˆAÜ�I‰I×!Ñ!×(Ñ(Ø�1�a˜ØØ�1�a˜ôô 	�‰”—‘Õô —g‘g“i‰ˆˆVÜ�>‰>˜&Ó! YÒ.Ü�K‰KÐ5Õ6ð /øôI ”^Ð$ò 1ä�‰Ð/×0ð1ûô ò 	ÙÜò 	#Ü�H‰H”R—\‘\×"ð	#ûô ò 	$Ø*¬c°!«fÑ4ô —‘˜Ô#ÿùð		$úsB   „E Á((E. ÂAF+ Å$E+Å*E+Å.	F(Å9+F(Æ'F(Æ+	G!Æ4"GÇG!zCannot start subprocessc                  ó,  — ddg} t        j                  d«      }| D ]v  }|j                  dd|¬«      }t        j                  t
        j                  d|g«       |j                  dd|¬«      }t        j                  t
        j                  d|g«       Œx y )	NzPyQt5.QtWidgetsÚIPythonzÕ
    import sys
    {before}
    try:
        import {bad_lib}
    except ImportError:
        sys.exit(0)
    {after}
    x = np.ones(2, dtype=np.float32)
    sys.exit(0 if np.allclose(x.dot(x), 2.0) else 1)
    zimport numpy as npÚ )ÚbeforeÚafterÚbad_libz-c)rE  rD  rF  )ÚtextwrapÚdedentr“  Ú
subprocessÚ
check_callr  Ú
executable)Úbad_libsÚtemplaterF  Úcodes       r)   Útest_sdot_bug_8577rO  …  sœ   € ð " 9Ð-€Hä�‰ð 
 ó 
	€Hð ò <ˆØ�‰Ð&:À"Ø'.ð ó 0ˆä×ÑœsŸ~™~¨t°TÐ:Ô;ð �‰Ð%9À"Ø'.ð ó 0ˆä×ÑœsŸ~™~¨t°TÐ:Õ;ñ<r+   c                   óN   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zy)ÚTestMultiDotc           
      óª  — t         j                  j                  d«      }t         j                  j                  d«      }t         j                  j                  d«      }t        t        |||g«      |j	                  |«      j	                  |«      «       t        t        |||g«      t        j                  |t        j                  ||«      «      «       y ©N©r‘   rp   ©rp   r‘   ©r%   rª  r   r   r   )rI   r“  r‰  ÚCs       r)   Ú(test_basic_function_with_three_argumentsz5TestMultiDot.test_basic_function_with_three_arguments«  s�   € ô �I‰I×Ñ˜VÓ$ˆÜ�I‰I×Ñ˜VÓ$ˆÜ�I‰I×Ñ˜VÓ$ˆäœI q¨!¨Q iÓ0°!·%±%¸³(·,±,¸q³/ÔBÜœI q¨!¨Q iÓ0´"·&±&¸¼B¿F¹FÀ1Àa»LÓ2IÕJr+   c                 ó"  — t         j                  j                  d«      }t         j                  j                  d«      }t        t        ||g«      |j	                  |«      «       t        t        ||g«      t        j                  ||«      «       y rS  rV  )rI   r“  r‰  s      r)   Ú&test_basic_function_with_two_argumentsz3TestMultiDot.test_basic_function_with_two_argumentsµ  sb   € ä�I‰I×Ñ˜VÓ$ˆÜ�I‰I×Ñ˜VÓ$ˆäœI q¨! fÓ-¨q¯u©u°Q«xÔ8ÜœI q¨! fÓ-¬r¯v©v°a¸«|Õ<r+   c                 óˆ  — t         j                  j                  d«      }t         j                  j                  d«      }t         j                  j                  d«      }t         j                  j                  d«      }t        t        ||||g«      |j	                  |«      j	                  |«      j	                  |«      «       y )NrT  rU  ©rp   rn   rV  )rI   r“  r‰  rW  ÚDs        r)   Ú9test_basic_function_with_dynamic_programming_optimizationzFTestMultiDot.test_basic_function_with_dynamic_programming_optimization½  s†   € ô �I‰I×Ñ˜VÓ$ˆÜ�I‰I×Ñ˜VÓ$ˆÜ�I‰I×Ñ˜VÓ$ˆÜ�I‰I×Ñ˜VÓ$ˆÜœI q¨!¨Q° lÓ3°Q·U±U¸1³X·\±\À!³_×5HÑ5HÈÓ5KÕLr+   c                 óB  — t         j                  j                  d«      }t         j                  j                  d«      }t         j                  j                  d«      }t         j                  j                  d«      }t        t        ||||g«      j                  d«       y )Nrp   rU  rT  r–  r¸  ©r%   rª  r   r   r˜   )rI   ÚA1dr‰  rW  r]  s        r)   Útest_vector_as_first_argumentz*TestMultiDot.test_vector_as_first_argumentÆ  sq   € ä�i‰i×Ñ˜qÓ!ˆÜ�I‰I×Ñ˜VÓ$ˆÜ�I‰I×Ñ˜VÓ$ˆÜ�I‰I×Ñ˜VÓ$ˆô 	”Y  Q¨¨1˜~Ó.×4Ñ4°dÕ;r+   c                 óB  — t         j                  j                  d«      }t         j                  j                  d«      }t         j                  j                  d«      }t         j                  j                  d«      }t        t        ||||g«      j                  d«       y )NrT  rU  rp   )r‘   r`  )rI   r“  r‰  rW  ÚD1ds        r)   Útest_vector_as_last_argumentz)TestMultiDot.test_vector_as_last_argumentÐ  sq   € ä�I‰I×Ñ˜VÓ$ˆÜ�I‰I×Ñ˜VÓ$ˆÜ�I‰I×Ñ˜VÓ$ˆÜ�i‰i×Ñ˜qÓ!ˆô 	”Y  1 a¨˜~Ó.×4Ñ4°dÕ;r+   c                 óB  — t         j                  j                  d«      }t         j                  j                  d«      }t         j                  j                  d«      }t         j                  j                  d«      }t        t        ||||g«      j                  d«       y )Nrp   rU  rT  rW   r`  )rI   ra  r‰  rW  rd  s        r)   Ú&test_vector_as_first_and_last_argumentz3TestMultiDot.test_vector_as_first_and_last_argumentÚ  sr   € ä�i‰i×Ñ˜qÓ!ˆÜ�I‰I×Ñ˜VÓ$ˆÜ�I‰I×Ñ˜VÓ$ˆÜ�i‰i×Ñ˜qÓ!ˆô 	”Y  Q¨¨3Ð/Ó0×6Ñ6¸Õ;r+   c           
      óÐ  — t         j                  j                  d«      }t         j                  j                  d«      }t         j                  j                  d«      }t        j                  d«      }t        |||g|¬«      }||u sJ ‚t	        ||j                  |«      j                  |«      «       t	        |t        j
                  |t        j
                  ||«      «      «       y )NrT  rU  ©r'   ©r%   rª  r8  r   r   r   )rI   r“  r‰  rW  r'   Úrets         r)   Útest_three_arguments_and_outz)TestMultiDot.test_three_arguments_and_outä  s¥   € ô �I‰I×Ñ˜VÓ$ˆÜ�I‰I×Ñ˜VÓ$ˆÜ�I‰I×Ñ˜VÓ$ˆä�h‰h�vÓˆÜ˜˜A˜q˜	 sÔ+ˆØ�c‰zÐˆzÜ˜C §¡ q£§¡¨a£Ô1Ü˜C¤§¡¨¬2¯6©6°!°Q«<Ó!8Õ9r+   c                 óJ  — t         j                  j                  d«      }t         j                  j                  d«      }t        j                  d«      }t        ||g|¬«      }||u sJ ‚t	        ||j                  |«      «       t	        |t        j
                  ||«      «       y )NrT  rU  )r‘   r‘   ri  rj  )rI   r“  r‰  r'   rk  s        r)   Útest_two_arguments_and_outz'TestMultiDot.test_two_arguments_and_outñ  sz   € ä�I‰I×Ñ˜VÓ$ˆÜ�I‰I×Ñ˜VÓ$ˆÜ�h‰h�vÓˆÜ˜˜A˜ CÔ(ˆØ�c‰zÐˆzÜ˜C §¡ q£Ô*Ü˜C¤§¡¨¨1£Õ.r+   c                 óÆ  — t         j                  j                  d«      }t         j                  j                  d«      }t         j                  j                  d«      }t         j                  j                  d«      }t        j                  d«      }t        ||||g|¬«      }||u sJ ‚t	        ||j                  |«      j                  |«      j                  |«      «       y )NrT  rU  r\  )r‘   rn   ri  rj  )rI   r“  r‰  rW  r]  r'   rk  s          r)   Ú-test_dynamic_programming_optimization_and_outz:TestMultiDot.test_dynamic_programming_optimization_and_outû  s§   € ô �I‰I×Ñ˜VÓ$ˆÜ�I‰I×Ñ˜VÓ$ˆÜ�I‰I×Ñ˜VÓ$ˆÜ�I‰I×Ñ˜VÓ$ˆÜ�h‰h�vÓˆÜ˜˜A˜q !˜¨#Ô.ˆØ�c‰zÐˆzÜ˜C §¡ q£§¡¨a£×!4Ñ!4°QÓ!7Õ8r+   c           	      ó.  — t         j                  j                  d«      t         j                  j                  d«      t         j                  j                  d«      t         j                  j                  d«      t         j                  j                  d«      t         j                  j                  d«      g}t        j                  g d¢g d¢g d	¢g d
¢g d¢g d¢g«      }t        j                  g d¢g d¢g d¢g d¢g d¢g d¢gt        ¬«      }|dz  }t	        |d¬«      \  }}t        t        j                  |d d…dd …f   «      t        j                  |d d…dd …f   «      «       t        t        j                  |«      t        j                  |«      «       y )N)é   é#   )rs  é   )rt  rƒ   )rƒ   r±  )r±  é   )ru  r�  )rÓ  g     ÃÎ@g     Ã¾@g    €OÂ@g    €1Ç@g    €ŠÍ@)rÓ  rÓ  g     ‚¤@g     ±@g     Õ»@g     ‚Ä@)rÓ  rÓ  rÓ  g     p‡@g     ˆ£@g     ÿ´@)rÓ  rÓ  rÓ  rÓ  g     @�@g     X«@)rÓ  rÓ  rÓ  rÓ  rÓ  g     ˆ³@)rÓ  rÓ  rÓ  rÓ  rÓ  rÓ  )r   rn   rn   rq   rq   rq   )r   r   rp   rq   rq   rq   )r   r   r   rq   rq   rq   )r   r   r   r   rr   rƒ   )r   r   r   r   r   rƒ   )r   r   r   r   r   r   r6   rn   T)Úreturn_costsr    )r%   rª  r   Úintr   r   ré  )rI   ÚarraysÚ
m_expectedÚ
s_expectedrÄ   rÏ  s         r)   Útest_dynamic_programming_logicz+TestMultiDot.test_dynamic_programming_logic  sC  € ô —)‘)×"Ñ" 8Ó,Ü—)‘)×"Ñ" 8Ó,Ü—)‘)×"Ñ" 7Ó+Ü—)‘)×"Ñ" 7Ó+Ü—)‘)×"Ñ" 8Ó,Ü—)‘)×"Ñ" 8Ó,ð.ˆô —X‘XÒIÚIÚIÚIÚIÚIðKó Lˆ
ô —X‘XÒ6Ú6Ú6Ú6Ú6Ú6ð8ô
 @CôDˆ
ð 	�a‰ˆ
ä,¨VÀ$ÔG‰ˆˆ1ô 	œBŸG™G A c r c¨1©2 g¡JÓ/ÜŸG™G J¨s°¨s°A±B¨wÑ$7Ó8ô	:äœBŸG™G A›J¬¯©°
Ó(;Õ<r+   c                 ó”   — t        t        t        g «       t        t        t        t        j                  j	                  d«      g«       y )Nr  )r   r  r   r%   rª  rQ   s    r)   Útest_too_few_input_arraysz&TestMultiDot.test_too_few_input_arrays%  s,   € Ü”j¤)¨RÔ0Ü”j¤)¬b¯i©i×.>Ñ.>¸vÓ.FÐ-GÕHr+   N)rS   rT   rU   rX  rZ  r^  rb  re  rg  rl  rn  rp  r{  r}  rW   r+   r)   rQ  rQ  ©  s<   „ òKò=òMò<ò<ò<ò:ò/ò
9ò=ó<Ir+   rQ  c                   ó2  — e Zd Zej                  j                  d ej                  d«      df ej                  d«      dfg«      d„ «       Zej                  j                  ddd	g«      d
„ «       Z	ej                  j                  dddg«      d„ «       Z
d„ Zy)ÚTestTensorinvzarr, ind©rr   r‘   rl   rp   rp   ©rq   rq   rp   rn   c                 óz   — t        t        «      5  t        j                  ||¬«       d d d «       y # 1 sw Y   y xY w)N©Úind)r   r   r   Ú	tensorinv)rI   râ  r„  s      r)   Útest_non_square_handlingz&TestTensorinv.test_non_square_handling,  s1   € ô
 œ;Ó'ñ 	+Ü×Ñ˜S cÕ*÷	+÷ 	+ñ 	+ús   �1±:z
shape, ind)©rr   r‘   rl   rq   rp   )©é   rl   rq   rn   c                 óØ   — t        j                  d«      }||_        t        j                  ||¬«      }|j                  |d  |j                  d | z   }|j                  }t        ||«       y )Nr‰  ©r0   r„  )r%   rs  r˜   r   r…  r   )rI   r˜   r„  r0   Úainvr$  Úactuals          r)   Útest_tensorinv_shapez"TestTensorinv.test_tensorinv_shape4  s[   € ô �F‰F�2‹JˆØˆŒÜ×Ñ !¨Ô-ˆØ—7‘7˜3˜4�= 1§7¡7¨4¨C =Ñ0ˆØ—‘ˆÜ�V˜XÕ&r+   r„  r   r¡   c                 ó²   — t        j                  d«      }d|_        t        t        «      5  t        j                  ||¬«       d d d «       y # 1 sw Y   y xY w)Nr‰  r‡  r‹  )r%   rs  r˜   r   r  r   r…  )rI   r„  r0   s      r)   Útest_tensorinv_ind_limitz&TestTensorinv.test_tensorinv_ind_limitA  sE   € ô �F‰F�2‹JˆØˆŒÜœ:Ó&ñ 	+Ü×Ñ˜q cÕ*÷	+÷ 	+ñ 	+ús   ¬AÁAc                 ó  — t        j                  d«      }d|_        t        j                  |d¬«      }t        j
                  d«      }t        t        j                  ||d«      t         j                  j                  ||«      «       y )Nr‰  rˆ  rn   rƒ  )	r%   rs  r˜   r   r…  r™  r   Ú	tensordotÚtensorsolve)rI   r0   rŒ  r1   s       r)   Útest_tensorinv_resultz#TestTensorinv.test_tensorinv_resultJ  s]   € ä�F‰F�2‹JˆØˆŒÜ×Ñ  qÔ)ˆÜ�G‰G�B‹KˆÜœŸ™ T¨1¨aÓ0´"·)±)×2GÑ2GÈÈ1Ó2MÕNr+   N)rS   rT   rU   rõ   rö   r+  r%   r™  r†  rŽ  r�  r”  rW   r+   r)   r  r  *  sµ   „ à‡[�[×Ñ˜ZØ	ˆ�‰�Ó	 Ð"Ø	ˆ�‰�Ó	˜QÐð*
ó ñ+ó	ð+ð ‡[�[×Ñ˜\àØð,
ó ñ
'óð
'ð ‡[�[×Ñ˜UØ	ˆ2ð%
ó ñ+óð+óOr+   r  c                   óä   — e Zd Zej                  j                  d ej                  d«      df ej                  d«      dfg«      d„ «       Zej                  j                  dg d¢«      d	„ «       Z	y)
ÚTestTensorsolveza, axesr€  Nr�  )r   rp   c                 óÀ   — t        t        «      5  t        j                  |j                  d d «      }t        j                  |||¬«       d d d «       y # 1 sw Y   y xY w©Nrp   r{  )r   r   r%   r™  r˜   r   r“  )rI   r0   r|  r1   s       r)   r†  z(TestTensorsolve.test_non_square_handlingU  sK   € ô
 œ;Ó'ñ 	0Ü—‘˜Ÿ™  ˜Ó$ˆAÜ×Ñ˜q !¨$Õ/÷	0÷ 	0ñ 	0ús   �;AÁAr˜   ))rp   rq   r‘   )rq   rr   rr   rq   )r   rq   rq   r   c           	      ó*  — t        j                  j                  |Ž }t        j                  |j                  d d «      }t         j
                  j                  ||«      }t        t        j                  ||t        |j                  «      ¬«      |«       y r˜  )
r%   rª  r  r™  r˜   r   r“  r   r’  rî  )rI   r˜   r0   r1   r¼   s        r)   Útest_tensorsolve_resultz'TestTensorsolve.test_tensorsolve_result^  sc   € ô �I‰I�O‰O˜UÐ#ˆÜ�G‰G�A—G‘G˜B˜Q�KÓ ˆÜ�I‰I×!Ñ! ! QÓ'ˆÜœŸ™ Q¨´°A·G±G³Ô=¸qÕAr+   )
rS   rT   rU   rõ   rö   r+  r%   r™  r†  rš  rW   r+   r)   r–  r–  S  sz   „ à‡[�[×Ñ˜YØ	ˆ�‰�Ó	 Ð%Ø	ˆ�‰�Ó	˜VÐ$ð)
ó ñ0ó	ð0ð
 ‡[�[×Ñ˜WÚ/óñBóñBr+   r–  c                  ó²   — t        j                  ddgddggd¬«      } t        t        d«      5  t	        j
                  | «       d d d «       y # 1 sw Y   y xY w)Nrn   r¡   rp   rƒ   Úfloat16r6   zunsupported in linalg)r%   r   r   r  r   r  )râ  s    r)   Útest_unsupported_commontyper�  h  sK   € ä
�(‰(�Q˜�G˜a ˜VÐ$¨IÔ
6€CÜ	œYÐ(?Ó	@ñ Ü�‰˜Ô÷÷ ñ ús   ®AÁAz,Bad memory reports lead to OOM in ci testingc                  óø   — d} t        j                  d| gt         j                  ¬«      }t        j                  ddgt         j                  ¬«      }d|d<   t        j                  ||«      }t        |d   d«       y )Nì        rn   r6   )r   r    )r%   r8  rØ  r™  r   r   )rã  r0   r1   r  s       r)   Útest_blas64_dotr   s  s]   € à€AÜ
�‰�!�Q�œrŸz™zÔ*€AÜ
�‰��A�œbŸj™jÔ)€AØ€A€d�GÜ
�‰ˆq�!‹€AÜ��4‘˜!Õr+   z*Numpy not compiled with 64-bit BLAS/LAPACKc            
      óð  — t         j                  } t         j                  j                  j                  }d}d}|}t        j
                  ddg| ¬«      }t        j
                  dg| ¬«      }t        j
                  dg| ¬«      } |||||||dd«      }t        |d   d«       t        |d   |«       t        |d   |«       t        |j                  «       «      }	t        d	|	cxk  xr
 d
k  «       y c «       y )Nl       rn   r6   r    r   ÚinforÏ  rã  rŸ  l        )
r%   r:  r   r6  Údgeqrfr8  r   rw  Úitemr   )
r.   Úlapack_routinerÏ  rã  Úldar0   Úworkrô  ÚresultsÚlworks
             r)   Ú!test_blas64_geqrf_lwork_smoketestrª  }  sÙ   € ô �J‰J€EÜ—Y‘Y×*Ñ*×1Ñ1€Nà€AØ€AØ
€Cô 	�‰�!�Q�˜uÔ%€AÜ�8‰8�Q�C˜uÔ%€DÜ
�(‰(�A�3˜eÔ
$€Cñ ˜Q  1 c¨3°°b¸!Ó<€GÜ�˜‘ !Ô$Ü�˜‘˜qÔ!Ü�˜‘˜qÔ!ô �—	‘	“Ó€EÜˆE�EÖ!˜EÑ!Õ"Ñ!Õ"r+   )r‘   r¿  )ƒÚ__doc__r-  r  r«   rÏ   rG  rI  rõ   Únumpyr%   r   r   r   r   r   r   r	   r
   Ú
numpy.corer   r   r   r   r   r   Únumpy.linalgr   r   r   r   r   Únumpy.linalg.linalgr   Únumpy.testingr   r   r   r   r   r   r   r   r   r    Únumpy.linalg.lapack_liteÚImportErrorr*   r/   r7   r9   r;   rY   rC   r]   rª  r«  r•   r±   r¬  r›   rÅ   rÉ   rË   rØ   rá   ré   rï   rù   r   r  r  r  r  r-  r2  r@  rH  rP  rW  rb  rk  rp  rw  rƒ  r…  r�  r±  r¸  r»  r¾  rÀ  rÑ  rÚ  ré  rö   r+  r.   rú  r,  r2  rI  rQ  rY  rb  r›  r­  r¯  r¾  rÁ  rÃ  rÆ  rÈ  rÊ  rÌ  rÞ  rà  r  r&  r*  r*  r@  r÷   rO  rQ  r  r–  r�  r1  r   r¯  rª  )r  s   0r)   ú<module>r³     s?  ðñó 
Û 
Û Û Û Û Û ã ß P× PÓ PÝ ß 4Ó 4Ý ß PÕ PÝ =÷÷ ÷ ð
	Û#ò*ð .Ð ó9ò5ò
7ò
ò€÷,ñ ,ò,ð ‡	�	‡�ˆtÔ à
€ð ‰�8ÙˆxÙ�r˜2�h  R Ð)°Ô8Ù�b˜"�X VÔ,ó.ñ ˆxÙ�r˜2�h  R Ð)°Ô8Ù�b˜"�X VÔ,ó.ñ ˆzÙ�r˜2�h  R Ð)°Ô8Ù’l¢LÐ1¸Ô@óBñ ˆyÙ�w Ð'¨&°&Ð)9Ð:À'ÔJÙ�g˜wÐ'¨wÔ7ó9ñ ˆyÙ�w Ð'¨&°&Ð)9Ð:À'ÔJÙ�g˜wÐ'¨wÔ7ó9ñ ˆ{Ù�w Ð'¨&°&Ð)9Ð:À'ÔJÙÒ0Ò2JÐKÐSZÔ[ó]ñ ˆuØˆr�x‰x˜ fÔ-Øˆr�x‰x˜ FÔ+Ø�Jô ñ ˆuØ�y‰y�~‰~˜a Ó#Ø�y‰y�~‰~˜aÓ ó"ñ ˆuØ�y‰y�~‰~˜a Ó#Ø�y‰y�~‰~˜aÓ ó"ñ ˆzØ�A�˜˜A˜ÐØ�1ˆvóð; ó  
ñ  €ðF ‰�;Ùˆ~Ù’l¢LÐ1¸Ô@Ù�b˜"�X VÔ,ó.ñ ˆ~Ù�r˜2�h  R ¨2¨r¨(Ð3¸6ÔBÙ’\¨Ô0ó2ñ ˆ~Ù’l¢LÐ1¸Ô@Ù�b˜"�X VÔ,ó.ñ ˆ~Ù�r˜2�h  R ¨2¨r¨(Ð3¸6ÔBÙ’\¨Ô0ó2ñ ˆÙÚ/Ò1LÐMÐU\ô^á�g˜wÐ'¨wÔ7ó9ñ ˆÙØ˜gÐ&¨°'Ð(:¸WÀgÐ<NÐOÐW^ô`áÒ0¸Ô@óBñ ˆÙÚ/Ò1LÐMÐU\ô^á�g˜wÐ'¨wÔ7ó9ñ ˆÙØ˜gÐ&¨°'Ð(:¸WÀgÐ<NÐOÐW^ô`áÒ0¸Ô@óBñ Ð ÙÚ/Ò1LÐMÐU\ô^á�w Ð(¨6°6Ð*:Ð;À7ÔKóMñ Ð ÙØ˜gÐ&¨°'Ð(:¸WÀgÐ<NÐOÐW^ô`á�w Ð(¨6°6Ð*:¸VÀVÐ<LÐMÐU\Ô]ó_ñ ˆvØ�y‰y�~‰~˜a Ó$Ø�y‰y�~‰~˜aÓ ó"ñ ˆuØ�y‰y�~‰~˜a Ó#Ø�y‰y�~‰~˜aÓ ó"ñ ˆuØ�y‰y�~‰~˜a Ó#Ø�y‰y�~‰~˜aÓ ó"ñ ˆuØ�y‰y�~‰~˜a Ó#Ø�y‰y�~‰~˜aÓ Ø�Jô ñ ˆuØ�y‰y�~‰~˜a Ó#Ø�y‰y�~‰~˜aÓ Ø�Jô ðe6!ó 6
ñ 6€ðr ‰�;ÙˆyÙ�r˜2�h  R Ð)°Ô8Øóñ ˆyÙ�r˜2�h  R Ð)°Ô8Øóñ ˆzÙ�r˜6�l V¨Q KÐ0¸Ô@Øóñ ˆzÙ�r˜6�l V¨Q KÐ0¸Ô@Øóñ ˆxØˆr�x‰x˜ fÔ-ØØ�Jô ñ ˆ{Ø�A�˜˜A˜ÐØóñ ˆÙ�r˜2�h  R Ð)Ó*Øóñ ˆ}Ø�y‰y�~‰~˜a Ó#Øóð/!ó 
ñ €ò@ð8 Ñ	 Ó	"Ñ "€ò-'ò`ð Ñ	Ó	Ñ €÷1ñ 1ô.2˜>ô 2ô2˜nô 2ô2˜ô 2ô	F nô 	Fô	I¨ô 	Iô
+ >ô 
+òò&$ô+Ð%Ð'Fô +ô73�
ô 73ôt/Ð#Ð%Dô /ô0ˆhô 0ô.)Ð'Ð)Hô )ô-�,ô -ô66Ð#Ð%Dô 6ô!+ˆhô !+÷H5ñ 5ô,Ð#Ð%Dô ,ô$ˆh˜ô $ô ,Ð)Ð+Gô ,ô&Ð(¨,ô ô+1Ð$Ð&Eô +1ô\@)ˆyô @)ôF
0Ð$Ø'Ø/Ø2ô
0ô	ˆyô 	ô0Ð*Ð,Hô 0ô	Ð*ô 	ô#Ð#Ð%Dô #ô*'1ˆhô '1ôT3Ð%Ð'>ô 3ô<1+�
ô 1+ðh ‡�×Ñ˜Ð5HÖI°  §¡¨¥ÒIÓJ÷S:ð S:ó KðS:ôl?Ð)Ð+Gô ?÷3-ñ 3-ôlBÐ%Ð'Cô B÷.8+ñ 8+÷v
=ñ 
=ô[Q�}ô [Qô|u<�-ô u<ôp	�Ð-ô 	÷Jñ Jô8˜-ô ô
˜-ô ô
˜ô ô
	�YÐ 3ô 	ô	�YÐ 3ô 	ô	�IÐ1ô 	÷!Eñ !EòH
(÷^)ñ ^)÷B+-ñ +-ò\5ð* ‡�×Ñ�GÐ$BÐÓCñ;ó Dð;ò.7ðb ‡�×Ñ�GÐ$=ÐÓ>Ø‡�×Ññ<ó ó ?ð<÷D~Iñ ~I÷B&Oñ &O÷RBñ Bò*ð ‡�×ÑÐGÐÓHñó Iðð ‡�×Ò�|Ð#ØFð ó Hñ#óHñ#øðKC ò 	ò 	ð		üòV  Js   Á<d Ýd%
äd"ä!d"