Ë
    ¡ehsE ã                   ó  — 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	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 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„ Z1e)Z2déd„Z)d„ Z3d„ Z4d„ Z5h d£Z6 G d„ d«      Z7d„ Z8e
jr                  ju                  d«       g Z;e; e8d e7d eddgddgge¬«       eddge¬«      «       e7d eddgddgge¬«       eddge¬«      «       e7d eddgddgge¬«       eg d¢g d¢ge¬«      «       e7d  ed!d"gd#d$gge¬«       ed%d!ge¬«      «       e7d& ed!d"gd#d$gge¬«       ed%d!ge¬«      «       e7d' ed!d"gd#d$gge¬«       eg d(¢g d)¢ge¬«      «       e7d* e
jx                  d+e¬«       e
jx                  d,e¬«      d-h¬.«       e7d/e
jr                  j{                  d0d0«      e
jr                  j{                  d0«      «       e7d1e
jr                  j{                  d2d2«      e
jr                  j{                  d2«      «       e7d3d2d4gd5d6ggd4d2g«      g
«      z  Z;e; e8d7 e7d8 eg d9¢g d¢ge¬«       eddge¬«      «       e7d: eddgddgd;d<gge¬«       eg d=¢e¬«      «       e7d> eg d9¢g d¢ge¬«       eddge¬«      «       e7d? eddgddgd;d<gge¬«       eg d=¢e¬«      «       e7d@ eg dA¢g dB¢ge¬«       ed%d!ge¬«      «       e7dC edDdEgdFdGgdHdIgge¬«       eg dJ¢e¬«      «       e7dK eg dA¢g dB¢ge¬«       ed%d!ge¬«      «       e7dL edDdEgdFdGgdHdIgge¬«       eg dJ¢e¬«      «       e7dM eg dA¢g dB¢ge¬«       ed%d!gdNdOgge¬«      «       e7dP edDdEgdFdGgdHdIgge¬«       ed%d!gdNdOgdNdOgge¬«      «       e7dQe
jr                  j{                  d0dR«      e
jr                  j{                  d0«      «       e7dSe
jr                  j{                  d2dT«      e
jr                  j{                  d2«      «       e7dUe
jr                  j{                  dTd2«      e
jr                  j{                  dT«      «       e7dVe
jr                  j{                  dd6«      e
jr                  j{                  d«      d-h¬.«       e7dWe
jr                  j{                  d6d«      e
jr                  j{                  d6«      d-h¬.«      g«      z  Z;e; e8dX e7dY eddgddgge¬«      d«       e7dZ eddgddgge¬«      d«       e7d[ edd"gd\d2gge¬«      d«       e7d] edd"gd\d2gge¬«      d«       e7d^ e
jx                  d+e¬«      dd-h¬.«       e7d_d2d4gd4d2ggd«       e7d` eddgddgg«      d«       e7dae
jr                  j{                  d2d2«      d«      g«      z  Z;db„ Z>e; e>«       z  Z;dc„ Z?dd„ Z@e; e@«       z  Z; G de„ df«      ZA G dg„ dheA«      ZB G di„ djeA«      ZC G dk„ dleA«      ZD G dm„ dneA«      ZE G do„ dpeA«      ZF G dq„ dreA«      ZGds„ ZH G dt„ dueBeE«      ZI G dv„ dweI«      ZJ G dx„ dyeBeE«      ZK G dz„ d{eK«      ZL G d|„ d}eBeE«      ZM G d~„ deM«      ZN G d€„ d�eBeE«      ZO G d‚„ dƒeO«      ZP G d„„ d…«      ZQ G d†„ d‡eBeE«      ZR G dˆ„ d‰eReQ«      ZS G dŠ„ d‹eDeG«      ZT G dŒ„ d�eTeQ«      ZU G dŽ„ d�eBeE«      ZV G d�„ d‘eV«      ZW G d’„ d“eBeCeEeF«      ZX G d”„ d•eX«      ZY G d–„ d—eDeG«      ZZ G d˜„ d™eZ«      Z[dš„ Z\ G d›„ dœeBeE«      Z] G d�„ dže]«      Z^ G dŸ„ d eBeC«      Z_ G d¡„ d¢e_«      Z`ejÂ                  jÅ                  d£d¤D � cg c]  }  e
jÆ                  | «      ‘Œ c} «       G d¥„ d¦«      «       Zd G d§„ d¨eDeG«      Ze G d©„ dª«      Zf G d«„ d¬eDeG«      Zg G d­„ d®«      Zh G d¯„ d°«      Zi G d±„ d²ei«      Zj G d³„ d´ei«      Zk G dµ„ d¶ekej«      Zl G d·„ d¸«      Zm G d¹„ dºei«      Zn G d»„ d¼ei«      Zo G d½„ d¾ei«      Zp G d¿„ dÀelen«      Zq G dÁ„ dÂeleo«      Zr G dÃ„ dÄelep«      Zs G dÅ„ dÆ«      ZtdÇ„ Zu G dÈ„ dÉ«      Zv G dÊ„ dË«      Zw G dÌ„ dÍ«      ZxdÎ„ ZyejÂ                  jõ                  e.dÏ¬Ð«      dÑ„ «       Z{ejÂ                  jõ                   ejø                  «       d2kD  dÒ¬Ð«      dÓ„ «       Z}ejÂ                  jõ                  e.dÔ¬Ð«      ejÂ                  jü                  dÕ„ «       «       Z 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‡dá„ Zˆdâ„ Z‰dã„ ZŠdä„ Z‹då„ ZŒdæ„ Z�dç„ ZŽdè„ Z�y# e0$ 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)Ú	AxisError)Ú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     ú\/var/www/skyplay_api_hub/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_dtyper8   5   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   r7   s    r*   Úget_complex_dtyper:   :   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   r7   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Únamer1   r2   Ú	frozensetÚtags)ÚselfrG   r1   r2   rI   s        r*   Ú__init__zLinalgCase.__init__O   s3   € ô
 	”
˜4¤Ó%Ô&ØˆŒ	ØˆŒØˆŒÜ˜d“Oˆ�	r,   c                 óV   —  || j                   | j                  | j                  ¬«       y)zN
        Run the function `do` on this test case, expanding arguments
        ©rI   N)r1   r2   rI   )rJ   Údos     r*   ÚcheckzLinalgCase.checkZ   s   € ñ 	ˆ4�6‰6�4—6‘6 §	¡	Ö*r,   c                 ó"   — d| j                   › d�S )Nz<LinalgCase: ú>)rG   ©rJ   s    r*   Ú__repr__zLinalgCase.__repr__`   s   € Ø˜tŸy™y˜k¨Ð+Ð+r,   N)Ú__name__Ú
__module__Ú__qualname__ÚsetrK   rO   rS   © r,   r*   rD   rD   N   s   „ Ù(+«ó 	$ò+ó,r,   rD   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_tagsrI   )ÚtagÚcasesÚcases      r*   Ú	apply_tagr^   d   s;   € ð
 ”(‰?Ð)˜MÓ)ˆ?Øò &ˆØ—I‘I  Ñ%ˆ�	ð&à€Lr,   éÒ  r=   r   ç      ð?ç       @ç      @ç      @r7   r   Údouble_2)ra   r`   rc   )rb   rc   ç      @r   ù      ð?       @y       @      @y      @      @y      @      @ù       @      ð?r   Ú	cdouble_2)rg   rf   y      ð?      @)y      ð?       Ày      ð?      Ày      ð?      ÀÚ0x0©r   r   ©r   rB   rM   Ú8x8é   Ú1x1é   Únonarrayé   é   é   r@   Úsingle_nsq_1)r`   ra   rb   Úsingle_nsq_2g      @re   )ra   r`   rb   Údouble_nsq_1Údouble_nsq_2Úcsingle_nsq_1)ù      ð?      ð?ù       @       @ù      @      À)y      @      Ày      @      "@y      @       @Úcsingle_nsq_2ry   rz   r{   y      @      "Ày      @      Ày      @       @)rg   rf   r{   Ú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 �]k  }t        |j                  t        j                  «      sŒ)t        j
                  |j                  d|j                  z  d|j                  z  g«      }|j                  €d }nb|j                  j                  dk(  r|j                  }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 }nÅ|j                  j                  dk(  r`t        j
                  |j                  gdz  dz  |j                  d
   z  «      j                  d	|j                  j                  dd  z   «      }nLt        j
                  |j                  gdz  dz  «      j                  d	|j                  j                  z   «      }t        |j                  dz   |||j                  dhz  ¬«      }| j                  |«       �Œn | S )Nrq   rr   ro   é   é   Ú_tile3rA   rM   ©rr   rq   éÿÿÿÿéþÿÿÿÚ_tile213)ÚCASESr%   r1   r&   r'   r   r2   ÚndimrD   rG   rI   ÚappendÚreshapeÚshape)Ú	new_casesr]   r1   r2   Únew_cases        r*   Ú_make_generalized_casesrŸ   ô   sí  € Ø€Iäó #ˆÜ˜$Ÿ&™&¤"§*¡*Ô-Øä�H‰H�d—f‘f˜a $§&¡&™j¨!¨d¯f©f©*Ð5Ó6ˆØ�6‰6ˆ>Ø‰AØ�V‰V�[‰[˜AÒØ—‘‰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Ø�V‰V�[‰[˜AÒÜ—‘˜$Ÿ&™&˜ A™¨Ñ)¨A¯G©G°B©KÑ7Ó8ß‘7˜6 D§F¡F§L¡L°°Ð$5Ñ5Ó6ñ ô —‘˜$Ÿ&™&˜ A™¨Ñ)Ó*×2Ñ2°6¸D¿F¹F¿L¹LÑ3HÓIˆAÜ˜dŸi™i¨*Ñ4°a¸Ø#'§9¡9°¨Ñ#>ô@ˆà×Ñ˜Ö"ð3#ð6 Ð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©ro   )ro   rr   éüÿÿÿr•   ro   r–   rq   )ro   r£   éýÿÿÿr7   l   ï>[= .Ústride_Ú_z%+dr   )ÚstridesÚstride_xxx_0Ústride_xxx_0_x©ro   ro   Ústride_xxx_0_0)r%   r&   r'   r™   Ú	itertoolsÚproductÚtupleÚziprœ   ÚabsÚsliceÚemptyr/   ÚviewÚuint32ÚfillÚ	__class__r   ÚallÚjoinÚlistr§   ÚlibÚstride_tricksÚ
as_strided)ÚxÚ
stride_setÚrepeatsr1   r2   Ú	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>   rM   )r˜   rÆ   r1   r2   rD   rG   rI   rš   )r�   r]   r1   Úa_labelr2   Úb_labelrž   s          r*   Ú_make_strided_casesrÊ   K  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_CASESrI   rO   rN   Ú	ExceptionÚ	tracebackÚ
format_excÚAssertionError)rJ   ÚrequireÚexcluder]   ÚeÚmsgs         r*   Úcheck_caseszLinalgTestCase.check_cases_  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)rT   rU   rV   r˜   rÎ   rW   r×   rX   r,   r*   rÌ   rÌ   \  s   „ Ø€Já"%£%±³ô 1r,   rÌ   c                   ó   — e Zd Zd„ Zd„ Zy)ÚLinalgSquareTestCasec                 ó0   — | j                  dhddh¬«       y )Nr=   rA   rB   ©rÓ   rÔ   ©r×   rR   s    r*   Útest_sq_casesz"LinalgSquareTestCase.test_sq_casesu  s!   € Ø×Ñ ( Ø"/°Ð!:ð 	õ 	<r,   c                 ó0   — | j                  ddhdh¬«       y )Nr=   rB   rA   rÛ   rÜ   rR   s    r*   Útest_empty_sq_casesz(LinalgSquareTestCase.test_empty_sq_casesy  s!   € Ø×Ñ (¨HÐ!5Ø"/ ð 	õ 	2r,   N)rT   rU   rV   rÝ   rß   rX   r,   r*   rÙ   rÙ   s  ó   „ ò<ó2r,   rÙ   c                   ó   — e Zd Zd„ Zd„ Zy)ÚLinalgNonsquareTestCasec                 ó0   — | j                  dhddh¬«       y )Nr@   rA   rB   rÛ   rÜ   rR   s    r*   Útest_nonsq_casesz(LinalgNonsquareTestCase.test_nonsq_cases€  ó!   € Ø×Ñ + Ø"/°Ð!:ð 	õ 	<r,   c                 ó0   — | j                  ddhdh¬«       y )Nr@   rB   rA   rÛ   rÜ   rR   s    r*   Útest_empty_nonsq_casesz.LinalgNonsquareTestCase.test_empty_nonsq_cases„  ó!   € Ø×Ñ +¨xÐ!8Ø"/ ð 	õ 	2r,   N)rT   rU   rV   rä   rç   rX   r,   r*   râ   râ   ~  rà   r,   râ   c                   ó   — e Zd Zd„ Zd„ Zy)ÚHermitianTestCasec                 ó0   — | j                  dhddh¬«       y )Nr?   rA   rB   rÛ   rÜ   rR   s    r*   Útest_herm_casesz!HermitianTestCase.test_herm_cases‹  rå   r,   c                 ó0   — | j                  ddhdh¬«       y )Nr?   rB   rA   rÛ   rÜ   rR   s    r*   Útest_empty_herm_casesz'HermitianTestCase.test_empty_herm_cases�  rè   r,   N)rT   rU   rV   rì   rî   rX   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 )NrA   r=   rB   rÛ   rÜ   rR   s    r*   Útest_generalized_sq_casesz9LinalgGeneralizedSquareTestCase.test_generalized_sq_cases–  s!   € à×Ñ -°Ð!:Ø"* ð 	õ 	-r,   c                 ó,   — | j                  h d£¬«       y )N>   r=   rA   rB   ©rÓ   rÜ   rR   s    r*   Útest_generalized_empty_sq_casesz?LinalgGeneralizedSquareTestCase.test_generalized_empty_sq_cases›  s   € à×ÑÒ!DÐÕEr,   N)rT   rU   rV   ÚpytestÚmarkÚslowrò   rõ   rX   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 )NrA   r@   rB   rÛ   rÜ   rR   s    r*   Útest_generalized_nonsq_casesz?LinalgGeneralizedNonsquareTestCase.test_generalized_nonsq_cases¢  ó!   € à×Ñ -°Ð!=Ø"* ð 	õ 	-r,   c                 ó,   — | j                  h d£¬«       y )N>   r@   rA   rB   rô   rÜ   rR   s    r*   Ú"test_generalized_empty_nonsq_caseszELinalgGeneralizedNonsquareTestCase.test_generalized_empty_nonsq_cases§  s   € à×ÑÒ!GÐÕHr,   N)rT   rU   rV   rö   r÷   rø   rü   rÿ   rX   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 )NrA   r?   rB   rÛ   rÜ   rR   s    r*   Útest_generalized_herm_casesz8HermitianGeneralizedTestCase.test_generalized_herm_cases®  rý   r,   c                 ó0   — | j                  h d£dh¬«       y )N>   r?   rA   rB   ÚnonerÛ   rÜ   rR   s    r*   Ú!test_generalized_empty_herm_casesz>HermitianGeneralizedTestCase.test_generalized_empty_herm_cases³  s   € à×ÑÒ!GØ"( ð 	õ 	+r,   N)rT   rU   rV   rö   r÷   rø   r  r  rX   r,   r*   r  r  ¬  s<   „ à‡[�[×Ññ-ó ð-ð ‡[�[×Ññ+ó ñ+r,   r  c                 óö   — t        | «      } | j                  dk\  rHt        j                  | j                  | j
                  ¬«      }t        | j                  d   «      |d<   |S t        | j                  d   «      S )Nrr   r7   r–   .r   )r   r™   r&   r²   rœ   r/   r	   )r1   Úrs     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                 óH  — t        j                  ||«      }t        j                  |«      j                  dk(  r=t        ||d   «      d   }t        t        j                  ||j                  «      |«       nt        ||«      }t        ||«       t        t        ||«      «       y )Nro   ).N©.r   )r   Úsolver&   r   r™   r
   r   Úbroadcast_torœ   r   r+   )rJ   r1   r2   rI   r½   Úadotxs         r*   rN   zSolveCases.doÅ  s}   € Ü�L‰L˜˜AÓˆÜ�8‰8�A‹;×Ñ˜qÒ ô ˜1˜a 	™lÓ+¨FÑ3ˆEÜ¤§¡°°5·;±;Ó ?ÀÕGä˜1˜a“LˆEÜ  5Ô)ÜÔ# A qÓ)Õ*r,   N©rT   rU   rV   rN   rX   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)Ú	TestSolver/   c                 ó’   — t        j                  ddgddgg|¬«      }t        t        j                  ||«      j
                  |«       y ©Nro   ç      à?r7   )r&   r   r   r   r  r/   ©rJ   r/   r½   s      r*   Ú
test_typeszTestSolve.test_typesÓ  s:   € ä�H‰H�q˜#�h  a Ð)°Ô7ˆÜ”V—\‘\ ! QÓ'×-Ñ-¨uÕ5r,   c                 óv  —  G d„ dt         j                  «      }t        j                  d«      j                  ddd«      }t        j                  d«      j	                  |«      }t        j                  ||«      }|j                  dk(  sJ ‚t        j                  d«      j                  dd«      j	                  |«      }t        j                  ||«      }|j                  dk(  sJ ‚t        j                  d«      j                  dd«      j	                  |«      }t        t        t
        j                  ||«       y )	Nc                   ó   — e Zd Zy)ú)TestSolve.test_1_d.<locals>.ArraySubclassN©rT   rU   rV   rX   r,   r*   ÚArraySubclassr  Ù  ó   „ Ør,   r  rm   rq   ©rq   rq   rs   )rq   rq   rq   ro   )
r&   r'   Úaranger›   r³   r   r  rœ   r   Ú
ValueError)rJ   r  r1   r2   Úresults        r*   Útest_1_dzTestSolve.test_1_dØ  sè   € ô	œBŸJ™Jô 	ä�I‰I�a‹L× Ñ   A qÓ)ˆÜ�I‰I�a‹L×Ñ˜mÓ,ˆÜ—‘˜a Ó#ˆØ�|‰|˜vÒ%Ð%Ð%ô �I‰I�a‹L× Ñ   AÓ&×+Ñ+¨MÓ:ˆÜ—‘˜a Ó#ˆØ�|‰|˜yÒ(Ð(Ð(ä�I‰I�a‹L× Ñ   AÓ&×+Ñ+¨MÓ:ˆÜ”j¤&§,¡,°°1Õ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	                  |«      }t        j                  ||«      d d …dd…f   }t        j                  |d d …dd…dd…f   |dd «      }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>.ArraySubclassNr  rX   r,   r*   r  r&  ê  r  r,   r  rm   rq   r’   ro   rr   r   )r&   r'   r   r›   r³   r   r  r   r   r%   r   r   r!  ©rJ   r  r1   r2   Úexpectedr"  s         r*   Útest_0_sizezTestSolve.test_0_sizeé  s?  € ô	œ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×Ñ˜mÓ,ˆÜ—<‘<  1Ó%¢a¨¨1¨ fÑ-ˆÜ—‘˜a¢ 1 Q 3¨¨!¨ ™n¨a°°!¨fÓ5ˆÜ˜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  rX   r,   r*   r  r,    r  r,   r  rs   ro   rq   r’   rr   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)rT   rU   rV   rö   r÷   Úparametrizer   r   r   r   r  r#  r)  r-  rX   r,   r*   r  r  Ò  s@   „ Ø‡[�[×Ñ˜W v¨v°wÀÐ&HÓIñ6ó Jð6ò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+   )rJ   r1   r2   rI   Úa_invs        r*   rN   zInvCases.do  s8   € Ü—
‘
˜1“ˆÜœF 1 eÓ,Ü5°aÓ8ô	:äÔ# E¨1Ó-Õ.r,   Nr  rX   r,   r*   r0  r0    s   „ ó/r,   r0  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   r2  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  rX   r,   r*   r  r9  .  r  r,   r  ©r   ro   ro   r7   rj   )r&   r'   ÚzerosÚint_r³   r   r2  r   r/   r$   Úfloat64r   rœ   r%   Ú	complex64©rJ   r  r1   Ú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©rT   rU   rV   rö   r÷   r.  r   r   r   r   r  r)  rX   r,   r*   r5  r5  &  s4   „ Ø‡[�[×Ñ˜W v¨v°wÀÐ&HÓIñ1ó Jð1ó0r,   r5  c                   ó   — e Zd Zd„ Zy)ÚEigvalsCasesc                 óv   — t        j                  |«      }t        j                  |«      \  }}t        ||«       y r#   )r   ÚeigvalsÚeigr   )rJ   r1   r2   rI   ÚevÚevaluesÚevectorss          r*   rN   zEigvalsCases.do?  s,   € Ü�^‰^˜AÓˆÜ"ŸJ™J q›MÑˆ�Ü˜B Õ(r,   Nr  rX   r,   r*   rC  rC  =  s   „ ó)r,   rC  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 ©Nro   r  r7   r•   )r&   r   r   r   rE  r/   r:   r  s      r*   r  zTestEigvals.test_typesF  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  rX   r,   r*   r  rP  O  r  r,   r  r:  r7   ©r   ro   rj   rk   )r&   r'   r;  r<  r³   r   rE  r   r/   r$   r=  r   rœ   r%   r>  r?  s       r*   r)  zTestEigvals.test_0_sizeM  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,   NrA  rX   r,   r*   rK  rK  E  s6   „ Ø‡[�[×Ñ˜W v¨v°wÀÐ&HÓIñHó JðHó-r,   rK  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   rF  ÚeigenvaluesÚeigenvectorsr   r
   r&   r   r<   r/   r   r+   )rJ   r1   r2   rI   r@  rW  rX  s          r*   rN   zEigCases.dob  sz   € Ü�j‰j˜‹mˆØ$'§O¡O°S×5EÑ5E�\ˆÜœ˜q ,Ó/ÜŸ
™
 <Ó0´2·:±:¸kÓ3JÈ3ÐPTÒVWÈ<Ñ3XÑXÜ% k×&7Ñ&7Ó8õ	:ô 	Ô# L°!Ó4Õ5r,   Nr  rX   r,   r*   rS  rS  `  s   „ ó6r,   rS  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 rM  )r&   r   r   rF  r   r/   r:   ©rJ   r/   r½   ÚwÚvs        r*   r  zTestEig.test_typesl  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  rX   r,   r*   r  ra  z  r  r,   r  r:  r7   rQ  rj   rk   )r&   r'   r;  r<  r³   r   rF  r   r/   r$   r=  r   rœ   r%   r>  ©rJ   r  r1   r@  Úres_vs        r*   r)  zTestEig.test_0_sizex  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,   NrA  rX   r,   r*   rZ  rZ  k  s4   „ Ø‡[�[×Ñ˜W v¨v°wÀÐ&HÓIñ	8ó Jð	8ó+r,   rZ  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 )Nro   r  r7   F©Ú
compute_uvr?   )r&   r   r   ÚsvdÚUÚSÚVhr   r/   r8   r?   )rJ   r/   r½   r@  rj  rk  rl  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)rT   rU   rV   r?   rö   r÷   r.  r   r   r   r   r  rX   r,   r*   re  re  �  s4   „ Ø€Ià‡[�[×Ñ˜W v¨v°wÀÐ&HÓIñ5ó Jñ5r,   re  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.rU  )
r   ri  r   r
   r&   r   r<   r/   r   r+   )rJ   r1   r2   rI   ÚurÅ   Úvts          r*   rN   zSVDCases.do   s„   € Ü—:‘:˜a Ó'‰ˆˆ1ˆbÜ˜œ6¤"§*¡*¨Q£-´"·*±*¸Q³-ÀÀTÊ1ÀÑ2MÑ"MÜ+-¯:©:°b«>ó;ä% a§g¡gÓ.õ	0ô 	Ô# A qÓ)Ô*ÜÔ# B¨Ó*Õ+r,   Nr  rX   r,   r*   rn  rn  ž  s   „ ó,r,   rn  c                   ó   — e Zd 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 )rs   r   Trg  ©rs   rs   rj   rs   )r   rs   N)r&   r²   r   ri  r?   r   rœ   Úeye)rJ   r½   rp  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,   c                 óÀ   — t        j                  ddgddgg«      }t        j                  |d| j                  ¬«      }t        j
                  |«      }t        ||«       y )Nro   r  Frg  )r&   r   r   ri  r?   Úsvdvalsr   )rJ   r½   Ú
s_from_svdÚs_from_svdvalss       r*   Útest_svdvalszTestSVD.test_svdvals¸  sK   € Ü�H‰H�q˜#�h  a Ð)Ó*ˆÜ—Z‘Z ¨e¸t¿~¹~ÔNˆ
ÜŸ™¨Ó*ˆÜ˜J¨Õ7r,   N)rT   rU   rV   rx  r}  rX   r,   r*   rs  rs  ©  s   „ ò$ó8r,   rs  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?   .rU  c                 ó´   — t        t        | j                  «      «      }|d   |d   c|d<   |d<   t        j                  t        j
                  | |¬«      «      S )Nr–   r•   ©Úaxes)r¹   Úranger™   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   ri  r   r
   r&   r   r<   r/   r   r  rv  rœ   r   Úsortr   r+   )rJ   r1   r2   rI   rp  rÅ   rq  r?   s           r*   rN   zSVDHermitianCases.doÁ  s(  € Ü—:‘:˜a °$Ô7‰ˆˆ1ˆbÜ˜œ6¤"§*¡*¨Q£-´"·*±*¸Q³-ÀÀTÊ1ÀÑ2MÑ"MÜ+-¯:©:°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  rX   r,   r*   r  r  ¿  s   „ ó,r,   r  c                   ó   — e Zd ZdZy)ÚTestSVDHermitianTN)rT   rU   rV   r?   rX   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 )NrB   F)rh  r  ).r•   r„   r‚   ©r3   r4   rq   r–   ro   r•   Úfro)r   r   r   r   Úcondri  r   r&   r2  r°   ÚsumÚmaxÚminr   Úsqrt)rJ   r1   r2   rI   ÚcrÅ   Úcinvs          r*   rN   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  rX   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   ro   )r   g       Àr   )r   r   rb   rs   gUUUUUUå?ro   r•   r  r�  gUUUUU6@)r   r   r   r‘  r   r&   r•  ©rJ   Ú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 )Nr  ©Nro   rq   r�  r•   r–   ç  4&õkC)r&   r;  Úonesr¬   r­   r   r   r‘  )rJ   Ú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)Nro   r•   rq   r–   r�  rŸ  r  rQ  )rr   rq   rq   ©ro   r   ro   ro   r   r   rq   )	r&   r¡  Únanr   r‘  r   r%   r=  Úisnan)rJ   Ú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_   rq   r   rj   rª   )Nro   rq   r�  r•   r–   rQ  ©ro   r   )
r&   ÚrandomÚseedÚrandr   r‘  r   r   r   Úisfinite)rJ   rœ  r¥  r–  s       r*   Útest_stacked_singularzTestCond.test_stacked_singular7  s«   € ô 	�	‰	�‰�tÔÜ�I‰I�N‰N˜1˜a  AÓ&ˆØˆˆ#‰Øˆˆ#‰à,ò 	)ˆAÜ—‘˜A˜qÓ!ˆAÜ˜˜3™¤§¡Ô(Ü˜˜3™¤§¡Ô(Ü”B—K‘K  #¡Ó'Ô(Ü”B—K‘K  #¡Ó'Õ(ñ	)r,   N)
rT   rU   rV   r�  r¦  rö   r÷   Úxfailr®  rµ  rX   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+   ©rJ   r1   r2   rI   Úa_ginvr   s         r*   rN   zPinvCases.doL  s@   € Ü—‘˜Q“ˆäˆÜ™C¡ A v£°Ó2°AÀaÐXZÕ[ÜÔ# F¨AÓ.Õ/r,   Nr  rX   r,   r*   r¸  r¸  G  s   „ ó
0r,   r¸  c                   ó   — e Zd Zy)ÚTestPinvNr  rX   r,   r*   r¿  r¿  T  ó   „ Ør,   r¿  c                   ó   — e Zd Zd„ Zy)ÚPinvHermitianCasesc                 ó¢   — t        j                  |d¬«      }t        }t         | |||«      |«      |dd¬«       t	        t        ||«      «       y )NTr�  r„   r‚   r�  rº  r¼  s         r*   rN   zPinvHermitianCases.doZ  sC   € Ü—‘˜Q¨$Ô/ˆäˆÜ™C¡ A v£°Ó2°AÀaÐXZÕ[ÜÔ# F¨AÓ.Õ/r,   Nr  rX   r,   r*   rÂ  rÂ  X  s   „ ó0r,   rÂ  c                   ó   — e Zd Zy)ÚTestPinvHermitianNr  rX   r,   r*   rÅ  rÅ  b  rÀ  r,   rÅ  c                  óx  — t        j                  g d¢g d¢g d¢g«      } t        t         j                  j	                  | d¬«      t         j                  j	                  | d¬«      «       t        j                  t        d¬«      5  t         j                  j	                  | dd¬	«       d d d «       y # 1 sw Y   y xY w)
N©ro   rq   rr   )rs   ro   ro   )rq   rr   ro   r  ©ÚrcondrU  z%`rtol` and `rcond` can't be both set.)Úmatch)rÉ  rV  )r&   r   r   r   r»  rö   Úraisesr!  )r1   s    r*   Útest_pinv_rtol_argrÌ  f  sˆ   € Ü
�‰’)šYª	Ð2Ó3€AäÜ
�	‰	�‰�q ˆÓ$Ü
�	‰	�‰�q˜sˆÓ#ôô
 
�‰ÜÐBô
ñ /ô 	�	‰	�‰�q ¨#ˆÔ.÷/÷ /ñ /ús   Â#B0Â0B9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   ro   )r   ÚdetÚslogdetÚsignÚ	logabsdetr   r/   r$   r   r   Úastyper   rE  r   r   Úreducer&   ÚexpÚ
atleast_1dr°   r   r   )rJ   r1   r2   rI   Údr@  rÅ   ÚldÚadrG  Úms              r*   rN   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  rX   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   ro   )r   r   rÒ  r$   r   r   rÓ  r   rR   s    r*   Ú	test_zerozTestDet.test_zeroŠ  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Ó  r8   )rJ   r/   r½   ÚphrÅ   s        r*   r  zTestDet.test_types—  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 )Nrj   r7   r`   r°  r   ro   )r&   r;  r>  r   rÒ  r   r   r/   r$   rÓ  Úfloat32r=  )rJ   r1   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)rT   rU   rV   râ  rö   r÷   r.  r   r   r   r   r  r)  rX   r,   r*   rß  rß  ‰  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•   rÈ  r   rq   rÐ  ro   r¢   )r&   r   rœ   r   ri  Úlstsqr   r·   r   r   r   Ú__array_wrap__r°   r’  r™   r   r³   r$   Ú
issubdtyper/   Úfloatingr+   )rJ   r1   r2   rI   ÚarrrÝ  Únrp  rÅ   rq  r½   Ú	residualsÚrankÚsvÚexpect_residss                  r*   rN   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  rX   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        j                  ||d¬«      \  }}}}t        |dk(  «       t        j                  ||«      \  }}}}t        |d	k(  «       t        j                  ||d ¬«      \  }}}}t        |d	k(  «       y )
N)rá  r`   rá  r`   ra   rá  )rá  ra   rá  rá  r`   rá  )r`   rá  r`   rá  rá  rc   )rá  rá  rá  ra   rb   rá  )ro   r   r   r   r   r   r•   rÈ  rs   rr   )r&   r   ÚTr   rê  r   )rJ   r1   r2   r½   rð  rñ  rÅ   s          r*   Ú
test_rcondzTestLstsq.test_rcondÒ  s¯   € Ü�H‰HÒ2Ú2Ú2Ú2ð4ó 5÷ 67±Qð 	
ô
 �H‰HÒ'Ó(ˆä &§¡¨Q°¸Ô <Ñˆˆ9�d˜AÜ�˜‘	ÔÜ &§¡¨Q°Ó 2Ñˆˆ9�d˜AÜ�˜‘	ÔÜ &§¡¨Q°¸Ô >Ñˆˆ9�d˜AÜ�˜‘	Õr,   )rÝ  rï  Ún_rhs))rs   rq   rq   )r   rs   ro   )r   rs   rq   )rs   r   ro   )rs   r   rq   )rs   rq   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   rk   r–   rÐ  )r&   r   r›   r¡  r   rê  r   r·   r   rœ   r   r   r’  r”  )rJ   rÝ  rï  rù  r1   r2   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   ro   rq   rr   )r•   gš™™™™™É?gÍÌÌÌÌÌì?gÍÌÌÌÌÌ @gffffff
@zIncompatible dimensionsrÈ  )
r&   r   Úvstackr¡  Úlenr÷  r   r   r   rê  )rJ   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)	rT   rU   rV   rø  rö   r÷   r.  rü  r  rX   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)ÚTestMatrixPowerrs   )rr   r   ro   rq   )rq   rr   r   ro   )ro   rq   rr   r   ro   r   rq   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 )Nrq   éd   i   é    r   ro   rr   )Úrshft_1rÖ  r   r   Úrshft_0Úrshft_2Úrshft_3)rJ   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©rJ   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 )Nro   )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 )Nrq   )r   r/   r  r
   r   r   )rˆ  r  Úmmuls      r*   r  z-TestMatrixPower.test_power_is_two.<locals>.tz1  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_two0  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      ø?ro   )r  rÖ  r   Ú	TypeErrorr   ©rJ   r  rˆ  s      r*   Útest_exceptions_bad_powerz)TestMatrixPower.test_exceptions_bad_powerG  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 )Nro   rq   )rs   rr   rq   )r   r   r   r&   r   r¡  )rJ   r  s     r*   Útest_exceptions_non_squarez*TestMatrixPower.test_exceptions_non_squareL  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_invertibleQ  s3   € à�—‘ÑØØ�k‰k× Ñ  Ó$ˆÜ”k¤<°°bÕ9r,   N)rT   rU   rV   r&   rv  r  r
  r  r  r  r   r1  Úblockr  r  r/   r&  r  r  r  r!  r'  r+  r-  rö   r÷   Úskipifr!   r2  rX   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Ð  rU  rj  )r   ÚeigvalshrF  r‰  r   r<   r/   )rJ   r1   r2   rI   rG  rH  rI  Úev2s           r*   rN   zTestEigvalshCases.do[  sn   € ô �_‰_˜Q Ó$ˆÜ"ŸJ™J q›MÑˆ�Ø�‰˜"ˆÔÜ˜˜G¬(°2·8±8Ó*<Õ=ä�o‰o˜a Ó%ˆÜ˜˜W¬8°B·H±HÓ+=Ö>r,   Nr  rX   r,   r*   r6  r6  Y  s   „ ó	?r,   r6  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   r9  r   r/   r8   )rJ   r/   r½   r]  s       r*   r  zTestEigvalsh.test_typesh  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 ©Nro   r  r7   Úlrong©ÚUPLOÚlowerÚupper)r&   r   ræ  r   r!  r   r9  ©rJ   r½   s     r*   Útest_invalidzTestEigvalsh.test_invalidn  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   ro   r7   r•   rU  r8  rA  Úlrj  rp  )r&   r   r   r<   r   r9  r   )rJ   ÚKloÚKupÚtgtrV  r]  s         r*   Ú	test_UPLOzTestEigvalsh.test_UPLOt  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  rX   r,   r*   r  rP  Œ  r  r,   r  r:  r7   rQ  rj   rk   )r&   r'   r;  r<  r³   r   r9  r   r/   r$   r=  r   rœ   r%   r>  ræ  r?  s       r*   r)  zTestEigvalsh.test_0_sizeŠ  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©rT   rU   rV   rö   r÷   r.  r   r   r   r   r  rF  rM  r)  rX   r,   r*   r<  r<  g  s?   „ Ø‡[�[×Ñ˜W v¨v°wÀÐ&HÓIñ5ó Jð5ò
Bò+ó,-r,   r<  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Ð  .rU  rj  )rV  Úerr_msg)r   ÚeighrW  rX  rF  r‰  r   r   r
   r&   r   r<   r/   Úrepr)rJ   r1   r2   rI   r@  rG  ÚevcrH  rI  r:  Úevc2s              r*   rN   zTestEighCases.doŸ  sô   € ô �k‰k˜!‹nˆØ—/‘/ 3×#3Ñ#3ˆCˆÜ"ŸJ™J q›MÑˆ�Ø�‰˜"ˆÔÜ˜B Ô(äœ˜q #›ÜŸ
™
 2› s¨D²! |Ñ4´r·z±zÀ#³ÑFÜ% b§h¡hÓ/õ	1ô —K‘K  3Ó'‰	ˆˆTÜ˜C Ô)äœ˜q $›ÜŸ
™
 3›¨¨T²1¨Ñ5¼¿
¹
À4Ó8HÑHÜ% b§h¡hÓ/¼¸a»ö	Br,   Nr  rX   r,   r*   rS  rS  �  s   „ óBr,   rS  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   rV  r   r/   r8   r\  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 r?  )r&   r   ræ  r   r!  r   rV  rE  s     r*   rF  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 rH  )r&   r   r   r<   r   rV  r   )rJ   rJ  rK  rL  rV  r]  r^  s          r*   rM  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  rX   r,   r*   r  ra  Ú  r  r,   r  r:  r7   rQ  rj   rk   )r&   r'   r;  r<  r³   r   rV  r   r/   r$   r=  r   rœ   r%   r>  ræ  rb  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,   NrQ  rX   r,   r*   r[  r[  ´  s>   „ Ø‡[�[×Ñ˜W v¨v°wÀÐ&HÓIñ%ó Jð%ò>ò+ó,+r,   r[  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,   )rT   rU   rV   r  ÚdecÚstaticmethodrh  rX   r,   r*   rc  rc  ï  s   „ Ø	€BØ
€Càñ=ó ñ=r,   rc  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á  r7   )r   r   r   r  r   rR   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   rq   ro   ra   r  rs   g      Ð?r`   )r&   r   Ú	typecodesrÖ  r   r   rh  r   r   ÚfilterÚRuntimeWarningr/   r$   ©	rJ   r1   Úexact_typesÚinexact_typesÚ	all_typesÚ	each_typeÚatÚanÚsups	            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)ro   rq   rr   rs   )r•   r–   r¤   r£   )r•   rq   r¤   rs   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.   rc   r`   ro   ç      $@r•   g¸…ëQ¸Þ?rq   r–   gÊsÔcÙÑê?r   rs   )r&   Útestingr   r   ri  r   )r^  rJ   s    €r*   Ú_testz+_TestNormGeneral.test_vector.<locals>._test1  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,   r7   )r   r  )rJ   r1   r2   r–  r„  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 )NrÇ  ©rs   r„   r’   r7   r•   r   ro   rq   rr   ©Úord©r‰  rÑ  é   rs   r–   r�  rÐ  )r   r  r&   r   r…  rœ   r   r   r   r›   r™   r¬   Úcombinationsr   r!  Útaker÷  )rJ   rœ  ÚorderÚkÚ	expected0Ú	expected1ÚBÚndrÑ  Úrow_axisÚcol_axisrï  Úk_indexr(  s                 r*   Ú	test_axisz_TestNormGeneral.test_axisJ  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 )Nro   r‹  r7   rq   rr   rs   zorder {0}, axis = {1}z;Shape mismatch found {0}, expected {1}, order={2}, axis={3}rŠ  T)r‰  rÑ  Úkeepdims)rU  )ro   ro   ro   r•   r   r–   r�  Únuc)r&   r   r  r›   r   r   ÚsqueezeÚformatr   rœ   r   r…  r™   r¹   r®   r¬   Úpermutations)	rJ   rœ  Úallclose_errÚ	shape_errr(  ÚfoundÚexpected_shaperŽ  r�  s	            r*   Útest_keepdimsz_TestNormGeneral.test_keepdimso  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)rT   rU   rV   rn  r~  r…  r—  r¢  rX   r,   r*   rl  rl  ü  s   „ òFò
')òRò<#5óJ(Qr,   rl  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 )Nr7   rá  )r   r   r   r  rR   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ª  r:  rp  ÚfdFDra   rr  r•   r`   ro   rq   gªLXèz¶û?r–   r�  rš  gU&,t=Û@r’   r�  )r   r&   rs  rÖ  r   r   rh  r   r   rt  ru  rƒ  rv  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 )Nro   rr   r„   r‘   r7   g…¹ŽT"@r�  rš  r‚  g      (@rc   r•   re   rq   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„   )rr   rq   ro   r7   grj=Q0î?r�  rš  gþB+pcõ?gš™™™™™ñ?g333333ã?ro   r`   r•   gš™™™™™Ù?rq   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        t        |d d«       t        t        t        |d d«       t        t        t        |d d«       y )NrÇ  r‡  r7   ro   r‹  rq   rr   rs   r�  r   rš  Útest©r   rr   rQ  )ro   rq   ©rq   rr   ©r   ro   rq   )	r   r  r&   r   r›   r   r!  r   r   )rJ   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Õ=ð	>ô 	”i¤ q¨$°Ô2Ü”i¤ q¨$°Ô7Ü”j¤$¨¨4°Õ;r,   N)
rT   rU   rV   r&   r   r¦  r©  r¬  r®  r´  rX   r,   r*   r¤  r¤  š  s)   „ ð �H‰H€EòAò1Nòf.ò >ó"<r,   r¤  c                   ó   — e Zd Zy)Ú	_TestNormNr  rX   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é
   r7   rr   rˆ  gÍÌÌÌÌL)@rq   r�  )r&   r   Ú
longdoubler0   r   rE  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   €r7   rr   rˆ  l        r„   r�  )r&   r   Úint32r0   r   rE  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©rq   r7   y      @      @r   y      À      @ro   g¨ËþÿV;'@rr   rˆ  rº  r�  é	   r„   )	r&   r²   Úclongdoubler0   r   r   rÖ  Ú
complex128r>  )rJ   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)rT   rU   rV   r¼  r¿  rÅ  rX   r,   r*   r¸  r¸    s   „ òBòDó
Jr,   r¸  c                   ó(   — e Zd Zej                  ZdZy)Ú_TestNormDoubleBaseé   N)rT   rU   rV   r&   r   r  ri  rX   r,   r*   rÇ  rÇ  2  s   „ Ø	�‰€BØ
�Cr,   rÇ  c                   ó(   — e Zd Zej                  ZdZy)Ú_TestNormSingleBaser’   N)rT   rU   rV   r&   ræ  r  ri  rX   r,   r*   rÊ  rÊ  7  s   „ Ø	�‰€BØ
�Cr,   rÊ  c                   ó(   — e Zd Zej                  ZdZy)Ú_TestNormInt64BaserÈ  N)rT   rU   rV   r&   Úint64r  ri  rX   r,   r*   rÌ  rÌ  <  s   „ Ø	�‰€BØ
�Cr,   rÌ  c                   ó   — e Zd Zy)ÚTestNormDoubleNr  rX   r,   r*   rÏ  rÏ  A  rÀ  r,   rÏ  c                   ó   — e Zd Zy)ÚTestNormSingleNr  rX   r,   r*   rÑ  rÑ  E  rÀ  r,   rÑ  c                   ó   — e Zd Zy)ÚTestNormInt64Nr  rX   r,   r*   rÓ  rÓ  I  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«       t        t        d«      5  t        |dd¬«       d d d «       y # 1 sw Y   y xY w)Nrs   rá  ©r•   r•   rr   ru  r   )ro   r   r   r   ro   )rs   )rr   rs   r   z#`tol` and `rtol` can't be both set.g{®Gáz„?)ÚtolrV  )r   r   r&   rv  r;  r   r   r!  )rJ   ÚIÚmss      r*   Útest_matrix_rankzTestMatrixRank.test_matrix_rankO  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Ô'ä ÜÐ>ó
ñ 	0ô ˜˜t¨$Õ/÷	0÷ 	0ñ 	0ús   Å"E:Å:F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 )Nrs   Tr�  ro   ru  r   rá  r×  rr   g:Œ0âŽyE>g¾Ü|"•BE>)r?   rØ  gµ;ä¡ˆ°E>)r   r   r&   rv  r¡  r;  )rJ   rÙ  s     r*   Útest_symmetric_rankz"TestMatrixRank.test_symmetric_rankh  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)rT   rU   rV   rÛ  rÝ  rX   r,   r*   rÕ  rÕ  M  s   „ ò0ó2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º  ©Úsizero   rq   r   rÂ  rs   r„   rr   rm   )r&   r±  ÚRandomStater…  Únormalr   r   )ÚrngÚiÚXs      r*   Útest_reduced_rankrç  v  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&   rv  Útriu)rJ   r1   Úa_typeÚa_dtyperÝ  rï  r�  r@  rð  rñ  Úq1Úr1Úr2s                r*   Úcheck_qrzTestQR.check_qr‡  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ï  )©rr   r   r±  rj   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œ   )rJ   rÝ  rï  r�  r1   Ú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 )Nro   rq   rr   rs   r„   r’   r7   rû  rì  r²  rÁ  r”   )	r   r&   r   r   rï  r   r/   rœ   r÷  )rJ   r1   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 )	Nro   rq   rr   rs   r„   r’   Úfdù              ð?)r   rÖ  rø  r÷  )rJ   r1   r2   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•   rq   .rî  r  )r$   r/   rœ   r”  r   rï  r   r%   r   r
   r&   r	   r  r   r†  rò  )rJ   r1   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á  ))rr   rs   )rs   rr   ru  rù  r±  Ú
outer_size)r  rÁ  )rq   rr   rs   r  c                 ó"  — t         j                  j                  d«      }|j                  ||z   ¬«      j	                  |«      }|j                  ||z   ¬«      j	                  |«      }| j                  |«       | j                  |d|z  z   «       y )Né{   rà  r  )r&   r±  Údefault_rngrã  rÖ  r  )rJ   r  rá  r  rä  rœ  r’  s          r*   Útest_stacked_inputszTestQR.test_stacked_inputs  s|   € ô �i‰i×#Ñ# CÓ(ˆØ�J‰J˜J¨Ñ-ˆJÓ.×5Ñ5°bÓ9ˆØ�J‰J˜J¨Ñ-ˆJÓ.×5Ñ5°bÓ9ˆØ×Ñ˜aÔ Ø×Ñ˜a # a¡%™iÕ(r,   N)rT   rU   rV   r&   r   rø  rö   r÷   r.  rþ  r   r  r  r   r   r   r   r  rX   r,   r*   ré  ré  ƒ  sÑ   „ à�H‰H€Eò%$ðP ‡[�[×Ñ˜c 3˜Zò *ó ñ

&óð

&ò#ò, ò"+$ðZ ‡[�[×Ñ˜Vò &ó ð ‡[�[×Ñ˜\ò ,!ó "à‡[�[×Ñ˜TØ
�	‰	�2—9‘9Ø
�
‰
�B—J‘Jð$ ó !ñ)ó!ó"óñ)r,   ré  c                   ó8  — e Zd Zej                  j                  dg d¢«      ej                  j                  dej                  ej                  ej                  ej                  f«      ej                  j                  dddg«      d„ «       «       «       Zd„ Zd	„ Zy
)ÚTestCholeskyrœ   )rª   r  ©rr   rr   )é2   r  )rr   rº  rº  r/   rD  FTc                 ó^  — 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                  ||¬«      }|r4t        j                  |j                  |«      j                  «       |«      }n3t        j                  ||j                  |«      j                  «       «      }d|j                  d   z  t        j                   |«      j"                  z  }t%        ||||› d	|› d
|› d
|› �¬«       t        j&                  |dd¬«      }	t)        t        j*                  t        j,                  |	«      «      «       t)        t        j*                  |	dk\  «      «       y )Nro   r  )r•   r–   r–   r7   ©rD  iô  r   ú ú
)ÚatolrU  r•   )Úaxis1Úaxis2)r&   r±  r²  Úrandnrì  Úcomplexfloatingr¹   r…  rÿ  r
   r‡  r†  r   r   Úcholeskyrœ   ÚfinfoÚepsr   Údiagonalr   r·   Úisreal)
rJ   rœ   r/   rD  r1   Útr–  r2   r  rÚ  s
             r*   Útest_basic_propertyz TestCholesky.test_basic_property'  s�  € ô 	�	‰	�‰�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¨ÐÓ.ˆñ Ü—	‘	˜!Ÿ+™+ a›.×-Ñ-Ó/°Ó3‰Aä—	‘	˜!˜QŸ[™[¨›^×0Ñ0Ó2Ó3ˆAà�Q—W‘W˜Q‘ZÑ¤"§(¡(¨5£/×"5Ñ"5Ñ5ˆÜ˜˜1 4°E°7¸!¸E¸7À"ÀQÀCÀrÈ!ÈÐ1MÕNô �K‰K˜ ¨2Ô.ˆÜ”—‘”r—y‘y “|Ó$Ô%Ü”—‘�q˜A‘v“Õr,   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  rX   r,   r*   r  r'  L  r  r,   r  r:  r7   )ro   r   r   )r&   r'   r;  r<  r³   r   r  r   rœ   r   r/   r$   r=  r%   r>  r?  s       r*   r)  zTestCholesky.test_0_sizeK  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,   c                 ó:  — t        j                  ddgddgg«      }t        t        j                  |«      t        j                  |d¬«      «       t        t        j                  |d¬«      t        j                  |«      j
                  j                  «       «       y )Ny      ð?        y               Ày               @y      @        Fr  T)r&   r   r   r   r  r÷  r†  )rJ   r1   s     r*   Útest_upper_lower_argz!TestCholesky.test_upper_lower_arg[  sl   € ä�H‰H�t˜T�l T¨4 LÐ1Ó2ˆä”V—_‘_ QÓ'¬¯©¸À%Ô)HÔIäÜ�O‰O˜A TÔ*Ü�O‰O˜AÓ× Ñ ×%Ñ%Ó'õ	
r,   N)rT   rU   rV   rö   r÷   r.  r&   ræ  r=  r>  rÄ  r$  r)  r)  rX   r,   r*   r  r  %  sŒ   „ à‡[�[×ÑØÒ@óð ‡[�[×ÑØ�"—*‘*˜bŸj™j¨"¯,©,¸¿¹ÐFóð ‡[�[×ÑØ�%˜�ó ñ ó óóð ò8-ó 	
r,   r  c                   óf  — e Zd Z ej                  d«      Z ej                  d«      Z ej                  g d¢g d¢g d¢g«      Z e	ej                  j                  ee«      e«        eed«      5  ej                  j                  edd…ej                  f   e«       ddd«       y# 1 sw Y   yxY w)Ú	TestOuterrr   rú  r³  )r   rq   rs   z$Input arrays must be one-dimensionalN)rT   rU   rV   r&   r   Úarr1Úarr2r   r(  r   r   Úouterr   r!  ÚnewaxisrX   r,   r*   r+  r+  g  s�   „ Øˆ2�9‰9�Q‹<€DØˆ2�9‰9�Q‹<€DØˆr�x‰xÚ	Ú	Ú	ð	ó€Hñ �r—y‘y—‘ t¨TÓ2°HÔ=á	ØÐ:ó
ñ 3ð 	�	‰	�‰˜šQ §
¡
˜]Ñ+¨TÔ2÷3÷ 3ñ 3ús   Á0.B'Â'B0r+  c                  óp  — t         j                  dk(  rd} nd} t        j                  t        j                  fD ]û  }t        j
                  d|¬«      }|j                  |j                  j                  | «      «      }|j                  |j                  j                  d«      «      j                  «       }t        |j                  j                  d«       t        j                  t        j                  t        j                  fD ].  } ||«      }t        | ||«      «       t        | ||«      «       Œ0 Œý y )NÚlittleú<rQ   rs   r7   rk  ú=)ÚsysÚ	byteorderr&   ræ  r=  rv  r³   r/   ÚnewbyteorderÚbyteswapr   r   r2  rÒ  r»  r   )ÚnativeÚdttrî  Ún_arrÚsw_arrÚroutiner@  s          r*   Útest_byteorder_checkr=  x  sâ   € ä
‡}�}˜Ò Ø‰àˆä—
‘
œBŸJ™JÐ'ò 5ˆÜ�f‰f�Q˜cÔ"ˆØ—‘˜Ÿ™×/Ñ/°Ó7Ó8ˆØ—‘˜#Ÿ)™)×0Ñ0°Ó5Ó6×?Ñ?ÓAˆÜ�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 )Nro   rq   rr   rs   )rs   rs   rq   rq   .rj   )r&   r   r;  r   r   r   r2  )Ú
invertibleÚnon_invertibler½   s      r*   Ú test_generalized_raise_multilooprA  �  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,   z?skipping test that uses fork because there are multiple threadsc                  óÈ  — 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   ro   rj   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   ÚdorgqrrF   ÚwaitÚWEXITSTATUS)Ú	XERBLA_OKÚpidrJ  r1   rÕ   Ústatuss         r*   Útest_xerbla_overriderW  ›  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)r\  r[  r]  )ÚtextwrapÚdedentrœ  Ú
subprocessÚ
check_callr4  Ú
executable)Úbad_libsÚtemplater]  Úcodes       r*   Útest_sdot_bug_8577rf  Ï  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’   rq   ©rq   r’   ©r&   r±  r   r   r   )rJ   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 rj  rm  )rJ   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 )Nrk  rl  ©rq   ro   rm  )rJ   rœ  r’  rn  Ú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 )Nrq   rl  rk  r  rÁ  ©r&   r±  r   r   rœ   )rJ   ÚA1dr’  rn  rt  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 )Nrk  rl  rq   )r’   rw  )rJ   rœ  r’  rn  Ú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 )Nrq   rl  rk  rX   rw  )rJ   rx  r’  rn  r{  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 )Nrk  rl  ©r(   ©r&   r±  r;  r   r   r   )rJ   rœ  r’  rn  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 )Nrk  rl  )r’   r’   r€  r�  )rJ   rœ  r’  r(   r‚  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 )Nrk  rl  rs  )r’   ro   r€  r�  )rJ   rœ  r’  rn  rt  r(   r‚  s          r*   Ú-test_dynamic_programming_optimization_and_outz:TestMultiDot.test_dynamic_programming_optimization_and_outE  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)é   é#   )rŠ  é   )r‹  r„   )r„   rº  )rº  é   )rŒ  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   ro   ro   rr   rr   rr   )r   r   rq   rr   rr   rr   )r   r   r   rr   rr   rr   )r   r   r   r   rs   r„   )r   r   r   r   r   r„   )r   r   r   r   r   r   r7   ro   T)Úreturn_costsr•   )r&   r±  r   Úintr   r   rò  )rJ   ÚarraysÚ
m_expectedÚ
s_expectedrÅ   rÝ  s         r*   Útest_dynamic_programming_logicz+TestMultiDot.test_dynamic_programming_logicQ  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±  rR   s    r*   Útest_too_few_input_arraysz&TestMultiDot.test_too_few_input_arrayso  s,   € Ü”j¤)¨RÔ0Ü”j¤)¬b¯i©i×.>Ñ.>¸vÓ.FÐ-GÕHr,   N)rT   rU   rV   ro  rq  ru  ry  r|  r~  rƒ  r…  r‡  r’  r”  rX   r,   r*   rh  rh  ó  s<   „ òKò=òMò<ò<ò<ò:ò/ò
9ò=ó<Ir,   rh  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©rs   r’   rm   rq   rq   ©rr   rr   rq   ro   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)rJ   rî  r›  s      r*   Útest_non_square_handlingz&TestTensorinv.test_non_square_handlingv  s1   € ô
 œ;Ó'ñ 	+Ü×Ñ˜S cÕ*÷	+÷ 	+ñ 	+ús   �1±:z
shape, ind)©rs   r’   rm   rr   rq   )©é   rm   rr   ro   c                 óØ   — t        j                  d«      }||_        t        j                  ||¬«      }|j                  |d  |j                  d | z   }|j                  }t        ||«       y )Nr   ©r1   r›  )r&   rv  rœ   r   rœ  r   )rJ   rœ   r›  r1   Úainvr(  Úactuals          r*   Útest_tensorinv_shapez"TestTensorinv.test_tensorinv_shape~  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&   rv  rœ   r   r!  r   rœ  )rJ   r›  r1   s      r*   Útest_tensorinv_ind_limitz&TestTensorinv.test_tensorinv_ind_limit‹  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Ÿ  ro   rš  )	r&   rv  rœ   r   rœ  r¡  r   Ú	tensordotÚtensorsolve)rJ   r1   r£  r2   s       r*   Útest_tensorinv_resultz#TestTensorinv.test_tensorinv_result”  s]   € ä�F‰F�2‹JˆØˆŒÜ×Ñ  qÔ)ˆÜ�G‰G�B‹KˆÜœŸ™ T¨1¨aÓ0´"·)±)×2GÑ2GÈÈ1Ó2MÕNr,   N)rT   rU   rV   rö   r÷   r.  r&   r¡  r�  r¥  r§  r«  rX   r,   r*   r–  r–  t  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   rq   c                 óÀ   — t        t        «      5  t        j                  |j                  d d «      }t        j                  |||¬«       d d d «       y # 1 sw Y   y xY w©Nrq   rƒ  )r   r   r&   r¡  rœ   r   rª  )rJ   r1   r„  r2   s       r*   r�  z(TestTensorsolve.test_non_square_handlingŸ  sK   € ô
 œ;Ó'ñ 	0Ü—‘˜Ÿ™  ˜Ó$ˆAÜ×Ñ˜q !¨$Õ/÷	0÷ 	0ñ 	0ús   �;AÁArœ   ))rq   rr   r’   )rr   rs   rs   rr   )r   rr   rr   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ÿ  )rJ   rœ   r1   r2   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,   )
rT   rU   rV   rö   r÷   r.  r&   r¡  r�  r±  rX   r,   r*   r­  r­  �  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)Nro   r–   rq   r„   Úfloat16r7   zunsupported in linalg)r&   r   r   r)  r   r  )rî  s    r*   Útest_unsupported_commontyper´  ²  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ì        ro   r7   )r   r•   )r&   r;  ræ  r¡  r   r   )rï  r1   r2   r–  s       r*   Útest_blas64_dotr·  ½  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       ro   r7   r•   r   ÚinforÝ  rï  r¶  l        )
r&   r=  r   rM  Údgeqrfr;  r   rŽ  Úitemr   )
r/   Úlapack_routinerÝ  rï  Úldar1   Ú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,   c                  óÞ   — t        j                  d«      j                  d«      } t         j                  j	                  | «      }t        j
                  g d¢g d¢g d¢g«      }t        ||«       y )Né<   ©rr   rs   r„   )r   r’   rÈ  é   )rŒ  é   r	  é&   )rß  é.   é4   é:   )r&   r   r›   r   r!  r   r   ©r½   r¤  r(  s      r*   Útest_diagonalrÌ  ã  sX   € ô 	�	‰	�"‹×Ñ˜iÓ(€AÜ�Y‰Y×Ñ Ó"€FÜ�x‰xâÚÚð	
ó€Hô �˜Õ"r,   c                  óÐ   — t        j                  d«      j                  d«      } t         j                  j	                  | «      }t        j
                  g d¢«      }t        ||«       y )NrÃ  rÄ  )é$   ét   éÄ   )r&   r   r›   r   Útracer   r   rË  s      r*   Ú
test_tracerÒ  ó  sF   € ô 	�	‰	�"‹×Ñ˜iÓ(€AÜ�Y‰Y�_‰_˜QÓ€FÜ�x‰xšÓ'€Hä�˜Õ"r,   c                  ó  — t        j                  d«      j                  d«      } t         j                  j	                  | | dz   «      }t        j
                  g d¢g d¢g d¢g«      }t        ||«       g d¢}g d¢}t         j                  j	                  ||«      }t        g d¢«      }t        ||«       t        t        d«      5  | d d …dd …f   }t         j                  j	                  ||«       d d d «       y # 1 sw Y   y xY w)	NrÂ  r  ro   )r•   rq   r•   rÇ  r‡  )r¤   r’   r¤   z8input arrays must be \(arrays of\) 3-dimensional vectors)	r&   r   r›   r   Úcrossr   r   r   r!  )r½   r¤  r(  rp  r^  Úx_2dims         r*   Ú
test_crossrÖ  þ  sÔ   € Ü
�	‰	�!‹×Ñ˜VÓ$€AÜ�Y‰Y�_‰_˜Q  A¡Ó&€FÜ�x‰xÚÚÚðó €Hô �˜Ô"ò 	€AÚ€AÜ�Y‰Y�_‰_˜Q Ó"€FÜ’\Ó"€Hä�˜Ô"ä	ÜØCó
ñ (ð ’1�a‘b�5‘ˆÜ
�	‰	�‰˜ Ô'÷(÷ (ñ (ús   Ã,C8Ã8Dc                  óè   — t        j                  d«      j                  d«      } t         j                  j	                  | | «      dk(  sJ ‚t         j                  j	                  | | ddg¬«      dk(  sJ ‚y )Nr’   r²  é7   rQ  rƒ  )r&   r   r›   r   r©  )r½   s    r*   Útest_tensordotrÙ  	  sb   € ä
�	‰	�!‹×Ñ˜VÓ$€Aä�9‰9×Ñ˜q !Ó$¨Ò*Ð*Ð*Ü�9‰9×Ñ˜q !¨6°6Ð*:ÐÓ;¸rÒAÐAÑAr,   c                  óî   — t        j                  d«      j                  d«      } t         j                  j	                  | | j
                  «      }t        j                  ddgddgg«      }t        ||«       y )Nr’   r²  r„   é   r  )r&   r   r›   r   r
   r÷  r   r   rË  s      r*   Útest_matmulrÜ  !	  s[   € ô 	�	‰	�!‹×Ñ˜VÓ$€AÜ�Y‰Y×Ñ˜a §¡Ó%€FÜ�x‰x˜!˜R˜ 2 r (Ð+Ó,€Hä�˜Õ"r,   c                  óP  — t        j                  d«      j                  d«      } t         j                  j	                  | «      }| j
                  }t        ||«       t        t        d«      5  t         j                  j	                  | d d …df   «       d d d «       y # 1 sw Y   y xY w)Nr’   r²  z$array must be at least 2-dimensionalr   )	r&   r   r›   r   Úmatrix_transposer÷  r   r   r!  rË  s      r*   Útest_matrix_transposerß  +	  s€   € Ü
�	‰	�!‹×Ñ˜VÓ$€AÜ�Y‰Y×'Ñ'¨Ó*€FØ�s‰s€Hä�˜Ô"ä	ÜÐ:ó
ñ ,ô 	�	‰	×"Ñ" 1¢Q¨ T¡7Ô+÷,÷ ,ñ ,ús   Á,'BÂB%c                  óT  — t        j                  d«      j                  d«      } t         j                  j	                  | «      }t        |t        j                  d«      d¬«       t         j                  j	                  | d¬«      }t        |t        j                  dgg«      d¬«       y )NrÂ  r  çž^)Ë�,@rr   ©r4   T©r™  )r&   r   r›   r   Úmatrix_normr   r=  r   )r½   r¤  s     r*   Útest_matrix_normrå  8	  su   € Ü
�	‰	�!‹×Ñ˜VÓ$€AÜ�Y‰Y×"Ñ" 1Ó%€Fä˜¤§
¡
¨7Ó 3ÀAÕFä�Y‰Y×"Ñ" 1¨tÐ"Ó4€Fä˜¤§¡¨7¨)¨Ó 5ÀaÖHr,   c                  ó"  — t        j                  d«      j                  d«      } t         j                  j	                  | «      }t        |t        j                  d«      d¬«       t         j                  j	                  | d¬«      }t        |t        j                  g d¢«      d¬«       t         j                  j	                  | d	¬
«      }t        j                  ddd¬«      }t        |j                  |j                  «       t        ||d¬«       y )NrÂ  r  rá  rr   râ  r   rÐ  )gÚ|a2Õ@gsh‘í|? @gDioð…I#@Trã  rª   r=  r7   )r&   r   r›   r   Úvector_normr   r=  r   Úfullr   rœ   rË  s      r*   Útest_vector_normré  C	  sÀ   € Ü
�	‰	�!‹×Ñ˜VÓ$€AÜ�Y‰Y×"Ñ" 1Ó%€Fä˜¤§
¡
¨7Ó 3ÀAÕFä�Y‰Y×"Ñ" 1¨1Ð"Ó-€FäØ”—‘Ò0Ó1À!õô �Y‰Y×"Ñ" 1¨tÐ"Ó4€FÜ�w‰w�v˜w¨iÔ8€HÜ�—‘˜xŸ~™~Ô.Ü˜ ¸Ö;r,   )r’   rÈ  )�Ú__doc__rD  r4  r¬   Ú	threadingrÐ   r^  r`  rö   Únumpyr&   r   r   r   r   r   r   r	   r
   Únumpy._corer   Únumpy.exceptionsr   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+   r0   r8   r:   r<   rZ   rD   r^   r±  r²  r˜   r²   r³  rŸ   rÆ   rÊ   rÌ   rÙ   râ   rê   rð   rú   r  r	  r  r  r0  r5  rC  rK  rS  rZ  re  rn  rs  r  r‹  r�  r™  r¸  r¿  rÂ  rÅ  rÌ  rÎ  rß  rè  rõ  r÷   r.  r/   r  r6  r<  rS  r[  rc  rl  r¤  r¶  r¸  rÇ  rÊ  rÌ  rÏ  rÑ  rÓ  rÕ  rç  ré  r  r+  r=  r4  rA  Úactive_countrW  rø   rf  rh  r–  r­  r´  rH  r·  r¶  rÁ  rÌ  rÒ  rÖ  rÙ  rÜ  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 Ó#Øóð/!ó 
ñ €ò@ðB Ñ	 Ó	"Ñ "€ò-'ò`ð Ñ	Ó	Ñ €÷1ñ 1ô.2˜>ô 2ô2˜nô 2ô2˜ô 2ô	F nô 	Fô	I¨ô 	Iô
+ >ô 
+ò$ô+Ð%Ð'Fô +ôH3�
ô H3ôV/Ð#Ð%Dô /ô0ˆhô 0ô.)Ð'Ð)Hô )ô-�,ô -ô66Ð#Ð%Dô 6ô!+ˆhô !+÷H5ñ 5ô,Ð#Ð%Dô ,ô8ˆh˜ô 8ô,,Ð)Ð+Gô ,ô&Ð(¨,ô ô+1Ð$Ð&Eô +1ô\@)ˆyô @)ôF
0Ð$Ø'Ø/Ø2ô
0ô	ˆyô 	ô0Ð*Ð,Hô 0ô	Ð*ô 	ò/ô#Ð#Ð%Dô #ô*'1ˆhô '1ôT3Ð%Ð'>ô 3ô<.+�
ô .+ðb ‡�×Ñ˜Ð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òR
(÷_)ñ _)÷D?
ñ ?
÷D3ñ 3ò"5ð* ‡�×Ñ�GÐ$BÐÓCñ;ó Dð;ð ‡�×ÑØ€I×ÑÓ˜qÑ ØLð ó Nñ.7óNð.7ðb ‡�×Ñ�GÐ$=ÐÓ>Ø‡�×Ññ<ó ó ?ð<÷D~Iñ ~I÷B&Oñ &O÷RBñ Bò*ð ‡�×ÒÐGÐÓHñó Iðð ‡�×Ò�|Ð#ØFð ó Hñ#óHð#ò4#ò #ò(ò6Bò#ò
,òIó<øðOI ò 	ò 	ð		üòL  Js   Âe8 Ý f
å8fæ f