§
    µ³Ùg} ã                   ó(+  — d dl mZ d dlZd dlmZmZmZmZmZm	Z	 d dl
Z
d dl
mZ d dl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mZmZ d dlmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z( d dl)m*Z* d d	l+m,Z,m-Z- d dl.m/Z0 	 d d
l1m2Z2 n# e3$ r dZ2Y nw xY w	 d dlm4Z5 n# e3$ r dZ5Y nw xY wd dl)m6Z6 d dl7m8Z8 ej9        ej:        gZ;ej<        ej=        gZ>e;e>z   Z?dxZ@ZAe2�(e2d         d         d         Z@e2d         d         d         ZAd„ ZBd„ ZC G d„ d¦  «        ZD G d„ d¦  «        ZE G d„ d¦  «        ZFe
jG         H                    de?¦  «        e
jG         H                    dg d¢¦  «        d„ ¦   «         ¦   «         ZI G d„ d¦  «        ZJ G d „ d!¦  «        ZK G d"„ d#¦  «        ZL G d$„ d%¦  «        ZMe
jG         H                    de?¦  «        e
jG         H                    d&g d'¢¦  «        e
jG         H                    d(d)d*g¦  «        e
jG         H                    d+d,d)g¦  «        e
jG         H                    d-d.d/g¦  «        d0„ ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         ZNd1„ ZOd2„ ZPd3„ ZQd4„ ZR G d5„ d6¦  «        ZS G d7„ d8¦  «        ZTd9„ ZUd:„ ZVd;„ ZWd<„ ZXd=„ ZYd>„ ZZd?„ Z[d@„ Z\dA„ Z]dB„ Z^dC„ Z_dD„ Z`dE„ ZadF„ Zb G dG„ dH¦  «        ZcdI„ ZddJ„ ZedK„ ZfdL„ Zge
jG         h                    dMdN¬O¦  «        dP„ ¦   «         ZidQ„ Zje
jG         H                    dRdSdTg¦  «        e
jG         H                    de;¦  «        e
jG         H                    dU ekdV¦  «        ¦  «        e
jG         H                    dW ekdX¦  «        ¦  «        e
jG         H                    dY ekdX¦  «        ¦  «        e
jG         H                    dZd d[g¦  «        e
jG         H                    d\d d[g¦  «        �dbd]„¦   «         ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         Zle
jG         H                    de;¦  «        d^„ ¦   «         Zme
jG         H                    d_dUd`idWd`idYd`idZd`idad`id\d`if¦  «        db„ ¦   «         Zne
jG         H                    dc ejo        g dd¢g de¢g df¢g dg¢g dh¢g di¢g¦  «         ejo        g dj¢¦  «         ejo        g dk¢g dl¢g dm¢g dn¢g do¢g dp¢g¦  «         ejo        g dq¢g dr¢g ds¢g dt¢g¦  «        fg¦  «        du„ ¦   «         Zpe
jG         H                    de?¦  «        dv„ ¦   «         Zqe
jG         H                    dw ejo        g dx¢¦  «         ejo        g dy¢¦  «         ejo        g dz¢¦  «         ejo        g d{¢¦  «         ejo        g d|¢¦  «         ejo        g d}¢¦  «         ejo        g d~¢¦  «         ejo        dd€gd�d‚gdƒd„gd…d†gdd‡gg¦  «         ejo        dˆd‰gdŠdˆgd.d‹gdˆdŒgd‹d[gg¦  «        f	 ejo        g d�¢¦  «         ejo        g dŽ¢¦  «         ejo        g d�¢¦  «         ejo        g d�¢¦  «         ejo        g d‘¢¦  «         ejo        g d’¢¦  «         ejo        g d~¢¦  «         ejo        d“d”gd•d–gd—d˜gd™dšgd›dœgg¦  «         ejo        d�džgdŸd gd¡d¢gd£d¤gd¥d¦gg¦  «        f	g¦  «        d§„ ¦   «         Zre
jG         H                    de?¦  «        e
jG         H                    d&g d¨¢¦  «        e
jG         H                    d-d.d/g¦  «        d©„ ¦   «         ¦   «         ¦   «         Zse
jG         H                    de?¦  «        e
jG         H                    dg dª¢¦  «        d«„ ¦   «         ¦   «         Zte
jG         H                    d¬ eue;e;z   e?¦  «        ¦  «        d­„ ¦   «         Zve
jG         H                    d¬ eue;e;z   e?¦  «        ¦  «        d®„ ¦   «         Zwe
jG         H                    d¬ eue;e;z   e?¦  «        ¦  «        d¯„ ¦   «         Zxe
jG         H                    d° ejo        g d±¢¦  «         ejo        g d²¢¦  «         ejo        g d³¢¦  «         ejo        g d´¢¦  «         ejo        dVd/gd`dXgdµd`gd¶d·gdŠd¸gg¦  «         ejo        d¹dµgdµdºgd[d‹gdºdVgd.d»gg¦  «        f ejo        g d¼¢¦  «         ejo        g d½¢¦  «         ejo        g d¾¢¦  «         ejo        g d¿¢¦  «         ejo        dÀdÁgdÂdÃgdÄdÅgdÆdÇgg¦  «         ejo        d¤dÈgd�d�gdÉdÉgd¥d¤gg¦  «        fg¦  «        dÊ„ ¦   «         ZydË„ Zze
jG         H                    dÌ eue?e;e;z   ¦  «        ¦  «        e
jG         H                    dÍ ekd.¦  «        ¦  «        dÎ„ ¦   «         ¦   «         Z{e
jG         H                    dÌ eue?e;e;z   ¦  «        ¦  «        e
jG         H                    dÍ ekd.¦  «        ¦  «        dÏ„ ¦   «         ¦   «         Z|e
jG         H                    dÌ eue?e;e;z   ¦  «        ¦  «        e
jG         H                    dÍ ekd.¦  «        ¦  «        dÐ„ ¦   «         ¦   «         Z}e
jG         H                    dÌ eue?e;e;z   ¦  «        ¦  «        e
jG         H                    dÍ ekd.¦  «        ¦  «        dÑ„ ¦   «         ¦   «         Z~e
jG         H                    dÒdµ ejo        g dÓ¢¦  «         ejo        g dÔ¢¦  «         ejo        g dÕ¢¦  «         ejo        g dÖ¢g d×¢g dØ¢g dÙ¢g¦  «        fg¦  «        dÚ„ ¦   «         Ze
jG         H                    de?¦  «        e
jG         H                    dÛg dÜ¢¦  «        dÝ„ ¦   «         ¦   «         Z€dÞ„ Z�e
jG         H                    dßg dà¢¦  «        e
jG         H                    dádâdãg¦  «        dä„ ¦   «         ¦   «         Z‚e
jG         H                    dßdådæg¦  «        e
jG         H                    dádâdãg¦  «        dç„ ¦   «         ¦   «         Zƒe
jG         H                    dèe?¦  «        e
jG         H                    dég dê¢¦  «        dë„ ¦   «         ¦   «         Z„e
jG         H                    dèe?¦  «        dì„ ¦   «         Z…e
jG         H                    de?¦  «        e
jG         H                    dídîdMg¦  «        e
jG         H                    dïdðd,g¦  «        dñ„ ¦   «         ¦   «         ¦   «         Z†e
jG         H                    de?¦  «        e
jG         H                    díd d[g¦  «        e
jG         H                    dïdðd,g¦  «        dò„ ¦   «         ¦   «         ¦   «         Z‡e
jG         H                    de?dµz  ¦  «        e
jG         H                    dídîdMg¦  «        e
jG         H                    dïdðd,g¦  «        dó„ ¦   «         ¦   «         ¦   «         Zˆe
jG         H                    dô ejo        g dx¢¦  «         ejo        g dy¢¦  «         ejo        g dz¢¦  «         ejo        dd€gd�d‚gdƒd„gd…d†gdd‡gg¦  «         ejo        dˆd‰gdŠdˆgd.d‹gdˆdŒgd‹d[gg¦  «        f ejo        g d�¢¦  «         ejo        g dŽ¢¦  «         ejo        g d�¢¦  «         ejo        d“d”gd•d–gd—d˜gd™dšgd›dœgg¦  «         ejo        d�džgdŸd gd¡d¢gd£d¤gd¥d¦gg¦  «        fg¦  «        dõ„ ¦   «         Z‰e
jG         H                    dÌ eue?e;e;z   ¦  «        ¦  «        e
jG         H                    dödðd÷„ fd,dø„ fg¦  «        dù„ ¦   «         ¦   «         ZŠe
jG         H                    dÌ eue?e;e;z   ¦  «        ¦  «        e
jG         H                    dödðdú„ fd,dû„ fg¦  «        dü„ ¦   «         ¦   «         Z‹e
jG         H                    dÌ eue?e;e;z   ¦  «        ¦  «        e
jG         H                    dödðdý„ fd,dþ„ fg¦  «        dÿ„ ¦   «         ¦   «         ZŒe
jG         H                    �d  ejo        g d±¢¦  «         ejo        g d²¢¦  «         ejo        dVd/gd`dXgdµd`gd¶d·gdŠd¸gg¦  «         ejo        d¹dµgdµdºgd[d‹gdºdVgd.d»gg¦  «        f ejo        g d¼¢¦  «         ejo        g d½¢¦  «         ejo        dÀdÁgdÂdÃgdÄdÅgdÆdÇgg¦  «         ejo        d¤dÈgd�d�gdÉdÉgd¥d¤gg¦  «        fg¦  «        �d„ ¦   «         Z�e
jG         H                    �ddîdMg¦  «        e
jG         H                    de?¦  «        �d„ ¦   «         ¦   «         ZŽe
jG         H                    de?¦  «        �d„ ¦   «         Z�e
jG         H                    �d ejo        g �d¢g �d¢g �d¢g �d	¢g¦  «         ejo        g �d
¢g �d¢g �d¢g �d	¢g¦  «        dµd[f ejo        g �d¢g �d¢g �d¢g �d¢g¦  «         ejo        g �d¢g �d¢g �d¢g �d¢g¦  «        d[dXfg¦  «        �d„ ¦   «         Z�e
jG         H                    de?¦  «        �d„ ¦   «         Z‘e
jG         H                    de?¦  «        �d„ ¦   «         Z’e
jG         H                    �d ejo        g �d¢g �d¢g �d¢g �d¢g¦  «         ejo        g �d¢g �d¢g �d¢g �d ¢g¦  «         ejo        g �d!¢g �d"¢g �d#¢g �d$¢g¦  «         ejo        g �d%¢¦  «        �d&�d'f ejo        g �d(¢g �d)¢g �d*¢g �d+¢g¦  «         ejo        g �d,¢g �d-¢g �d.¢g �d/¢g¦  «         ejo        g �d0¢g �d1¢g �d2¢g �d3¢g¦  «         ejo        g �d%¢¦  «        �d4�d5fg¦  «        �d6„ ¦   «         Z“e
jG         H                    de?¦  «        �d7„ ¦   «         Z”e
jG         H                    �d8 ejo        g �d9¢g �d:¢g �d;¢g �d<¢g¦  «         ejo        g �d=¢g �d:¢g �d;¢g �d>¢g¦  «         ejo        g �d?¢g �d@¢g �dA¢g �dB¢g¦  «         ejo        g �dC¢g �dD¢g �dE¢g �dF¢g¦  «         ejo        g �dG¢g �dH¢g �dE¢g �dI¢g¦  «         ejo        g �dJ¢g �dK¢g �dL¢g �dM¢g¦  «         ejo        g �d=¢g �dN¢g �dO¢g �dP¢g¦  «         ejo        g �dQ¢g �dR¢g �dS¢g �dT¢g¦  «        fg¦  «        e
jG         H                    de;¦  «        �dU„ ¦   «         ¦   «         Z•e
jG         H                    de;¦  «        e
jG         H                    �dV�dW¦  «        e
jG         H                    �dXg �dY¢¦  «        �dZ„ ¦   «         ¦   «         ¦   «         Z–e
jG         H                    �d[dâdãg¦  «        e
jG         H                    de?¦  «        e
jG         H                    �d�d\¦  «        �d]„ ¦   «         ¦   «         ¦   «         Z—e
jG         H                    d& e˜�d^¦  «        ¦  «        e
jG         H                    �d_g �d`¢¦  «        e
jG         H                    d+d,d)g¦  «        e
jG         H                    de?¦  «        �da„ ¦   «         ¦   «         ¦   «         ¦   «         Z™dS (c  é    )ÚreduceN)Úassert_equalÚassert_array_almost_equalÚassert_Úassert_allcloseÚassert_almost_equalÚassert_array_equal)Úraises)ÚeyeÚonesÚzerosÚ
zeros_likeÚtriuÚtrilÚtril_indicesÚtriu_indices)ÚrandÚrandintÚseed)Ú_flapackÚlapackÚinvÚsvdÚcholeskyÚsolveÚldlÚnormÚ
block_diagÚqrÚeighÚqz)Ú_compute_lwork)Úortho_groupÚunitary_group)ÚCONFIG)Ú_clapack)Úget_lapack_funcs)Úget_blas_funcszBuild DependenciesÚblasÚnameÚversionc                 ó¤   — |t           v r+ |j        | Ž  |j        | Ž dz  z                        |¦  «        S  |j        | Ž                      |¦  «        S )Nù              ð?)ÚCOMPLEX_DTYPESr   Úastype)ÚshapeÚdtypeÚrngs      úT/granary/edev/quantum/lib/python3.11/site-packages/scipy/linalg/tests/test_lapack.pyÚgenerate_random_dtype_arrayr4   1   s\   € à•ÐÐØ�”˜%Ð Ø�#”(˜EÐ" 4Ñ'ñ(ß)/ª°©¬ð	7àˆ3Œ8�UÐ×"Ò" 5Ñ)Ô)Ð)ó    c                  ór  — t           j        €t          j        d¦  «         t	          t           j                             ¦   «         ¦  «        } h d£}t          ¦   «         }t          t           ¦  «        D ]4}|                     d¦  «        s||vr|| vr| 	                    |¦  «         Œ5|g k    s
J d¦   «         ‚dS )z%Test that all entries are in the doc.Nzlapack.__doc__ is None>   ÚnpÚclapackÚflapackÚdivisionÚ	HAS_ILP64Úprint_functionÚabsolute_importÚfind_best_lapack_typeÚ_z2Name(s) missing from lapack.__doc__ or ignore_list)
r   Ú__doc__ÚpytestÚskipÚsetÚsplitÚlistÚdirÚ
startswithÚappend)ÚnamesÚignore_listÚmissingr*   s       r3   Útest_lapack_documentedrL   9   s»   € å„~ÐÝŒÐ,Ñ-Ô-Ð-Ý•”×$Ò$Ñ&Ô&Ñ'Ô'€Eð	ð 	ð 	€Kõ ‰fŒf€GÝ•F‘”ð !ð !ˆØ—’ Ñ$Ô$ð 	!¨°[Ð)@Ð)@Ø˜EÐ!Ð!Ø�NŠN˜4Ñ Ô Ð øØ�bŠ=ˆ=ˆ=ÐN‰=Œ=ˆ=ˆ=ˆ=r5   c                   ó&   — e Zd Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestFlapackSimplec           	      ó  — g d¢g d¢g d¢g}g d¢g d¢g d¢g d¢g}dD ]è}t          t          |d	z   d ¦  «        }|€Œ ||¦  «        \  }}}}}	t          |	 t          |	¦  «        ¦  «         t	          ||¦  «         t          ||fd
t          |d
         ¦  «        dz
  f¦  «         t	          |t          j        t          |¦  «        ¦  «        ¦  «          ||dd¬¦  «        \  }}}}}	t          |	 t          |	¦  «        ¦  «         Œéd S )N)é   é   é   )é   é   é   )é   é   é	   )rP   r   r   ga2U0*©3?)rS   r   r   gü©ñÒMb`?)rV   rP   r   r   )r   rP   r   r   ÚsdzcÚgebalr   rP   )ÚpermuteÚscale)	Úgetattrr9   r   Úreprr   r   Úlenr7   r   )
ÚselfÚaÚa1ÚpÚfÚbaÚloÚhiÚpivscaleÚinfos
             r3   Ú
test_gebalzTestFlapackSimple.test_gebalR   s6  € ØˆYˆY˜	˜	˜	 9 9 9Ð-ˆØˆoˆoØˆoˆoØˆlˆlØˆlˆlðˆð ð 	*ð 	*ˆAÝ�  7¡¨DÑ1Ô1ˆAØˆyØØ)*¨¨1©¬Ñ&ˆB��B˜ $Ý˜�H�d 4™jœjÑ)Ô)Ð)Ý% b¨!Ñ,Ô,Ð,Ý˜"˜b˜ A¥s¨1¨Q¬4¡y¤y°¡{Ð#3Ñ4Ô4Ð4Ý% hµ´½¸A¹¼±´Ñ@Ô@Ð@à)*¨¨2°qÀÐ)BÑ)BÔ)BÑ&ˆB��B˜ $Ý˜�H�d 4™jœjÑ)Ô)Ð)Ð)ð	*ð 	*r5   c                 ó¸   — g d¢g d¢g d¢g}dD ]K}t          t          |dz   d ¦  «        }|€Œ ||¦  «        \  }}}t          | t          |¦  «        ¦  «         ŒLd S )N©ikÿÿÿiÎÿÿÿifÿÿÿ©i  é´   i"  ©iåÿÿÿi÷ÿÿÿiçÿÿÿÚdÚgehrd)r]   r9   r   r^   )r`   ra   rc   rd   ÚhtÚtauri   s          r3   Ú
test_gehrdzTestFlapackSimple.test_gehrdg   s†   € ØÐÐØˆ_ˆ_Øˆ^ˆ^ðˆð ð 	*ð 	*ˆAÝ�  7¡¨DÑ1Ô1ˆAØˆyØØ˜A˜a™DœD‰MˆB��TÝ˜�H�d 4™jœjÑ)Ô)Ð)Ð)ð	*ð 	*r5   c           	      óà  — t          j        ddgddgg¦  «        }t          j        ddgddgg¦  «        }t          j        dd	gd
dgg¦  «        }d}dD �]™}|                     |¦  «        |                     |¦  «        |                     |¦  «        }}}t          d|f¦  «        \  }	|                     ¦   «         r|dxx         dz  cc<   d} |	|||¦  «        \  }
}}t          t          j        ||
¦  «        t          j        |
|¦  «        z   ||z  ¦  «          |	|||||¬¦  «        \  }
}}t          t          j        |                     ¦   «         j        |
¦  «        t          j        |
|                     ¦   «         j        ¦  «        z   ||z  d¬¦  «          |	|||d¬¦  «        \  }
}}t          t          j        ||
¦  «        t          j        |
|¦  «        z
  ||z  d¬¦  «         �Œ›d S )NrP   rQ   r   rS   rT   rU   rW   rX   é
   é   é   ÚTÚfdFD)Útrsylr-   ÚC)ÚtranaÚtranb©Údecimaléÿÿÿÿ)Úisgn)	r7   Úarrayr/   r'   Úisupperr   ÚdotÚ	conjugatery   )r`   ra   ÚbÚcÚtransr1   rb   Úb1Úc1r{   Úxr\   ri   s                r3   Ú
test_trsylzTestFlapackSimple.test_trsylr   s  € ÝŒH�q˜!�f˜q !˜fÐ%Ñ&Ô&ˆÝŒH�q˜!�f˜q !˜fÐ%Ñ&Ô&ˆÝŒH�q˜"�g  B˜xÐ(Ñ)Ô)ˆØˆð ð 	=ñ 	=ˆEØŸš %™œ¨!¯(ª(°5©/¬/¸1¿8º8ÀE¹?¼?�B�ˆBÝ% j°2°%Ñ8Ô8‰FˆEØ�}Š}‰Œð Ø�1��”˜‘��‘Ø�à"˜U 2 r¨2Ñ.Ô.‰NˆAˆu�dÝ%¥b¤f¨R°¡m¤mµb´f¸QÀ±m´mÑ&CØ&+¨b¡jñ2ô 2ð 2ð #˜U 2 r¨2°UÀ%ÐHÑHÔH‰NˆAˆu�dÝ%Ý”F˜2Ÿ<š<™>œ>Ô+¨QÑ/Ô/µ"´&¸¸B¿LºL¹N¼NÔ<LÑ2MÔ2MÑMØ˜B‘J¨ð+ñ +ô +ð +ð #˜U 2 r¨2°BÐ7Ñ7Ô7‰NˆAˆu�dÝ%¥b¤f¨R°¡m¤mµb´f¸QÀ±m´mÑ&CØ&+¨b¡j¸!ð=ñ =ô =ð =ñ =ð#	=ð 	=r5   c                 óN  — t          j        g d¢g d¢g d¢g¦  «        }dD �]ƒ}dD �]|}|                     |¦  «        }|                     ¦   «         r|dxx         dz  cc<   t	          d|f¦  «        \  } |||¦  «        }|d	v re|d
v rd}nd}t          j        t          j        t          j        t          j        |¦  «        ¦  «        ¦  «        ¦  «        }t          |||¦  «         ŒÄ|dv r't          j
        t          j        |¦  «        ¦  «        }n}|dv r;t          j
        t          j        t          j        |¦  «        d¬¦  «        ¦  «        }n>|dv r:t          j
        t          j        t          j        |¦  «        d¬¦  «        ¦  «        }t          ||¦  «         �Œ~�Œ…d S )Nrl   rm   ro   rz   ÚMm1OoIiFfEe©r   r   r-   )ÚlangeÚFfEeÚFfrR   rV   ÚMmÚ1Oor   ©ÚaxisÚIirP   )r7   rƒ   r/   r„   r'   ÚsqrtÚsumÚsquareÚabsr   Úmaxr   )	r`   ra   r1   Únorm_strrb   r‘   Úvaluer€   Úrefs	            r3   Ú
test_langezTestFlapackSimple.test_langeŽ   s±  € ÝŒHØÐÐØˆOˆOØˆNˆNðñ ô ˆð
 ð 	-ñ 	-ˆEØ)ð -ñ -�Ø—X’X˜e‘_”_�Ø—=’=‘?”?ð #à�t�H�H”H ‘N�H�H‘Hå)¨*°r°eÑ<Ô<‘�Ø˜˜h¨Ñ+Ô+�à˜vÐ%Ð%Ø �}�}Ø"#˜˜à"#˜Ýœ'¥"¤&­¬µ2´6¸"±:´:Ñ)>Ô)>Ñ"?Ô"?Ñ@Ô@�CÝ'¨¨s°GÑ<Ô<Ð<Ð<à 4Ð'Ð'Ý œf¥R¤V¨B¡Z¤ZÑ0Ô0˜˜Ø! UÐ*Ð*Ý œf¥R¤V­B¬F°2©J¬J¸QÐ%?Ñ%?Ô%?Ñ@Ô@˜˜Ø! TÐ)Ð)Ý œf¥R¤V­B¬F°2©J¬J¸QÐ%?Ñ%?Ô%?Ñ@Ô@˜å  ¨Ñ,Ô,Ð,Ñ,ñ1-ð	-ð 	-r5   N)Ú__name__Ú
__module__Ú__qualname__rj   rt   r�   r¡   © r5   r3   rN   rN   P   sP   € € € € € ð*ð *ð *ð*	*ð 	*ð 	*ð=ð =ð =ð8-ð -ð -ð -ð -r5   rN   c                   ó   — e Zd Zd„ Zd„ ZdS )Ú
TestLapackc                 ó4   — t          t          d¦  «        rd S d S ©NÚempty_module)Úhasattrr9   ©r`   s    r3   Útest_flapackzTestLapack.test_flapack²   ó#   € Ý•7˜NÑ+Ô+ð 	àˆDð	ð 	r5   c                 ó4   — t          t          d¦  «        rd S d S r©   )r«   r8   r¬   s    r3   Útest_clapackzTestLapack.test_clapack·   r®   r5   N)r¢   r£   r¤   r­   r°   r¥   r5   r3   r§   r§   °   s2   € € € € € ðð ð ð
ð ð ð ð r5   r§   c                   ó&   — e Zd Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestLeastSquaresSolversc           	      ó@  — t          d¦  «         t          t          ¦  «        D ]Ç\  }}d}d}d}t          ||¦  «                             |¦  «        }t          |¦  «                             |¦  «        }t          d|¬¦  «        \  }}	t          |	|||¦  «        }
 ||||
¬¦  «        \  }}}t          |dk    ¦  «          |||d	|         |
¬
¦  «        \  }}}t          |dk    ¦  «         ŒÈt          D �]}t          j
        ddgddgddgg|¬¦  «        }t          j
        g d¢|¬¦  «        }t          d||f¦  «        \  }}}|j        \  }}t          |j        ¦  «        dk    r|j        d         }nd}t          ||||¦  «        }
 ||||
¬¦  «        \  }}}t          |d d…         t          j
        ddg|¬¦  «        dt          j        |¦  «        j        z  ¬¦  «          ||¦  «        \  }}}}t!          ||¦  «         �Œt"          D �]}t          j
        ddgddgddgg|¬¦  «        }t          j
        g d¢|¬¦  «        }t          d||f¦  «        \  }}}|j        \  }}t          |j        ¦  «        dk    r|j        d         }nd}t          ||||¦  «        }
 ||||
¬¦  «        \  }}}t          |d d…         t          j
        dd g|¬¦  «        dt          j        |¦  «        j        z  ¬¦  «          ||¦  «        \  }}}}t!          ||¦  «         �Œd S )!NéÒ  rv   é   rP   )ÚgelsÚ
gels_lwork©r1   ©Úlworkr   ÚTTCC©r‰   rº   ç      ð?ç       @ç      @ç      @ç      @ç       @©ç      0@g      1@g      4@)r¶   r·   ÚgeqrfrQ   r�   ç¥ªªªªª,Àçûÿÿÿÿÿ-@é   ©Úrtolù      ð?      @ù      @      à?ù      @      Àù      @       Àù       @ffffffæ?©rÄ   y      1@       @y      4@      ÀùR úŠ–ò?¤îð\Îjþ¿ùµò£�,Æû?§ÿ² Wø?)r   Ú	enumerateÚDTYPESr   r/   r'   r"   r   ÚREAL_DTYPESr7   rƒ   r0   r_   r   ÚfinfoÚepsr	   r.   )r`   Úindr1   ÚmÚnÚnrhsrb   rŠ   ÚglsÚglslwrº   r?   ri   r¶   r·   rÅ   ÚlqrrŒ   Ú	lqr_truths                      r3   Ú	test_gelsz!TestLeastSquaresSolvers.test_gels¿   sÏ  € ÝˆT‰
Œ
ˆ
å#¥FÑ+Ô+ð 	ð 	‰JˆC�ØˆAØˆAØˆDÝ�a˜‘”×"Ò" 5Ñ)Ô)ˆBÝ�a‘”—’ Ñ&Ô&ˆBÝ)Ð*@ÈÐNÑNÔN‰JˆC�õ # 5¨!¨Q°Ñ5Ô5ˆEØ˜˜R ¨5Ð1Ñ1Ô1‰JˆAˆq�$Ý�D˜A’IÑÔÐØ˜˜R ¨6°#¬;¸eÐDÑDÔD‰JˆAˆq�$Ý�D˜A’IÑÔÐÐå ð 	/ñ 	/ˆEÝ”˜C ˜:Ø ˜:Ø ˜:ð'à.3ð5ñ 5ô 5ˆBõ ”Ð,Ð,Ð,°EÐ:Ñ:Ô:ˆBÝ&6Ø3°b¸"°Xñ'?ô '?Ñ#ˆD�*˜eð ”8‰DˆAˆqÝ�2”8‰}Œ} Ò!Ð!Ø”x ”{��à�õ # :¨q°!°TÑ:Ô:ˆEà˜4  B¨eÐ4Ñ4Ô4‰LˆC��DÝ˜A˜c˜r˜cœF¥B¤HÐ.AØ.@ð.Bà38ð%:ñ %:ô %:ð "$¥B¤H¨U¡O¤OÔ$7Ñ!7ð9ñ 9ô 9ð 9ð "'  r¡¤ÑˆI�q˜!˜QÝ˜s IÑ.Ô.Ð.Ñ.å#ð 	/ñ 	/ˆEÝ”˜H c˜?Ø$ hÐ/Ø$ hÐ/ð1à8=ð?ñ ?ô ?ˆBõ ”Ð6Ð6Ð6¸eÐDÑDÔDˆBÝ&6Ø3°b¸"°Xñ'?ô '?Ñ#ˆD�*˜eð ”8‰DˆAˆqÝ�2”8‰}Œ} Ò!Ð!Ø”x ”{��à�õ # :¨q°!°TÑ:Ô:ˆEà˜4  B¨eÐ4Ñ4Ô4‰LˆC��DÝ˜A˜c˜r˜cœFÝœHÐ&JØ&Jð&Là+0ð2ñ 2ô 2à8:½2¼8ÀE¹?¼?Ô;NÑ8NðPñ Pô Pð Pð "'  r¡¤ÑˆI�q˜!˜QÝ˜s IÑ.Ô.Ð.Ñ.ð/	/ð 	/r5   c                 ó¬  — t           D �]X}t          j        ddgddgddgg|¬¦  «        }t          j        g d¢|¬¦  «        }t          d	||f¦  «        \  }}|j        \  }}t          |j        ¦  «        d
k    r|j        d         }nd} ||||d¦  «        \  }	}
}t          t          j        |	¦  «        ¦  «        }|
} |||||ddd¦  «        \  }}}}t          |d d…         t          j        ddg|¬¦  «        dt          j	        |¦  «        j
        z  ¬¦  «         t          |t          j        ddg|¬¦  «        dt          j	        |¦  «        j
        z  ¬¦  «         �ŒZt          D �]i}t          j        ddgddgddgg|¬¦  «        }t          j        g d¢|¬¦  «        }t          d	||f¦  «        \  }}|j        \  }}t          |j        ¦  «        d
k    r|j        d         }nd} ||||d¦  «        \  }	}}
}t          t          j        |	¦  «        ¦  «        }t          |¦  «        }|
} ||||||ddd¦  «        \  }}}}t          |d d…         t          j        ddg|¬¦  «        dt          j	        |¦  «        j
        z  ¬¦  «         t          |t          j        ddg|¬¦  «        dt          j	        |¦  «        j
        z  ¬¦  «         �Œkd S )Nr½   r¾   r¿   rÀ   rÁ   rÂ   r¸   rÃ   )ÚgelsdÚgelsd_lworkrQ   rP   r�   FrÆ   rÇ   rÈ   rÉ   çYNô))1)@ç*@ƒž.«â?rË   rÌ   rÍ   rÎ   rÏ   rÐ   rÑ   rÒ   çU‹¯ý.*@çãÊ_ÅY@©rÕ   r7   rƒ   r'   r0   r_   ÚintÚrealr   rÖ   r×   r.   )r`   r1   rb   rŠ   râ   rã   rÙ   rÚ   rÛ   ÚworkÚiworkri   rº   Ú
iwork_sizerŒ   ÚsÚrankÚrworkÚ
rwork_sizes                      r3   Ú
test_gelsdz"TestLeastSquaresSolvers.test_gelsd  s£  € Ý ð 	9ñ 	9ˆEÝ”˜C ˜:Ø ˜:Ø ˜:ð'à.3ð5ñ 5ô 5ˆBõ ”Ð,Ð,Ð,°EÐ:Ñ:Ô:ˆBÝ!1Ð2JØ35°r°(ñ"<ô "<ÑˆE�;ð ”8‰DˆAˆqÝ�2”8‰}Œ} Ò!Ð!Ø”x ”{��à�ð !, ¨A¨q°$¸Ñ ;Ô ;ÑˆD�%˜Ý�œ ™œÑ&Ô&ˆEØˆJà$˜u R¨¨U°JØ%'¨°ñ 7ô  7ÑˆAˆq�$˜å˜A˜c˜r˜cœF¥B¤HÐ.AØ.@ð.Bà38ð%:ñ %:ô %:ð "$¥B¤H¨U¡O¤OÔ$7Ñ!7ð9ñ 9ô 9ð 9õ ˜A�rœxÐ);Ø):ð)<ØCHð Jñ  Jô  Jà!#¥B¤H¨U¡O¤OÔ$7Ñ!7ð9ñ 9ô 9ð 9ñ 9õ $ð 	Pñ 	PˆEÝ”˜H c˜?Ø$ hÐ/Ø$ hÐ/ð1à8=ð?ñ ?ô ?ˆBõ ”Ð6Ð6Ð6¸eÐDÑDÔDˆBÝ!1Ð2JØ35°r°(ñ"<ô "<ÑˆE�;ð ”8‰DˆAˆqÝ�2”8‰}Œ} Ò!Ð!Ø”x ”{��à�ð (3 {°1°a¸¸rÑ'BÔ'BÑ$ˆD�%˜ Ý�œ ™œÑ&Ô&ˆEÝ˜U™œˆJØˆJà$˜u R¨¨U°JÀ
Ø%'¨°ñ 7ô  7ÑˆAˆq�$˜å˜A˜c˜r˜cœFÝœHÐ&JØ&Jð&Là+0ð2ñ 2ô 2à8:½2¼8ÀE¹?¼?Ô;NÑ8NðPñ Pô Pð Põ ˜AÝœHÐ&8Ð:KÐ%LØ+0ð2ñ 2ô 2Ø8:½2¼8ÀE¹?¼?Ô;NÑ8NðPñ Pô Pð Pñ Pð5	Pð 	Pr5   c           	      ó‚  — t           D �]V}t          j        ddgddgddgg|¬¦  «        }t          j        g d¢|¬¦  «        }t          d	||f¦  «        \  }}|j        \  }}t          |j        ¦  «        d
k    r|j        d         }nd} ||||d¦  «        \  }	}
t          t          j        |	¦  «        ¦  «        } |||d|dd¦  «        \  }}}}}	}
t          |d d…         t          j        ddg|¬¦  «        dt          j	        |¦  «        j
        z  ¬¦  «         t          |t          j        ddg|¬¦  «        dt          j	        |¦  «        j
        z  ¬¦  «         �ŒXt          D �]V}t          j        ddgddgddgg|¬¦  «        }t          j        g d¢|¬¦  «        }t          d	||f¦  «        \  }}|j        \  }}t          |j        ¦  «        d
k    r|j        d         }nd} ||||d¦  «        \  }	}
t          t          j        |	¦  «        ¦  «        } |||d|dd¦  «        \  }}}}}	}
t          |d d…         t          j        ddg|¬¦  «        dt          j	        |¦  «        j
        z  ¬¦  «         t          |t          j        ddg|¬¦  «        dt          j	        |¦  «        j
        z  ¬¦  «         �ŒXd S )Nr½   r¾   r¿   rÀ   rÁ   rÂ   r¸   rÃ   )ÚgelssÚgelss_lworkrQ   rP   r�   FrÆ   rÇ   rÈ   rÉ   rä   rå   rË   rÌ   rÍ   rÎ   rÏ   rÐ   rÑ   rÒ   ræ   rç   rè   )r`   r1   rb   rŠ   rô   rõ   rÙ   rÚ   rÛ   rë   ri   rº   ÚvrŒ   rî   rï   s                   r3   Ú
test_gelssz"TestLeastSquaresSolvers.test_gelss?  sw  € å ð 	9ñ 	9ˆEÝ”˜C ˜:Ø ˜:Ø ˜:ð'à.3ð5ñ 5ô 5ˆBõ ”Ð,Ð,Ð,°EÐ:Ñ:Ô:ˆBÝ!1Ð2JØ35°r°(ñ"<ô "<ÑˆE�;ð ”8‰DˆAˆqÝ�2”8‰}Œ} Ò!Ð!Ø”x ”{��à�ð %˜ Q¨¨4°Ñ4Ô4‰JˆD�$Ý�œ ™œÑ&Ô&ˆEà(-¨¨b°"°b¸%ÀÈÑ(NÔ(NÑ%ˆAˆq�!�T˜4 Ý˜A˜c˜r˜cœF¥B¤HÐ.AØ.@ð.Bà38ð%:ñ %:ô %:ð "$¥B¤H¨U¡O¤OÔ$7Ñ!7ð9ñ 9ô 9ð 9õ ˜A�rœxÐ);Ø):ð)<ØCHð Jñ  Jô  Jà!#¥B¤H¨U¡O¤OÔ$7Ñ!7ð9ñ 9ô 9ð 9ñ 9õ $ð 	9ñ 	9ˆEÝ”˜H c˜?Ø$ hÐ/Ø$ hÐ/ð1à8=ð?ñ ?ô ?ˆBõ ”Ð6Ð6Ð6¸eÐDÑDÔDˆBÝ!1Ð2JØ35°r°(ñ"<ô "<ÑˆE�;ð ”8‰DˆAˆqÝ�2”8‰}Œ} Ò!Ð!Ø”x ”{��à�ð %˜ Q¨¨4°Ñ4Ô4‰JˆD�$Ý�œ ™œÑ&Ô&ˆEà(-¨¨b°"°b¸%ÀÈÑ(NÔ(NÑ%ˆAˆq�!�T˜4 Ý˜A˜c˜r˜cœFÝœHÐ&JØ&Jð&Là+0ð2ñ 2ô 2ð "$¥B¤H¨U¡O¤OÔ$7Ñ!7ð	9ñ 9ô 9ð 9õ
 ˜A�rœxÐ);Ø):ð)<ØCHð Jñ  Jô  Jà!#¥B¤H¨U¡O¤OÔ$7Ñ!7ð9ñ 9ô 9ð 9ñ 9ð1	9ð 	9r5   c           
      óò  — t           D �]r}t          j        ddgddgddgg|¬¦  «        }t          j        g d¢|¬¦  «        }t          d	||f¦  «        \  }}|j        \  }}t          |j        ¦  «        d
k    r|j        d         }nd} ||||dt          j        |¦  «        j        z  ¦  «        \  }	}
t          t          j	        |	¦  «        ¦  «        }t          j
        |j        d         dft          j        ¬¦  «        } ||||t          j        |¦  «        j        |dd¦  «        \  }}}}}
t          |d d…         t          j        ddg|¬¦  «        dt          j        |¦  «        j        z  ¬¦  «         �Œtt          D �]r}t          j        ddgddgddgg|¬¦  «        }t          j        g d¢|¬¦  «        }t          d	||f¦  «        \  }}|j        \  }}t          |j        ¦  «        d
k    r|j        d         }nd} ||||dt          j        |¦  «        j        z  ¦  «        \  }	}
t          t          j	        |	¦  «        ¦  «        }t          j
        |j        d         dft          j        ¬¦  «        } ||||t          j        |¦  «        j        |dd¦  «        \  }}}}}
t          |d d…         t          j        ddg|¬¦  «        dt          j        |¦  «        j        z  ¬¦  «         �Œtd S )Nr½   r¾   r¿   rÀ   rÁ   rÂ   r¸   rÃ   )Úgelsyrõ   rQ   rP   rv   Fr�   rÆ   rÇ   rÈ   rÉ   rË   rÌ   rÍ   rÎ   rÏ   rÐ   rÑ   rÒ   )rÕ   r7   rƒ   r'   r0   r_   rÖ   r×   ré   rê   r   Úint32r   r.   )r`   r1   rb   rŠ   rù   Úgelsy_lworkrÙ   rÚ   rÛ   rë   ri   rº   Újptvrö   rŒ   Újrï   s                    r3   Ú
test_gelsyz"TestLeastSquaresSolvers.test_gelsyx  sU  € å ð 	9ñ 	9ˆEÝ”˜C ˜:Ø ˜:Ø ˜:ð'à.3ð5ñ 5ô 5ˆBõ ”Ð,Ð,Ð,°EÐ:Ñ:Ô:ˆBÝ!1Ð2JØ35°r°(ñ"<ô "<ÑˆE�;ð ”8‰DˆAˆqÝ�2”8‰}Œ} Ò!Ð!Ø”x ”{��à�ð %˜ Q¨¨4°µB´H¸U±O´OÔ4GÑ1GÑHÔH‰JˆD�$Ý�œ ™œÑ&Ô&ˆEå”8˜RœX aœ[¨!Ð,µB´HÐ=Ñ=Ô=ˆDØ"' %¨¨B°µb´h¸u±o´oÔ6IØ(-¨u°eñ#=ô #=ÑˆAˆq�!�T˜4å˜A˜c˜r˜cœF¥B¤HÐ.AØ.@ð.Bà38ð%:ñ %:ô %:ð "$¥B¤H¨U¡O¤OÔ$7Ñ!7ð9ñ 9ô 9ð 9ñ 9õ
 $ð 	9ñ 	9ˆEÝ”˜H c˜?Ø$ hÐ/Ø$ hÐ/ð1à8=ð?ñ ?ô ?ˆBõ ”Ð6Ð6Ð6¸eÐDÑDÔDˆBÝ!1Ð2JØ35°r°(ñ"<ô "<ÑˆE�;ð ”8‰DˆAˆqÝ�2”8‰}Œ} Ò!Ð!Ø”x ”{��à�ð %˜ Q¨¨4°µB´H¸U±O´OÔ4GÑ1GÑHÔH‰JˆD�$Ý�œ ™œÑ&Ô&ˆEå”8˜RœX aœ[¨!Ð,µB´HÐ=Ñ=Ô=ˆDØ"' %¨¨B°µb´h¸u±o´oÔ6IØ(-¨u°eñ#=ô #=ÑˆAˆq�!�T˜4å˜A˜c˜r˜cœFÝœHÐ&JØ&Jð&Là+0ð2ñ 2ô 2ð "$¥B¤H¨U¡O¤OÔ$7Ñ!7ð	9ñ 9ô 9ð 9ñ 9ð+	9ð 	9r5   N)r¢   r£   r¤   rà   rò   r÷   rþ   r¥   r5   r3   r²   r²   ½   sY   € € € € € ðB/ð B/ð B/ðH:Pð :Pð :Pðx79ð 79ð 79ðr59ð 59ð 59ð 59ð 59r5   r²   r1   r0   )©rR   rS   )rT   rQ   ©é   r  c                 ór   — t          d| ¬¦  «        }|\  }} |||¬¦  «        \  }}t          |d¦  «         d S )NÚgeqrf_lworkr¸   ©rÙ   rÚ   r   ©r'   r   )r1   r0   r  rÙ   rÚ   rº   ri   s          r3   Útest_geqrf_lworkr  °  sM   € õ # M¸%Ð@Ñ@Ô@€KØ�D€A€qØ�+  QÐ'Ñ'Ô'�K€Eˆ4Ý��qÑÔÐÐÐr5   c                   ó   — e Zd Zd„ ZdS )ÚTestRegressionc                 ó  — t           D ]ý}t          j        d|¬¦  «        }t          dg|g¦  «        \  }t	          t
          ||d¬¦  «          ||¦  «        \  }}}}|t          v rLt          dg|g¦  «        \  }t	          t
          ||dd …         |d¬¦  «          ||dd …         |d¬¦  «         Œ©|t          v rKt          d	g|g¦  «        \  }	t	          t
          |	|dd …         |d¬¦  «          |	|dd …         |d¬¦  «         Œþd S )
N)i,  rQ   r¸   ÚgerqfrQ   r¹   ÚorgrqéþÿÿÿrP   Úungrq)rÔ   r7   r   r'   Úassert_raisesÚ	ExceptionrÕ   r.   )
r`   r1   ra   r
  Úrqrs   rë   ri   r  r  s
             r3   Útest_ticket_1645zTestRegression.test_ticket_1645»  s5  € åð 	-ð 	-ˆEÝ”˜¨Ð/Ñ/Ô/ˆAå% w i°!°Ñ5Ô5‰FˆEÝ�) U¨A°QÐ7Ñ7Ô7Ð7Ø"' %¨¡(¤(ÑˆB��T˜4à�Ð#Ð#Ý)¨7¨)°a°SÑ9Ô9‘�Ý�i¨°°2°3°3´¸ÀAÐFÑFÔFÐFØ��b˜˜˜”g˜s¨!Ð,Ñ,Ô,Ð,Ð,Ø�.Ð(Ð(Ý)¨7¨)°a°SÑ9Ô9‘�Ý�i¨°°2°3°3´¸ÀAÐFÑFÔFÐFØ��b˜˜˜”g˜s¨!Ð,Ñ,Ô,Ð,øð	-ð 	-r5   N)r¢   r£   r¤   r  r¥   r5   r3   r  r  ¹  s#   € € € € € ð-ð -ð -ð -ð -r5   r  c                   ó   — e Zd Zd„ ZdS )Ú	TestDpotrc           
      óL  — dD �]}dD �]}t           j                             d¦  «         t           j                             d¬¦  «        }|                     |j        ¦  «        }t          d|f¦  «        \  }} ||||¬¦  «        \  }} |||¦  «        d         }	|rBt          t          j        |	¦  «        t          j        t          |¦  «        ¦  «        ¦  «         Œ×t          t          j
        |	¦  «        t          j
        t          |¦  «        ¦  «        ¦  «         �Œ�Œ!d S )N)TFé*   )rR   rR   ©Úsize)ÚpotrfÚpotri)Úcleanr   )r7   Úrandomr   Únormalr…   ry   r'   r   r   r   r   )
r`   Úlowerr  rŒ   ra   ÚdpotrfÚdpotrirˆ   ri   Údpts
             r3   Útest_gh_2691zTestDpotr.test_gh_2691Ï  s  € à"ð 	Cñ 	CˆEØ&ð Cñ C�Ý”	—’˜rÑ"Ô"Ð"Ý”I×$Ò$¨&Ð$Ñ1Ô1�Ø—E’E˜!œ#‘J”J�å!1Ð2DÀqÀeÑ!LÔ!L‘�˜à ˜&  E°Ð7Ñ7Ô7‘��4Ø�f˜Q Ñ&Ô& qÔ)�àð CÝ#¥B¤G¨C¡L¤Lµ"´'½#¸a¹&¼&±/´/ÑBÔBÐBÐBå#¥B¤G¨C¡L¤Lµ"´'½#¸a¹&¼&±/´/ÑBÔBÐBÑBñCð	Cð 	Cr5   N)r¢   r£   r¤   r!  r¥   r5   r3   r  r  Î  s(   € € € € € ðCð Cð Cð Cð Cr5   r  c                   ó   — e Zd Zd„ ZdS )Ú
TestDlasd4c                 ó~  — t          j        g d¢¦  «        }t          j        g d¢¦  «        }t          j        t          j        t          j        |dd…         ¦  «        t          j        dt          |¦  «        dz
  f¦  «        f¦  «        |d d …t           j        f         f¦  «        }t          |dddd¬¦  «        }t          |¦  «        }t          j	        |d d d…         |d         |t          |¦  «        z  z   gf¦  «        }t          j	        |d d d…         df¦  «        }t          d	|f¦  «        }g }	t          d|¦  «        D ]G}
 ||
||¦  «        }|	                     |d         ¦  «         t          |d
         dk    d|
z  ¦  «         ŒHt          j        |	¦  «        d d d…         }	t          t          j        t          j        |	¦  «        ¦  «         df¦  «         t#          ||	dt          j        t           j        ¦  «        j        z  dt          j        t           j        ¦  «        j        z  ¬¦  «         d S )N)r¿   ç      @r¾   r   )gö(\�Âõ@gÍÌÌÌÌÌ@g333333Àçš™™™™™Àr   r�   rP   F)Úfull_matricesÚ
compute_uvÚoverwrite_aÚcheck_finite©r   Úlasd4rR   zcLAPACK root finding dlasd4 failed to find                                     the singular value %izThere are NaN rootséd   ©ÚatolrÊ   )r7   rƒ   ÚhstackÚvstackÚdiagr   r_   Únewaxisr   Úconcatenater   r'   ÚrangerH   r   ÚanyÚisnanr   rÖ   Úfloat64r×   )r`   ÚsigmasÚm_vecÚMÚSMÚit_lenÚsgmÚmvcr,  ÚrootsÚiÚress               r3   Útest_sing_val_updatezTestDlasd4.test_sing_val_updateã  s9  € å”˜/˜/˜/Ñ*Ô*ˆÝ”Ð0Ð0Ð0Ñ1Ô1ˆåŒI•r”y¥"¤'¨&°°2°¬,Ñ"7Ô"7Ý"$¤(¨A­s°5©z¬z¸A©~Ð+>Ñ"?Ô"?ð"Añ Bô Bà˜Q˜Q˜Q¥¤
˜]Ô+ð-ñ .ô .ˆõ � %°EÀuØ#ð%ñ %ô %ˆõ �V‘”ˆÝŒn˜f T T r Tœl¨V°A¬Y¸ÅÀUÁÄÑ9KÑ-KÐ,LÐMÑNÔNˆÝŒn˜e D D b Dœk¨4Ð0Ñ1Ô1ˆå  ¨6¨)Ñ4Ô4ˆàˆÝ�q˜&Ñ!Ô!ð 	@ð 	@ˆAØ�%˜˜3 Ñ$Ô$ˆCØ�LŠL˜˜QœÑ Ô Ð å�S˜”V˜q’[ð $;Ø=>ñ$?ñ @ô @ð @ð @å”˜‘”   " Ô%ˆå•R”V�BœH U™OœOÑ,Ô,Ð,Ð.CÐDÑEÔEÐEÝ˜˜E¨­B¬HµR´ZÑ,@Ô,@Ô,DÑ(DØ ¥¤­"¬*Ñ!5Ô!5Ô!9Ñ9ð	;ñ 	;ô 	;ð 	;ð 	;ð 	;r5   N)r¢   r£   r¤   rC  r¥   r5   r3   r#  r#  â  s#   € € € € € ð;ð ;ð ;ð ;ð ;r5   r#  c                   óê  — e Zd Zej                             de¦  «        d„ ¦   «         Zej                             dd„ eD ¦   «         ¦  «        ej                             dddg¦  «        ej                             dd	dg¦  «        d
„ ¦   «         ¦   «         ¦   «         Zej                             dg d¢g d¢g d¢g¦  «        d„ ¦   «         Z	d„ Z
ej                             dddg¦  «        d„ ¦   «         ZdS )Ú	TestTbtrsr1   c                 ód  — |t           v rat          j        g d¢g d¢g|¬¦  «        }t          j        ddgddgdd	gd
dgg|¬¦  «        }t          j        ddgddgddgddgg|¬¦  «        }n€|t          v rdt          j        g d¢g d¢g d¢g|¬¦  «        }t          j        ddgddgddgddgg|¬¦  «        }t          j        ddgd d!gd"d#gd$d%gg|¬¦  «        }nt	          d&|› d'�¦  «        ‚t          d(|¬¦  «        } |||d)¬*¦  «        \  }}t          |d+¦  «         t          ||d+d,¬-¦  «         d.S )/zýTest real (f07vef) and complex (f07vsf) examples from NAG

        Examples available from:
        * https://www.nag.com/numeric/fl/nagdoc_latest/html/f07/f07vef.html
        * https://www.nag.com/numeric/fl/nagdoc_latest/html/f07/f07vsf.html

        )ç¤p=
×£Àg…ëQ¸@gHáz®G@g{®GázÄ?)g      Àgq=
×£p@gHáz®GÀr   r¸   g¤p=
×£0ÀrG  g�Âõ(\�+Àg×£p=
—0Àg333333*@gÃõ(\�ÂÀgHáz®G,ÀgìQ¸…ë#ÀrS   rP   r�   éýÿÿÿrR   rQ   r  )y
×£p=
ÿ¿¸…ëQ¸@y{®Gáz@®GázÀy…ëQ¸…Û?Ház®GÀy)\�Âõ(Ü?š™™™™™¹?)y…ëQ¸À…ëQ¸…@yq=
×£pý¿®Gáz@y×£p=
×û?{®Gáz¤¿r   )yìQ¸…ëù?q=
×£p@y)\�Âõ(Àáz®Gáþ¿r   r   y¸…ëQ¸!À
×£p=
Ày×£p=
8À®GázÀy¤p=
×#/À)\�Âõh7Ày\�Âõ(üLÀHáz®G @y…ëQ¸…ÀHáz®Ç6@y×£p=
3@Ãõ(\�‚=Ày{®Gáz-À333333ÀyìQ¸…+3@®GázT5@y               @y      ð?      @y      ð?      Ày      À       Àyt&mªîÀâ=–#ôÀy×i¤¥ò6@U¾g$B@y[aú^Cðÿ?b->À¸ð¿y-@ÛjÖiÀ& ÿ”*ù!Àz	Datatype z not understood.ÚtbtrsÚL©Úabr‡   Úuplor   çñhãˆµøä>©rÊ   r/  N)rÕ   r7   rƒ   r.   Ú
ValueErrorr'   r   r   )r`   r1   rL  r‡   Úx_outrI  rŒ   ri   s           r3   Útest_nag_example_f07vef_f07vsfz(TestTbtrs.test_nag_example_f07vef_f07vsf  sÿ  € ð •KÐÐÝ”Ð4Ð4Ð4Ø2Ð2Ð2ð4à %ð'ñ 'ô 'ˆBõ ”˜6 5˜/Ø! 6Ð*Ø  %˜.Ø! 5˜/ð+ð  %ð	&ñ &ô &ˆAõ
 ”H˜q !˜fØ! 2˜hØ  !˜fØ  "˜gð'ð $)ð	*ñ *ô *ˆEˆEð
 •nÐ$Ð$Ý”ÐKÐKÐKØFÐFÐFØ:Ð:Ð:ð<ð !&ð'ñ 'ô 'ˆBõ ”˜=¨.Ð9Ø*¨NÐ;Ø)¨>Ð:Ø)¨>Ð:ð<ð  %ð	&ñ &ô &ˆAõ
 ”H˜r 6˜lØ% wÐ/Ø4Ð6JÐKØ3Ð5JÐKðMð $)ð	*ñ *ô *ˆEˆEõ Ð@¨Ð@Ð@Ð@ÑAÔAÐAå  '°%Ð8Ñ8Ô8ˆØ�%˜2 ¨Ð-Ñ-Ô-‰ˆˆ4Ý�T˜1ÑÔÐÝ˜˜5 q¨tÐ4Ñ4Ô4Ð4Ð4Ð4r5   zdtype,transc                 ó>   — g | ]}d D ]}|dk    r	|t           v °||f‘ŒŒS ))ÚNry   r|   r|   )rÕ   )Ú.0r1   r‰   s      r3   ú
<listcomp>zTestTbtrs.<listcomp>3  sP   € ð Nð Nð NØ"'¸ðNð NØ6;Ø&+¨s¢l l°uÅÐ7KÐ7Kð  % e˜nà7KÐ7KÐ7KÐ7Kr5   rM  ÚUrJ  r2  rT  c           	      ó¨  ‡‡‡— t           j                             d¦  «        Šd\  Š}}t          d‰¬¦  «        }|dk    }||z  }	||	z
  }
t	          |	|
 dz
  d¦  «        }ˆfd„|D ¦   «         }ˆˆfd	„|D ¦   «         }|dk    rt          j        ‰‰¬¦  «        ||	<   t          j        ||d
¬¦  «        }t          j        |dz   ‰f‰¦  «        }t          |¦  «        D ]@\  }}| 
                    |¦  «        ||t          |d¦  «        t          ‰|z   ‰¦  «        …f<   ŒAt          ‰|f‰‰¦  «        } ||||||¬¦  «        \  }}t          |d¦  «         |dk    rt          ||z  |d¬¦  «         d S |dk    rt          |j        |z  |d¬¦  «         d S |dk    r.t          |j                             ¦   «         |z  |d¬¦  «         d S t%          d¦  «        ‚)Ni¼  )rS   rR   rQ   rI  r¸   rW  rP   r�   c                 ó4   •— g | ]}‰t          |¦  «        z
  ‘ŒS r¥   )rœ   )rU  rŒ   rÚ   s     €r3   rV  z2TestTbtrs.test_random_matrices.<locals>.<listcomp>H  s#   ø€ Ð8Ð8Ð8 a�q�3˜q™6œ6‘zÐ8Ð8Ð8r5   c                 ó4   •— g | ]}t          |f‰‰¦  «        ‘ŒS r¥   )r4   )rU  Úwidthr1   r2   s     €€r3   rV  z2TestTbtrs.test_random_matrices.<locals>.<listcomp>I  s7   ø€ ð +ð +ð +Øõ -¨e¨X°u¸cÑBÔBð +ð +ð +r5   Údia)Úformatr   )rL  r‡   rM  r‰   r2  rT  g-Cëâ6
?rÉ   ry   r|   zInvalid trans argument)r7   r  ÚRandomStater'   r5  r   ÚspsÚdiagsr   rÓ   Údiagonalr�   Úminr4   r   r   ry   r†   rP  )r`   r1   r‰   rM  r2  rÛ   ÚkdrI  Úis_upperÚkuÚklÚband_offsetsÚband_widthsÚbandsra   rL  ÚrowÚkr‡   rŒ   ri   rÚ   r2   s    `                   @@r3   Útest_random_matriceszTestTbtrs.test_random_matrices2  s4  øøø€ õ Œi×#Ò# DÑ)Ô)ˆð
 ‰ˆˆ4�Ý  °Ð6Ñ6Ô6ˆà˜C’KˆØ�(‰]ˆØ�"‰Wˆõ ˜R "  q¡¨"Ñ-Ô-ˆØ8Ð8Ð8Ð8¨<Ð8Ñ8Ô8ˆð+ð +ð +ð +ð +Ø)ð+ñ +ô +ˆð �3Š;ˆ;Ýœ ¨Ð/Ñ/Ô/ˆE�"‰Iõ ŒI�e˜\°%Ð8Ñ8Ô8ˆõ ŒX�r˜A‘v˜q�k 5Ñ)Ô)ˆÝ Ñ-Ô-ð 	;ð 	;‰FˆC�Ø-.¯ZªZ¸©]¬]ˆBˆs•C˜˜1‘I”I�c ! A¡# q™kœkÐ)Ð)Ñ*Ð*õ (¨¨D¨	°5¸#Ñ>Ô>ˆà�%˜2 ¨°UÀÐFÑFÔF‰ˆˆ4Ý�T˜1ÑÔÐà�CŠ<ˆ<Ý˜A ™E 1¨4Ð0Ñ0Ô0Ð0Ð0Ð0Ø�cŠ\ˆ\Ý˜AœC !™G Q¨TÐ2Ñ2Ô2Ð2Ð2Ð2Ø�cŠ\ˆ\Ý˜AœCŸMšM™OœO¨aÑ/°¸Ð>Ñ>Ô>Ð>Ð>Ð>åÐ5Ñ6Ô6Ð6r5   zuplo,trans,diag)rW  rT  ÚInvalid)rW  rm  rT  )rm  rT  rT  c           	      ó°   — t          dt          j        ¬¦  «        }t          dd¦  «        }t          dd¦  «        }t	          t
          ||||||¦  «         dS )z?Test if invalid values of uplo, trans and diag raise exceptionsrI  r¸   rS   rQ   N)r'   r7   r8  r   r  r  )r`   rM  r‰   r2  rI  rL  r‡   s          r3   Ú&test_invalid_argument_raises_exceptionz0TestTbtrs.test_invalid_argument_raises_exceptionf  sR   € õ ! µ´
Ð;Ñ;Ô;ˆÝ�!�Q‰ZŒZˆÝ��A‰JŒJˆÝ•i ¨¨A¨t°U¸DÑAÔAÐAÐAÐAr5   c                 óê   — t          j        dt          ¬¦  «        }t          j        dt          ¬¦  «        }t          dt          ¬¦  «        }d|d<    |||d¬¦  «        \  }}t	          |d¦  «         d	S )
aH  Test if a matrix with a zero diagonal element is singular

        If the i-th diagonal of A is zero, ?tbtrs should return `i` in `info`
        indicating the provided matrix is singular.

        Note that ?tbtrs requires the matrix A to be stored in banded form.
        In this form the diagonal corresponds to the last row.rÿ   r¸   rS   rI  r   )r�   rR   rW  rK  N)r7   r   Úfloatr'   r   )r`   rL  r‡   rI  r?   ri   s         r3   Útest_zero_element_in_diagonalz'TestTbtrs.test_zero_element_in_diagonals  sw   € õ ŒW�V¥5Ð)Ñ)Ô)ˆÝŒG�A�UÐ#Ñ#Ô#ˆÝ  µÐ6Ñ6Ô6ˆàˆˆ5‰	Ø�%˜2 ¨Ð-Ñ-Ô-‰ˆˆ4Ý�T˜1ÑÔÐÐÐr5   zldab,n,ldb,nrhs)rT   rT   r   rT   )rT   rT   rR   rT   c                 óÔ   — t          j        ||ft          ¬¦  «        }t          j        ||ft          ¬¦  «        }t          dt          ¬¦  «        }t	          t
          |||¦  «         dS )z2Test ?tbtrs fails correctly if shapes are invalid.r¸   rI  N©r7   r   rq  r'   r  r  )r`   ÚldabrÚ   ÚldbrÛ   rL  r‡   rI  s           r3   Útest_invalid_matrix_shapesz$TestTbtrs.test_invalid_matrix_shapesƒ  s`   € õ ŒW�d˜A�Y¥eÐ,Ñ,Ô,ˆÝŒG�S˜$�K¥uÐ-Ñ-Ô-ˆÝ  µÐ6Ñ6Ô6ˆÝ•i ¨¨AÑ.Ô.Ð.Ð.Ð.r5   N)r¢   r£   r¤   rA   ÚmarkÚparametrizerÔ   rR  rl  ro  rr  rw  r¥   r5   r3   rE  rE    s€  € € € € € à„[×Ò˜W fÑ-Ô-ð+5ð +5ñ .Ô-ð+5ðZ „[×Ò˜]ðNð NØ+1ðNñ Nô NñOô Oð „[×Ò˜V c¨3 ZÑ0Ô0Ø„[×Ò˜V c¨3 ZÑ0Ô0ð,7ð ,7ñ 1Ô0ñ 1Ô0ñ	Oô Oð,7ð\ „[×ÒÐ.Ø3Ð3Ð3Ø3Ð3Ð3Ø3Ð3Ð3ð5ñ6ô 6ðBð Bñ	6ô 6ðBðð ð ð  „[×ÒÐ.Ø*Ø*ð1ñ ô ð/ð /ñ	ô ð/ð /ð /r5   rE  r   )ÚIÚ1ÚOrM  rW  rJ  r2  rT  rÚ   rR   rv   c           	      ó  — t          j        | › |› |› |› |› �¦  «         t          j                              t          j        dd¦  «        ¦  «        }|                      ||f¬¦  «        |                      ||f¬¦  «        dz  z   }|                     t          j        d|                     dd¦  «        |¦  «        ¦  «        }||z  }t          j        | t          j	        ¦  «        r|j
        n|}|dk    rt          j        |¦  «        nt          j        |¦  «        }|dk    r+|t          j        |¦  «        d d …t          j        f         z  }|                     | ¦  «        }t!          d|f¦  «        } |||||¬¦  «        \  }	}
|d	k    r|t          j                             |t          j        ¬
¦  «        }t          j                             t          j                             |¦  «        t          j        ¬
¦  «        }d||z  z  }nnt          j        |¦  «                             d¬¦  «                             ¦   «         }t!          d|f¦  «        \  }} ||¦  «        \  }}} ||||¬¦  «        \  }}
d}t1          |	||¬¦  «         d S )Nr   l   ÿåa$r  r-   rv   rW  Útrcon)r   rM  r2  rz  )ÚordrP   r–   ©ÚgeconÚgetrf©r   rÉ   )r  r   r7   Údefault_rngr   ÚpermutedÚlogspaceÚintegersÚ
issubdtypeÚfloatingrê   r   r   r2  r3  r/   r'   Úlinalgr   Úinfr   rœ   rš   r�   r   )r1   r   rM  r2  rÚ   r2   ÚAÚoffsetr~  rB  r?   Únorm_AÚ
norm_inv_Ar    Úanormr�  r‚  ÚluÚipvtri   rÊ   s                        r3   Ú
test_trconr“  �  sC  € õ „K�5Ð/˜$Ð/ Ð/ dÐ/¨AÐ/Ð/Ñ0Ô0Ð0Ý
Œ)×
Ò
¥¤¨q°-Ñ @Ô @Ñ
AÔ
A€Cà�
Š
˜˜A˜ˆ
ÑÔ #§*¢*°1°a°& *Ñ"9Ô"9¸"Ñ"<Ñ<€Aà�\Š\�"œ+ a¨¯ª°a¸Ñ)<Ô)<¸aÑ@Ô@ÑAÔA€FØˆ�K€AÝ”- ¥r¤{Ñ3Ô3Ð:ˆŒˆ¸€AØ˜c’k�k�Œ�‰
Œ
ˆ
¥r¤w¨q¡z¤z€AØˆs‚{€{Ø	�RŒW�Q‰ZŒZ˜˜˜�2œ:˜Ô&Ñ&ˆØ	�Š�‰Œ€Aå˜W q dÑ+Ô+€EØˆU�1˜4 d°Ð6Ñ6Ô6�F€Cˆàˆs‚{€{Ý”—’ ¥r¤v�Ñ.Ô.ˆÝ”Y—^’^¥B¤I§M¢M°!Ñ$4Ô$4½"¼&�^ÑAÔAˆ
Ø�6˜JÑ&Ñ'ˆˆå”�q‘	”	—’ 1�Ñ%Ô%×)Ò)Ñ+Ô+ˆÝ'Ð(:¸Q¸DÑAÔA‰ˆˆuØ˜˜q™œ‰ˆˆD�$Ø��r˜5 tÐ,Ñ,Ô,‰ˆˆQð
 €DÝ�C˜ 4Ð(Ñ(Ô(Ð(Ð(Ð(r5   c                  ó  — dD �] } t          d| ¬¦  «        }t          j        d| ¦  «        }t          j        d| ¦  «        }t          j        |¦  «        r|dz  } |||¦  «        \  }}}t	          |d¦  «         t	          |d¦  «         t          j        |¦  «        rUt	          |d	¦  «         t          t          |t          ¦  «        ¦  «         t          t          |t          ¦  «        ¦  «         Œðt	          |d
¦  «         �Œd S )Nrz   Úlartgr¸   rR   rS   r-   ç333333ã?rÀ   y       €š™™™™™é¿çš™™™™™é?)	r'   r7   rƒ   Úiscomplexobjr   r   Ú
isinstanceÚcomplexrq  )r1   r•  rd   ÚgÚcsÚsnÚrs          r3   Ú
test_lartgrŸ  ¸  s  € Øð )ñ )ˆÝ  °Ð6Ñ6Ô6ˆåŒH�Q˜ÑÔˆÝŒH�Q˜ÑÔˆåŒ?˜1ÑÔð 	Ø�‰GˆAà�E˜!˜Q‘K”K‰	ˆˆB�å˜˜GÑ$Ô$Ð$Ý˜˜3ÑÔÐåŒ?˜1ÑÔð 	)Ý˜B 	Ñ*Ô*Ð*Ý•J˜q¥'Ñ*Ô*Ñ+Ô+Ð+Ý•J˜r¥5Ñ)Ô)Ñ*Ô*Ð*Ð*å˜B Ñ(Ô(Ð(Ñ(ð')ð )r5   c                  ó  — dD �]} d}d}t          j        dd| ¦  «        }t          j        dd| ¦  «        }dt          j        | ¦  «        j        dz
   z  }| dv rt	          d	| ¬
¦  «        }d}nt          d	| ¬
¦  «        }|dz  }|dz  }d}t           |||||¦  «        g d¢g d¢g|¬¦  «         t           |||||d¬¦  «        g d¢dd||gg|¬¦  «         t           |||||dd¬¦  «        g d¢||ddgg|¬¦  «         t           |||||ddd¬¦  «        g d¢||ddgg|¬¦  «         t           |||||ddd¬¦  «        g d¢d|d|gg|¬¦  «         t           |||||ddddd¬¦	  «	        g d¢||d|gg|¬¦  «         t           |||||ddd¬¦  «        g d¢d|d|gg|¬¦  «          |||||dd¬¦  «        \  }}	t          ||u ¦  «         t          |	|u ¦  «         t          |g d¢|¬¦  «         t          |	g d¢|¬¦  «         �Œd S )Nrz   r–  r—  rS   rR   rv   rP   ÚfdÚrotr¸   y       €      ð¿r-   y              @)rT   rT   rT   rT   )r   r   r   r   ©r/  rQ   )rÚ   )rT   rT   rR   rR   r   )ÚoffxÚoffy)rR   rR   rT   rT   )Úincxr¥  rÚ   )rT   rR   rT   rR   )r¤  ÚincyrÚ   )r¤  r¦  r¥  r§  rÚ   )rR   rR   rT   rR   r  )r¦  r§  rÚ   )Úoverwrite_xÚoverwrite_y)r7   ÚfullrÖ   Ú	precisionr(   r'   r   r   )
r1   rˆ   rî   Úurö   r/  r¢  rd   ra   r‡   s
             r3   Útest_rotr­  Ï  s4  € ð ð $4ñ $4ˆØˆØˆåŒG�A�q˜%Ñ Ô ˆÝŒG�A�q˜%Ñ Ô ˆØ•R”X˜e‘_”_Ô.¨qÑ0Ð1Ñ1ˆà�Dˆ=ˆ=Ý  ¨eÐ4Ñ4Ô4ˆCØˆAˆAå" 5°Ð6Ñ6Ô6ˆCØ�‰HˆAØ�‰GˆAØˆAå˜˜˜A˜q ! Q™œ¨,¨,¨,Ø*6¨,¨,ð*8Ø>Bð	Dñ 	Dô 	Dð 	Då˜˜˜A˜q ! Q¨!Ð,Ñ,Ô,¨|¨|¨|Ø01°1°a¸¨|ð/=ØCGð	Iñ 	Iô 	Ið 	Iå˜˜˜A˜q ! Q¨Q°QÐ7Ñ7Ô7Ø%˜˜¨¨1¨a° |Ð4¸4ð	Añ 	Aô 	Að 	Aå˜˜˜A˜q ! Q¨Q°Q¸!Ð<Ñ<Ô<Ø%˜˜¨¨1¨a° |Ð4¸4ð	Añ 	Aô 	Að 	Aå˜˜˜A˜q ! Q¨Q°Q¸!Ð<Ñ<Ô<Ø%˜˜¨¨1¨a° |Ð4¸4ð	Añ 	Aô 	Að 	Aå˜˜˜A˜q ! Q¨Q°Q¸QÀQÈ!ÐLÑLÔLØ%˜˜¨¨1¨a° |Ð4¸4ð	Añ 	Aô 	Að 	Aå˜˜˜A˜q ! Q¨R°b¸AÐ>Ñ>Ô>Ø%˜˜¨¨1¨a° |Ð4¸4ð	Añ 	Aô 	Að 	Að ˆs�1�a˜˜A¨1¸!Ð<Ñ<Ô<‰ˆˆ1Ý��Q�‰ŒˆÝ��Q�‰ŒˆÝ˜˜<˜<˜<¨dÐ3Ñ3Ô3Ð3Ý˜˜<˜<˜<¨dÐ3Ñ3Ô3Ð3Ñ3ðI$4ð $4r5   c            
      óÌ  — t           j                             d¦  «         t           j                             d¦  «        } | j                             | ¦  «        } t           j                             d¦  «        dt           j                             d¦  «        z  z   }|j                             ¦   «                              |¦  «        }dD �]™}t          ddg|¬¦  «        \  }}|dv r|                     ¦   «         }n|                      ¦   «         } ||j        d	         d
z
  |d         |dd …d	f         ¦  «        \  }}}t          j	        |d d …d	f         ¦  «        }	|d         |	d	<   ||	d
<   t          j	        |d
d …d	f         ¦  «        }
d|
d	<   ||
d
d …<    ||
| 
                    ¦   «         |d
d …d d …f         t          j        |j        d
         ¦  «        ¦  «        |d
d …d d …f<    ||
||d d …d
d …f         t          j        |j        d	         ¦  «        d¬¦  «        |d d …d
d …f<   t          |d d …d	f         |	d¬¦  «         t          |d	d d …f         |	d¬¦  «         �Œ›d S )Nr´   )rS   rS   r-   rz   ÚlarfgÚlarfr¸   ÚFDr   rP   ©rP   r   rQ   r�   r½   ÚR©ÚsiderN  r£  )r7   r  r   ry   r…   Úconjr'   Úcopyr0   r   r†   r   r   )Úa0Úa0jr1   r¯  r°  ra   ÚalpharŒ   rs   Úexpectedrö   s              r3   Útest_larfg_larfr¼  ù  s^  € Ý„I‡N‚N�4ÑÔÐÝ	Œ×	Ò	˜&Ñ	!Ô	!€BØ	Œ�Š�"‰Œ€Bå
Œ)×
Ò
˜6Ñ
"Ô
" R­¬	×(8Ò(8¸Ñ(@Ô(@Ñ%@Ñ
@€CØ
Œ%�*Š*‰,Œ,×
Ò
˜3Ñ
Ô
€Cð
 ð 6ñ 6ˆÝ&¨°Ð'8ÀÐFÑFÔF‰ˆˆtà�Dˆ=ˆ=Ø—’‘
”
ˆAˆAà—’‘	”	ˆAð ˜˜aœg aœj¨™l¨A¨d¬G°Q°q°r°r¸1°u´XÑ>Ô>‰ˆˆq�#õ ”=  1 1 1 a 4¤Ñ)Ô)ˆØ˜”gˆ�‰Øˆ�‰õ ŒM˜!˜A˜B˜B ˜Eœ(Ñ#Ô#ˆØˆˆ!‰Øˆˆ!ˆ"ˆ"‰ð �4˜˜3Ÿ=š=™?œ?¨A¨a¨b¨b°!°!°!¨e¬Hµb´h¸q¼wÀq¼zÑ6JÔ6JÑKÔKˆˆ!ˆ"ˆ"ˆaˆaˆaˆ%‰ð �4˜˜3  ! ! ! Q R R %¤­"¬(°1´7¸1´:Ñ*>Ô*>ÀSÐIÑIÔIˆˆ!ˆ!ˆ!ˆQˆRˆRˆ%‰å˜˜!˜!˜!˜Q˜$œ °Ð5Ñ5Ô5Ð5Ý˜˜!˜Q˜Q˜Q˜$œ °Ð5Ñ5Ô5Ð5Ñ5ð96ð 6r5   c                  óŠ   — t          dt          j        d¬¦  «        } d}t          | ||dd¬¦  «        }|dk    s|dk    sJ ‚d S d S )	NÚgesdd_lworkÚ	preferred©r1   Úilp64iA%  T)r(  r'  i`”Di€”D)r'   r7   Úfloat32r"   )Úsgesdd_lworkrÚ   rº   s      r3   Ú test_sgesdd_lwork_bug_workaroundrÄ  #  sq   € õ $ M½¼Ø*5ð7ñ 7ô 7€Là€AÝ˜<¨¨AØ&*¸$ð@ñ @ô @€Eð  �IÒÐ ¨)Ò!3Ð!3Ð!3Ð!3ÐÐÐ!3Ð!3r5   c                   óà   — e Zd Zej                             de¦  «        d„ ¦   «         Zej                             de¦  «        ej                             dd¦  «        d„ ¦   «         ¦   «         ZdS )Ú	TestSytrdr1   c                 ó€   — t          j        d|¬¦  «        }t          d|f¦  «        }t          t          ||¦  «         d S )Nr�   r¸   Úsytrd©r7   r   r'   r  rP  )r`   r1   rŒ  rÈ  s       r3   Útest_sytrd_with_zero_dim_arrayz(TestSytrd.test_sytrd_with_zero_dim_array@  sA   € õ ŒH�V 5Ð)Ñ)Ô)ˆÝ  ¨1¨$Ñ/Ô/ˆÝ•j %¨Ñ+Ô+Ð+Ð+Ð+r5   rÚ   ©rP   rR   c                 ó¤  — t          j        ||f|¬¦  «        }t          d|f¦  «        \  }}t          j        d||dz   z  dz  dz   |¬¦  «        |t          j        |¦  «        <    ||¦  «        \  }}t          |d¦  «          ||d|¬¦  «        \  }}	}
}}t          |d¦  «         t          ||dt          j        |¦  «        j        z  d¬	¦  «         t          |	t          j	        |¦  «        ¦  «         t          |
d
¦  «         t          |d
¦  «          |||¬¦  «        \  }}	}
}}t          |d¦  «         t          j
        ||¬¦  «        }t          j        |j        d         ¦  «        }|	|||f<   t          j        |j        d         dz
  ¦  «        }|
||dz   |f<   |
|||dz   f<   t          j        |||¬¦  «        }t          |dz
  ¦  «        D ]|}t          j        ||¬¦  «        }|d |…|dz   f         |d |…<   d||<   t          j        |||¬¦  «        ||         t          j        ||¦  «        z  z
  }t          j        ||¦  «        }Œ}t          j        |d¦  «        }|j        |         ||<   t          j        |j        t          j        ||¦  «        ¦  «        }t          ||dt          j        |¦  «        j        z  d¬	¦  «         d S )Nr¸   )rÈ  Úsytrd_lworkrP   rQ   r   ©r  rº   rT   r½   r.  ç        r¹   r�   )r7   r   r'   ÚarangeÚtriu_indices_fromr   r   rÖ   r×   r2  r   r0   r   r5  Úouterr…   r   ry   )r`   r1   rÚ   rŒ  rÈ  rÍ  rº   ri   Údatarp   Úers   ry   rk  Úk2ÚQrA  rö   ÚHÚi_lowerÚQTAQs                        r3   Ú
test_sytrdzTestSytrd.test_sytrdG  sã  € õ ŒH�a˜�V 5Ð)Ñ)Ô)ˆõ Ð5¸°tÑ<Ô<ñ 	ˆˆ{õ
 ŒI�a˜˜A˜a™C™ !™ A™¨UÐ3Ñ3Ô3ð 	
�"Ô
˜qÑ
!Ô
!Ñ"ð "�k !‘n”n‰ˆˆtÝ�T˜1ÑÔÐð !&  a¨q¸Ð >Ñ >Ô >Ñˆˆa��C˜Ý�T˜1ÑÔÐå˜˜a a­¬°©¬Ô(;Ñ&;À#ÐFÑFÔFÐFÝ˜�2œ7 1™:œ:Ñ&Ô&Ð&Ý˜˜3ÑÔÐÝ˜˜SÑ!Ô!Ð!ð !&  a¨uÐ 5Ñ 5Ô 5Ñˆˆa��C˜Ý�T˜1ÑÔÐõ
 ŒM˜! 5Ð)Ñ)Ô)ˆÝŒI�a”g˜a”jÑ!Ô!ˆØˆˆ!ˆQˆ$‰ÝŒY�q”w˜q”z !‘|Ñ$Ô$ˆØˆˆ"ˆQ‰$�ˆ(‰Øˆˆ"ˆb�‰dˆ(‰õ ŒF�1�a˜uÐ%Ñ%Ô%ˆÝ�q˜‘s‘”ð 	ð 	ˆAÝ”˜ %Ð(Ñ(Ô(ˆAØ˜˜!˜˜Q˜q™S˜”MˆAˆbˆqˆb‰EØˆAˆa‰DÝ”�q˜! 5Ð)Ñ)Ô)¨C°¬FµR´X¸aÀ±^´^Ñ,CÑCˆAÝ”�q˜!‘”ˆAˆAõ ”/ ! RÑ(Ô(ˆØ”S˜”\ˆˆ'‰
åŒv�a”c�2œ6 ! Q™<œ<Ñ(Ô(ˆõ 	˜˜a a­¬°©¬Ô(;Ñ&;À#ÐFÑFÔFÐFÐFÐFr5   N)	r¢   r£   r¤   rA   rx  ry  rÕ   rÊ  rÚ  r¥   r5   r3   rÆ  rÆ  ?  s�   € € € € € Ø„[×Ò˜W kÑ2Ô2ð,ð ,ñ 3Ô2ð,ð „[×Ò˜W kÑ2Ô2Ø„[×Ò˜S &Ñ)Ô)ð7Gð 7Gñ *Ô)ñ 3Ô2ð7Gð 7Gð 7Gr5   rÆ  c                   óô   — e Zd Zej                             de¦  «        d„ ¦   «         Zej                             d ee	e¦  «        ¦  «        ej                             dd¦  «        d„ ¦   «         ¦   «         Z
dS )Ú	TestHetrdÚcomplex_dtypec                 ó€   — t          j        d|¬¦  «        }t          d|f¦  «        }t          t          ||¦  «         d S )Nr�   r¸   ÚhetrdrÉ  )r`   rÝ  rŒ  rß  s       r3   Útest_hetrd_with_zero_dim_arrayz(TestHetrd.test_hetrd_with_zero_dim_array„  sA   € õ ŒH�V =Ð1Ñ1Ô1ˆÝ  ¨1¨$Ñ/Ô/ˆÝ•j %¨Ñ+Ô+Ð+Ð+Ð+r5   zreal_dtype,complex_dtyperÚ   rË  c           	      ó>  — t          j        ||f|¬¦  «        }t          d|f¦  «        \  }}t          j        d||dz   z  dz  dz   |¬¦  «        dt          j        d||dz   z  dz  dz   |¬¦  «        z  z   |t          j        |¦  «        <   t          j        |t          j        t          j        |¦  «        ¦  «        ¦  «         dD ]"} |||¬¦  «        \  }}	t          |	d¦  «         Œ#t          ||¦  «        }
 ||d|
¬	¦  «        \  }}}}}	t          |	d¦  «         t          ||d
t          j        |¦  «        j        z  d¬¦  «         t          |t          j        t          j        |¦  «        ¦  «        ¦  «         t          |d¦  «         t          |d¦  «          |||
¬¦  «        \  }}}}}	t          |	d¦  «         t          j        ||¬¦  «        }t          j        |j        d         t          ¬¦  «        }||||f<   t          j        |j        d         dz
  t          ¬¦  «        }|||dz   |f<   ||||dz   f<   t          j        |||¬¦  «        }t#          |dz
  ¦  «        D ]Ž}t          j        ||¬¦  «        }|d |…|dz   f         |d |…<   d||<   t          j        |||¬¦  «        ||         t          j        |t          j        |¦  «        ¦  «        z  z
  }t          j        ||¦  «        }Œ�t          j        |d¦  «        }t          j        |j        |         ¦  «        ||<   t          j        t          j        |j        ¦  «        t          j        ||¦  «        ¦  «        }t          ||dt          j        |¦  «        j        z  d¬¦  «         d S )Nr¸   )rß  Úhetrd_lworkrP   rQ   r-   ©r   rP   ©r  r   rÎ  rT   r½   r.  rÏ  r¹   r�   rv   )r7   r   r'   rÐ  rÑ  Úfill_diagonalrê   r2  r   r"   r   rÖ   r×   r   r0   ré   r   r5  rÒ  r¶  r…   r   ry   )r`   rÚ   Ú
real_dtyperÝ  rŒ  rß  râ  rŒ   r?   ri   rº   rÓ  rp   rÔ  rs   ry   rk  rÕ  rÖ  rA  rö   r×  rØ  ÚQHAQs                           r3   Ú
test_hetrdzTestHetrd.test_hetrd‹  s¥  € õ ŒH�a˜�V =Ð1Ñ1Ô1ˆåÐ5¸°tÑ<Ô<ñ 	ˆˆ{õ
 ŒI�a˜˜A˜a™C™ !™ A™¨ZÐ8Ñ8Ô8Ø•2”9˜Q  1 Q¡3¡¨¡
¨1¡°JÐ?Ñ?Ô?Ñ?ñ@ð 	
�"Ô
˜qÑ
!Ô
!Ñ"õ 	Ô˜�BœG¥B¤G¨A¡J¤JÑ/Ô/Ñ0Ô0Ð0ð ð 	"ð 	"ˆAØ!�k !¨1Ð-Ñ-Ô-‰GˆAˆtÝ˜˜qÑ!Ô!Ð!Ð!õ ˜{¨AÑ.Ô.ˆð !&  a¨q¸Ð >Ñ >Ô >Ñˆˆa��C˜Ý�T˜1ÑÔÐå˜˜a a­¬°Ñ(<Ô(<Ô(@Ñ&@ÀsÐKÑKÔKÐKå˜�2œ7¥2¤7¨1¡:¤:Ñ.Ô.Ñ/Ô/Ð/Ý˜˜3ÑÔÐÝ˜˜SÑ!Ô!Ð!ð !&  a¨uÐ 5Ñ 5Ô 5Ñˆˆa��C˜Ý�T˜1ÑÔÐõ
 ŒM˜! :Ð.Ñ.Ô.ˆÝŒI�a”g˜a”j­Ð,Ñ,Ô,ˆØˆˆ!ˆQˆ$‰ÝŒY�q”w˜q”z !‘|­3Ð/Ñ/Ô/ˆØˆˆ"ˆQ‰$�ˆ(‰Øˆˆ"ˆb�‰dˆ(‰õ ŒF�1�a˜}Ð-Ñ-Ô-ˆÝ�q˜‘s‘”ð 	ð 	ˆAÝ”˜ -Ð0Ñ0Ô0ˆAØ˜˜!˜˜Q˜q™S˜”MˆAˆbˆqˆb‰EØˆAˆa‰DÝ”�q˜! =Ð1Ñ1Ô1Ø�a”&�2œ8 A¥r¤w¨q¡z¤zÑ2Ô2Ñ2ñ3ˆAå”�q˜!‘”ˆAˆAõ ”/ ! RÑ(Ô(ˆÝ”W˜QœS œ\Ñ*Ô*ˆˆ'‰
åŒv•b”g˜aœc‘l”l¥B¤F¨1¨a¡L¤LÑ1Ô1ˆõ 	Ø�!˜"�RœX jÑ1Ô1Ô5Ñ5¸Cð	ñ 	ô 	ð 	ð 	ð 	r5   N)r¢   r£   r¤   rA   rx  ry  r.   rà  ÚziprÕ   rè  r¥   r5   r3   rÜ  rÜ  ƒ  s¤   € € € € € Ø„[×Ò˜_¨nÑ=Ô=ð,ð ,ñ >Ô=ð,ð „[×ÒÐ7Ø ˜S ¨nÑ=Ô=ñ?ô ?à„[×Ò˜S &Ñ)Ô)ðAð Añ *Ô)ñ?ô ?ðAð Að Ar5   rÜ  c            
      óð  — t          t          ¦  «        D �]_\  } }t          d|¬¦  «        \  }}t          |ddd¬¦  «        }| dk     rYt	          j        g d¢g d¢g d	¢g d
¢g d¢g d¢g|¬¦  «        }t	          j        g d¢|¬¦  «        }t	          j        ddg|¬¦  «        }n\t	          j        g d¢g d¢g d¢g d¢g d¢g d¢g¦  «        }t	          j        dgdgdgdgdgdgg¦  «        }t	          j        d|¬¦  «        }t	          j        g d¢g d¢g|¬¦  «        } ||||||¬¦  «        \  }	}	}	}
}	| dk     rt	          j        g d¢¦  «        }nt	          j        g d¢¦  «        }t          |
|d¬ ¦  «         �Œad S )!N)ÚgglseÚgglse_lworkr¸   rU   rS   rQ   )rÙ   rÚ   rc   )g=
×£p=â¿g{®Gázô¿gö(\�ÂõØ¿ç      Ð?)çáz®Gáþ¿gHáz®Gñ?g×£p=
×Ó¿ç…ëQ¸À)çffffff@g¸…ëQ¸Î?gš™™™™™Ù?gffffffÖ¿)rî  g{®Gázä?ç…ëQ¸å¿g{®Gáz´?)ç333333Ã?g333333Ó?rò  g
×£p=
À)g{®Gáz”¿ç{®Gázð?gáz®Gáö¿ç      à?)g      ø¿rï  g®Gáz®ó?gHáz®Gá¿gáz®Gáú¿g=
×£p=ê?rÏ  )y¸…ëQ¸î?ìQ¸…ëé¿y¸…ëQ¸ž¿¸…ëQ¸î?y…ëQ¸í¿{®Gáz @yš™™™™™©¿=
×£p=Ú?)y\�Âõ(\ï¿®Gáz®ÿ?y333333ó¿R¸…ëQÈ?y…ëQ¸å¿áz®GáÚ?yìQ¸…ëé¿ìQ¸…ëá?)y×£p=
×ã?q=
×£pÝ¿y)\�Âõ(ð?{®Gáz”?y)\�Âõ(ä?Ãõ(\�ÂÅ¿yÃõ(\�Âñ¿333333ã?)y®Gáz®×?R¸…ëQØ?yR¸…ëQÈ?Ház®Gá¿y\�Âõ(\ï¿
×£p=
×¿y)\�Âõ(Ì?š™™™™™É¿)y�Âõ(\�ê?R¸…ëQà?yš™™™™™É?{®Gáz„?yÃõ(\�ÂÅ¿q=
×£pÝ¿y…ëQ¸…÷?q=
×£pù?)yHáz®Gñ?ìQ¸…ëÑ¿yš™™™™™É?¸…ëQ¸¾¿yìQ¸…ë±¿®Gáz®ó?y¤p=
×£Ð?¤p=
×£Ð?yR¸…ëQÀ
×£p=
·?yffffffú?®GázÀyáz®Gá À®Gáz®Ày…ëQ¸ý?ffffff
@y¤p=
×£À)\�Âõ(@y�Âõ(\� @…ëQ¸å?)r½   rÏ  ç      ð¿rÏ  )rÏ  r½   rÏ  rõ  r¹   )çÐ^"ƒ�Lß?ç¢\}éëï?rö  r÷  )yàÜ!fñ?$_KÀ–dÿ¿y‰^g¿Åµç¿¸F€�Ö@yàÜ!fñ?}²Þ–dÿ¿y61ŸÅµç¿eðæ_�Ö@r   )rÓ   rÔ   r'   r"   r7   rƒ   r   r   )rØ   r1   ÚfuncÚ
func_lworkrº   ra   rˆ   rp   r‡   r?   Úresultr»  s               r3   Ú
test_gglserû  Ò  sF  € å¥Ñ'Ô'ð ,?ñ ,?‰
ˆˆUå+Ð,DØ27ð9ñ 9ô 9Ñˆˆjå˜z¨Q°!°qÐ9Ñ9Ô9ˆà�Š7ˆ7Ý”Ð5Ð5Ð5Ø5Ð5Ð5Ø3Ð3Ð3Ø4Ð4Ð4Ø3Ð3Ð3Ø4Ð4Ð4ð6ð
 >CðDñ Dô DˆAõ ”ÐAÐAÐAÈÐOÑOÔOˆAÝ”˜"˜b˜¨Ð/Ñ/Ô/ˆAˆAõ ”ÐMÐMÐMØNÐNÐNØKÐKÐKØKÐKÐKØKÐKÐKØKÐKÐKðMñ Nô NˆAõ ”˜;˜-Ø%˜,Ø&˜-Ø%˜,Ø&˜-Ø%˜,ð(ñ )ô )ˆAõ ”˜ %Ð(Ñ(Ô(ˆAåŒHÐ'Ð'Ð'Ð):Ð):Ð):Ð;À5ÐIÑIÔIˆà!˜T ! Q¨¨1°EÐ:Ñ:Ô:Ñˆˆ1ˆa�˜Ø�Š7ˆ7Ý”xð !-ð !-ð !-ñ .ô .ˆHˆHõ
 ”xð !:ð !:ð !:ñ ;ô ;ˆHõ 	" &¨(¸AÐ>Ñ>Ô>Ð>Ñ>ðY,?ð ,?r5   c            
      óP  — t          d¦  «         t          t          t          z   ¦  «        D �]x\  } }d}| dk     rIt	          d|¬¦  «        }t	          d|¬¦  «        \  }}t          ||¦  «                             |¦  «        }n\t	          d|¬¦  «        }t	          d|¬¦  «        \  }}t          ||¦  «        t          ||¦  «        d	z  z                        |¦  «        }||                     ¦   «         j        z   d
z  d
t          j
        ||¬¦  «        z  z   }t          |d¦  «        }t          ||¦  «        } |||d¬¦  «        \  }	}
} ||	|
|d¬¦  «        \  }}t          t          d|z  t          j                             |d¬¦  «        z
  ¦  «        |z  dk     ¦  «         �Œzd S )Nr´   rv   rS   Úsytrf_lworkr¸   )ÚsyconÚsytrfÚhetrf_lwork)ÚheconÚhetrfr-   rQ   rP   )rº   r  )ra   Úipivr�  r  ©rc   )r   rÓ   rÔ   r.   r'   r   r/   r¶  ry   r7   r   r   r"   r   rœ   rŠ  Úcond)rØ   r1   rÚ   rù  ÚfunconÚfunctrfrŒ  r�  rº   Úldur  r?   Úrconds                r3   Útest_sycon_heconr
    s«  € Ýˆ�J„J€JÝ¥¥~Ñ 5Ñ6Ô6ð Añ A‰
ˆˆUàˆà�Š7ˆ7Ý)¨-¸uÐEÑEÔEˆJÝ.Ð/AÈÐOÑOÔO‰OˆF�GÝ�a˜‘”×#Ò# EÑ*Ô*ˆAˆAõ *¨-¸uÐEÑEÔEˆJÝ.Ð/AÈÐOÑOÔO‰OˆF�GÝ�a˜‘”�d 1 a™jœj¨™mÑ+×3Ò3°EÑ:Ô:ˆAð �—’‘””‰^˜QÑ ¥2¤6¨!°5Ð#9Ñ#9Ô#9Ñ!9Ñ9ˆå�Q˜‘
”
ˆÝ˜z¨1Ñ-Ô-ˆØ�w˜q¨°QÐ7Ñ7Ô7‰ˆˆT�1Ø�6˜C d°%¸qÐAÑAÔA‰ˆˆqå•�A�e‘G�bœiŸnšn¨Q°!˜nÑ4Ô4Ñ4Ñ5Ô5°eÑ;¸aÒ?Ñ@Ô@Ð@Ñ@ð-Að Ar5   c                  ó´  — t          d¦  «         t          t          ¦  «        D �]2\  } }d}t          d|¬¦  «        \  }}}}t	          ||¦  «                             |¦  «        }||j        z   dz  }t	          ||¦  «                             |¦  «        }||j        z   dz  dt          j        ||¬¦  «        z  z   } |||¦  «        \  }	}
}t          |dk    ¦  «          ||¦  «        \  }}t          |dk    ¦  «          |||¦  «        \  }}t          |dk    ¦  «          ||¦  «        \  }}
}t          |dk    ¦  «         t          ||	d¬¦  «         �Œ4d S )	Nr´   rv   )r  ÚsygstÚsyevdÚsygvdr¸   rQ   r   giUMu?rÉ   )r   rÓ   rÕ   r'   r   r/   ry   r7   r   r   r   )rØ   r1   rÚ   r  r  r  r  rŒ  ÚBÚeig_gvdr?   ri   r‡   ra   Úeigs                  r3   Ú
test_sygstr    s€  € Ýˆ�J„J€JÝ¥Ñ,Ô,ð 3ñ 3‰
ˆˆUàˆå%5ð 7Ià<Að&Cñ &Cô &CÑ"ˆˆu�e˜Uõ ��A‰JŒJ×Ò˜eÑ$Ô$ˆØ�”‰W�a‰Kˆå��A‰JŒJ×Ò˜eÑ$Ô$ˆØ�”‰W�a‰K˜!�bœf Q¨eÐ4Ñ4Ô4Ñ4Ñ4ˆð !˜5  A™;œ;Ñˆ��DÝ�˜’	ÑÔÐð �%˜‘(”(‰ˆˆ4Ý�˜’	ÑÔÐØ�%˜˜1‘+”+‰ˆˆ4Ý�˜’	ÑÔÐà�u˜Q‘x”x‰ˆˆQ�Ý�˜’	ÑÔÐÝ˜˜W¨6Ð2Ñ2Ô2Ð2Ñ2ð53ð 3r5   c                  ó˜  — t          d¦  «         t          t          ¦  «        D �]¤\  } }d}t          d|¬¦  «        \  }}}}t	          ||¦  «                             |¦  «        dt	          ||¦  «                             |¦  «        z  z   }||                     ¦   «         j        z   dz  }t	          ||¦  «                             |¦  «        dt	          ||¦  «                             |¦  «        z  z   }||                     ¦   «         j        z   dz  dt          j	        ||¬¦  «        z  z   } |||¦  «        \  }	}
}t          |dk    ¦  «          ||¦  «        \  }}t          |dk    ¦  «          |||¦  «        \  }}t          |dk    ¦  «          ||¦  «        \  }}
}t          |dk    ¦  «         t          ||	d¬	¦  «         �Œ¦d S )
Nr´   rv   )r  ÚhegstÚheevdÚhegvdr¸   r-   rQ   r   ç-Cëâ6?rÉ   )r   rÓ   r.   r'   r   r/   r¶  ry   r7   r   r   r   )rØ   r1   rÚ   r  r  r  r  rŒ  r  r  r?   ri   r‡   ra   r  s                  r3   Ú
test_hegstr  =  sÒ  € Ýˆ�J„J€JÝ¥Ñ/Ô/ð 1ñ 1‰
ˆˆUàˆå%5ð 7Ià<Að&Cñ &Cô &CÑ"ˆˆu�e˜Uõ ��A‰JŒJ×Ò˜eÑ$Ô$ r­D°°A©J¬J×,=Ò,=¸eÑ,DÔ,DÑ'DÑDˆØ�—’‘””‰^˜QÑˆå��A‰JŒJ×Ò˜eÑ$Ô$ r­D°°A©J¬J×,=Ò,=¸eÑ,DÔ,DÑ'DÑDˆØ�—’‘””‰^˜QÑ ¥R¤V¨A°UÐ%;Ñ%;Ô%;Ñ!;Ñ;ˆð !˜5  A™;œ;Ñˆ��DÝ�˜’	ÑÔÐð �%˜‘(”(‰ˆˆ4Ý�˜’	ÑÔÐØ�%˜˜1‘+”+‰ˆˆ4Ý�˜’	ÑÔÐà�u˜Q‘x”x‰ˆˆQ�Ý�˜’	ÑÔÐÝ˜˜W¨4Ð0Ñ0Ô0Ð0Ñ0ð51ð 1r5   c                  ó   ‡‡‡— t           j                             d¦  «        } d\  }}t          t          ¦  «        D �]\  }}t          d|¬¦  «        \  }}t          |||¦  «        }|dk     r7t          |                      ||¦  «         	                    |¦  «        ¦  «        }nPt          |                      ||¦  «        |                      ||¦  «        dz  z    	                    |¦  «        ¦  «        }t          t          ||j        ¦  «          |||¬¦  «        \  }	Š}
t          |
dk    ¦  «         t          j        |	d	d	…d	|…f         t          j        |||z
  f|¬¦  «        f¦  «        }t          j        t          j        ||¬¦  «        |	d	d	…|d	…f         f¦  «        Št          j        ||¬¦  «        Šˆˆˆfd
„t#          |¦  «        D ¦   «         }t%          t           j        |¦  «        }t)          |                     |¦  «        |z
  t+          ||¬¦  «        dt          j         |d¦  «        j        ¦  «        z  d¬¦  «         �Œd	S )zº
    This test performs an RZ decomposition in which an m x n upper trapezoidal
    array M (m <= n) is factorized as M = [R 0] * Z where R is upper triangular
    and Z is unitary.
    r´   ©rv   é   ©ÚtzrzfÚtzrzf_lworkr¸   rQ   r-   r¹   r   Nc           
      ó¬   •— g | ]P}‰‰|         ‰|gd d …f         j                              ‰|gd d …f                              ¦   «         ¦  «        z  z
  ‘ŒQS ©N©ry   r…   r¶  ©rU  rŒ   ÚIdÚVrs   s     €€€r3   rV  ztest_tzrzf.<locals>.<listcomp>x  s[   ø€ ÐMÐMÐM¸qˆr�#�a”&˜˜A˜3   ˜6œœŸš¨¨A¨3°°°¨6¬¯ªÑ)9Ô)9Ñ:Ô:Ñ:Ñ:ÐMÐMÐMr5   rv   r½   rÏ  r.  )r7   r  r^  rÓ   rÔ   r'   r"   r   r   r/   r  r  ry   r   r0  r   r   r5  r   r…   r   r   Úspacingrê   )r2   rÙ   rÚ   rØ   r1   r  Útzrzf_lwrº   rŒ  Úrzri   r³  r    ÚZr#  r$  rs   s                 @@@r3   Ú
test_tzrzfr)  \  sF  øøø€ õ Œ)×
Ò
 Ñ
%Ô
%€CØ�D€A€qÝ¥Ñ'Ô'ð Fñ F‰
ˆˆUÝ*Ð+CØ16ð8ñ 8ô 8‰ˆˆxå˜x¨¨AÑ.Ô.ˆà�Š7ˆ7Ý�S—X’X˜a ‘^”^×*Ò*¨5Ñ1Ô1Ñ2Ô2ˆAˆAå�c—h’h˜q !‘n”n s§x¢x°°1¡~¤~°bÑ'8Ñ8×@Ò@ÀÑGÔGÑHÔHˆAõ 	•i ¨¬Ñ,Ô,Ð,Ø˜˜a uÐ-Ñ-Ô-‰ˆˆC�å�˜’	ÑÔÐõ ŒI�r˜!˜!˜!˜R˜a˜R˜%”y¥"¤(¨A¨q°©s¨8¸5Ð"AÑ"AÔ"AÐBÑCÔCˆÝŒI•r”v˜a uÐ-Ñ-Ô-¨r°!°!°!°Q°R°R°%¬yÐ9Ñ:Ô:ˆÝŒV�A˜UÐ#Ñ#Ô#ˆØMÐMÐMÐMÐMÐMÅEÈ!ÁHÄHÐMÑMÔMˆÝ•2”6˜3ÑÔˆÝ˜Ÿš˜a™œ 1™¥j°¸%Ð&@Ñ&@Ô&@Ø¥¤
¨5¨5°©:¬:¬?Ñ ;Ô ;Ñ;À"ð	Fñ 	Fô 	Fð 	Fñ 	Fð-Fð Fr5   c            	      ó¢  — t           j                             d¦  «        } t          t          ¦  «        D �]™\  }}d}|dk    rct          |                      ||¦  «        |                      ||¦  «        dz  z   t          |¦  «        z   ¦  «                             |¦  «        }d}nHt          |                      ||¦  «        t          |¦  «        z   ¦  «                             |¦  «        }d}t          d|¬¦  «        \  }}} ||¦  «        \  }	}
|                      |d	¦  «                             |¦  «        } |d
|	|¦  «        }t          |t          | |¦  «        |d	z  dk    rdnd¬¦  «          |d
|	||¬¦  «        }t          |t          |                     ¦   «         j         |¦  «        |d	z  dk    rdnd¬¦  «          |d¦  «        |t          j        |¦  «        t          j        |¦  «        f<    |d
|	||d¬¦  «        }t          |t          |                     ¦   «         j         |¦  «        |d	z  dk    rdnd¬¦  «         |                      d|¦  «                             |¦  «        } |d
|	||dd¬¦  «        }t          |t          | |j        ¦  «                             ¦   «         j        |d	z  dk    rdnd¬¦  «         �Œ›dS )z„
    Test for solving a linear system with the coefficient matrix is a
    triangular array stored in Full Packed (RFP) format.
    r´   rµ   rP   r-   r|   ry   )ÚtrttfÚtfttrÚtfsmr¸   rQ   r�   r   rS   rU   r   ©r‰   r½   rW  )r‰   r2  rR   r³  )r‰   r2  rµ  N)r7   r  r^  rÓ   rÔ   r   r   r   r/   r'   r   r   r¶  ry   rÐ  )r2   rØ   r1   rÚ   rŒ  r‰   r+  r,  r-  ÚAfpr?   r  ÚsolnÚB2s                 r3   Ú	test_tfsmr2  ~  sõ  € õ
 Œ)×
Ò
 Ñ
%Ô
%€CÝ¥Ñ'Ô'ð  Dñ  D‰
ˆˆUØˆØ�Š7ˆ7Ý�S—X’X˜a ‘^”^ c§h¢h¨q°!¡n¤n°RÑ&7Ñ7½#¸a¹&¼&Ñ@ÑAÔA×HÒHÈÑOÔOˆAØˆEˆEå�S—X’X˜a ‘^”^¥c¨!¡f¤fÑ,Ñ-Ô-×4Ò4°UÑ;Ô;ˆAØˆEå-Ð.HØ49ð;ñ ;ô ;Ñˆˆu�dð ��q‘”‰ˆˆQØ�HŠH�Q˜‰NŒN×!Ò! %Ñ(Ô(ˆØˆt�B˜˜QÑÔˆÝ! $­¨q¨b°!©¬Ø/2°Q©w¸!ª|¨|¨!¨!Àð	Dñ 	Dô 	Dð 	Dð ˆt�B˜˜Q eÐ,Ñ,Ô,ˆÝ! $­¨q¯vªv©x¬x¬z¨k¸1Ñ(=Ô(=Ø/2°Q©w¸!ª|¨|¨!¨!Àð	Dñ 	Dô 	Dð 	Dð ).¨¨b©	¬	ˆ�"Œ)�A‰,Œ,�œ	 !™œÐ
$Ñ%Øˆt�B˜˜Q e°#Ð6Ñ6Ô6ˆÝ! $­¨q¯vªv©x¬x¬z¨k¸1Ñ(=Ô(=Ø/2°Q©w¸!ª|¨|¨!¨!Àð	Dñ 	Dô 	Dð 	Dð �XŠX�a˜‰^Œ^×"Ò" 5Ñ)Ô)ˆØˆt�B˜˜R u°3¸SÐAÑAÔAˆÝ! $­¨q¨b°"´$©¬×(<Ò(<Ñ(>Ô(>Ô(@Ø/2°Q©w¸!ª|¨|¨!¨!Àð	Dñ 	Dô 	Dð 	Dñ 	Dð? Dð  Dr5   c            	      óò  ‡‡‡— t           j                             d¦  «        } d\  }}}t          t          ¦  «        D �]¸\  }}t          d|¬¦  «        \  }}t          |||¦  «        }|dk     rtt          |                      ||¦  «         	                    |¦  «        ¦  «        }	|                      ||¦  «         	                    |¦  «        }
t          d|¬¦  «        \  }}n¡t          |                      ||¦  «        |                      ||¦  «        dz  z    	                    |¦  «        ¦  «        }	|                      ||¦  «        t          ||¦  «        dz  z    	                    |¦  «        }
t          d|¬¦  «        \  }}t          |||¦  «        } ||	|¬	¦  «        \  }Š}t          j
        t          j        ||¬¦  «        |d
d
…|d
…f         f¦  «        Št          j        ||¬¦  «        Šˆˆˆfd„t          |¦  «        D ¦   «         }t          t           j        |¦  «        }|dk     rdnd}dt          j         |d¦  «        j        ¦  «        z  } ||‰|
|¬	¦  «        \  }}t#          |dk    ¦  «         t%          ||                     |
¦  «        z
  t'          |
¦  «        |d¬¦  «          ||‰|
||¬¦  «        \  }}t#          |dk    ¦  «         t%          ||                     ¦   «         j                             |
¦  «        z
  t'          |
¦  «        |d¬¦  «          ||‰|
d|¬¦  «        \  }}t#          |dk    ¦  «         t%          ||
                     |¦  «        z
  t'          |
¦  «        |d¬¦  «          ||‰|
d||¬¦  «        \  }}t#          |dk    ¦  «         t%          ||
                     |                     ¦   «         j        ¦  «        z
  t'          |
¦  «        |d¬¦  «         �Œºd
S )a  
    This test performs a matrix multiplication with an arbitrary m x n matrix C
    and a unitary matrix Q without explicitly forming the array. The array data
    is encoded in the rectangular part of A which is obtained from ?TZRZF. Q
    size is inferred by m, n, side keywords.
    r´   )rv   r  r  r  r¸   rQ   )ÚormrzÚormrz_lworkr-   )ÚunmrzÚunmrz_lworkr¹   Nc           
      ó¬   •— g | ]P}‰‰|         ‰|gd d …f         j                              ‰|gd d …f                              ¦   «         ¦  «        z  z
  ‘ŒQS r   r!  r"  s     €€€r3   rV  z$test_ormrz_unmrz.<locals>.<listcomp>Æ  s[   ø€ ÐNÐNÐN¸qˆr�#�a”&˜˜A˜3   ˜6œœŸš¨¨A¨3°°°¨6¬¯ªÑ)9Ô)9Ñ:Ô:Ñ:Ñ:ÐNÐNÐNr5   ry   r|   rv   r½   r   rÏ  r.  r¼   r³  )rµ  rº   )rµ  r‰   rº   )r7   r  r^  rÓ   rÔ   r'   r"   r   r   r/   r0  r   r5  r   r…   r%  rê   r   r   r   r¶  ry   )r2   ÚqmÚqnÚcnrØ   r1   r  r&  Úlwork_rzrŒ  r|   Úorun_mrzÚorun_mrz_lwÚ	lwork_mrzr'  ri   r    rÖ  r‰   ÚtolÚcqr#  r$  rs   s                        @@@r3   Útest_ormrz_unmrzrB  §  s  øøø€ õ Œ)×
Ò
 Ñ
%Ô
%€CØ�J€BˆˆBÝ¥Ñ'Ô'ð .!ñ .!‰
ˆˆUÝ*Ð+CØ16ð8ñ 8ô 8‰ˆˆxå! (¨B°Ñ3Ô3ˆà�Š7ˆ7Ý�S—X’X˜b "Ñ%Ô%×,Ò,¨UÑ3Ô3Ñ4Ô4ˆAØ—’˜˜RÑ Ô ×'Ò'¨Ñ.Ô.ˆAÝ$4Ð5MØ;@ð%Bñ %Bô %BÑ!ˆH�k�kõ �c—h’h˜r 2Ñ&Ô&¨¯ª°"°bÑ)9Ô)9¸"Ñ)<Ñ<×DÒDÀUÑKÔKÑLÔLˆAØ—’˜"˜bÑ!Ô!¥D¨¨R¡L¤L°¡OÑ3×;Ò;¸EÑBÔBˆAÝ$4Ð5MØ;@ð%Bñ %Bô %BÑ!ˆH�kõ # ;°°BÑ7Ô7ˆ	Ø˜˜a xÐ0Ñ0Ô0‰ˆˆC�õ ŒI•r”v˜b¨Ð.Ñ.Ô.°°1°1°1°b°c°c°6´
Ð;Ñ<Ô<ˆÝŒV�B˜eÐ$Ñ$Ô$ˆØNÐNÐNÐNÐNÐNÅEÈ"ÁIÄIÐNÑNÔNˆÝ•2”6˜3ÑÔˆð ˜Q’w�w�� CˆØ•”˜E˜E #™JœJœOÑ,Ô,Ñ,ˆà�8˜B  Q¨iÐ8Ñ8Ô8‰ˆˆDÝ�˜’	ÑÔÐÝ˜˜QŸUšU 1™XœX™¥z°!¡}¤}¸3ÀRÐHÑHÔHÐHà�8˜B  Q¨e¸9ÐEÑEÔE‰ˆˆDÝ�˜’	ÑÔÐÝ˜˜QŸVšV™XœXœZŸ^š^¨AÑ.Ô.Ñ.µ
¸1±´ÀCØð	!ñ 	!ô 	!ð 	!ð �8˜B  Q¨S¸	ÐBÑBÔB‰ˆˆDÝ�˜’	ÑÔÐÝ˜˜QŸUšU 1™XœX™¥z°!¡}¤}¸3ÀRÐHÑHÔHÐHà�8˜B  Q¨S¸ÀYÐOÑOÔO‰ˆˆDÝ�˜’	ÑÔÐÝ˜˜QŸUšU 1§6¢6¡8¤8¤:Ñ.Ô.Ñ.µ
¸1±´ÀCØð	!ñ 	!ô 	!ð 	!ñ 	!ð[.!ð .!r5   c            	      ó|  — t           j                             d¦  «        } t          t          ¦  «        D �]\  }}d}|dk    rF|                      ||¦  «        |                      ||¦  «        dz  z                        |¦  «        }d}n+|                      ||¦  «                             |¦  «        }d}t          d|¬¦  «        \  }} ||¦  «        \  }}	t          |	d	k    ¦  «          ||d
¬¦  «        \  }
}	t          |	d	k    ¦  «          |||d¬¦  «        \  }}	t          |	d	k    ¦  «          |||d
¬¦  «        \  }}	t          |	d	k    ¦  «         t          |dz   |dz  f|¬¦  «        }t          |¦  «        dd…|dz  d…f         |dd…dd…f<   ||dz  dz   d…dd…fxx         t          |¦  «        d|dz  …d|dz  …f                              ¦   «         j        z  cc<   t          |dz   |dz  f|¬¦  «        }t          |¦  «        dd…d|dz  …f         |dd…dd…f<   |d|dz  …dd…fxx         t          |¦  «        |dz  d…|dz  d…f                              ¦   «         j        z  cc<   t          ||                     dd¬¦  «        ¦  «         t          ||                     ¦   «         j                             dd¬¦  «        ¦  «         t          |
|                     dd¬¦  «        ¦  «         t          ||                     ¦   «         j                             dd¬¦  «        ¦  «          |||¦  «        \  }}	t          |	d	k    ¦  «          |||
d
¬¦  «        \  }}	t          |	d	k    ¦  «          ||||d¬¦  «        \  }}	t          |	d	k    ¦  «          ||||d
¬¦  «        \  }}	t          |	d	k    ¦  «         t          |t          |¦  «        ¦  «         t          |t          |¦  «        ¦  «         t          |t          |¦  «        ¦  «         t          |t          |¦  «        ¦  «         �ŒdS )úz
    Test conversion routines between the Rectangular Full Packed (RFP) format
    and Standard Triangular Array (TR)
    r´   rµ   rP   r-   r|   ry   )r+  r,  r¸   r   rJ  ©rM  rW  )ÚtransrrM  rQ   Nr�   ÚF)Úorder)r7   r  r^  rÓ   rÔ   r   r/   r'   r   r   r   r¶  ry   r   r   Úreshape)r2   rØ   r1   rÚ   ÚA_fullrF  r+  r,  ÚA_tf_Uri   ÚA_tf_LÚA_tf_U_TÚA_tf_L_TÚA_tf_U_mÚA_tf_L_mÚA_tr_UÚA_tr_LÚA_tr_U_TÚA_tr_L_Ts                      r3   Útest_tfttr_trttfrU  á  s„  € õ
 Œ)×
Ò
 Ñ
%Ô
%€CÝ¥Ñ'Ô'ð 1:ñ 1:‰
ˆˆUØˆØ�Š7ˆ7Ø—h’h˜q !‘n”n s§x¢x°°1¡~¤~°bÑ'8Ñ8×@Ò@ÀÑGÔGˆFØˆFˆFà—h’h˜q !‘n”n×,Ò,¨UÑ3Ô3ˆFØˆFå'Ð(:À%ÐHÑHÔH‰ˆˆuØ�u˜V‘}”}‰ˆ�Ý�˜’	ÑÔÐØ�u˜V¨#Ð.Ñ.Ô.‰ˆ�Ý�˜’	ÑÔÐØ˜˜v¨f¸3Ð?Ñ?Ô?‰ˆ�$Ý�˜’	ÑÔÐØ˜˜v¨f¸3Ð?Ñ?Ô?‰ˆ�$Ý�˜’	ÑÔÐõ ˜!˜A™#˜q !™t˜¨EÐ2Ñ2Ô2ˆÝ ™<œ<¨¨¨¨1¨a©4¨5¨5¨Ô1ˆ��"��a�a�a�ÑØ��A‘�a‘��˜!˜!˜!�ÐÐÔ¥ V¡¤¨U¨a°©d¨U°E°Q¸±T°E¨\Ô :× ?Ò ?Ñ AÔ AÔ CÑCÐÐÑå˜!˜A™#˜q !™t˜¨EÐ2Ñ2Ô2ˆÝ˜v™,œ, q q q¨%¨1¨a©4¨% xÔ0ˆ����Q�Q�Q�‰Ø��!�Q‘$�˜˜˜�ÐÐÔ�d 6™lœl¨1¨a©4¨5¨5°!°Q±$°%°%¨<Ô8×=Ò=Ñ?Ô?ÔAÑAÐÐÑå! &¨(×*:Ò*:¸2ÀSÐ*:Ñ*IÔ*IÑJÔJÐJÝ! (Ø"*§-¢-¡/¤/Ô"3×";Ò";¸BÀcÐ";Ñ"JÔ"Jñ	Lô 	Lð 	Lõ 	" &¨(×*:Ò*:¸2ÀSÐ*:Ñ*IÔ*IÑJÔJÐJÝ! (Ø"*§-¢-¡/¤/Ô"3×";Ò";¸BÀcÐ";Ñ"JÔ"Jñ	Lô 	Lð 	Lð �u˜Q Ñ'Ô'‰ˆ�Ý�˜’	ÑÔÐØ�u˜Q ¨SÐ1Ñ1Ô1‰ˆ�Ý�˜’	ÑÔÐØ˜˜q (°6ÀÐDÑDÔD‰ˆ�$Ý�˜’	ÑÔÐØ˜˜q (°6ÀÐDÑDÔD‰ˆ�$Ý�˜’	ÑÔÐå! &­$¨v©,¬,Ñ7Ô7Ð7Ý! (­D°©L¬LÑ9Ô9Ð9Ý! &­$¨v©,¬,Ñ7Ô7Ð7Ý! (­D°©L¬LÑ9Ô9Ð9Ñ9ðc1:ð 1:r5   c                  óv  — t           j                             d¦  «        } t          t          ¦  «        D �]\  }}d}|dk    rD|                      ||¦  «        |                      ||¦  «        dz  z                        |¦  «        }n)|                      ||¦  «                             |¦  «        }t          d|¬¦  «        \  }} ||¦  «        \  }}t          |dk    ¦  «          ||d¬	¦  «        \  }	}t          |dk    ¦  «         t          |¦  «        }
t          ||dz   z  d
z  |¬¦  «        }t          |¦  «        j        |
         |dd…<   t          |¦  «        }
t          ||dz   z  d
z  |¬¦  «        }t          |¦  «        j        |
         |dd…<   t          ||¦  «         t          |	|¦  «          |||¦  «        \  }}t          |dk    ¦  «          |||	d¬	¦  «        \  }}t          |dk    ¦  «         t          |t          |¦  «        ¦  «         t          |t          |¦  «        ¦  «         �ŒdS )rD  r´   rµ   rP   r-   )ÚtrttpÚtpttrr¸   r   rJ  rE  rQ   N)r7   r  r^  rÓ   rÔ   r   r/   r'   r   r   r   r   ry   r   r   r   )r2   rØ   r1   rÚ   rJ  rW  rX  ÚA_tp_Uri   ÚA_tp_LÚindsÚA_tp_U_mÚA_tp_L_mrQ  rR  s                  r3   Útest_tpttr_trttpr^    s3  € õ
 Œ)×
Ò
 Ñ
%Ô
%€CÝ¥Ñ'Ô'ð  8ñ  8‰
ˆˆUØˆØ�Š7ˆ7Ø—h’h˜q !‘n”n s§x¢x°°1¡~¤~°bÑ'8Ñ8×@Ò@ÀÑGÔGˆFˆFà—h’h˜q !‘n”n×,Ò,¨UÑ3Ô3ˆFå'Ð(:À%ÐHÑHÔH‰ˆˆuØ�u˜V‘}”}‰ˆ�Ý�˜’	ÑÔÐØ�u˜V¨#Ð.Ñ.Ô.‰ˆ�Ý�˜’	ÑÔÐõ ˜A‰ŒˆÝ˜˜A˜a™C™ !™¨5Ð1Ñ1Ô1ˆÝ˜F‘|”|”~ tÔ,ˆ���‰å˜A‰ŒˆÝ˜˜A˜a™C™ !™¨5Ð1Ñ1Ô1ˆÝ˜F‘|”|”~ tÔ,ˆ���‰å! &¨(Ñ3Ô3Ð3Ý! &¨(Ñ3Ô3Ð3ð �u˜Q Ñ'Ô'‰ˆ�Ý�˜’	ÑÔÐØ�u˜Q ¨SÐ1Ñ1Ô1‰ˆ�Ý�˜’	ÑÔÐå! &­$¨v©,¬,Ñ7Ô7Ð7Ý! &­$¨v©,¬,Ñ7Ô7Ð7Ñ7ðA 8ð  8r5   c                  óä  — t           j                             d¦  «        } t          t          ¦  «        D �]:\  }}d}|dk    rs|                      ||¦  «        |                      ||¦  «        dz  z                        |¦  «        }||                     ¦   «         j        z   |t          |¦  «        z  z   }nF|                      ||¦  «                             |¦  «        }||j        z   |t          |¦  «        z  z   }t          d|¬¦  «        \  }}} ||¦  «        \  }}	 |||¦  «        \  }
}	t          |	dk    ¦  «          |||
¦  «        \  }}t          |¦  «        }t          ||¦  «         �Œ<dS )	zk
    Test Cholesky factorization of a positive definite Rectangular Full
    Packed (RFP) format array
    r´   rµ   rP   r-   )Úpftrfr+  r,  r¸   r   N)r7   r  r^  rÓ   rÔ   r   r/   r¶  ry   r   r'   r   r   r   )r2   rØ   r1   rÚ   rŒ  r`  r+  r,  r/  ri   Ú	Achol_rfpÚA_chol_rr?   ÚAchols                 r3   Ú
test_pftrfrd  D  sj  € õ
 Œ)×
Ò
 Ñ
%Ô
%€CÝ¥Ñ'Ô'ð 3ñ 3‰
ˆˆUØˆØ�Š7ˆ7Ø—’˜!˜Q‘” #§(¢(¨1¨a¡.¤.°Ñ"3Ñ3×;Ò;¸EÑBÔBˆAØ�A—F’F‘H”H”J‘ ¥3 q¡6¤6¡Ñ)ˆAˆAà—’˜!˜Q‘”×'Ò'¨Ñ.Ô.ˆAØ�A”C‘˜!�C ™FœF™(Ñ"ˆAå.Ð/JØ5:ð<ñ <ô <Ñˆˆu�eð �E˜!‘H”H‰	ˆˆTØ˜%  3™-œ-‰ˆ	�4Ý�˜’	ÑÔÐØ�e˜A˜yÑ)Ô)‰ˆ�!Ý˜‘”ˆÝ! (¨EÑ2Ô2Ð2Ñ2ð%3ð 3r5   c                  ó8  — t           j                             d¦  «        } t          t          ¦  «        D �]d\  }}d}|dk    rs|                      ||¦  «        |                      ||¦  «        dz  z                        |¦  «        }||                     ¦   «         j        z   |t          |¦  «        z  z   }nF|                      ||¦  «                             |¦  «        }||j        z   |t          |¦  «        z  z   }t          d|¬¦  «        \  }}}} ||¦  «        \  }	}
 |||	¦  «        \  }}
 |||¦  «        \  }}
t          |
dk    ¦  «          |||¦  «        \  }}t          |¦  «        }t          |t          |¦  «        |dz  dk    rd	nd
¬¦  «         �ŒfdS )z
    Test Cholesky factorization of a positive definite Rectangular Full
    Packed (RFP) format array to find its inverse
    r´   rµ   rP   r-   )Úpftrir`  r+  r,  r¸   r   rQ   rS   rU   r   N)r7   r  r^  rÓ   rÔ   r   r/   r¶  ry   r   r'   r   r   r   r   )r2   rØ   r1   rÚ   rŒ  rf  r`  r+  r,  r/  ri   Ú
A_chol_rfpÚ	A_inv_rfpÚA_inv_rr?   ÚAinvs                   r3   Ú
test_pftrirk  _  sº  € õ
 Œ)×
Ò
 Ñ
%Ô
%€CÝ¥Ñ'Ô'ð Dñ D‰
ˆˆUØˆØ�Š7ˆ7Ø—’˜!˜Q‘” #§(¢(¨1¨a¡.¤.°Ñ"3Ñ3×;Ò;¸EÑBÔBˆAØ�A—F’F‘H”H”J‘ ¥3 q¡6¤6¡Ñ)ˆAˆAà—’˜!˜Q‘”×'Ò'¨Ñ.Ô.ˆAØ�A”C‘˜!�C ™FœF™(Ñ"ˆAå%5ð 7@ð =Bð	&Cñ &Cô &CÑ"ˆˆu�e˜Uð �E˜!‘H”H‰	ˆˆTØ ˜5  C™=œ=Ñˆ
�DØ˜%  :Ñ.Ô.‰ˆ	�4Ý�˜’	ÑÔÐØ�U˜1˜iÑ(Ô(‰
ˆ�Ý�1‰vŒvˆÝ! '­4°©:¬:Ø/2°Q©w¸!ª|¨|¨!¨!Àð	Dñ 	Dô 	Dð 	Dñ 	Dð-Dð Dr5   c                  óô  — t           j                             d¦  «        } t          t          ¦  «        D �]Â\  }}d}|dk    rs|                      ||¦  «        |                      ||¦  «        dz  z                        |¦  «        }||                     ¦   «         j        z   |t          |¦  «        z  z   }nF|                      ||¦  «                             |¦  «        }||j        z   |t          |¦  «        z  z   }t          |df|¬¦  «        }t          |dz   df|¬¦  «        }t          |dz
  df|¬¦  «        }t          d|¬¦  «        \  }}	}
} |
|¦  «        \  }} |	||¦  «        \  }} ||||¦  «        \  }}t          |d	k    ¦  «         t          t          ||||¦  «          ||||¦  «        \  }}t          |d	k    ¦  «         t          t!          ||¦  «        ||dz  d	k    rd
nd¬¦  «         �ŒÄdS )z…
    Test Cholesky factorization of a positive definite Rectangular Full
    Packed (RFP) format array and solve a linear system
    r´   rµ   rP   r-   rR   r¸   rQ   )Úpftrsr`  r+  r,  r   rS   rU   r   N)r7   r  r^  rÓ   rÔ   r   r/   r¶  ry   r   r   r'   r   r  r  r   r   )r2   rØ   r1   rÚ   rŒ  r  ÚBf1ÚBf2rm  r`  r+  r,  r/  ri   rg  r0  s                   r3   Ú
test_pftrsrp    s'  € õ
 Œ)×
Ò
 Ñ
%Ô
%€CÝ¥Ñ'Ô'ð Dñ D‰
ˆˆUØˆØ�Š7ˆ7Ø—’˜!˜Q‘” #§(¢(¨1¨a¡.¤.°Ñ"3Ñ3×;Ò;¸EÑBÔBˆAØ�A—F’F‘H”H”J‘ ¥3 q¡6¤6¡Ñ)ˆAˆAà—’˜!˜Q‘”×'Ò'¨Ñ.Ô.ˆAØ�A”C‘˜!�C ™FœF™(Ñ"ˆAå�!�Q�˜uÐ%Ñ%Ô%ˆÝ�A�a‘C˜�8 5Ð)Ñ)Ô)ˆÝ�A�a‘C˜�8 5Ð)Ñ)Ô)ˆÝ%5ð 7@ð =Bð	&Cñ &Cô &CÑ"ˆˆu�e˜Uð �E˜!‘H”H‰	ˆˆTØ ˜5  C™=œ=Ñˆ
�Dà�U˜1˜j¨#Ñ.Ô.‰
ˆˆdÝ�˜’	ÑÔÐÝ•i ¨¨:°sÑ;Ô;Ð;Ø�U˜1˜j¨!Ñ,Ô,‰
ˆˆdÝ�˜’	ÑÔÐÝ!¥%¨¨1¡+¤+¨tØ/2°Q©w¸!ª|¨|¨!¨!Àð	Dñ 	Dô 	Dð 	Dñ 	Dð7Dð Dr5   c            
      óª  — t           j                             d¦  «        } t          t          ¦  «        D �]�\  }}d}|dk    rs|                      ||¦  «        |                      ||¦  «        dz  z                        |¦  «        }||                     ¦   «         j        z   |t          |¦  «        z  z   }nF|                      ||¦  «                             |¦  «        }||j        z   |t          |¦  «        z  z   }|dk     rdnd}t          dd	|› d
�f|¬¦  «        \  }}} ||¦  «        \  }	}
|                      |d¦  «                             |¦  «        } ||dd|d|	¦  «        } |||¦  «        \  }}
t          |t          |                     |                     ¦   «         j        ¦  «         d|z  z   ¦  «        |dz  dk    rdnd¬¦  «         �ŒŸdS )zT
    Test for performing a symmetric rank-k operation for matrix in RFP format.
    r´   rµ   rP   r-   rQ   rî   Úhr+  r,  Úfrkr¸   r�   r   rS   rU   r   N)r7   r  r^  rÓ   rÔ   r   r/   r¶  ry   r   r'   r   r   r…   )r2   rØ   r1   rÚ   rŒ  Úprefixr+  r,  Úshfrkr/  r?   r|   ÚAfp_outÚA_outs                 r3   Útest_sfrk_hfrkrx  ¤  sâ  € õ Œ)×
Ò
 Ñ
%Ô
%€CÝ¥Ñ'Ô'ð Dñ D‰
ˆˆUØˆØ�Š7ˆ7Ø—’˜!˜Q‘” #§(¢(¨1¨a¡.¤.°Ñ"3Ñ3×;Ò;¸EÑBÔBˆAØ�A—F’F‘H”H”J‘ ¥3 q¡6¤6¡Ñ)ˆAˆAà—’˜!˜Q‘”×'Ò'¨Ñ.Ô.ˆAØ�A”C‘˜!�C ™FœF™(Ñ"ˆAà˜Q’w�w�� CˆÝ.°¸ÀVÀ.À.À.Ð/QØ5:ð<ñ <ô <Ñˆˆu�eð ��q‘”‰ˆˆQØ�HŠH�Q˜‰NŒN×!Ò! %Ñ(Ô(ˆØ�%˜˜1˜b ! Q¨Ñ,Ô,ˆØ�5˜˜GÑ$Ô$‰ˆˆqÝ! %­¨q¯uªu°Q·V²V±X´X´ZÑ/@Ô/@Ð.@À1ÀQÁ3Ñ.FÑ)GÔ)GØ/2°Q©w¸!ª|¨|¨!¨!Àð	Dñ 	Dô 	Dð 	Dñ 	Dð#Dð Dr5   c            
      óp  — t           j                             d¦  «        } t          t          ¦  «        D �] \  }}d}|dk    rf|                      dd||f¦  «        |                      dd||f¦  «        dz  z                        |¦  «        }||                     ¦   «         j        z   }nI|                      dd||f¦  «                             |¦  «        }||j        z   |t          |¦  «        z  z   }dt          j
         |d¦  «        j        ¦  «        z  }t          d	|¬
¦  «        \  }}}t          ||d¬¦  «        }	t          |dd¬¦  «        \  }
}}t          ||d¬¦  «        }	 ||d|	¬¦  «        \  }}} |||d¬¦  «        \  }}}t          t!          |d¦  «        t!          |
|dd…f         d¦  «        |d¬¦  «         t          |dd¬¦  «        \  }}} ||d¬¦  «        \  }}} |||d¬¦  «        \  }}}t          t#          |d¦  «        t#          ||dd…f         d¦  «        |d¬¦  «         �ŒdS )zt
    Test for going back and forth between the returned format of he/sytrf to
    L and D factors/permutations.
    r´   rv   rP   iâÿÿÿé   r-   r-  r½   )Úsyconvrÿ  rý  r¸   rä  F)r  Ú	hermitianrÎ  r�   NrÏ  r.  r   )r7   r  r^  rÓ   rÔ   r   r/   r¶  ry   r   r%  rê   r'   r"   r   r   r   r   )r2   rØ   r1   rÚ   rŒ  r@  r{  ÚtrfÚ	trf_lworkÚlwrJ  ÚDÚpermr  r  ri   ra   rÔ  rW  s                      r3   Útest_syconvr‚  ¾  sk  € õ
 Œ)×
Ò
 Ñ
%Ô
%€CÝ¥Ñ'Ô'ð Lñ L‰
ˆˆUØˆà�Š7ˆ7Ø—’˜S " q¨! fÑ-Ô-Ø—’˜S " q¨! fÑ-Ô-¨bÑ0ñ1ß28²&¸±-´-ð ð �A—F’F‘H”H”J‘ˆAˆAà—’˜C  a¨ VÑ,Ô,×3Ò3°EÑ:Ô:ˆAØ�A”C‘˜!�C ™FœF™(Ñ"ˆAà•"”*˜U˜U 3™ZœZœ_Ñ-Ô-Ñ-ˆÝ!1ð 3BØINð"Pñ "Pô "PÑˆ��Yå˜I q°Ð2Ñ2Ô2ˆÝ˜ !¨uÐ5Ñ5Ô5‰
ˆˆ1ˆdÝ˜I q°Ð2Ñ2Ô2ˆØ˜#˜a q°Ð3Ñ3Ô3‰ˆˆT�4Ø�V˜C ¨QÐ/Ñ/Ô/‰
ˆˆ1ˆdÝ�˜Q ™œ¥d¨1¨T°1°1°1¨W¬:°rÑ&:Ô&:ÀÈ2ÐNÑNÔNÐNõ ˜ !¨uÐ5Ñ5Ô5‰
ˆˆ1ˆdØ˜#˜a q˜/™/œ/‰ˆˆT�4Ø�V˜C ¨QÐ/Ñ/Ô/‰
ˆˆ1ˆdÝ�˜Q ™
œ
¥D¨¨4°°°¨7¬°QÑ$7Ô$7¸cÈÐKÑKÔKÐKÑKð5Lð Lr5   c                   ó   — e Zd ZdZd„ Zd„ ZdS )ÚTestBlockedQRzd
    Tests for the blocked QR factorization, namely through geqrt, gemqrt, tpqrt
    and tpmqr.
    c           
      ó2  — t           j                             d¦  «        }t          t          ¦  «        D �]á\  }}d}|dk    rD|                     ||¦  «        |                     ||¦  «        dz  z                        |¦  «        }n)|                     ||¦  «                             |¦  «        }dt          j         |d¦  «        j        ¦  «        z  }t          d|¬¦  «        \  }} |||¦  «        \  }	}
}|d	k    sJ ‚t          j
        |	d
¦  «        t          j        ||¬¦  «        z   }t          j        ||¬¦  «        ||
z  |j                             ¦   «         z  z
  }t          j        |	¦  «        }t          |j                             ¦   «         |z  t          j        ||¬¦  «        |d¬¦  «         t          ||z  ||d¬¦  «         |dk    rF|                     ||¦  «        |                     ||¦  «        dz  z                        |¦  «        }d}n+|                     ||¦  «                             |¦  «        }d}dD ]š}d|fD ]“} ||	|
|||¬¦  «        \  }}|d	k    sJ ‚||k    r|j                             ¦   «         }n|}|dk    r||z  }n||z  }t          |||d¬¦  «         ||fdk    r( ||	|
|¦  «        \  }}|d	k    sJ ‚t!          ||¦  «         Œ”Œ›t#          t$          ||	|
|d¬¦  «         t#          t$          ||	|
|d¬¦  «         �Œãd S )Nr´   rµ   rP   r-   r-  r½   )ÚgeqrtÚgemqrtr¸   r   r�   rÏ  r.  r|   ry   ©rJ  r³  rT  ©rµ  r‰   rJ  ©rJ  rT  rŒ  r´  r.  )r7   r  r^  rÓ   rÔ   r   r/   r%  rê   r'   r   r   ry   r¶  r   r   r   r  r  )r`   r2   rØ   r1   rÚ   rŒ  r@  r†  r‡  ra   Útri   rö   rÖ  r³  r|   Ú	transposerµ  r‰   rˆ   ÚqÚqCÚ	c_defaults                          r3   Útest_geqrt_gemqrtzTestBlockedQR.test_geqrt_gemqrtç  sD  € ÝŒi×#Ò# DÑ)Ô)ˆÝ#¥FÑ+Ô+ð :	Añ :	A‰JˆC�ØˆAà�QŠwˆwØ—X’X˜a ‘^”^ c§h¢h¨q°!¡n¤n°RÑ&7Ñ7×?Ò?ÀÑFÔF��à—X’X˜a ‘^”^×+Ò+¨EÑ2Ô2�à•b”j   s¡¤¤Ñ1Ô1Ñ1ˆCÝ,Ð-@ÈÐNÑNÔN‰MˆE�6à˜˜q !™œ‰JˆAˆq�$Ø˜1’9�9�9�9õ ”˜˜2‘”¥¤¨°Ð!7Ñ!7Ô!7Ñ7ˆAå”�q Ð&Ñ&Ô&¨¨Q©°´·²±´Ñ);Ñ;ˆAÝ”˜‘
”
ˆAõ ˜AœCŸHšH™JœJ¨™N­B¬F°1¸EÐ,BÑ,BÔ,BÈØ!#ð%ñ %ô %ð %å˜A ™E 1¨3°RÐ8Ñ8Ô8Ð8à�QŠwˆwØ—X’X˜a ‘^”^ c§h¢h¨q°!¡n¤n°RÑ&7Ñ7×?Ò?ÀÑFÔF�Ø�	�	à—X’X˜a ‘^”^×+Ò+¨EÑ2Ô2�Ø�	à"ð 3ð 3�Ø! 9Ð-ð 3ð 3�EØ$˜f Q¨¨1°4¸uÐEÑEÔE‘G�A�tØ 1š9˜9˜9˜9à 	Ò)Ð)ØœCŸHšH™JœJ˜˜à˜à˜s’{�{Ø ™U˜˜à ™U˜å# A r°¸"Ð=Ñ=Ô=Ð=ð ˜e�}¨
Ò2Ð2Ø*0¨&°°A°q©/¬/™˜	 4Ø# qšy˜y˜y˜yÝ$ Y°Ñ2Ô2Ð2øð)3õ. �) V¨Q°°1¸3Ð?Ñ?Ô?Ð?Ý�) V¨Q°°1¸CÐ@Ñ@Ô@Ð@Ñ@ðu:	Að :	Ar5   c                 óî
  — t           j                             d¦  «        }t          t          ¦  «        D �]?\  }}d}|dk    r‡|                     ||¦  «        |                     ||¦  «        dz  z                        |¦  «        }|                     ||¦  «        |                     ||¦  «        dz  z                        |¦  «        }nR|                     ||¦  «                             |¦  «        }|                     ||¦  «                             |¦  «        }dt          j         |d¦  «        j        ¦  «        z  }t          d|¬¦  «        \  }}	d	|d
z  |fD �]}
 ||
|||¦  «        \  }}}}|d	k    sJ ‚t          t          j        |d¦  «        t          j        |d¦  «        ¦  «         t          t          j        ||
|z
  dz
  ¦  «        t          j        ||
|z
  dz
  ¦  «        ¦  «         t          j        ||
|z
  ¦  «        t          j        ||
|z
  ¦  «        }}t          j        t          j        ||¬¦  «        |f¦  «        }t          j        d
|z  |¬¦  «        ||z  |j                             ¦   «         z  z
  }t          j        t          j        |¦  «        t          j        |¦  «        f¦  «        }t%          |j                             ¦   «         |z  t          j        d
|z  |¬¦  «        |d¬¦  «         t%          ||z  t          j        t          j        |¦  «        |f¦  «        |d¬¦  «         |dk    r‰|                     ||¦  «        |                     ||¦  «        dz  z                        |¦  «        }|                     ||¦  «        |                     ||¦  «        dz  z                        |¦  «        }d}nT|                     ||¦  «                             |¦  «        }|                     ||¦  «                             |¦  «        }d}dD �]}d|fD �]
} |	|
||||||¬¦  «        \  }}}|d	k    sJ ‚||k    r|j                             ¦   «         }n|}|dk    r6t          j        ||fd	¬¦  «        }t          j        ||fd	¬¦  «        }||z  }n5t          j        ||fd¬¦  «        }t          j        ||fd¬¦  «        }||z  }t%          |||d¬¦  «         ||fdk    r; |	|
||||¦  «        \  }} }|d	k    sJ ‚t          ||¦  «         t          | |¦  «         �Œ�Œt'          t(          |	|
||||d¬¦  «         t'          t(          |	|
||||d¬¦  «         �Œ�ŒAd S )Nr´   rµ   rP   r-   r-  r½   )ÚtpqrtÚtpmqrtr¸   r   rQ   r�   rÏ  r.  r|   ry   rˆ  rT  r‰  rJ  r–   rŠ  rŒ  r´  r.  )r7   r  r^  rÓ   rÔ   r   r/   r%  rê   r'   r   r   r   r4  r   ry   r¶  r   r   r  r  )!r`   r2   rØ   r1   rÚ   rŒ  r  r@  r’  r“  Úlra   r‡   r‹  ri   ÚB_pentÚb_pentrö   rÖ  r³  r|   r€  rŒ  rµ  r‰   rˆ   rp   r�  ÚcdÚCDÚqCDr�  Ú	d_defaults!                                    r3   Útest_tpqrt_tpmqrtzTestBlockedQR.test_tpqrt_tpmqrt%  sx  € ÝŒi×#Ò# DÑ)Ô)ˆÝ#¥FÑ+Ô+ð O	Kñ O	K‰JˆC�ØˆAà�QŠwˆwØ—X’X˜a ‘^”^ c§h¢h¨q°!¡n¤n°RÑ&7Ñ7×?Ò?ÀÑFÔF�Ø—X’X˜a ‘^”^ c§h¢h¨q°!¡n¤n°RÑ&7Ñ7×?Ò?ÀÑFÔF��à—X’X˜a ‘^”^×+Ò+¨EÑ2Ô2�Ø—X’X˜a ‘^”^×+Ò+¨EÑ2Ô2�à•b”j   s¡¤¤Ñ1Ô1Ñ1ˆCÝ,Ð-@ÈÐNÑNÔN‰MˆE�6ð ˜˜a™ �^ð @Kñ @K�Ø %  a¨¨A¨qÑ 1Ô 1‘��1�a˜Ø˜q’y�y�y�yõ �RœW Q¨™^œ^­R¬W°Q¸©^¬^Ñ<Ô<Ð<õ �RœW Q¨¨A©°©	Ñ2Ô2µB´G¸A¸qÀ1¹uÀq¹yÑ4IÔ4IÑJÔJÐJõ "$¤¨¨A°©EÑ!2Ô!2µB´G¸A¸qÀ1¹uÑ4EÔ4E˜�õ ”N¥B¤F¨1°EÐ$:Ñ$:Ô$:¸FÐ#CÑDÔD�å”F˜1˜q™5¨Ð.Ñ.Ô.°°Q±¸¼¿º¹¼Ñ1CÑC�Ý”N¥B¤G¨A¡J¤Jµ´¸aÑ0@Ô0@Ð#AÑBÔB�õ   ¤§¢¡
¤
¨Q¡µ´°q¸1±uÀEÐ0JÑ0JÔ0JØ%(¨rð3ñ 3ô 3ð 3å  A¡¥r¤~µr´w¸q±z´zÀ6Ð6JÑ'KÔ'KØ%(¨rð3ñ 3ô 3ð 3ð ˜’7�7ØŸš ! Q™œ¨#¯(ª(°1°a©.¬.¸Ñ*;Ñ;×CÒCÀEÑJÔJ�AØŸš ! Q™œ¨#¯(ª(°1°a©.¬.¸Ñ*;Ñ;×CÒCÀEÑJÔJ�AØ #�I�IàŸš ! Q™œ×/Ò/°Ñ6Ô6�AØŸš ! Q™œ×/Ò/°Ñ6Ô6�AØ #�Ià&ð 7ñ 7�DØ"% yÐ!1ð 7ñ 7˜Ø%+ V¨A¨q°!°Q¸ÀØ27ð&9ñ &9ô &9™
˜˜1˜dà# qšy˜y˜y˜yà  IÒ-Ð-Ø !¤§¢¡
¤
˜A˜Aà !˜Aà 3š;˜;Ý!#¤°°A°¸QÐ!?Ñ!?Ô!?˜BÝ!#¤°°A°¸QÐ!?Ñ!?Ô!?˜BØ"# b¡&˜C˜Cå!#¤°°A°¸QÐ!?Ñ!?Ô!?˜BÝ!#¤°°A°¸QÐ!?Ñ!?Ô!?˜BØ"$ q¡&˜Cå'¨¨C°cÀÐCÑCÔCÐCà  %˜=¨JÒ6Ð6Ø9?¸ÀÀ1ÀaÈÈAÑ9NÔ9NÑ6˜I y°$Ø#'¨1¢9 9 9 9Ý(¨°AÑ6Ô6Ð6Ý(¨°AÑ6Ô6Ð6ùñ37õ8 �i¨°°A°q¸!¸QÀSÐIÑIÔIÐIÝ�i¨°°A°q¸!¸QÀcÐJÑJÔJÐJÑJñA@KðO	Kð O	Kr5   N)r¢   r£   r¤   r@   r�  r›  r¥   r5   r3   r„  r„  á  sJ   € € € € € ðð ð
<Að <Að <Að|QKð QKð QKð QKð QKr5   r„  c                  óp  — t           j                             d¦  «        } t          t          ¦  «        D �]€\  }}d}d}t          d|¬¦  «        }|dk    ry|                      |||z
  ¦  «                             |¦  «        d|                      |||z
  ¦  «                             |¦  «        z  z   }||                     ¦   «         j	        z  }n6|                      |||z
  ¦  «                             |¦  «        }||j	        z  } ||¦  «        \  }}}	}
t          |¦  «        }d||	|z
  d …|	|z
  d …f<   t          |
d¦  «         d	t          j        t           j        ¦  «        j        z  }d	t          j        t           j        ¦  «        j        z  }|d
v r|n|}t!          ||dz
           d d …|dz
  f         |                     ¦   «         j	        |z  d|¬¦  «          ||d¬¦  «        \  }}}	}
t#          |¦  «        }d||	|z
  d …|	|z
  d …f<   t          |
d¦  «         d	t          j        t           j        ¦  «        j        z  }d	t          j        t           j        ¦  «        j        z  }|d
v r|n|}t!          ||dz
           d d …|dz
  f         ||                     ¦   «         j	        z  d|¬¦  «         �Œ‚d S )Nr´   rv   rQ   Úpstrfr¸   rP   r-   rÏ  éè  ©r   rQ   rO  rä  ©r7   r  r^  rÓ   rÔ   r'   r   r/   r¶  ry   r   r   rÖ   rÂ  r×   r8  r   r   )r2   rØ   r1   rÚ   rž  r�  rŒ  rˆ   ÚpivÚr_cri   rW  Úsingle_atolÚdouble_atolr/  rJ  s                   r3   Ú
test_pstrfr¥  y  óª  € Ý
Œ)×
Ò
 Ñ
%Ô
%€CÝ¥Ñ'Ô'ð #Pñ #P‰
ˆˆUàˆØˆÝ  °Ð6Ñ6Ô6ˆð �Š7ˆ7Ø—’˜˜A˜a™CÑ Ô ×'Ò'¨Ñ.Ô.°°c·h²h¸qÀ!ÀAÁ#Ñ6FÔ6F×6MÒ6MÈeÑ6TÔ6TÑ1TÑTˆAØ�A—F’F‘H”H”J‘ˆAˆAà—’˜˜A˜a™CÑ Ô ×'Ò'¨Ñ.Ô.ˆAØ�A”C‘ˆAà!˜E !™HœHÑˆˆ3��TÝ�‰GŒGˆØ "ˆˆ#�‰'ˆ(ˆ(�C˜!‘G�H�HÐ
Ñå�T˜1ÑÔÐð �RœX¥b¤jÑ1Ô1Ô5Ñ5ˆØ�RœX¥b¤jÑ1Ô1Ô5Ñ5ˆØ! V˜m˜mˆ{ˆ{°ˆÝ˜˜#˜a™%œ    C¨¡E Ô*¨A¯FªF©H¬H¬J¸©NÀÈ$ÐOÑOÔOÐOà!˜E !¨1Ð-Ñ-Ô-Ñˆˆ3��TÝ�‰GŒGˆØ "ˆˆ#�‰'ˆ(ˆ(�C˜!‘G�H�HÐ
Ñå�T˜1ÑÔÐà�RœX¥b¤jÑ1Ô1Ô5Ñ5ˆØ�RœX¥b¤jÑ1Ô1Ô5Ñ5ˆØ! V˜m˜mˆ{ˆ{°ˆÝ˜˜#˜a™%œ    C¨¡E Ô*¨A°·²±´´
©NÀÈ$ÐOÑOÔOÐOÑOðG#Pð #Pr5   c                  óp  — t           j                             d¦  «        } t          t          ¦  «        D �]€\  }}d}d}t          d|¬¦  «        }|dk    ry|                      |||z
  ¦  «                             |¦  «        d|                      |||z
  ¦  «                             |¦  «        z  z   }||                     ¦   «         j	        z  }n6|                      |||z
  ¦  «                             |¦  «        }||j	        z  } ||¦  «        \  }}}	}
t          |¦  «        }d||	|z
  d …|	|z
  d …f<   t          |
d¦  «         d	t          j        t           j        ¦  «        j        z  }d	t          j        t           j        ¦  «        j        z  }|d
v r|n|}t!          ||dz
           d d …|dz
  f         |                     ¦   «         j	        |z  d|¬¦  «          ||d¬¦  «        \  }}}	}
t#          |¦  «        }d||	|z
  d …|	|z
  d …f<   t          |
d¦  «         d	t          j        t           j        ¦  «        j        z  }d	t          j        t           j        ¦  «        j        z  }|d
v r|n|}t!          ||dz
           d d …|dz
  f         ||                     ¦   «         j	        z  d|¬¦  «         �Œ‚d S )Nr´   rv   rQ   Úpstf2r¸   rP   r-   rÏ  rž  rŸ  rO  rä  r   )r2   rØ   r1   rÚ   rž  r¨  rŒ  rˆ   r¡  r¢  ri   rW  r£  r¤  r/  rJ  s                   r3   Ú
test_pstf2r©  ¡  r¦  r5   c                  ó
  — t          j        g d¢g d¢g d¢g d¢g¦  «        } t          j        g d¢g d¢g d¢g¦  «        }t          t          ¦  «        D �]/\  }}|dk     r6t          j        g d	¢g d
¢g d¢g d¢g¦  «        }|                     |¦  «        }nWt          j        g d¢g d¢g d¢g|¬¦  «        }|t          j        g d¢g d¢g d¢g¦  «        dz  z  }|                     |¦  «        }t          d|¬¦  «        } ||¦  «        \  }}}}	}
}|dk     r7t          |                      |¦  «        |d d …d f         |z  |z  dd¬¦  «         Œùt          |                     |¦  «        |d d …d f         |z  |z  dd¬¦  «         �Œ1d S )N)g      ä?r½   g�1w-!¤?gÃdª`TRÛ¿)r½   g³êsµûá¿rõ  rõ  )gësµûËâ?rõ  g2æ®%äƒ®¿g,eâXá¿)rõ  g‚sF”öã¿g%ušž¿g?ÆÜï?)y/n£¼Ò¿¥½Á&á?yDioð…É´?×òAÏfí?y Òo_Îç¿À[ AñcÐ¿)yësµûËÖ¿òAÏfÕçÒ¿y±Pkšwœî?ñôJY†8¦¿y¨5Í;NÑ‘¿�•C‹lçÃ?)y´Yõ¹ÚŠë?1™*•ÔÁ?yÙ=yX¨Ñ¿@aÃÓ+ç?yÜh o�Å¿F¶óýÔxÁ¿rQ   )g   ÐˆÃBg   €tÒBgffffff @g   ÈÙ“ Â)ç      @gš™™™™™ÀgÑ®#®fD¾gffffffÀ)gHáz®Gù?g…ëQ¸…Àg'Vä»íó½g¤p=
×£ð¿)gÃõ(\�Âñ¿rñ  gÈSƒÁ7Ð½r—  )gq=
×£põ¿g   €“ÜäAg�Âõ(\�À)g333333û¿g   ¬§ÓBg333333Ã¿)gZ9œ‚·�ð=gìQ¸…ëá¿gŽ‹‡›ÐÖ½r¸   )gffffff@g   tÞ…Br&  )g�Âõ(\�ö¿g   ÀZÖÁgq=
×£põ?)gEõoÃpÅ=g…ëQ¸…÷?gZ€Eq÷Ò½r-   Úgeequr   r  rO  )r7   rƒ   rÓ   rÔ   r/   r'   r   )Údesired_realÚdesired_cplxrØ   r1   rŒ  r¬  rž  rˆ   ÚrowcndÚcolcndÚamaxri   s               r3   Ú
test_geequr²  É  sZ  € Ý”8Ð>Ð>Ð>Ø@Ð@Ð@Ø@Ð@Ð@Ø@Ð@Ð@ðBñ Cô C€Lõ
 ”8ð 1ð 1ð 1ð1ð 1ð 1ð1ð 1ð 1ð2ñ 3ô 3€Lõ  ¥Ñ'Ô'ð /ñ /‰
ˆˆUØ�Š7ˆ7å”ÐCÐCÐCØEÐEÐEØEÐEÐEØEÐEÐEðGñ Hô HˆAð —’˜‘”ˆAˆAå”Ð:Ð:Ð:Ø:Ð:Ð:Ø:Ð:Ð:ð<àCHðJñ Jô JˆAð •”Ð:Ð:Ð:Ø;Ð;Ð;Ø:Ð:Ð:ð<ñ =ô =à=?ñ@ñ @ˆAð —’˜‘”ˆAå  °Ð6Ñ6Ô6ˆØ+0¨5°©8¬8Ñ(ˆˆ1ˆf�f˜d Dà�Š7ˆ7Ý˜L×/Ò/°Ñ6Ô6¸¸!¸!¸!¸T¸'¼
À1¹ÀQ¹Ø!"¨ð/ñ /ô /ð /ð /õ ˜L×/Ò/°Ñ6Ô6¸¸!¸!¸!¸T¸'¼
À1¹ÀQ¹Ø!"¨ð/ñ /ô /ð /ñ /ð3/ð /r5   c                  ó"  ‡
— t          j        g d¢¦  «        } t          t          ¦  «        D ]â\  }}t          j        d|¬¦  «        } ||dk     rdnd¦  «        Š
t          j        ˆ
fd„t          dd	¦  «        D ¦   «         |¬¦  «        }|t          j        t          j        |¦  «        ¦  «        z  }t          d
|¬¦  «        } ||¦  «        \  }}}}	t          t          j
        |¦  «                             t          ¦  «        | ¦  «         Œãd S )N)
r   r   r   r   r   r   r�   r�   r  rH  rv   r¸   rQ   r½   r-   c                 ó    •— g | ]
}‰d |z  z  ‘ŒS )r¾   r¥   )rU  rŒ   rº  s     €r3   rV  ztest_syequb.<locals>.<listcomp>ü  s!   ø€ Ð:Ð:Ð:¨�e˜b !™e‘mÐ:Ð:Ð:r5   éûÿÿÿrT   Úsyequb)r7   rƒ   rÓ   rÔ   r   r5  Úrot90r2  r'   r   Úlog2r/   ré   )Údesired_log2srØ   r1   rŒ  rp   r¶  rî   Úscondr±  ri   rº  s             @r3   Útest_syequbr»  ö  s  ø€ Ý”HÐ?Ð?Ð?Ñ@Ô@€Må¥Ñ'Ô'ð 	<ð 	<‰
ˆˆUÝŒF�2˜UÐ#Ñ#Ô#ˆØ�˜C !šG˜G�b�b¨Ñ-Ô-ˆÝŒHÐ:Ð:Ð:Ð:­U°2°q©\¬\Ð:Ñ:Ô:À%ÐHÑHÔHˆØ	�RŒX•b”g˜a‘j”jÑ!Ô!Ñ!ˆå! (°%Ð8Ñ8Ô8ˆØ%˜v a™yœyÑˆˆ5�$˜å•R”W˜Q‘Z”Z×&Ò&¥sÑ+Ô+¨]Ñ;Ô;Ð;Ð;ð	<ð 	<r5   Tz.Failing on some OpenBLAS version, see gh-12276)Úreasonc            	      ó¼  — t          j        dgdz  dgdz  z   ¦  «        t          j        t          j        d¦  «        d¬¦  «        dz  z   } t          j        | ¦  «        \  }}}}t          |d¦  «         t          t          j        |¦  «        d	d
gdz  d	gz   dgdz  z   ¦  «         t          j        dt          j        t          j	        dd¦  «        ¦  «        z  dz   ¦  «        } d| d<   d| d<   t          j
        |                      t           j        ¦  «        d¬¦  «        \  }}}}t          |d¦  «         t          t          j        |¦  «        g d¢¦  «         d S )NrQ   rT   iê  rX   rP   )rk  r-   r   rÏ  rõ  éüÿÿÿrµ  rU   ù                i   ©rT   rT   y              0@)rT   r   rä  )r  r�   r�   r   r   rµ  r   r�   r�   r  r  )r7   r2  r   r   Úzheequbr   r   r¸  rœ   rÐ  Úcheequbr/   Ú	complex64)rŒ  rî   rº  r±  ri   s        r3   Útest_heequbrÄ    s@  € õ 	Œ���A‘˜˜˜q™Ñ Ñ!Ô!¥B¤G­B¬G°A©J¬J¸!Ð$<Ñ$<Ô$<¸RÑ$?Ñ?€AÝ!œ>¨!Ñ,Ô,Ñ€A€uˆd�DÝ��qÑÔÐÝ•B”G˜A‘J”J  S 	¨!¡¨r¨dÑ 2°b°T¸!±VÑ ;Ñ<Ô<Ð<å
Œ�•2”6�"œ) B¨Ñ*Ô*Ñ+Ô+Ñ+¨bÑ0Ñ1Ô1€AØ€A€d�GØ€A€d�GÝ!œ>¨!¯(ª(µ2´<Ñ*@Ô*@ÈÐJÑJÔJÑ€A€uˆd�DÝ��qÑÔÐÝ•B”G˜A‘J”JÐ IÐ IÐ IÑJÔJÐJÐJÐJr5   c                  óš  — t           j                             d¦  «        } d}|                      |¦  «        }|                      |¦  «        |                      |¦  «        dz  z   }t	          t
          ¦  «        D �]P\  }}|dk     rF|                      ||¦  «        }|                     |¦  «        }||z  }|                     |¦  «        }n_|                      ||¦  «        |                      ||¦  «        dz  z   }|                     |¦  «        }||z  }|                     |¦  «        }t          d|¬¦  «        }t          d|¬¦  «        }	 ||d¬	¦  «        \  }
}}} |	|
|||d¬
¦  «        \  }}|dk     r*t          |                     |¦  «        ||z  d¬¦  «         �Œ(t          |                     |¦  «        ||z  d¬¦  «         �ŒRd S )Nr  rv   r-   rQ   Úgetc2r¸   Úgesc2r   ©r)  )Úoverwrite_rhsrS   r   )	r7   r  r^  r   rÓ   rÔ   r/   r'   r   )r2   rÚ   r­  r®  rØ   r1   rŒ  r‡   rÆ  rÇ  r‘  r  Újpivri   rŒ   r\   s                   r3   Útest_getc2_gesc2rË    sÙ  € Ý
Œ)×
Ò
 Ñ
#Ô
#€CØ
€AØ—8’8˜A‘;”;€LØ—8’8˜A‘;”; §¢¨!¡¤¨R¡Ñ/€Lå¥Ñ'Ô'ð :ñ :‰
ˆˆUØ�Š7ˆ7Ø—’˜˜A‘”ˆAØ—’˜‘”ˆAØ�LÑ ˆAØ—’˜‘”ˆAˆAà—’˜˜A‘” §¢¨!¨Q¡¤°Ñ!2Ñ2ˆAØ—’˜‘”ˆAØ�LÑ ˆAØ—’˜‘”ˆAå  °Ð6Ñ6Ô6ˆÝ  °Ð6Ñ6Ô6ˆØ$˜u Q°AÐ6Ñ6Ô6ÑˆˆD�$˜Ø�5˜˜Q  d¸!Ð<Ñ<Ô<‰ˆˆ5à�Š7ˆ7Ý% l×&9Ò&9¸%Ñ&@Ô&@Ø&'¨¡g°qð:ñ :ô :ð :ñ :õ & l×&9Ò&9¸%Ñ&@Ô&@Ø&'¨¡g°qð:ñ :ô :ð :ñ :ð+:ð :r5   r  )rU   rT   rÀ  ÚjobarU   ÚjoburS   ÚjobvÚjobrrP   Újobpc                 óH  — t           j                             d¦  «        }| \  }	}
dt          j        |¦  «        j        z  }t          | ||¦  «        }t          d|¬¦  «        }|dk     }|dk     }|dk    o|	|
k    }t          j        |¦  «        }|dk    o| o| }|dk    o|o| o|}|dk    o|o| o|}|rd}n	|s|rd}nd	}|dk    r$|dk    rt          t          ||||||||¦	  «	         dS  ||||||||¬
¦  «        \  }}}}}}t          ||¦  «         |�s‰|d	         |d         z  |d|
…         z  }t          |t          |d¬¦  «        |¬¦  «         |dk    r|dd…d|
…f         }|rC|rAt          |t          j        |¦  «        z  |                     ¦   «         j        z  ||¬¦  «         |r>t          |                     ¦   «         j        |z  t          j        |
¦  «        |¬¦  «         |r>t          |                     ¦   «         j        |z  t          j        |
¦  «        |¬¦  «         t          |d	         t           j                             |¦  «        ¦  «         t          |d         t          j        |¦  «        ¦  «         t          |d         d	¦  «         dS dS )aß  Test the lapack routine ?gejsv.

    This function tests that a singular value decomposition can be performed
    on the random M-by-N matrix A. The test performs the SVD using ?gejsv
    then performs the following checks:

    * ?gejsv exist successfully (info == 0)
    * The returned singular values are correct
    * `A` can be reconstructed from `u`, `SIGMA`, `v`
    * Ensure that u.T @ u is the identity matrix
    * Ensure that v.T @ v is the identity matrix
    * The reported matrix rank
    * The reported number of singular values
    * If denormalized floats are required

    Notes
    -----
    joba specifies several choices effecting the calculation's accuracy
    Although all arguments are tested, the tests only check that the correct
    solution is returned - NOT that the prescribed actions are performed
    internally.

    jobt is, as of v3.9.0, still experimental and removed to cut down number of
    test cases. However keyword itself is tested externally.
    r  r-  Úgejsvr¸   rQ   rP   r  rH  r   )rÌ  rÍ  rÎ  rÏ  ÚjobtrÐ  NF)r(  r£  )r7   r  r^  rÖ   r×   r4   r'   r˜  r  r  r   r   r   r2  r¶  ry   ÚidentityrŠ  Úmatrix_rankÚcount_nonzero)r  r1   rÌ  rÍ  rÎ  rÏ  rÐ  rÓ  r2   rÙ   rÚ   r/  rŒ  rÒ  ÚlsvecÚrsvecÚl2tranÚ
is_complexÚinvalid_real_jobvÚinvalid_cplx_jobuÚinvalid_cplx_jobvÚexit_statusÚsvar¬  rö   rë   rì   ri   Úsigmas                                r3   Útest_gejsv_generalrá  8  s  € õB Œ)×
Ò
 Ñ
#Ô
#€Cð �D€A€qØ•”˜%‘”Ô$Ñ$€DÝ# D¨%°Ñ5Ô5€AÝ˜W¨EÐ2Ñ2Ô2€Eð
 �1ŠH€EØ�1ŠH€EØ�aŠiÐ%˜a 1šf€FÝ” Ñ#Ô#€Jà šÐH¨U¨ÐH¸Z¸ÐØ šÐM¨UÐ-=°vÐ(>ÐMÀ:ÐØ šÐM¨UÐ-=°vÐ(>ÐMÀ:Ðð
 ð ØˆˆØ	ð Ð/ð ØˆˆàˆàˆqŠˆ�t˜q’y�yÝ•i ¨¨4°°t¸TÀ4ÈÑNÔNÐNÐNÐNà', u¨QØ26Ø26Ø26Ø26Ø26Ø26ð(8ñ (8ô (8Ñ$ˆˆQ��4˜ õ 	�T˜;Ñ'Ô'Ð'ð ñ 	&ð ˜!”W˜t AœwÑ&¨#¨b¨q¨b¬'Ñ1ˆEÝ˜E¥3 q°UÐ#;Ñ#;Ô#;À$ÐGÑGÔGÐGà�qŠyˆyð �a�a�a˜˜!˜�e”H�àð O˜ð OÝ ¥B¤G¨E¡N¤NÑ 2°Q·V²V±X´X´ZÑ ?ÀÈÐNÑNÔNÐNØð KÝ §¢¡¤¤
¨Q¡µ´¸A±´ÀTÐJÑJÔJÐJØð KÝ §¢¡¤¤
¨Q¡µ´¸A±´ÀTÐJÑJÔJÐJå˜˜qœ¥2¤9×#8Ò#8¸Ñ#;Ô#;Ñ<Ô<Ð<Ý˜˜qœ¥2Ô#3°EÑ#:Ô#:Ñ;Ô;Ð;õ ˜˜qœ 1Ñ%Ô%Ð%Ð%Ð%ð5	&ð 	&r5   c                 óV  — t          d| ¬¦  «        } |d¦  «        \  }}}}}}t          |d¦  «         t          |j        d¦  «         t          |j        d¦  «         t          |t          j        dg| ¬¦  «        ¦  «         t          j        d| ¬¦  «        } ||¦  «        \  }}}}}}t          |d¦  «         t          |j        d¦  «         t          |j        d¦  «         t          |t          j        dg| ¬¦  «        ¦  «         t          j        d| ¬¦  «        } ||¦  «        \  }}}}}}t          |d¦  «         t          |j        d¦  «         t          |j        d¦  «         t          |t          j        g | ¬¦  «        ¦  «         t          j        t          j        d¦  «                             d	d	¦  «        ¦  «         	                    | ¦  «        }t          j
        ||j        z   ¦  «        }|                     d
¦  «        }	 ||¦  «        }
t          ||	¦  «         dS )z*Test edge arguments return expected statusrÒ  r¸   r½   r   ©rP   rP   ©rP   r²  r-  rv   rŒ  N)r'   r   r0   r7   rƒ   r   ÚsinrÐ  rI  r/   Úasfortranarrayry   r·  r   )r1   rÒ  rß  r¬  rö   rë   rì   ri   rŒ  ÚAcr?   s              r3   Útest_gejsv_edge_argumentsrè  ¤  s  € õ ˜W¨EÐ2Ñ2Ô2€Eð $) 5¨¡9¤9Ñ €CˆˆAˆt�U˜DÝ��qÑÔÐÝ�”˜&Ñ!Ô!Ð!Ý�”˜&Ñ!Ô!Ð!Ý�•b”h ˜t¨5Ð1Ñ1Ô1Ñ2Ô2Ð2õ 	Œ�˜EÐ"Ñ"Ô"€AØ#( 5¨¡8¤8Ñ €CˆˆAˆt�U˜DÝ��qÑÔÐÝ�”˜&Ñ!Ô!Ð!Ý�”˜&Ñ!Ô!Ð!Ý�•b”h ˜t¨5Ð1Ñ1Ô1Ñ2Ô2Ð2õ 	Œ�˜eÐ$Ñ$Ô$€AØ#( 5¨¡8¤8Ñ €CˆˆAˆt�U˜DÝ��qÑÔÐÝ�”˜&Ñ!Ô!Ð!Ý�”˜&Ñ!Ô!Ð!Ý�•b”h˜r¨Ð/Ñ/Ô/Ñ0Ô0Ð0õ 	Œ�rŒy˜‰~Œ~×%Ò% b¨"Ñ-Ô-Ñ.Ô.×5Ò5°eÑ<Ô<€AÝ
Ô˜!˜aœc™'Ñ"Ô"€AØ	
�Š�‰Œ€BØˆˆa‰Œ€AÝ�A�rÑÔÐÐÐr5   ÚkwargsrX   rÓ  c                 ó�   — t          j        dt          ¬¦  «        }t          dt          ¬¦  «        }t	          t
          ||fi | ¤Ž dS )z-Test invalid job arguments raise an Exception)rQ   rQ   r¸   rÒ  Nrt  )ré  rŒ  rÒ  s      r3   Ú test_gejsv_invalid_job_argumentsrë  È  sJ   € õ 	Œ��eÐ$Ñ$Ô$€AÝ˜W­EÐ2Ñ2Ô2€EÝ•)˜U AÐ0Ð0¨Ð0Ð0Ð0Ð0Ð0r5   zA,sva_expect,u_expect,v_expect)g)\�Âõ(@g¤p=
×£ø¿gffffffò?g
×£p=
ÿ¿)gìQ¸…ëÑ?g¸…ëQ¸ú¿g®Gázî?gö(\�Âõè¿)g¸…ëQ¸Þ¿g¸…ëQ¸Àg®Gáz®ï?gáz®GáÊ¿)g…ëQ¸ñ?g…ëQ¸…ó?gHáz®Gé?g)\�Âõ(ä?)gÍÌÌÌÌÌÀgq=
×£p@g333333÷¿rð  )ç×£p=
×ã?g�Âõ(\�Àró  g�Âõ(\�À)g cîZBþ#@gI.ÿ!ýv@g?ÆÜµõ?rô  )gþCúíëÀÑ?gÙ=yX¨5ã¿gcÙ=yXÀ¿gåa¡Ö4ïÀ?)gB`åÐ"ÛÉ?gû:pÎˆÒž¿gÁÊ¡E¶óÑ?gn4€·@‚æ?)g[B>èÙ¬Ò?gèÙ¬ú\mÕ?gJ{ƒ/L¦ä?g„O¯”eÈ?)gˆc]ÜF¸¿gê•²q¬×¿gû\mÅþ²å?çfˆc]ÜFá¿)gØ�sF”öÚ¿gîZB>èÙà?g0L¦
F%¥?gq=
×£p­¿)g·Ñ Þé?g½R–!ŽuÕ?gu“VÅ¿g¥½Á&SÙ¿)g‚âÇ˜»–È?gV-²é¿g	ž^)Ëp?gçŒ(íâ¿)gÜFx$ì¿gã6À[ Ù¿gUÁ¨¤N@³¿g­iÞqŠŽÐ?)g1¬ZdË?gßO�—nÓ¿gÎˆÒÞàé?gÙ_vOà?)g}?5^ºIØ¿g5ï8EGrÕ?gi o�Åã?g7À[ Aã¿c                 óÆ   — d}t          d| j        ¬¦  «        } || ¦  «        \  }}}}	}
}t          |||¬¦  «         t          |||¬¦  «         t          |||¬¦  «         dS )z~
    This test implements the example found in the NAG manual, f08khf.
    An example was not found for the complex case.
    r  rÒ  r¸   r£  N)r'   r1   r   )rŒ  Ú
sva_expectÚu_expectÚv_expectr/  rÒ  rß  r¬  rö   rë   rì   ri   s               r3   Útest_gejsv_NAGrò  ×  s|   € ð0 €DÝ˜W¨A¬GÐ4Ñ4Ô4€Eà#( 5¨¡8¤8Ñ €CˆˆAˆt�U˜Då�J ¨$Ð/Ñ/Ô/Ð/Ý�H˜a dÐ+Ñ+Ô+Ð+Ý�H˜a dÐ+Ñ+Ô+Ð+Ð+Ð+r5   c           	      óþ  — t           j                             d¦  «        }d}dt          j        | ¦  «        j        z  }t          |dz
  f| |¬¦  «        }t          |f| |¬¦  «        }t          |dz
  f| |¬¦  «        }|                     ¦   «         |                     ¦   «         |                     ¦   «         g}t          j        |¦  «        t          j        |d¦  «        z   t          j        |d¦  «        z   }t           j                             |¦  «        }	||	z  }
t          d| ¬¦  «        \  }} ||||¦  «        \  }}}}}}t          ||d	         ¦  «         t          ||d         ¦  «         t          ||d
         ¦  «         t          j        |d	¦  «        t          j        |d¦  «        z   t          j        |d
¦  «        z   }t          j        || ¬¦  «        }t          |¦  «        D ]K\  }}||         dz
  }|d d …||gf         |d d …||gf<   |d d …|fxx         |d d …|dz   f         |z  z  cc<   ŒLd|d         dz
  }}|d d …||gf         |d d …||gf<   t          |||z  |¬¦  «         |
                     ¦   «         } |||||||
¦  «        \  }}t          |
|¦  «         t          |	||¬¦  «         | t          v rd}|j        |	z  }nd}|                     ¦   «         j        |	z  } ||||||||¬¦  «        \  }}t          |	||¬¦  «         t#          t$          ¦  «        5   ||d d…         ||¦  «         d d d ¦  «         n# 1 swxY w Y   t#          t$          ¦  «        5   |||d d…         |¦  «         d d d ¦  «         n# 1 swxY w Y   t#          t$          ¦  «        5   ||||d d…         ¦  «         d d d ¦  «         n# 1 swxY w Y   t#          t$          ¦  «        5   ||d	         |d d…         |d	         ¦  «         d d d ¦  «         n# 1 swxY w Y   d	|d	<   d	|d	<    ||||¦  «        \  }}}}} }!t           j                             ||dz
           d	k    d||dz
           › d�¦  «         d S )Nr  rv   r-  rP   ©r1   r2   r�   ©ÚgttrfÚgttrsr¸   r   rQ   r£  ry   r|   r.  z?gttrf: _d[info-1] is ú, not the illegal value :0.)r7   r  r^  rÖ   r×   r4   r·  r2  r   r'   r	   r   rÓ   r   rÕ   ry   r¶  r  rP  Útestingr   )"r1   r2   rÚ   r/  Údurp   ÚdlÚdiag_cpyrŒ  rŒ   r‡   rö  r÷  Ú_dlÚ_dÚ_duÚdu2r  ri   rW  rJ  rA  rÙ   r¡  Úb_cpyÚx_gttrsr‰   Úb_transÚ__dlÚ__dÚ__duÚ_du2Ú_ipivÚ_infos"                                     r3   Útest_gttrf_gttrsr
  ù  sÈ  € õ Œ)×
Ò
 Ñ
#Ô
#€CØ
€AØ•”˜%‘”Ô$Ñ$€Dõ 
% a¨¡c V°5¸cÐ	BÑ	BÔ	B€BÝ# Q D°¸3Ð?Ñ?Ô?€AÝ	$ a¨¡c V°5¸cÐ	BÑ	BÔ	B€Bà—’‘	”	˜1Ÿ6š6™8œ8 R§W¢W¡Y¤YÐ/€Hå
Œ�‰
Œ
•R”W˜R ‘_”_Ñ$¥r¤w¨r°1¡~¤~Ñ5€AÝ
Œ	�Š�qÑÔ€AØ	ˆA‰€Aå#Ð$6¸eÐDÑDÔD�L€Eˆ5à$) E¨"¨a°Ñ$4Ô$4Ñ!€CˆˆS�#�t˜Tå�r˜8 Aœ;Ñ'Ô'Ð'Ý�q˜( 1œ+Ñ&Ô&Ð&Ý�r˜8 Aœ;Ñ'Ô'Ð'õ 	Œ��A‰Œ�œ  a™œÑ(­2¬7°3¸©?¬?Ñ:€AÝ
Œˆq˜ÐÑÔ€Aå˜#‘”ð ð ‰ˆˆ1ð �1Œg˜‰kˆà˜1˜1˜1˜s A˜h˜;œˆˆ!ˆ!ˆ!ˆa�ˆXˆ+‰à	ˆ!ˆ!ˆ!ˆQˆ$ˆˆŒ�1�Q�Q�Q˜˜!™�V”9˜Q‘;Ñˆˆ‰ˆð ��b”˜A‘€s€Aà�q�q�q˜3 ˜(�{”^€A€a€a€aˆ!ˆSˆ€k�Nõ �A�q˜1‘u 4Ð(Ñ(Ô(Ð(à�FŠF‰HŒH€EØ�E˜#˜r 3¨¨T°1Ñ5Ô5�M€GˆTå�q˜%Ñ Ô Ð å�A�w TÐ*Ñ*Ô*Ð*ð •ÐÐØˆØ”#˜‘'ˆˆàˆØ—&’&‘(”(”*˜q‘.ˆà�E˜#˜r 3¨¨T°7À%ÐHÑHÔH�M€GˆTÝ�A�w TÐ*Ñ*Ô*Ð*õ 
•zÑ	"Ô	"ð ð Øˆˆb��"�Œg�q˜"ÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð å	•zÑ	"Ô	"ð ð Øˆˆb�!�C�R�C”&˜"ÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð å	•zÑ	"Ô	"ð ð Øˆˆb�!�R˜˜˜”WÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ 
•zÑ	"Ô	"ð #ð #Øˆˆb�Œe�Q�r˜�r”U˜B˜qœEÑ"Ô"Ð"ð#ð #ð #ñ #ô #ð #ð #ð #ð #ð #ð #øøøð #ð #ð #ð #ð €B€q�EØ€A€a�DØ*/¨%°°A°rÑ*:Ô*:Ñ'€Dˆ#ˆt�T˜5 %Ý„J×Ò�s˜4 !™8”}¨Ò)ð -IÀSÈÐPQÉÄ]ð -Ið -Ið -Iñ Kô Kð Kð Kð KsH   Ì)MÍMÍMÍ*NÎNÎNÎ+OÏOÏOÏ,"PÐPÐ!Pz1du, d, dl, du_exp, d_exp, du2_exp, ipiv_exp, b, x)gÍÌÌÌÌÌ @rõ  çffffffþ?rÂ   )r%  rð  ç      ÀçÍÌÌÌÌÌì¿çffffff@)ç333333@çÍÌÌÌÌÌ@rÁ   ç      À)rð  rµ  r  r  )r  r  rV   éúÿÿÿgÏÜCÂ÷>ð¿)r�   r  rW   )rQ   rR   rS   rT   rT   gš™™™™™@gffffff@ç      à¿gš™™™™™%@gÍÌÌÌÌÌ@gš™™™™™	Àr–  gffffff&Àgš™™™™3@r¾  rT   rV   rH  r  )ù       @      ð¿ù       @      ð?ù      ð¿      ð?ù      ð?      ð¿)ùÍÌÌÌÌÌô¿ÍÌÌÌÌÌô?r  ùÍÌÌÌÌÌô¿ffffff
@ù333333Ó¿333333@ùffffff
ÀÍÌÌÌÌÌô?)ù      ð?       Àù      ð?      ð?ù       @      Àr  )r  r  r  r  )r  r  r  r  y ‘~û:põ¿ffffffÒ?)r  r  r  y333333@      Àyš™™™™™@š™™™™™@y333333@3333332@yš™™™™™À333333Àyffffff-Àffffff#@y      À333333ã¿yfffffæ?@ÍÌÌÌÌÌÀy333333Àš™™™™™"@y      ð¿š™™™™™ù?y      Àffffff(@r  r  y      @      ð¿y      ð?       @y      @      @r  y      ð¿       Àr  r  y       @       Àc	                 ó:  — t          d| d         | d         f¦  «        \  }	}
 |	||| ¦  «        \  }}}}}}t          ||¦  «         t          ||¦  «         t          ||d¬¦  «         t          ||¦  «          |
||||||¦  «        \  }}t          ||¦  «         d S )Nrõ  r   r  r£  )r'   r   )rú  rp   rû  Údu_expÚd_expÚdu2_expÚipiv_expr‡   rŒ   rö  r÷  rý  rþ  rÿ  r   r  ri   r  s                     r3   Ú0test_gttrf_gttrs_NAG_f07cdf_f07cef_f07crf_f07csfr$  U  s½   € õd $Ð$6¸¸A¼ÀÀ1Ä¸ÑGÔG�L€Eˆ5à$) E¨"¨a°Ñ$4Ô$4Ñ!€CˆˆS�#�t˜TÝ�C˜Ñ!Ô!Ð!Ý�C˜Ñ Ô Ð Ý�B˜ DÐ)Ñ)Ô)Ð)Ý�D˜(Ñ#Ô#Ð#à�E˜#˜r 3¨¨T°1Ñ5Ô5�M€GˆTå�G˜QÑÔÐÐÐr5   )r{  rz  r|  c           	      óÌ  — t           j                             d¦  «        }|                     |¦  «        |                     |¦  «        dz  z   }|                     |dz
  ¦  «        |                     |dz
  ¦  «        dz  z   }|                     |dz
  ¦  «        |                     |dz
  ¦  «        dz  z   }t          j        |¦  «        t          j        |d¦  «        z   t          j        |d¦  «        z   }t          j        | t           j        ¦  «        r|j        |j        |j        |j        f\  }}}}|                     | ¦  «        |                     | ¦  «        |                     | ¦  «        |                     | ¦  «        f\  }}}}t          j        |¦  «         	                    d¬¦  «         
                    ¦   «         }t          d|f¦  «        \  }	}
 |	|||¦  «        \  }}}}}} |
|||||||¬¦  «        \  }}t          d	|f¦  «        \  }} ||¦  «        \  }}} ||||¬¦  «        \  }}t          j        | ¦  «        j        d
z  }t          |||¬¦  «         d S )NiTŽfr-   rP   r�   r   r–   )rö  Úgtconrƒ  r€  g      è?rÉ   )r7   r  r„  r2  rˆ  r‰  rê   r/   rœ   rš   r�   r'   rÖ   r×   r   )r1   r   rÚ   r2   rp   rû  rú  rŒ  r�  rö  r&  r   r  ri   rB  r?   r�  r‚  r‘  r’  r    rÊ   s                         r3   Ú
test_gtconr'  ”  s.  € õ Œ)×
Ò
 Ñ
)Ô
)€Cà�
Š
�1‰Œ˜Ÿ
š
 1™œ bÑ(Ñ(€AØ	�Š�A˜‘EÑ	Ô	˜SŸZšZ¨¨A©Ñ.Ô.¨rÑ1Ñ	1€BØ	�Š�A˜‘EÑ	Ô	˜SŸZšZ¨¨A©Ñ.Ô.¨rÑ1Ñ	1€BÝ
Œ�‰
Œ
•R”W˜R ‘_”_Ñ$¥r¤w¨r°1¡~¤~Ñ5€AÝ	„}�U�BœKÑ(Ô(ð 8Ø”v˜qœv r¤w°´Ð7‰ˆˆ1ˆb�"Ø—8’8˜E‘?”? A§H¢H¨U¡O¤O°R·Y²Y¸uÑ5EÔ5EÀrÇyÂyÐQVÑGWÔGWÐW�L€A€qˆ"ˆbåŒF�1‰IŒI�MŠM˜qˆMÑ!Ô!×%Ò%Ñ'Ô'€Eå#Ð$6¸¸Ñ=Ô=�L€Eˆ5Ø!&  r¨1¨bÑ!1Ô!1Ñ€Bˆˆ2ˆs�D˜$ØˆU�2�q˜"˜c 4¨°TÐ:Ñ:Ô:�F€Cˆå#Ð$6¸¸Ñ=Ô=�L€Eˆ5Ø�U˜1‘X”X�N€BˆˆdØˆU�2�u 4Ð(Ñ(Ô(�F€CˆåŒ8�E‰?Œ?Ô Ñ$€DÝ�C˜ 4Ð(Ñ(Ô(Ð(Ð(Ð(r5   ))rR   rV   )rV   rR   r   c                 ór   — t          d| ¬¦  «        }|\  }} |||¬¦  «        \  }}t          |d¦  «         d S )NÚgeqrfp_lworkr¸   r  r   r  )r1   r0   r)  rÙ   rÚ   rº   ri   s          r3   Útest_geqrfp_lworkr*  °  sM   € õ $ ^¸EÐBÑBÔB€LØ�D€A€qØ�,  aÐ(Ñ(Ô(�K€Eˆ4Ý��qÑÔÐÐÐr5   zddtype,dtypec                 óp  — t           j                             d¦  «        }dt          j        |¦  «        j        z  }d}t          |f| |¦  «        dz   }t          |dz
  f||¦  «        }t          j        |¦  «        t          j        |d¦  «        z   t          j        t          j        |¦  «        d¦  «        z   }|                     ¦   «         |                     ¦   «         g}t          d|¬¦  «        }	 |	||¦  «        \  }
}}t          ||d	         ¦  «         t          ||d         ¦  «         t          |d	d
|› d�¬¦  «         t          j        |d¦  «        t          j        t          j        |¦  «        ¦  «        z   }t          j        |
¦  «        }t          |||z  |                     ¦   «         j        z  |¬¦  «         t          |f||¦  «        }||z  }t          d|¬¦  «        } ||
|                     ¦   «         |¦  «        \  }}t          |d	d|› d�¬¦  «         t          |||¬¦  «         d S )Nr  r-  rv   rS   rP   r�   Úpttrfr¸   r   zpttrf: info = z, should be 0)Úerr_msgr£  Úpttrszpttrs: info = )r7   r  r^  rÖ   r×   r4   r2  r¶  r·  r'   r	   r   r   r   r†   ry   )Úddtyper1   r2   r/  rÚ   rp   rÔ  rŒ  rü  r,  rþ  Ú_eri   rJ  r€  rŒ   r‡   r.  Ú_xs                      r3   Útest_pttrf_pttrsr2  ¹  s  € õ Œ)×
Ò
 Ñ
#Ô
#€Cà�rŒx˜‰ŒÔ"Ñ"€Dà
€Aõ
 	$ Q D¨&°#Ñ6Ô6¸Ñ:€Aå# Q q¡S F¨E°3Ñ7Ô7€Aõ 	Œ�‰
Œ
•R”W˜Q ‘^”^Ñ#¥b¤g­b¬g°a©j¬j¸!Ñ&<Ô&<Ñ<€Aà—’‘”˜!Ÿ&š&™(œ(Ð#€Hå˜W¨EÐ2Ñ2Ô2€Eà�5˜˜A‘;”;�L€BˆˆDå�q˜( 1œ+Ñ&Ô&Ð&Ý�q˜( 1œ+Ñ&Ô&Ð&Ý��qÐ"F°4Ð"FÐ"FÐ"FÐGÑGÔGÐGõ 	Œ��B‰Œ�"œ'¥"¤'¨!¡*¤*Ñ-Ô-Ñ-€AÝ
Œ�‰Œ€Aå�A�q˜‘s˜1Ÿ;š;™=œ=œ?Ñ*°Ð6Ñ6Ô6Ð6õ 	$ Q D¨%°Ñ5Ô5€Aà	ˆ!‰€Aõ ˜W¨EÐ2Ñ2Ô2€EØˆu�R˜Ÿš™œ AÑ&Ô&�H€BˆÝ��qÐ"F°4Ð"FÐ"FÐ"FÐGÑGÔGÐGõ �A�r Ð%Ñ%Ô%Ð%Ð%Ð%r5   c                 ó:  — d}t           j                             d¦  «        }t          d|¬¦  «        }t	          |f| |¦  «        dz   }t	          |dz
  f||¦  «        }t          t          ||d d…         |¦  «         t          t          |||d d…         ¦  «         d S )Nrv   r´   r,  r¸   rQ   rP   r�   )r7   r  r^  r'   r4   r  rP  )r/  r1   rÚ   r2   r,  rp   rÔ  s          r3   Ú*test_pttrf_pttrs_errors_incompatible_shaper4  ê  s�   € ð 	€AÝ
Œ)×
Ò
 Ñ
%Ô
%€CÝ˜W¨EÐ2Ñ2Ô2€EÝ# Q D¨&°#Ñ6Ô6¸Ñ:€AÝ# Q q¡S F¨E°3Ñ7Ô7€Aå•*˜e Q s¨ s¤V¨QÑ/Ô/Ð/Ý•*˜e Q¨¨#¨2¨#¬Ñ/Ô/Ð/Ð/Ð/r5   c                 ó¬  — d}t           j                             d¦  «        }t          d|¬¦  «        }t	          |f| |¦  «        dz   }t	          |dz
  f||¦  «        }d|d<   d|d<    |||¦  «        \  }}}	t          ||	dz
           dd||	dz
           › d	�¦  «         t	          |f| |¦  «        } |||¦  «        \  }}}	t          |	dk    d
¦  «         d S )Nrv   r  r,  r¸   rQ   rP   r   z?pttrf: _d[info-1] is rø  z2?pttrf should fail with non-spd matrix, but didn't)r7   r  r^  r'   r4   r   r   )
r/  r1   rÚ   r2   r,  rp   rÔ  rþ  r0  ri   s
             r3   Ú'test_pttrf_pttrs_errors_singular_nonSPDr6  ÷  s  € ð 	€AÝ
Œ)×
Ò
 Ñ
#Ô
#€CÝ˜W¨EÐ2Ñ2Ô2€EÝ# Q D¨&°#Ñ6Ô6¸Ñ:€AÝ# Q q¡S F¨E°3Ñ7Ô7€Aà€A€a�DØ€A€a�DØ�5˜˜A‘;”;�L€BˆˆDÝ��D˜1‘H”˜qØS¨"¨T°A©X¬,ÐSÐSÐSñUô Uð Uõ 	$ Q D¨&°#Ñ6Ô6€AØ�5˜˜A‘;”;�L€BˆˆDÝˆD�AŠIÐKÑLÔLÐLÐLÐLr5   z%d, e, d_expect, e_expect, b, x_expect)rS   rv   é   rÈ   rT   )r  r  r  rW   )rS   rX   rÈ   é   rP   )r  gKÈ=›Uå¿r–  rô  rQ   é   éA   é   g      @r�   rµ  )r8  é)   é.   é   )y      0@      0@y      2@      "Àù      ð?      À)r8  rX   rP   rS   )r  r  r?  y      P@      0@y      0À      @Ày     @W@      O@y     €N@     €PÀy     €S@      TÀy     ÀQ@     €RÀy      ,@      ;Ày     €A@      .@y      À       Àr  c                 óž  — d}t          d|d         ¬¦  «        } || |¦  «        \  }}	}
t          |||¬¦  «         t          |	||¬¦  «         t          d|d         ¬¦  «        } |||	                     ¦   «         |¦  «        \  }}
t          |||¬¦  «         |j        t          v r& |||	|d¬¦  «        \  }}
t          |||¬¦  «         d S d S )	Nr  r,  r   r¸   r£  r.  rP   rä  )r'   r   r¶  r1   r.   )rp   rÔ  Úd_expectÚe_expectr‡   Úx_expectr/  r,  rþ  r0  ri   r.  r1  s                r3   Útest_pttrf_pttrs_NAGrD  	  sö   € ð4 €DÝ˜W¨A¨a¬DÐ1Ñ1Ô1€EØ�5˜˜A‘;”;�L€BˆˆDÝ�B˜ tÐ,Ñ,Ô,Ð,Ý�B˜ tÐ,Ñ,Ô,Ð,å˜W¨A¨a¬DÐ1Ñ1Ô1€EØˆu�R˜Ÿš™œ AÑ&Ô&�H€BˆÝ�B˜ tÐ,Ñ,Ô,Ð,ð 	„w•.Ð Ð Ø�5˜˜R ¨!Ð,Ñ,Ô,‰ˆˆDÝ˜˜H¨4Ð0Ñ0Ô0Ð0Ð0Ð0ð !Ð r5   c                 ó¶  — t           j                             d¦  «        }|dk    �rt          ||f| |¦  «        }|t          j        t          j        |¦  «        d|z  z   ¦  «        z   }||                     ¦   «         j        z   dz  }t          |¦  «        d         }t          |f||¦  «        dz   }t          |dz
  f||¦  «        }t          j        |¦  «        t          j        |d¦  «        z   t          j        |d¦  «        z   }	||	z  |                     ¦   «         j        z  }
|}n¬t          |f||¦  «        }t          |dz
  f||¦  «        }|dz   }t          j        |¦  «        t          j        |d¦  «        z   t          j        |d¦  «        z   }
t          j        |¦  «        t          j        |d¦  «        z   t          j        |d¦  «        z   }|||
|fS )Nr  rP   rS   rQ   r�   )	r7   r  r^  r4   r2  r   r¶  ry   r    )r1   ÚrealtyperÚ   Ú	compute_zr2   ÚA_eigÚvrrp   rÔ  ÚtrirŒ  Úzs               r3   Úpteqr_get_d_e_A_zrL  6	  s˜  € õ Œ)×
Ò
 Ñ
#Ô
#€CØ�A‚~�~å+¨Q°¨F°E¸3Ñ?Ô?ˆØ�œ¥¤¨¡¤¨a°©cÑ 1Ñ2Ô2Ñ2ˆØ˜Ÿš™œœÑ'¨1Ñ,ˆå�%‰[Œ[˜Œ^ˆå'¨¨¨h¸Ñ<Ô<¸qÑ@ˆÝ'¨¨1©¨°¸#Ñ>Ô>ˆÝŒg�a‰jŒj�2œ7 1 a™=œ=Ñ(­2¬7°1°b©>¬>Ñ9ˆà�‰H�r—w’w‘y”y”{Ñ"ˆàˆˆõ (¨¨¨h¸Ñ<Ô<ˆÝ'¨¨1©¨°¸#Ñ>Ô>ˆð �‰EˆÝŒG�A‰JŒJ�œ  A™œÑ&­¬°°B©¬Ñ7ˆÝŒG�A‰JŒJ�œ  B™œÑ'­"¬'°!°Q©-¬-Ñ7ˆØˆq�!�Qˆ<Ðr5   zdtype,realtyperG  c                 óš  — t          d¦  «         dt          j        | ¦  «        j        z  }t	          d| ¬¦  «        }d}t          | |||¦  «        \  }}}}	 ||||	|¬¦  «        \  }
}}}t          |dd|› d	�¦  «         t          t          j        t          |¦  «        d         ¦  «        t          j        |
¦  «        |¬
¦  «         |r�t          |t          j
        |¦  «        j        z  t          j        |¦  «        |¬
¦  «         t          |t          j        |
¦  «        z  t          j
        |¦  «        j        z  ||¬
¦  «         dS dS )a  
    Tests the ?pteqr lapack routine for all dtypes and compute_z parameters.
    It generates random SPD matrix diagonals d and e, and then confirms
    correct eigenvalues with scipy.linalg.eig. With applicable compute_z=2 it
    tests that z can reform A.
    r  rž  Úpteqrr¸   rv   ©rp   rÔ  rK  rG  r   zinfo = z, should be 0.r£  N)r   r7   rÖ   r×   r'   rL  r   r   Úsortr    r¶  ry   rÔ  r2  )r1   rF  rG  r/  rN  rÚ   rp   rÔ  rŒ  rK  Úd_pteqrÚe_pteqrÚz_pteqrri   s                 r3   Ú
test_pteqrrT  V	  s_  € õ 	ˆ�H„H€HØ•”˜‘”Ô#Ñ#€DÝ˜g¨eÐ4Ñ4Ô4€Eà
€Aå" 5¨(°A°yÑAÔA�J€A€qˆ!ˆQà&+ e¨a°1¸ÀYÐ&OÑ&OÔ&OÑ#€GˆW�g˜tÝ��qÐ8 DÐ8Ð8Ð8Ñ9Ô9Ð9õ •B”G�D ™GœG AœJÑ'Ô'­¬°Ñ)9Ô)9ÀÐEÑEÔEÐEàð &å˜¥"¤'¨'Ñ"2Ô"2Ô"4Ñ4µb´kÀ!±n´nØ!ð	#ñ 	#ô 	#ð 	#õ 	˜¥"¤'¨'Ñ"2Ô"2Ñ2µR´W¸WÑ5EÔ5EÔ5GÑGØ ð	&ñ 	&ô 	&ð 	&ð 	&ð 	&ð&ð &r5   c                 ó¶   — t          d¦  «         t          d| ¬¦  «        }d}t          | |||¦  «        \  }}}} ||dz
  |||¬¦  «        \  }	}
}}|dk    sJ ‚d S )Nr  rN  r¸   rv   rS   ©rK  rG  r   ©r   r'   rL  ©r1   rF  rG  rN  rÚ   rp   rÔ  rŒ  rK  rQ  rR  rS  ri   s                r3   Útest_pteqr_error_non_spdrY  w	  sy   € õ 	ˆ�H„H€HÝ˜g¨eÐ4Ñ4Ô4€Eà
€AÝ" 5¨(°A°yÑAÔA�J€A€qˆ!ˆQð ', e¨A°©E°1¸ÀYÐ&OÑ&OÔ&OÑ#€GˆW�g˜tØ�!Š8ˆ8ˆ8ˆ8ˆ8ˆ8r5   c           	      óL  — t          d¦  «         t          d| ¬¦  «        }d}t          | |||¦  «        \  }}}}t          t          ||d d…         |||¬¦  «         t          t          |||d d…         ||¬¦  «         |r$t          t          ||||d d…         |¬¦  «         d S d S )Nr  rN  r¸   rv   r�   rV  )r   r'   rL  r  rP  )	r1   rF  rG  rN  rÚ   rp   rÔ  rŒ  rK  s	            r3   Ú"test_pteqr_raise_error_wrong_shaper[  †	  sÅ   € õ 	ˆ�H„H€HÝ˜g¨eÐ4Ñ4Ô4€EØ
€AÝ" 5¨(°A°yÑAÔA�J€A€qˆ!ˆQå•*˜e Q s¨ s¤V¨Q°!¸yÐIÑIÔIÐIÝ•*˜e Q¨¨#¨2¨#¬°!¸yÐIÑIÔIÐIØð NÝ•j %¨¨A°°3°B°3´À9ÐMÑMÔMÐMÐMÐMðNð Nr5   c                 óÄ   — t          d¦  «         t          d| ¬¦  «        }d}t          | |||¦  «        \  }}}}d|d<   d|d<    |||||¬¦  «        \  }	}
}}|dk    sJ ‚d S )Nr  rN  r¸   rv   r   rV  rW  rX  s                r3   Útest_pteqr_error_singularr]  •	  s…   € õ 	ˆ�H„H€HÝ˜g¨eÐ4Ñ4Ô4€EØ
€AÝ" 5¨(°A°yÑAÔA�J€A€qˆ!ˆQà€A€a�DØ€A€a�DØ&+ e¨A¨q°AÀÐ&KÑ&KÔ&KÑ#€GˆW�g˜tØ�!Š8ˆ8ˆ8ˆ8ˆ8ˆ8r5   zcompute_z,d,e,d_expect,z_expect)g¤p=
×£@r«  gq=
×£pñ?rì  )g\�Âõ(\	@g
×£p=
ï¿gš™™™™™á?)gÅ�1w- @gR' ‰°áÿ?g/n£¼ð?g&äƒžÍª¿?)g cîZB>ä?g–C‹lçûã?gû:pÎˆÒÚ¿gÉå?¤Ç?)gaTR' ‰è?g‡ÙÎ÷SÛ¿g}Ð³Yõ¹Ú?g%ušÎ¿)gû\mÅþ²»¿gèÙ¬ú\mã?g×òAÏfÝ?gL¦
F%uä¿)g‚âÇ˜»–€¿gÅ�1w-!Ï?g333333å?g—�z6«æ?c                 ón  — d}t          d|j        ¬¦  «        }t          j        |¦  «        t          j        |d¦  «        z   t          j        |d¦  «        z   } ||||| ¬¦  «        \  }}	}
}t	          |||¬¦  «         t	          t          j        |
¦  «        t          j        |¦  «        |¬¦  «         dS )	zb
    Implements real (f08jgf) example from NAG Manual Mark 26.
    Tests for correct outputs.
    r  rN  r¸   rP   r�   rO  r£  N)r'   r1   r7   r2  r   rœ   )rG  rp   rÔ  rA  Úz_expectr/  rN  rK  rþ  r0  Ú_zri   s               r3   Útest_pteqr_NAG_f08jgfra  ¤	  s«   € ð  €DÝ˜g¨a¬gÐ6Ñ6Ô6€Eå
Œ�‰
Œ
•R”W˜Q ‘]”]Ñ"¥R¤W¨Q°¡^¤^Ñ3€AØ�u˜q A¨°iÐ@Ñ@Ô@Ñ€BˆˆB�Ý�B˜ tÐ,Ñ,Ô,Ð,Ý•B”F˜2‘J”J¥¤ xÑ 0Ô 0°tÐ<Ñ<Ô<Ð<Ð<Ð<r5   Úmatrix_size)rÿ   )rV   rU   ©rU   rU   c                 óZ  — t           j                             d¦  «        }dt          j        | ¦  «        j        z  }dt          j        | ¦  «        j        z  }t          d| ¬¦  «        }t          d| ¬¦  «        }|\  }}t          ||f| |¬¦  «        }	 ||	¦  «        \  }
}}t          j        |
¦  «        }||k    r8t          j        ||f| ¬¦  «        }|
|d d …d |…f<    ||||¬¦  «        d	         }n  ||
d d …d |…f         ||¬¦  «        d	         }t          ||z  |	|¬
¦  «         t          t          j
        |j        d	         ¦  «        ||                     ¦   «         j        z  ||¬¦  «         t          |t          j        |¦  «        |¬
¦  «         t          t          j        t          j        |¦  «        t          j        t#          t          j        |¦  «        ¦  «        ¦  «        k    ¦  «        ¦  «         t          |d	k    ¦  «         t          ||f| |¬¦  «        dz  }t%          |¦  «        \  }} ||¦  «        \  }}}t          t          j        t          j        |¦  «        d	k     ¦  «        o)t          j        t          j        |¦  «        d	k    ¦  «        ¦  «         d S )Nr  éú   r-  Úgeqrfpr¸   Úorgqrrô  )rs   rº   r   rÉ   rO  r�   )r7   r  r^  rÖ   r×   r'   r4   r   r   r   r   r0   r¶  ry   r   Úallr2  r_   r   r6  )r1   rb  r2   rÊ   r/  rf  ÚgqrrÙ   rÚ   rŒ  Úqr_Ars   ri   rž  Úqqrr�  Ú
A_negativeÚr_rq_negÚq_rq_negÚrq_A_negÚtau_negÚinfo_negs                         r3   Útest_geqrfprr  ½	  s“  € õ Œ)×
Ò
 Ñ
#Ô
#€CØ�rŒx˜‰ŒÔ"Ñ"€DØ�rŒx˜‰ŒÔ"Ñ"€Då˜x°Ð6Ñ6Ô6€FÝ
˜G¨EÐ
2Ñ
2Ô
2€Cà�D€A€qõ 	$ Q¨ F°%¸SÐAÑAÔA€Aà�f˜Q‘i”i�O€Dˆ#ˆtõ 	Œ�‰Œ€Að
 	ˆ1‚u€uõ Œh˜˜1�v UÐ+Ñ+Ô+ˆàˆˆAˆAˆAˆr�ˆrˆE‰
ð ˆC�˜ AÐ&Ñ&Ô& qÔ)ˆˆàˆC��Q�Q�Q˜˜˜�U” ¨AÐ.Ñ.Ô.¨qÔ1ˆõ �A�a‘C˜ Ð&Ñ&Ô&Ð&å•B”F˜1œ7 1œ:Ñ&Ô&¨¨1¯6ª6©8¬8¬:©¸TØðñ ô ð õ �A•r”w˜q‘z”z¨Ð-Ñ-Ô-Ð-å�BŒF•2”7˜1‘:”:¥¤­­R¬W°Q©Z¬Z©¬Ñ 9Ô 9Ò9Ñ:Ô:Ñ;Ô;Ð;åˆD�AŠIÑÔÐõ -¨a°¨V¸5ÀcÐJÑJÔJÈRÑO€JÝ˜J™œÑ€HˆhØ"( &¨Ñ"4Ô"4Ñ€Hˆg�xõ �BŒF•2”7˜8Ñ$Ô$ qÒ(Ñ)Ô)ð #ÝŒF•2”7˜1‘:”: ’>Ñ"Ô"ñ$ô $ð $ð $ð $r5   c                  ó†   — t          j        g ¦  «        } t          d| j        ¬¦  «        }t	          t
          || ¦  «         d S )Nrf  r¸   )r7   rƒ   r'   r1   r  r  )ÚA_emptyrf  s     r3   Ú#test_geqrfp_errors_with_empty_arrayru  ÿ	  s;   € åŒh�r‰lŒl€GÝ˜h¨g¬mÐ<Ñ<Ô<€FÝ•)˜V WÑ-Ô-Ð-Ð-Ð-r5   Údriver)ÚevÚevdÚevrÚevxÚpfxÚsyÚhec                 óX  — d}| dk    rt           nt          }t          | |z   dz   |d         ¬¦  «        }t          | |z   dz   |d         ¬¦  «        }	 t          ||d¬¦  «         t          ||d¬¦  «         d S # t          $ r'}t          j        | |z   › d|› �¦  «         Y d }~d S d }~ww xY w)	Né°  r|  Ú_lworkr   r¸   rP   rä  ú$_lwork raised unexpected exception: ©rÕ   r.   r'   r"   r  rA   Úfail©r{  rv  rÚ   r1   Úsc_dlwÚdz_dlwrÔ  s          r3   Útest_standard_eigh_lworksr‡  
  så   € ð 	€AØ $š;˜;�KˆK­N€EÝ˜c &™j¨Ñ1¸¸q¼ÐBÑBÔB€FÝ˜c &™j¨Ñ1¸¸q¼ÐBÑBÔB€FðLÝ�v˜q¨Ð*Ñ*Ô*Ð*Ý�v˜q¨Ð*Ñ*Ô*Ð*Ð*Ð*øÝð Lð Lð LÝŒ�s˜6‘zÐJÐJÀqÐJÐJÑKÔKÐKÐKÐKÐKÐKÐKÐKøøøøðLøøøó   Á$A8 Á8
B)ÂB$Â$B)ÚgvÚgvxc                 óX  — d}| dk    rt           nt          }t          | |z   dz   |d         ¬¦  «        }t          | |z   dz   |d         ¬¦  «        }	 t          ||d¬¦  «         t          ||d¬¦  «         d S # t          $ r'}t          j        | |z   › d	|› �¦  «         Y d }~d S d }~ww xY w)
Nr  r|  r€  r   r¸   rP   rJ  rE  r�  r‚  r„  s          r3   Útest_generalized_eigh_lworksrŒ  
  så   € ð 	€AØ $š;˜;�KˆK­N€EÝ˜c &™j¨Ñ1¸¸q¼ÐBÑBÔB€FÝ˜c &™j¨Ñ1¸¸q¼ÐBÑBÔB€FðLÝ�v˜q sÐ+Ñ+Ô+Ð+Ý�v˜q sÐ+Ñ+Ô+Ð+Ð+Ð+øÝð Lð Lð LÝŒ�s˜6‘zÐJÐJÀqÐJÐJÑKÔKÐKÐKÐKÐKÐKÐKÐKøøøøðLøøørˆ  Údtype_rÙ   )rP   rv   r-  rž  c                 ó  — t          d¦  «         t          d|¦  «        }||z
  }| t          v rdnd}|dz   }t          || ¬¦  «        }t	          ||||¦  «        }|dk    r|n|f}t          d„ |D ¦   «         ¦  «        sJ ‚d S )Nr´   r   ÚorÚunÚ	csd_lworkr¸   c                 ó   — g | ]}|d k    ‘Œ	S r+  r¥   )rU  rŒ   s     r3   rV  z*test_orcsd_uncsd_lwork.<locals>.<listcomp>.
  s   € Ð%Ð%Ð%˜!��A’Ð%Ð%Ð%r5   )r   r   rÕ   r'   r"   rh  )r�  rÙ   rc   r�  r{  Údlwr  Úlwvals           r3   Útest_orcsd_uncsd_lworkr•  #
  s£   € õ 	ˆ�J„J€JÝ��1‰Œ€AØ	ˆA‰€AØ�KÐ'Ð'ˆ$ˆ$¨T€CØ
�Ñ
€CÝ	˜# VÐ	,Ñ	,Ô	,€BÝ˜2˜q ! QÑ'Ô'€EØ˜D’[�[ˆEˆE u h€EÝÐ%Ð%˜uÐ%Ñ%Ô%Ñ&Ô&Ð&Ð&Ð&Ð&Ð&r5   c           
      ón  — d\  }}}| t           v rdnd}|dk    rt          j        |¦  «        nt          j        |¦  «        }t	          |dz   |dz   f| ¬¦  «        \  }}t          ||||¦  «        }|dk    rd|int          t          ddg|¦  «        ¦  «        }	 ||d |…d |…f         |d |…|d …f         ||d …d |…f         ||d …|d …f         fi |	¤Ž\
  }
}}}}}}}}}|d	k    sJ ‚t          ||¦  «        }t          ||¦  «        }t          t          ||¦  «        t          ||z
  ||z
  ¦  «        ¦  «        }t          ||¦  «        |z
  }t          |||z
  ¦  «        |z
  }t          ||z
  |¦  «        |z
  }t          ||z
  ||z
  ¦  «        |z
  }t          j        ||f| ¬¦  «        } | d
¦  «        }t          |¦  «        D ]	}||||f<   Œ
t          |¦  «        D ]}||||z   ||z   f<   Œt          |¦  «        D ]}| |||z   |z   ||z   |z   |z   |z   |z   f<   Œ t          |¦  «        D ]}||||z   |z   |z   ||z   |z   f<   Œt          |¦  «        D ]¬}t          j        ||         ¦  «        |||z   ||z   f<   t          j        ||         ¦  «        |||z   |z   ||z   |z   |z   f<   t          j        ||         ¦  «         |||z   ||z   |z   |z   |z   f<   t          j        ||         ¦  «        |||z   |z   ||z   f<   Œ­||z  |z  }t          ||ddt          j        | ¦  «        j        z  ¬¦  «         d S )N)re  éP   éª   r�  r�  Úcsdr‘  r¸   rº   Úlrworkr   r½   rÏ  g     ˆÃ@rO  )rÕ   r#   Úrvsr$   r'   r"   Údictré  r   rb  r7   r   r5  Úcosrå  r   rÖ   r×   )r�  rÙ   rc   r�  r{  ÚXÚdrvr“  r”  ÚlwvalsÚcs11Úcs12Úcs21Úcs22ÚthetaÚu1Úu2Úv1tÚv2tri   rW  ÚVHrž  Ún11Ún12Ún21Ún22ÚSÚonerA  ÚXcs                                  r3   Útest_orcsd_uncsdr²  1
  sÖ  € à�G€A€qˆ!à�KÐ'Ð'ˆ$ˆ$¨T€CØ! Tšk˜k�Œ˜ÑÔÐ­}Ô/@ÀÑ/CÔ/C€Aå  u¡¨c°KÑ.?Ð @ÈÐOÑOÔO�H€CˆÝ˜3  1 aÑ(Ô(€EØ!$¨¢ ˆg�uÐÐµ$µs¸GØ<Dð<FØGLñ8Nô 8Nñ 3Oô 3O€Fð 	ˆˆAˆbˆqˆb�"�1�"ˆfŒI�q˜˜!˜˜Q˜R˜R˜”y ! A B B¨¨¨ F¤)¨Q¨q¨r¨r°1°2°2¨v¬YÐAÐA¸&ÐAÐAñ :€Dˆ$��d˜E 2 r¨3°°Tð �1Š9ˆ9ˆ9ˆ9å�2�rÑÔ€AÝ	�C˜Ñ	Ô	€BÝ�C��1‰IŒI•s˜1˜Q™3  !¡‘}”}Ñ%Ô%€AÝ
ˆa�‰)Œ)�a‰-€CÝ
ˆa��1‘‰+Œ+˜‰/€CÝ
ˆa�‰c�1‰+Œ+˜‰/€CÝ
ˆa�‰c�1�Q‘3‰-Œ-˜!Ñ
€Cå
Œ�!�Q�˜vÐ&Ñ&Ô&€AØ
ˆ&�‰*Œ*€CÝ�3‰ZŒZð ð ˆØˆˆ!ˆQˆ$‰ˆÝ�3‰ZŒZð ð ˆØˆˆ!ˆA‰#ˆq�‰sˆ(‰ˆÝ�3‰ZŒZð -ð -ˆØ),¨ˆˆ!ˆC‰%�‰'�1�S‘5˜‘7˜3‘;˜s‘? 1Ñ$Ð
$Ñ%Ð%Ý�3‰ZŒZð $ð $ˆØ #ˆˆ!ˆC‰%�‰'�!‰)�S˜‘U˜1‘WÐ
ÑÐå�1‰XŒXð -ð -ˆÝœ&  q¤Ñ*Ô*ˆˆ!ˆC‰%��3‘ˆ,‰Ý"$¤&¨¨q¬Ñ"2Ô"2ˆˆ!ˆC‰%�‰'�1�Q‘3�s‘7˜3‘;Ð
Ñå%'¤V¨E°!¬HÑ%5Ô%5Ð$5ˆˆ!ˆC‰%��3‘�s‘˜3‘˜q‘Ð
 Ñ!ÝœF 5¨¤8Ñ,Ô,ˆˆ!ˆC‰%�‰'�1�S‘5ˆ.ÑÐà	
ˆQ‰�‰€BÝ�A�r ¨­R¬X°fÑ-=Ô-=Ô-AÑ)AÐBÑBÔBÐBÐBÐBr5   Ú
trans_boolFÚfactrG  c                 ó´  — t           j                             d¦  «        }dt          j        | ¦  «        j        z  }t          d| ¬¦  «        \  }}d}t          |dz
  f| |¬¦  «        }t          |f| |¬¦  «        }	t          |dz
  f| |¬¦  «        }
t          j        |d¦  «        t          j        |	¦  «        z   t          j        |
d¦  «        z   }t          |d	f| |¬¦  «        }|r| t          v rd
ndnd}|r| 	                    ¦   «         j
        n||z  }|                     ¦   «         |	                     ¦   «         |
                     ¦   «         |                     ¦   «         g}|dk    r |||	|
¦  «        ndgdz  \  }}}}}} |||	|
||||||||¬¦  «        }|\
  }}}}}}}}}} t          | dk    d| › d�¦  «         t          ||d         ¦  «         t          |	|d         ¦  «         t          |
|d	         ¦  «         t          ||d         ¦  «         t          |||¬¦  «         t          t          |d¦  «        dud|› �¦  «         t          |j        d         |j        d         k    d|j        d         › d|j        d         › �¦  «         t          |j        d         |j        d         k    d|j        d         › d|j        d         › �¦  «         dS )aS  
    These tests uses ?gtsvx to solve a random Ax=b system for each dtype.
    It tests that the outputs define an LU matrix, that inputs are unmodified,
    transposal options, incompatible shapes, singular matrices, and
    singular factorizations. It parametrizes DTYPES and the 'fact' value along
    with the fact related inputs.
    r  r-  ©Úgtsvxrö  r¸   rv   rP   rô  r�   rQ   ry   r|   rT  rG  NrU   ©r´  r‰   ÚdlfÚdfÚdufr   r  r   z?gtsvx info = z, should be zerorR   r£  Ú__len__Túrcond should be scalar but is úferr.shape is z but should be úberr.shape is )r7   r  r^  rÖ   r×   r'   r4   r2  rÕ   r¶  ry   r·  r   r	   r   r«   r0   )!r1   r³  r´  r2   r/  r·  rö  rÚ   rû  rp   rú  rŒ  rŒ   r‰   r‡   Ú
inputs_cpyÚdlf_Údf_Úduf_Údu2f_Úipiv_Úinfo_Ú	gtsvx_outr¹  rº  r»  Údu2fr  Úx_solnr	  ÚferrÚberrri   s!                                    r3   Ú
test_gtsvxrÌ  `
  s-  € õ Œ)×
Ò
 Ñ
#Ô
#€Cà•”˜%‘”Ô$Ñ$€Då#Ð$6¸eÐDÑDÔD�L€Eˆ5à
€AÝ	$ a¨¡c V°5¸cÐ	BÑ	BÔ	B€BÝ# Q D°¸3Ð?Ñ?Ô?€AÝ	$ a¨¡c V°5¸cÐ	BÑ	BÔ	B€BÝ
Œ��B‰Œ�"œ' !™*œ*Ñ$¥r¤w¨r°1¡~¤~Ñ5€Aå# Q¨ F°%¸SÐAÑAÔA€Aà6@ÐI�E�[Ð(Ð(ˆSˆS¨c¨cÀc€EØ!Ð	(ˆ�Š‰ŒŒˆ q¨AÑ-€Að —'’'‘)”)˜QŸVšV™XœX r§w¢w¡y¤y°!·&²&±(´(Ð;€Jð ! CšK˜Kˆˆˆb�!�RÑÔÐ¨d¨V°A©Xñ )€Dˆ#ˆt�U˜E 5ð ��b˜!˜R ¨°UÀÈØ E°ð7ñ 7ô 7€Ià@IÑ=€CˆˆS�$˜˜f e¨T°4¸ÝˆD�AŠIÐ>¨Ð>Ð>Ð>Ñ?Ô?Ð?õ �r˜: aœ=Ñ)Ô)Ð)Ý�q˜* Qœ-Ñ(Ô(Ð(Ý�r˜: aœ=Ñ)Ô)Ð)Ý�q˜* Qœ-Ñ(Ô(Ð(õ �A�v DÐ)Ñ)Ô)Ð)õ �G�E˜9Ñ%Ô%¨TÐ1Ø4¨UÐ4Ð4ñ6ô 6ð 6õ ˆDŒJ�qŒM˜QœW QœZÒ'ð +>¸4¼:Àa¼=ð +>ð +>Ø12´¸´ð+>ð +>ñ @ô @ð @õ ˆDŒJ�qŒM˜QœW QœZÒ'ð +>¸4¼:Àa¼=ð +>ð +>Ø12´¸´ð+>ð +>ñ @ô @ð @ð @ð @r5   c                 ó‚  — t           j                             d¦  «        }t          d| ¬¦  «        \  }}d}t	          |dz
  f| |¬¦  «        }t	          |f| |¬¦  «        }t	          |dz
  f| |¬¦  «        }	t          j        |d¦  «        t          j        |¦  «        z   t          j        |	d¦  «        z   }
t	          |df| |¬¦  «        }| t          v rd	nd
}|r|
                     ¦   «         j        n|
|z  }|dk    r ||||	¦  «        nd gdz  \  }}}}}} ||||	||||||||¬¦  «        }|\
  }}}}}}}}}}|dk    r7d|d<   d|d<    ||||	|¦  «        }|\
  }}}}}}}}}}|dk    s
J d¦   «         ‚d S |dk    rAd|d<   d|d<   d|d<    ||||	|||||||¬¦
  «
        }|\
  }}}}}}}}}}|dk    sJ d¦   «         ‚d S d S )Nr  r¶  r¸   rv   rP   rô  r�   rQ   ry   r|   rG  rU   r¸  rT  r   z&info should be > 0 for singular matrix)r´  r¹  rº  r»  r   r  )	r7   r  r^  r'   r4   r2  rÕ   r¶  ry   )r1   r³  r´  r2   r·  rö  rÚ   rû  rp   rú  rŒ  rŒ   r‰   r‡   rÁ  rÂ  rÃ  rÄ  rÅ  rÆ  rÇ  r¹  rº  r»  rÈ  r  rÉ  r	  rÊ  rË  ri   s                                  r3   Útest_gtsvx_error_singularrÎ  �
  sa  € õ Œ)×
Ò
 Ñ
#Ô
#€Cå#Ð$6¸eÐDÑDÔD�L€Eˆ5à
€AÝ	$ a¨¡c V°5¸cÐ	BÑ	BÔ	B€BÝ# Q D°¸3Ð?Ñ?Ô?€AÝ	$ a¨¡c V°5¸cÐ	BÑ	BÔ	B€BÝ
Œ��B‰Œ�"œ' !™*œ*Ñ$¥r¤w¨r°1¡~¤~Ñ5€Aå# Q¨ F°%¸SÐAÑAÔA€Aà�KÐ'Ð'ˆCˆC¨S€EØ!Ð	(ˆ�Š‰ŒŒˆ q¨AÑ-€Að ! CšK˜Kˆˆˆb�!�RÑÔÐ¨d¨V°A©Xñ )€Dˆ#ˆt�U˜E 5ð ��b˜!˜R ¨°UÀÈØ E°ð7ñ 7ô 7€Ià@IÑ=€CˆˆS�$˜˜f e¨T°4¸ð ˆs‚{€{àˆˆ"‰Øˆˆ2‰à�E˜"˜a  QÑ'Ô'ˆ	ØDMÑAˆˆR��d˜D &¨%°°t¸Tà�aŠxˆxˆxÐA‰xŒxˆxˆxˆxà	�ŠˆàˆˆB‰ØˆˆR‰Øˆˆb‰	à�E˜"˜a  Q¨T°tÀÈØ#¨%ð1ñ 1ô 1ˆ	àDMÑAˆˆR��d˜D &¨%°°t¸Tà�aŠxˆxˆxÐA‰xŒxˆxð 
ˆð ˆxr5   c                 óÐ  — t           j                             d¦  «        }t          d| ¬¦  «        \  }}d}t	          |dz
  f| |¬¦  «        }t	          |f| |¬¦  «        }t	          |dz
  f| |¬¦  «        }	t          j        |d¦  «        t          j        |¦  «        z   t          j        |	d¦  «        z   }
t	          |df| |¬¦  «        }| t          v rd	nd
}|r|
                     ¦   «         j        n|
|z  }|dk    r ||||	¦  «        nd gdz  \  }}}}}}|dk    r¦t          t          ||d d…         ||	||||||||¬¦  «         t          t          |||d d…         |	||||||||¬¦  «         t          t          ||||	d d…         ||||||||¬¦  «         t          t          ||||	|d d…         |||||||¬¦  «         d S t          t          ||||	||||d d…         ||||¬¦  «         t          t          ||||	|||||d d…         |||¬¦  «         t          t          ||||	||||||d d…         ||¬¦  «         t          t          ||||	|||||||d d…         |¬¦  «         d S )Nr  r¶  r¸   rv   rP   rô  r�   rQ   ry   r|   rG  rU   rT  r¸  )r7   r  r^  r'   r4   r2  rÕ   r¶  ry   r  rP  r  )r1   r³  r´  r2   r·  rö  rÚ   rû  rp   rú  rŒ  rŒ   r‰   r‡   rÁ  rÂ  rÃ  rÄ  rÅ  rÆ  s                       r3   Ú"test_gtsvx_error_incompatible_sizerÐ  Ð
  s.  € õ Œ)×
Ò
 Ñ
#Ô
#€Cå#Ð$6¸eÐDÑDÔD�L€Eˆ5à
€AÝ	$ a¨¡c V°5¸cÐ	BÑ	BÔ	B€BÝ# Q D°¸3Ð?Ñ?Ô?€AÝ	$ a¨¡c V°5¸cÐ	BÑ	BÔ	B€BÝ
Œ��B‰Œ�"œ' !™*œ*Ñ$¥r¤w¨r°1¡~¤~Ñ5€Aå# Q¨ F°%¸SÐAÑAÔA€Aà�KÐ'Ð'ˆCˆC¨S€EØ!Ð	(ˆ�Š‰ŒŒˆ q¨AÑ-€Að ! CšK˜Kˆˆˆb�!�RÑÔÐ¨d¨V°A©Xñ )€Dˆ#ˆt�U˜E 5ð ˆs‚{€{Ý•j %¨¨C¨R¨C¬°!°R¸Ø u°$¸3Ø E°ð	7ñ 	7ô 	7ð 	7õ 	•j %¨¨Q¨s°¨s¬V°R¸Ø u°$¸3Ø E°ð	7ñ 	7ô 	7ð 	7õ 	•j %¨¨Q°°3°B°3´¸Ø u°$¸3Ø E°ð	7ñ 	7ô 	7ð 	7õ 	•i ¨¨A¨r°1°S°b°S´6Ø u°$¸3Ø E°ð	7ñ 	7ô 	7ð 	7ð 	7ð 	7õ 	•j %¨¨Q°°AØ u°$°s¸°s´)ÀØ E°ð	7ñ 	7ô 	7ð 	7õ 	•j %¨¨Q°°AØ u°$¸3¸sÀ¸s¼8Ø E°ð	7ñ 	7ô 	7ð 	7õ 	•j %¨¨Q°°AØ u°$¸3Ø˜s ˜sœ)¨°Uð	<ñ 	<ô 	<ð 	<õ 	•j %¨¨Q°°AØ u°$¸3Ø E¨#¨2¨#¤J°Uð	<ñ 	<ô 	<ð 	<ð 	<ð 	<r5   zdu,d,dl,b,xc           
      óˆ   — t          d|j        ¬¦  «        } |||| |¦  «        }|\
  }}}	}
}}}}}}t          ||¦  «         d S )Nr·  r¸   ©r'   r1   r   )rú  rp   rû  r‡   rŒ   r·  rÇ  r¹  rº  r»  rÈ  r  rÉ  r	  rÊ  rË  ri   s                    r3   Útest_gtsvx_NAGrÓ    s]   € õ. ˜W¨A¬GÐ4Ñ4Ô4€Eà��b˜!˜R Ñ#Ô#€IØ@IÑ=€CˆˆS�$˜˜f e¨T°4¸å˜a Ñ(Ô(Ð(Ð(Ð(r5   zfact,df_de_lambdac                 óB   —  t          d|j        ¬¦  «        | |¦  «        S ©Nr,  r¸   ©r'   r1   ©rp   rÔ  s     r3   ú<lambda>rØ  &  ó7   € ð )HÕ(8¸Ø?@¼wð)Hñ )Hô )HØHIÈ1ñ)Nô )N€ r5   c                 ó   — dS ©N)NNNr¥   r×  s     r3   rØ  rØ  (  ó   € Ð-?€ r5   c                 ó(  — t           j                             d¦  «        }dt          j        | ¦  «        j        z  }t          d| ¬¦  «        }d}t          |f||¦  «        dz   }t          |dz
  f| |¦  «        }	t          j        |¦  «        t          j        |	d¦  «        z   t          j        t          j        |	¦  «        d¦  «        z   }
t          |d	f| |¬
¦  «        }|
|z  } |||	¦  «        \  }}}| 	                    ¦   «         |	 	                    ¦   «         | 	                    ¦   «         g} |||	||||¬¦  «        \  }}}}}}}t          ||d         ¦  «         t          |	|d         ¦  «         t          ||d	         ¦  «         t          |dk    d|› d�¦  «         t          ||¦  «         t          j        |d¦  «        t          j        t          j        |¦  «        ¦  «        z   }t          j        |¦  «        }t          |
||z  t          j        |¦  «        j        z  |¬¦  «         t!          |d¦  «        rJ d|› �¦   «         ‚t          |j        dk    d|j        › d�¦  «         t          |j        dk    d|j        › d�¦  «         dS )a  
    This tests the ?ptsvx lapack routine wrapper to solve a random system
    Ax = b for all dtypes and input variations. Tests for: unmodified
    input parameters, fact options, incompatible matrix shapes raise an error,
    and singular matrices return info of illegal value.
    r  r-  Úptsvxr¸   rT   rS   rP   r�   rQ   rô  ©r´  rº  Úefr   zinfo should be 0 but is ú.r£  r¼  r½  )rQ   r¾  z# but should be ({x_soln.shape[1]},)r¿  N)r7   r  r^  rÖ   r×   r'   r4   r2  r¶  r·  r	   r   r   r   r   ry   r«   r0   )r1   rF  r´  Údf_de_lambdar2   r/  rÞ  rÚ   rp   rÔ  rŒ  rÉ  r‡   rº  rà  ri   rü  rŒ   r	  rÊ  rË  rJ  r€  s                          r3   Ú
test_ptsvxrã  "  s¯  € õ Œ)×
Ò
 Ñ
#Ô
#€Cà•”˜%‘”Ô$Ñ$€DÝ˜W¨EÐ2Ñ2Ô2€EØ	€Aå# Q D¨(°CÑ8Ô8¸1Ñ<€AÝ# Q q¡S F¨E°3Ñ7Ô7€AÝ
Œ�‰
Œ
•R”W˜Q ‘^”^Ñ#¥b¤g­b¬g°a©j¬j¸!Ñ&<Ô&<Ñ<€AÝ(¨!¨Q¨°uÀ#ÐFÑFÔF€FØ	ˆF‰
€Að  �<  1Ñ%Ô%�L€BˆˆDð —’‘”˜!Ÿ&š&™(œ( A§F¢F¡H¤HÐ-€Hð */¨¨q°!°Q¸TØ24¸ð*=ñ *=ô *=Ñ&€BˆˆAˆu�d˜D $õ �q˜( 1œ+Ñ&Ô&Ð&Ý�q˜( 1œ+Ñ&Ô&Ð&Ý�q˜( 1œ+Ñ&Ô&Ð&ÝˆD�AŠIÐ9°$Ð9Ð9Ð9Ñ:Ô:Ð:Ý˜f aÑ(Ô(Ð(õ 	Œ��B‰Œ�"œ'¥"¤'¨!¡*¤*Ñ-Ô-Ñ-€AÝ
Œ�‰Œ€AÝ�A�q˜‘s�BœG A™JœJœLÑ)°Ð5Ñ5Ô5Ð5õ �u˜iÑ(Ô(ð 1ð 1Ø0¨Ð0Ð0ñ1ô 1ð 1õ ˆDŒJ˜$Òð "8°$´*ð "8ð "8ð "8ñ :ô :ð :õ ˆDŒJ˜$Òð "8°$´*ð "8ð "8ð "8ñ :ô :ð :ð :ð :r5   c                 óB   —  t          d|j        ¬¦  «        | |¦  «        S rÕ  rÖ  r×  s     r3   rØ  rØ  a  rÙ  r5   c                 ó   — dS rÛ  r¥   r×  s     r3   rØ  rØ  c  rÜ  r5   c           
      óŒ  — t           j                             d¦  «        }t          d| ¬¦  «        }d}t	          |f||¦  «        dz   }t	          |dz
  f| |¦  «        }t          j        |¦  «        t          j        |d¦  «        z   t          j        t          j        |¦  «        d¦  «        z   }	t	          |df| |¬	¦  «        }
|	|
z  } |||¦  «        \  }}}t          t          ||d d…         |||||¬
¦  «         t          t          |||d d…         ||||¬
¦  «         t          t          ||||d d…         |||¬
¦  «         d S )Nr  rÞ  r¸   rT   rS   rP   r�   rQ   rô  rß  )
r7   r  r^  r'   r4   r2  r¶  r  rP  r  )r1   rF  r´  râ  r2   rÞ  rÚ   rp   rÔ  rŒ  rÉ  r‡   rº  rà  ri   s                  r3   Útest_ptsvx_error_raise_errorsrç  ]  sK  € õ Œ)×
Ò
 Ñ
#Ô
#€CÝ˜W¨EÐ2Ñ2Ô2€EØ	€Aå# Q D¨(°CÑ8Ô8¸1Ñ<€AÝ# Q q¡S F¨E°3Ñ7Ô7€AÝ
Œ�‰
Œ
•R”W˜Q ‘^”^Ñ#¥b¤g­b¬g°a©j¬j¸!Ñ&<Ô&<Ñ<€AÝ(¨!¨Q¨°uÀ#ÐFÑFÔF€FØ	ˆF‰
€Að  �<  1Ñ%Ô%�L€BˆˆDõ •*˜e Q s¨ s¤V¨Q°¸ÀÈÐKÑKÔKÐKÝ•*˜e Q¨¨#¨2¨#¬°¸ÀÈÐKÑKÔKÐKÝ•)˜U A q¨!¨C¨R¨C¬&°tÀÀrÐJÑJÔJÐJÐJÐJr5   c                 óB   —  t          d|j        ¬¦  «        | |¦  «        S rÕ  rÖ  r×  s     r3   rØ  rØ  |  rÙ  r5   c                 ó   — dS rÛ  r¥   r×  s     r3   rØ  rØ  ~  rÜ  r5   c                 ó  — t           j                             d¦  «        }t          d| ¬¦  «        }d}t	          |f||¦  «        dz   }t	          |dz
  f| |¦  «        }t          j        |¦  «        t          j        |d¦  «        z   t          j        t          j        |¦  «        d¦  «        z   }	t	          |df| |¬	¦  «        }
|	|
z  } |||¦  «        \  }}}|d
k    rod|d<    |||¦  «        \  }}} ||||¦  «        \  }}}}}}}|dk    r||k    sJ ‚t	          |f||¦  «        } ||||¦  «        \  }}}}}}}|dk    r||k    sJ ‚d S  |||¦  «        \  }}}d|d<   d|d<    |||||||¬¦  «        \  }}}}}}}|dk    sJ ‚d S )Nr  rÞ  r¸   rT   rS   rP   r�   rQ   rô  rT  r   rR   rß  )r7   r  r^  r'   r4   r2  r¶  )r1   rF  r´  râ  r2   rÞ  rÚ   rp   rÔ  rŒ  rÉ  r‡   rº  rà  ri   rŒ   r	  rÊ  rË  s                      r3   Útest_ptsvx_non_SPD_singularrë  x  së  € õ Œ)×
Ò
 Ñ
#Ô
#€CÝ˜W¨EÐ2Ñ2Ô2€EØ	€Aå# Q D¨(°CÑ8Ô8¸1Ñ<€AÝ# Q q¡S F¨E°3Ñ7Ô7€AÝ
Œ�‰
Œ
•R”W˜Q ‘^”^Ñ#¥b¤g­b¬g°a©j¬j¸!Ñ&<Ô&<Ñ<€AÝ(¨!¨Q¨°uÀ#ÐFÑFÔF€FØ	ˆF‰
€Að  �<  1Ñ%Ô%�L€BˆˆDàˆs‚{€{Øˆˆ!‰à#�| A qÑ)Ô)‰ˆˆB�à-2¨U°1°a¸©^¬^Ñ*ˆˆB��5˜$  dà�aŠxˆx˜D AšI˜I˜I˜Iõ (¨¨¨h¸Ñ<Ô<ˆØ-2¨U°1°a¸©^¬^Ñ*ˆˆB��5˜$  dØ�aŠxˆx˜D AšI˜I˜I˜I˜I˜Ið $�| A qÑ)Ô)‰ˆˆB�Øˆˆ1‰Øˆˆ1‰Ø-2¨U°1°a¸ÀØ68¸Rð.Añ .Aô .AÑ*ˆˆB��5˜$  dà�aŠxˆxˆxˆxˆxˆxr5   zd,e,b,xc                 ó|   — t          d|j        ¬¦  «        } || ||¦  «        \  }}}}}	}
}t          ||¦  «         d S )NrÞ  r¸   rÒ  )rp   rÔ  r‡   rŒ   rÞ  rº  rà  Úx_ptsvxr	  rÊ  rË  ri   s               r3   Útest_ptsvx_NAGrî  ¤  sN   € õ. ˜W¨A¬GÐ4Ñ4Ô4€Eà/4¨u°Q¸¸1©~¬~Ñ,€BˆˆG�U˜D $¨å˜a Ñ)Ô)Ð)Ð)Ð)r5   r  c           	      ó¬  ‡— t           j                             d¦  «        }t          j        | ¦  «        j        dz  }d\  Š}t          ‰‰g| |¬¦  «        }t          ‰|g| |¬¦  «        }|                     ¦   «         j        |z   t          j        ‰| ¬¦  «         | d¦  «        z  z   }|r7ˆfd„t          ‰¦  «        D ¦   «         ˆfd„t          ‰¦  «        D ¦   «         f}n:d	„ t          d
‰d
z   ¦  «        D ¦   «         d„ t          d
‰d
z   ¦  «        D ¦   «         f}||         }t          d| d¬¦  «        \  }	}
}}} |
‰||¬¦  «        \  }}t          |d¦  «         t          ||¬¦  «        |         }t          ||d|¬¦  «          |‰||¬¦  «        \  }}t          |d¦  «         t          |¦  «        |         }t          ||d|¬¦  «          |‰|||¬¦  «        \  }}t          |d¦  «         t          ||¦  «        }t          ||d|¬¦  «          |	‰|||¬¦  «        \  }}t          |d¦  «         t          ||d|¬¦  «         t           j                             |d
¦  «        } |‰|||¬¦  «        \  }}t          |d¦  «         t%          t'          d
|z  t           j                             |d
¬¦  «        z
  ¦  «        |z  d
k     ¦  «         d S )Nr´   r-  )rv   rS   rô  r¸   rÀ   c                 ó:   •— g | ]}t          |‰¦  «        D ]}|‘ŒŒS r¥   ©r5  ©rU  ÚyrŒ   rÚ   s      €r3   rV  z5test_pptrs_pptri_pptrf_ppsv_ppcon.<locals>.<listcomp>Î  ó.   ø€ Ð:Ð:Ð:�q­e°A°q©k¬kÐ:Ð:¨�Ð:Ð:Ð:Ð:r5   c                 ó:   •— g | ]}t          |‰¦  «        D ]}|‘ŒŒS r¥   rñ  rò  s      €r3   rV  z5test_pptrs_pptri_pptrf_ppsv_ppcon.<locals>.<listcomp>Ï  rô  r5   c                 ó6   — g | ]}t          |¦  «        D ]}|‘ŒŒS r¥   rñ  ©rU  ró  rŒ   s      r3   rV  z5test_pptrs_pptri_pptrf_ppsv_ppcon.<locals>.<listcomp>Ñ  s+   € Ð<Ð<Ð<�qµ5¸±8´8Ð<Ð<¨a�Ð<Ð<Ð<Ð<r5   rP   c                 ó<   — g | ]}t          |¦  «        D ]}|d z
  ‘ŒŒS rä  rñ  r÷  s      r3   rV  z5test_pptrs_pptri_pptrf_ppsv_ppcon.<locals>.<listcomp>Ò  s/   € Ð>Ð>Ð>˜µU¸1±X´XÐ>Ð>°��1‘Ð>Ð>Ð>Ð>r5   )ÚppsvÚpptrfÚpptrsÚpptriÚppconr¿  rÀ  rä  r   rO  )r�  r  r  )r7   r  r^  rÖ   r×   r4   r¶  ry   r   r5  r'   r   r   r   r   r   rŠ  r   r   rœ   r  )r1   r  r2   r/  rÛ   ra   r‡   r[  Úaprù  rú  rû  rü  rý  Úulri   ÚaulÚuliÚaulirŒ   ÚbxÚxvr�  r	  rÚ   s                           @r3   Ú!test_pptrs_pptri_pptrf_ppsv_ppconr  Â  s  ø€ õ Œ)×
Ò
 Ñ
%Ô
%€CÝŒ8�E‰?Œ?Ô˜sÑ"€Dà�G€A€tÝ# Q¨ F°%¸SÐAÑAÔA€AÝ# Q¨ I°UÀÐDÑDÔD€Aà	�Š‰ŒŒ
�Q‰�œ ¨Ð/Ñ/Ô/°%°%¸±)´)Ñ;Ñ;€AØð @Ø:Ð:Ð:Ð:�E !™HœHÐ:Ñ:Ô:Ø:Ð:Ð:Ð:�E !™HœHÐ:Ñ:Ô:ð<ˆˆð =Ð<�E ! Q q¡S™MœMÐ<Ñ<Ô<Ø>Ð>�e A q¨¡s™mœmÐ>Ñ>Ô>ð@ˆà	
ˆ4Œ€BÝ'7Ø4ØØð(ñ (ô (Ñ$€Dˆ%�˜˜uð
 ˆu�Q˜ %Ð(Ñ(Ô(�H€BˆÝ��qÑÔÐÝ
�1˜EÐ
"Ñ
"Ô
" 4Ô
(€CÝ�B˜ !¨$Ð/Ñ/Ô/Ð/à��a˜ 5Ð)Ñ)Ô)�I€CˆÝ��qÑÔÐÝˆq‰6Œ6�$Œ<€DÝ�C˜ A¨DÐ1Ñ1Ô1Ð1àˆe�A�r˜1 EÐ*Ñ*Ô*�G€A€tÝ��qÑÔÐÝ	ˆq�!‰Œ€BÝ�A�r ¨Ð-Ñ-Ô-Ð-àˆt�A�r˜1 EÐ*Ñ*Ô*�H€BˆÝ��qÑÔÐÝ�B˜ ¨Ð.Ñ.Ô.Ð.åŒI�NŠN˜1˜aÑ Ô €EØ�%˜˜2 U°%Ð8Ñ8Ô8�K€Eˆ4Ý��qÑÔÐÝ�C��%‘�"œ)Ÿ.š.¨¨a˜.Ñ0Ô0Ñ0Ñ1Ô1°%Ñ7¸!Ò;Ñ<Ô<Ð<Ð<Ð<r5   c                 ó\  — t           j                             d¦  «        }t          j        | ¦  «        j        dz  }d}t          ||g| |¬¦  «        }t          d| ¬¦  «        \  }} |d„ |d¬	¦  «        }t          |d
         d¦  «         |d         }|d         }	|d         }
| t          v r%t          |t          j
        |¦  «        d|¬¦  «         t          |	|z  |	                     ¦   «         j        z  |d|¬¦  «          |||	dd¦  «        }t          |d
         d¦  «         |d         }|d         }	| t          v r%t          |t          j
        |¦  «        d|¬¦  «         t          |	|z  |	                     ¦   «         j        z  |d|¬¦  «         t          |d         |
d|¬¦  «         d S )Nr´   r-  rv   rô  )ÚgeesÚtrexcr¸   c                 ó   — d S r   r¥   ©rŒ   s    r3   rØ  z!test_gees_trexc.<locals>.<lambda>ü  ó   € ˜D€ r5   FrÈ  r�   r   rH  rc  rO  rV   rP   r  r�   ©r7   r  r^  rÖ   r×   r4   r'   r   r.   r   r   r¶  ry   )r1   r2   r/  rÚ   ra   r  r  rú  r‹  rK  Úd2s              r3   Útest_gees_trexcr  ò  s«  € å
Œ)×
Ò
 Ñ
%Ô
%€CÝŒ8�E‰?Œ?Ô˜sÑ"€Dà
€AÝ# Q¨ F°%¸SÐAÑAÔA€Aå"Ð#4¸EÐBÑBÔB�K€Dˆ%àˆT�.�. !°Ð7Ñ7Ô7€FÝ�˜”˜QÑÔÐàˆqŒ	€AØˆrŒ
€Aà	
ˆ4Œ€Bà•ÐÐÝ˜�2œ7 1™:œ:¨A°DÐ9Ñ9Ô9Ð9å�A˜‘E˜AŸFšF™HœHœJÑ&¨°¸Ð=Ñ=Ô=Ð=àˆU�1�a˜˜AÑÔ€FÝ�˜”˜QÑÔÐàˆqŒ	€AØˆrŒ
€Aà•ÐÐÝ˜�2œ7 1™:œ:¨A°DÐ9Ñ9Ô9Ð9å�A˜‘E˜AŸFšF™HœHœJÑ&¨°¸Ð=Ñ=Ô=Ð=å�A�d”G˜R a¨dÐ3Ñ3Ô3Ð3Ð3Ð3r5   zt, expect, ifst, ilst)r—  g)\�Âõ(¼¿ç{®Gáz„?g¸…ëQ¸ž?)rÏ  çš™™™™™¹¿rí  çffffffÖ?)rÏ  gÍÌÌÌÌÌä¿r  gš™™™™™É?)rÏ  rÏ  rÏ  r  )r  çôlV}®ä¿gVŸ«­Ø_¶?gî|?5^ºÉ?)g»¸�ðÐ?r  gÐÕVì/»·?g;ßO�—nÖ?)rÏ  rÏ  r—  ggÕçj+ö‡¿)ù      À      Ày
×£p=
×?
×£p=
×¿yR¸…ëQÈ¿¸…ëQ¸Þ?y)\�Âõ(ì?      Ð¿)r¿  ù      À       @y¸…ëQ¸ž¿
×£p=
ç¿yq=
×£pÍ¿¤p=
×£À?)r¿  r¿  ù       @      ð¿y®Gázî?ö(\�Âõà?)r¿  r¿  r¿  ù      @      À)r  y¡ø1æ®%Ä¿³q¬‹Ûæ?yësµûËÆ??ÆÜµ„|È¿yHáz®GÙ??ÆÜµØ?)r¿  r  y«ÏÕVì/ñ?ö—Ý“‡…Â?yj¼t“Ð?vàœ¥½Õ¿)r¿  r¿  r  yB>èÙ¬úÌ?=›UŸ«­ì?)r¿  r¿  r¿  r  c                 ó¶   — d}t          d| j        ¬¦  «        } || | ||d¬¦  «        }t          |d         d¦  «         |d         } t          || |¬¦  «         dS )	zg
    This test implements the example found in the NAG manual,
    f08qfc, f08qtc, f08qgc, f08quc.
    r  r  r¸   r   )Úwantqr�   r£  N)r'   r1   r   r   )r‹  ÚifstÚilstÚexpectr/  r  rú  s          r3   Útest_trexc_NAGr    so   € ð< €DÝ˜W¨A¬GÐ4Ñ4Ô4€EàˆU�1�a˜˜t¨1Ð-Ñ-Ô-€FÝ�˜”˜QÑÔÐàˆqŒ	€AÝ�F˜A DÐ)Ñ)Ô)Ð)Ð)Ð)r5   c                 óª  — t           j                             d¦  «        }t          j        | ¦  «        j        dz  }d}t          ||g| |¬¦  «        }t          ||g| |¬¦  «        }t          d| ¬¦  «        \  }} |d„ ||dd¬	¦  «        }t          |d
         d¦  «         |d         }	|d         }
|d         }|d         }|	d         |
d         z  }|	d         |
d         z  }| t          v rJt          |	t          j
        |	¦  «        d|¬¦  «         t          |
t          j
        |
¦  «        d|¬¦  «         t          ||	z  |                     ¦   «         j        z  |d|¬¦  «         t          ||
z  |                     ¦   «         j        z  |d|¬¦  «          ||	|
||dd¦  «        }t          |d
         d¦  «         |d         }	|d         }
|d         }|d         }| t          v rJt          |	t          j
        |	¦  «        d|¬¦  «         t          |
t          j
        |
¦  «        d|¬¦  «         t          ||	z  |                     ¦   «         j        z  |d|¬¦  «         t          ||
z  |                     ¦   «         j        z  |d|¬¦  «         t          |	d         |
d         z  |d|¬¦  «         t          |	d         |
d         z  |d|¬¦  «         d S )Nr´   r-  rv   rô  )ÚggesÚtgexcr¸   c                 ó   — d S r   r¥   r
  s    r3   rØ  z!test_gges_tgexc.<locals>.<lambda>J  r  r5   F©r)  Úoverwrite_br�   r   rP   r¾  rH  r�   rc  rO  rV   rQ   rR   rã  r  )r1   r2   r/  rÚ   ra   r‡   r  r  rú  rî   r‹  r�  rK  Úd1r  s                  r3   Útest_gges_tgexcr$  ?  sÉ  € å
Œ)×
Ò
 Ñ
%Ô
%€CÝŒ8�E‰?Œ?Ô˜sÑ"€Dà
€AÝ# Q¨ F°%¸SÐAÑAÔA€AÝ# Q¨ F°%¸SÐAÑAÔA€Aå"Ð#4¸EÐBÑBÔB�K€Dˆ%àˆT�.�. ! Q°EÀuÐMÑMÔM€FÝ�˜”˜QÑÔÐàˆqŒ	€AØˆqŒ	€AØˆrŒ
€AØˆrŒ
€Aà	
ˆ4Œ�1�T”7Ñ	€BØ	
ˆ4Œ�1�T”7Ñ	€Bà•ÐÐÝ˜�2œ7 1™:œ:¨A°DÐ9Ñ9Ô9Ð9Ý˜�2œ7 1™:œ:¨A°DÐ9Ñ9Ô9Ð9å�A˜‘E˜AŸFšF™HœHœJÑ&¨°¸Ð=Ñ=Ô=Ð=Ý�A˜‘E˜AŸFšF™HœHœJÑ&¨°¸Ð=Ñ=Ô=Ð=àˆU�1�a˜˜A˜q !Ñ$Ô$€FÝ�˜”˜QÑÔÐàˆqŒ	€AØˆqŒ	€AØˆqŒ	€AØˆqŒ	€Aà•ÐÐÝ˜�2œ7 1™:œ:¨A°DÐ9Ñ9Ô9Ð9Ý˜�2œ7 1™:œ:¨A°DÐ9Ñ9Ô9Ð9å�A˜‘E˜AŸFšF™HœHœJÑ&¨°¸Ð=Ñ=Ô=Ð=Ý�A˜‘E˜AŸFšF™HœHœJÑ&¨°¸Ð=Ñ=Ô=Ð=å�A�d”G˜a œgÑ% r°¸Ð=Ñ=Ô=Ð=Ý�A�d”G˜a œgÑ% r°¸Ð=Ñ=Ô=Ð=Ð=Ð=r5   c                 óô  — t           j                             d¦  «        }t          j        | ¦  «        j        dz  }d}t          ||g| |¬¦  «        }t          d| ¬¦  «        \  }}} |d„ |d¬	¦  «        }t          |d
         d¦  «         |d         }	|d         }
|	d         }| t          v r%t          |	t          j
        |	¦  «        d|¬¦  «         t          |
|	z  |
                     ¦   «         j        z  |d|¬¦  «         t          j        |¦  «        }d|d<   t          |||	¦  «        }| t          v r |||	|
|¬¦  «        }n |||	|
||d         ¬¦  «        }t          |d
         d¦  «         |d         }	|d         }
| t          v r%t          |	t          j
        |	¦  «        d|¬¦  «         t          |
|	z  |
                     ¦   «         j        z  |d|¬¦  «         t          |	d         |d|¬¦  «         d S )Nr´   r-  rv   rô  )r  ÚtrsenÚtrsen_lworkr¸   c                 ó   — d S r   r¥   r
  s    r3   rØ  z!test_gees_trsen.<locals>.<lambda>z  r  r5   FrÈ  r�   r   rH  rc  rO  rP   rU   r¹   ©rº   Úliworkr�   ©r7   r  r^  rÖ   r×   r4   r'   r   r.   r   r   r¶  ry   r   r"   )r1   r2   r/  rÚ   ra   r  r&  r'  rú  r‹  rK  r  Úselectrº   s                 r3   Útest_gees_trsenr-  o  s  € å
Œ)×
Ò
 Ñ
%Ô
%€CÝŒ8�E‰?Œ?Ô˜sÑ"€Dà
€AÝ# Q¨ F°%¸SÐAÑAÔA€Aå/Ø(°ð 7ñ  7ô  7Ñ€Dˆ%�ð ˆT�.�. !°Ð7Ñ7Ô7€FÝ�˜”˜QÑÔÐàˆqŒ	€AØˆrŒ
€Aà	
ˆ4Œ€Bà•ÐÐÝ˜�2œ7 1™:œ:¨A°DÐ9Ñ9Ô9Ð9å�A˜‘E˜AŸFšF™HœHœJÑ&¨°¸Ð=Ñ=Ô=Ð=åŒX�a‰[Œ[€FØ€Fˆ1�Iå˜;¨°Ñ2Ô2€Eà•ÐÐØ��v˜q !¨5Ð1Ñ1Ô1ˆˆà��v˜q !¨5¸¸q¼ÐBÑBÔBˆÝ�˜”˜QÑÔÐàˆqŒ	€AØˆqŒ	€Aà•ÐÐÝ˜�2œ7 1™:œ:¨A°DÐ9Ñ9Ô9Ð9å�A˜‘E˜AŸFšF™HœHœJÑ&¨°¸Ð=Ñ=Ô=Ð=å�A�d”G˜R a¨dÐ3Ñ3Ô3Ð3Ð3Ð3r5   z*t, q, expect, select, expect_s, expect_sep)g/Ý$�•é?g“©‚QI½¿gú~j¼t“x?gŒJê4¡?)rÏ  ç5ï8EGr¹¿gGrùé·Ï?gyX¨5Í;Ö?)rÏ  gÉå?¤ß¾ä¿r.  gtµûËîÉ?)rÏ  rÏ  rÏ  gµ¦yÇ¹¿)gØ�sF”öä?g_˜LŒº?g®GázÖ?gUÁ¨¤N@å?)goð…ÉTÁà?g¾0™*•â¿g»'µ¦ã¿gz6«>W»¿)g¸¯çŒ(á¿g&äƒžÍªÓ¿gbX9´ÈÒ¿g-!ôlVç?)g·bÙ=y¸?gÛŠýe÷äç?r  gï8EGrù¿?)r  gÍÌÌÌÌÌÜ?gìQ¸…ëÁ¿gÃõ(\�ÂÅ¿)g
×£p=
·?gìQ¸…ë±?rí  r  )g)\�Âõ(Ü¿g…ëQ¸Õ¿g¸…ëQ¸ž¿gÃõ(\�ÂÅ?)rí  g{®GázÔ¿g¤p=
×£À¿g)\�Âõ(¼?)rP   r   r   rP   g      ü?gÃõ(\�Â	@)yq¬‹Ûh ÀäÉåÿÀyfˆc]ÜF×?õ¹ÚŠýe×¿yªñÒMbÈ¿Â&S£Þ?yé&1¬ì?äÉå?Ð¿)r¿  y      À?5^ºI @y�äòÒoŸ¿¾0™*ç¿yZd;ßOÍ¿‘~û:pÎÀ?)r¿  r¿  yx$(þ@4€·@‚âï¿yÀ[ Añí?¥½Á&á?)r¿  r¿  r¿  y?ÆÜµ@�St$—ÿÀ)y?ÆÜµê¿½R–!ŽuÁ¿y2U0*©°¿ëâ6À[Ø?yV-²Ñ?Ù=yX¨µ¿y†8ÖÅm4°?¡ø1æ®%Ì¿)y�St$—ÿ°?­ú\mÅþÒ¿yƒÀÊ¡EÎ?øSã¥›Äà?y‘~û:pÎâ¿	ŠcîÚ¿yÇK7‰A`µ?À[ AñË?)yû:pÎˆ¢¿ú~j¼t“Ô¿yÌH¿}Ô?Á9#J{ƒá¿y’ËH¿}­?	ŠcîZâ¿yÔ+eâXw?à-� øÙ¿)y"ýöuàœ�?	ŠcîÒ?y?ÆÜÕ¿©¤N@a³¿yR¸…ëQÈ¿{®GázÄ¿yh"lxz¥ê?EGrùéÇ¿)y4¢´7øÂÀÓÞà“)ÀyS–!ŽuqÀF%uš@yµ¦yÇÕ¿Gx$(ð?y3Ä±.n£ô?°rh‘í|ë¿)yvàœ¥½Õ?¦
F%uø¿yÃdª`TRø?I�€&Â†Û¿yÁ¨¤N@þ?ö—Ý“‡…Ày4€·@‚â
@	ž^)Ëä?)y³êsµ{
@ Òo_ÎÀy§èH.ÿ@|ò°Pkš@yí¾0™*ì?*:’ËHñ¿y]mÅþ²{ä?®Gáz®÷¿)y)í¾0™ñ¿[±¿ìž<ê?yI.ÿ!ýöü?¦›Ä °rù¿yq¬‹Ûh 
@õÛ×�sFõ?y�1w-!ù?Üh o�„ÀgR¸…ëQð?g²�ï§ÆKÇ?c                 ó&  — d}d}t          d| j        ¬¦  «        \  }}	t          |	|| ¦  «        }
| j        t          v r ||| ||
¬¦  «        }n ||| ||
|
d         ¬¦  «        }t	          |d         d	¦  «         |d	         } |d         }| j        t          v r|d
         }|d         }n|d         }|d         }t          ||| z  |                     ¦   «         j        z  |¬¦  «         t          |d|z  |¬¦  «         t          |d|z  |¬¦  «         dS )zW
    This test implements the example found in the NAG manual,
    f08qgc, f08quc.
    r  r  )r&  r'  r¸   r¹   rP   r)  r�   r   rS   rT   rU   r£  N)r'   r1   r"   r.   r   r   r¶  ry   )r‹  r�  r,  r  Úexpect_sÚ
expect_sepr/  Úatol2r&  r'  rº   rú  rî   Úseps                 r3   Útest_trsen_NAGr4  �  s@  € ð` €DØ€EÝ)Ø ¨¬ð1ñ 1ô 1Ñ€Eˆ;õ ˜;¨°Ñ2Ô2€Eà„w•.Ð Ð Ø��v˜q !¨5Ð1Ñ1Ô1ˆˆà��v˜q !¨5¸¸q¼ÐBÑBÔBˆÝ�˜”˜QÑÔÐàˆqŒ	€AØˆqŒ	€AØ„w•.Ð Ð Ø�1ŒIˆØ�QŒiˆˆà�1ŒIˆØ�QŒiˆå�F˜A ™E A§F¢F¡H¤H¤JÑ.°TÐ:Ñ:Ô:Ð:Ý�H˜a !™e¨%Ð0Ñ0Ô0Ð0Ý�J  C¡¨eÐ4Ñ4Ô4Ð4Ð4Ð4r5   c                 ó*  — t           j                             d¦  «        }t          j        | ¦  «        j        dz  }d}t          ||g| |¬¦  «        }t          ||g| |¬¦  «        }t          d| ¬¦  «        \  }}} |d„ ||dd¬	¦  «        }	t          |	d
         d¦  «         |	d         }
|	d         }|	d         }|	d         }|
d         |d         z  }|
d         |d         z  }| t          v rJt          |
t          j
        |
¦  «        d|¬¦  «         t          |t          j
        |¦  «        d|¬¦  «         t          ||
z  |                     ¦   «         j        z  |d|¬¦  «         t          ||z  |                     ¦   «         j        z  |d|¬¦  «         t          j        |¦  «        }d|d<   t          |||
|¦  «        }|d         dz   |d         f} |||
||||¬¦  «        }	t          |	d
         d¦  «         |	d         }
|	d         }|	d         }|	d         }| t          v rJt          |
t          j
        |
¦  «        d|¬¦  «         t          |t          j
        |¦  «        d|¬¦  «         t          ||
z  |                     ¦   «         j        z  |d|¬¦  «         t          ||z  |                     ¦   «         j        z  |d|¬¦  «         t          |
d         |d         z  |d|¬¦  «         t          |
d         |d         z  |d|¬¦  «         d S )Nr´   r-  rv   rô  )r  ÚtgsenÚtgsen_lworkr¸   c                 ó   — d S r   r¥   r
  s    r3   rØ  z!test_gges_tgsen.<locals>.<lambda>ô  r  r5   Fr!  r�   r   rP   r¾  rH  r�   rc  rO  rU   r¹   iùÿÿÿr  rã  r+  )r1   r2   r/  rÚ   ra   r‡   r  r6  r7  rú  rî   r‹  r�  rK  r#  r  r,  rº   s                     r3   Útest_gges_tgsenr9  è  s  € å
Œ)×
Ò
 Ñ
%Ô
%€CÝŒ8�E‰?Œ?Ô˜sÑ"€Dà
€AÝ# Q¨ F°%¸SÐAÑAÔA€AÝ# Q¨ F°%¸SÐAÑAÔA€Aå/Ø(°ð 7ñ  7ô  7Ñ€Dˆ%�ð ˆT�.�. ! Q°EÀuÐMÑMÔM€FÝ�˜”˜QÑÔÐàˆqŒ	€AØˆqŒ	€AØˆrŒ
€AØˆrŒ
€Aà	
ˆ4Œ�1�T”7Ñ	€BØ	
ˆ4Œ�1�T”7Ñ	€Bà•ÐÐÝ˜�2œ7 1™:œ:¨A°DÐ9Ñ9Ô9Ð9Ý˜�2œ7 1™:œ:¨A°DÐ9Ñ9Ô9Ð9å�A˜‘E˜AŸFšF™HœHœJÑ&¨°¸Ð=Ñ=Ô=Ð=Ý�A˜‘E˜AŸFšF™HœHœJÑ&¨°¸Ð=Ñ=Ô=Ð=åŒX�a‰[Œ[€FØ€Fˆ1�Iå˜;¨°°1Ñ5Ô5€Eð �1ŒX�a‰Z˜˜qœÐ"€EàˆU�6˜1˜a  A¨UÐ3Ñ3Ô3€FÝ�˜”˜QÑÔÐàˆqŒ	€AØˆqŒ	€AØˆrŒ
€AØˆrŒ
€Aà•ÐÐÝ˜�2œ7 1™:œ:¨A°DÐ9Ñ9Ô9Ð9Ý˜�2œ7 1™:œ:¨A°DÐ9Ñ9Ô9Ð9å�A˜‘E˜AŸFšF™HœHœJÑ&¨°¸Ð=Ñ=Ô=Ð=Ý�A˜‘E˜AŸFšF™HœHœJÑ&¨°¸Ð=Ñ=Ô=Ð=å�A�d”G˜a œgÑ% r°¸Ð=Ñ=Ô=Ð=Ý�A�d”G˜a œgÑ% r°¸Ð=Ñ=Ô=Ð=Ð=Ð=r5   za, b, c, d, e, f, rans, lans)r¿   r½   r½   r¾   )rÏ  r%  r¿   r½   )rÏ  r½   r%  r½   )rÏ  rÏ  rÏ  g      @)r½   r½   r½   r½   )rÏ  rÏ  rÏ  r¿   )ç      ÀrÁ   r½   g      (@)g      "Àr¾   ç       Àr;  )r:  r¾   r;  rÂ   )ç      ÀrÁ   r  g      3@)r¾   r½   r½   r%  )rÏ  r½   r¾   r½   )rÏ  rÏ  r½   r½   )rÏ  rÏ  rÏ  r¾   )r½   r½   r½   r¾   )rÏ  r½   r¿   r½   )rÏ  rÏ  rÏ  r½   )r<  rÀ   rÏ  rÁ   )r  r½   g       ÀrÏ  )rõ  r¾   ç      ÀrÀ   )r=  r¾   rÏ  rÀ   )rõ  r¾   rõ  rõ  )rõ  r½   r%  r½   )rõ  r½   rõ  r¿   )r¿   rõ  r½   rõ  )r½   r%  rõ  r½   )rõ  r½   r¾   rõ  )r½   rõ  r½   r½   c	                 ó|  — d}	t          d|¬¦  «        }
 |
| |||||¦  «        \  }}}}}t          |d¦  «         t          |ddt          j        |¦  «        j        dz  d¬¦  «         t          |d	dt          j        |¦  «        j        dz  d
¬¦  «         t          |||	d¬¦  «         t          |||	d¬¦  «         d S )Nr  Útgsylr¸   r   r½   r-  zSCALE must be 1.0©rÊ   r/  r-  rÏ  zDIF must be nearly 0zSolution for R is incorrect)r/  r-  zSolution for L is incorrect)r'   r   r   r7   rÖ   r×   )ra   r‡   rˆ   rp   rÔ  rd   ÚransÚlansr1   r/  r?  ÚroutÚloutr\   Údifri   s                   r3   Útest_tgsyl_NAGrF  !  sþ   € ðH €Då˜g¨eÐ4Ñ4Ô4€EØ#( 5¨¨A¨q°!°Q¸Ñ#:Ô#:Ñ €Dˆ$��s˜Då��qÑÔÐÝ�E˜3 Q­R¬X°e©_¬_Ô-@ÀÑ-DØ/ð1ñ 1ô 1ð 1å�C˜ 1­2¬8°E©?¬?Ô+>¸sÑ+BØ2ð4ñ 4ô 4ð 4å�D˜$ TØ9ð;ñ ;ô ;ð ;å�D˜$ TØ9ð;ñ ;ô ;ð ;ð ;ð ;r5   r‰   )rT  ry   Úijob)r   rP   rQ   rR   rS   c           
      óx  — | t           j        k    rdnd}t           j                             d¦  «        }d\  }}t	          |                     dd||g¦  «                             | ¦  «        |                     dd||g¦  «                             | ¦  «        d¬¦  «        ^}}}	t	          |                     dd||g¦  «                             | ¦  «        |                     dd||g¦  «                             | ¦  «        d¬¦  «        ^}
}}	|                     d	d
||g¦  «                             | ¦  «        }|                     d	d
||g¦  «                             | ¦  «        }t          d| ¬¦  «        } |||
||||||¬¦  «        \  }}}}}|dk    s
J d¦   «         ‚|dk    s
J d¦   «         ‚|dk    r/t          |ddt          j	        | ¦  «        j
        dz  d¬¦  «         n|dk    s
J d¦   «         ‚|d
k    rÂ|dk    r!||z  ||
z  z
  }||z  }||z  ||z  z
  }||z  }nq|dk    rkt          j        |¦  «        |z  t          j        |¦  «        |z  z   }||z  }|t          j        |
¦  «        z  |t          j        |¦  «        z  z   }d|z  |z  }t          |||dd¬¦  «         t          |||dd¬¦  «         d S d S )Ngü©ñÒMbP?g»½×Ùß|Û=l   OElÔt/ r  iöÿÿÿrv   rê   )Úoutputr  rQ   r?  r¸   )r‰   rG  r   zINFO is non-zerorÏ  zSCALE must be non-negativer-  zDIF must be 0 for ijob =0r@  zDIF must be non-negativerT  ry   rõ  zlhs1 and rhs1 do not match)r/  rÊ   r-  zlhs2 and rhs2 do not match)r7   rÂ  r  r„  r!   Úuniformr/   r'   r   rÖ   r×   rŒ  )r1   r‰   rG  r/  r2   rÙ   rÚ   ra   rp   r?   r‡   rÔ  rˆ   rd   r?  rC  rD  r\   rE  ri   Úlhs1Úrhs1Úlhs2Úrhs2s                           r3   Ú
test_tgsylrO  U  s%  € ð
 �BœJÒ&Ð&ˆ4ˆ4¨E€DÝ
Œ)×
Ò
Ð 0Ñ
1Ô
1€CØ�D€A€qå�#—+’+˜c 2¨¨1 vÑ.Ô.×5Ò5°eÑ<Ô<Ø—+’+˜c 2¨¨1 vÑ.Ô.×5Ò5°eÑ<Ô<Øð!ñ !ô !€H€A€qˆ1õ �#—+’+˜c 2¨¨1 vÑ.Ô.×5Ò5°eÑ<Ô<Ø—+’+˜c 2¨¨1 vÑ.Ô.×5Ò5°eÑ<Ô<Øð!ñ !ô !€H€A€qˆ1ð 	�Š�B˜˜A˜q˜6Ñ"Ô"×)Ò)¨%Ñ0Ô0€AØ�Š�B˜˜A˜q˜6Ñ"Ô"×)Ò)¨%Ñ0Ô0€Aå˜g¨eÐ4Ñ4Ô4€EØ#( 5¨¨A¨q°!°Q¸Ø/4¸4ð$Añ $Aô $AÑ €Dˆ$��s˜Dð �1Š9ˆ9ˆ9Ð(‰9Œ9ˆ9Ø�CŠ<ˆ<ˆ<Ð5‰<Œ<ˆ<Øˆq‚y€yÝ˜˜S q­r¬x¸©¬Ô/BÀ3Ñ/FØ ;ð	=ñ 	=ô 	=ð 	=ð 	=ð �cŠzˆzˆzÐ5‰zŒzˆzð ˆq‚y€yØ�CŠ<ˆ<Ø�t‘8˜d Q™hÑ&ˆDØ˜‘7ˆDØ�t‘8˜d Q™hÑ&ˆDØ˜‘7ˆDˆDØ�cŠ\ˆ\Ý”< ‘?”? TÑ)­B¬L¸©O¬O¸dÑ,BÑBˆDØ˜‘7ˆDØ�"œ, q™/œ/Ñ)¨Dµ2´<À±?´?Ñ,BÑBˆDØ˜‘:˜a‘<ˆDå˜˜d¨°BØ <ð	>ñ 	>ô 	>ð 	>å˜˜d¨°BØ <ð	>ñ 	>ô 	>ð 	>ð 	>ð 	>ð €yr5   Úmtyperã  c                 óf  — | dk    r|t           v rt          j        d¦  «         t          j                             d¦  «        }d\  }}|t          v rH|                     ||f¬¦  «        |                     ||f¬¦  «        dz  z                        |¦  «        }n+|                     ||f¬¦  «                             |¦  «        }| dk    r
||j	        z   n|| 
                    ¦   «         j	        z   }|                     ||f¬¦  «                             |¦  «        }| › d�| › d	�| › d
�f}t          ||¬¦  «        \  }	}
} |
||¬¦  «        } |	||¬¦  «        \  }}}|dk    sJ ‚ ||||¬¦  «        \  }}|dk    sJ ‚t          j        |¦  «        j        }t          ||z  |d|z  |z  ¬¦  «         d S )Nr}  zhetrs not for real dtypes.l   *Mö/t|0 )rµ   rT   r  r-   r|  r}  r~  Útrsr¸   rä  r¹   r   )ra   r  r‡   r-  r£  )rÕ   rA   rB   r7   r  r„  r.   rJ  r/   ry   r¶  r'   rÖ   r×   r   )rP  r1   r  r2   rÚ   rÛ   rŒ  r‡   rI   r}  r~  rR  rº   r  r  ri   rŒ   r×   s                     r3   Útest_sy_hetrsrS  ˆ  s×  € ð �‚}€}˜¥+Ð-Ð-ÝŒÐ0Ñ1Ô1Ð1Ý
Œ)×
Ò
Ð 0Ñ
1Ô
1€CØ�G€A€tØ•ÐÐØ�[Š[˜q !˜fˆ[Ñ%Ô%¨¯ª¸!¸Q¸¨Ñ(@Ô(@ÀÑ(CÑC×KÒKÈEÑRÔRˆˆà�KŠK˜a ˜VˆKÑ$Ô$×+Ò+¨EÑ2Ô2ˆà˜D’=�=ˆˆAŒC‰ˆ a¨!¯&ª&©(¬(¬*¡n€AØ�Š˜!˜T˜ˆÑ#Ô#×*Ò*¨5Ñ1Ô1€AØˆMˆMˆM˜eÐ.Ð.Ð.°5°°°Ð=€EÝ*¨5¸Ð>Ñ>Ô>Ñ€Cˆ�CØˆI�a˜uÐ%Ñ%Ô%€EØ�c˜! 5Ð)Ñ)Ô)�O€CˆˆtØ�1Š9ˆ9ˆ9ˆ9Øˆc�C˜d aÐ(Ñ(Ô(�G€A€tØ�1Š9ˆ9ˆ9ˆ9Ý
Œ(�5‰/Œ/Ô
€CÝ�A�a‘C˜  Q¡ s¡Ð+Ñ+Ô+Ð+Ð+Ð+r5   r�   z
uplo, m, n))rW  rT   rv   )rW  rv   rv   )rJ  rv   rT   )rJ  rv   rv   c                 óÖ  — t           j                             d¦  «        }|                     ||f¬¦  «                             |¦  «        }t	          d|f¦  «        \  }}	 || |||¬¦  «        }
|dk    rt          j        |¦  «        nt          j        |¦  «        }|dk    r)t          j        t          ||¦  «        ¦  «        }d|||f<    |	| |¦  «        }t          |
|d¬¦  «         d S )	Nl   8#ìqà9í
r  )Úlantrr‘   )rM  r2  rW  rP   g�íµ ÷ÆÀ>rÉ   )
r7   r  r„  r/   r'   r   r   rÐ  rb  r   )r   rM  rÙ   rÚ   r2  r1   r2   rŒ  rU  r‘   rB  rA  r    s                r3   Ú
test_lantrrV  ¢  sç   € õ Œ)×
Ò
Ð 1Ñ
2Ô
2€CØ�
Š
˜˜A˜ˆ
ÑÔ×&Ò& uÑ-Ô-€AÝ#Ð$6¸¸Ñ=Ô=�L€Eˆ5Ø
ˆ%��a˜d¨Ð
.Ñ
.Ô
.€Cð ˜c’k�k�Œ�‰
Œ
ˆ
¥r¤w¨q¡z¤z€AØˆs‚{€{ÝŒI•c˜!˜Q‘i”iÑ Ô ˆØˆˆ!ˆQˆ$‰Ø
ˆ%��a‰.Œ.€Cå�C˜ 4Ð(Ñ(Ô(Ð(Ð(Ð(r5   r+  )šÚ	functoolsr   r  Únumpy.testingr   r   r   r   r   r	   rA   r
   r  Únumpyr7   r   r   r   r   r   r   r   r   Únumpy.randomr   r   r   Úscipy.linalgr   r9   r   r   r   r   r   r   r   r   r   r    r!   Úscipy.linalg.lapackr"   Úscipy.statsr#   r$   Úscipy.sparseÚsparser_  Úscipy.__config__r%   ÚImportErrorr&   r8   r'   Úscipy.linalg.blasr(   rÂ  r8  rÕ   rÃ  Ú
complex128r.   rÔ   Úblas_providerÚblas_versionr4   rL   rN   r§   r²   rx  ry  r  r  r  r#  rE  r“  rŸ  r­  r¼  rÄ  rÆ  rÜ  rû  r
  r  r  r)  r2  rB  rU  r^  rd  rk  rp  rx  r‚  r„  r¥  r©  r²  r»  ÚskipifrÄ  rË  r5  rá  rè  rë  rƒ   rò  r
  r$  r'  r*  ré  r2  r4  r6  rD  rL  rT  rY  r[  r]  ra  rr  ru  r‡  rŒ  r•  r²  rÌ  rÎ  rÐ  rÓ  rã  rç  rë  rî  r  r  r  r$  r-  r4  r9  rF  rO  rS  rE   rV  r¥   r5   r3   ú<module>rg     s #  ðð
 Ð Ð Ð Ð Ð Ø €€€ð/ð /ð /ð /ð /ð /ð /ð /ð /ð /ð /ð /ð /ð /ð /ð /ð €€€Ø *Ð *Ð *Ð *Ð *Ð *à Ð Ð Ð ð!ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð -Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,ðFð Fð Fð Fð Fð Fð Fð Fð Fð Fð Fð Fð Fð Fð Fð Fð Fð Fð Fð Fð Fð Fð Fð Fð Fð Fð Fð Fð /Ð .Ð .Ð .Ð .Ð .Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2à Ð Ð Ð Ð Ð ðØ'Ð'Ð'Ð'Ð'Ð'Ð'øØð ð ð Ø€F€F€FðøøøðØ0Ð0Ð0Ð0Ð0Ð0Ð0øØð ð ð Ø€G€G€Gðøøøà 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,àŒz˜2œ:Ð&€Ø”, ¤Ð.€Ø	�~Ñ	%€à#Ð #€�Ø	ÐØÐ/Ô0°Ô8¸Ô@€MØÐ.Ô/°Ô7¸	ÔB€Lð*ð *ð *ðOð Oð Oð.]-ð ]-ð ]-ð ]-ð ]-ñ ]-ô ]-ð ]-ð@
ð 
ð 
ð 
ð 
ñ 
ô 
ð 
ðp9ð p9ð p9ð p9ð p9ñ p9ô p9ð p9ðf „×Ò˜ &Ñ)Ô)Ø„×Ò˜Ð"BÐ"BÐ"BÑCÔCðð ñ DÔCñ *Ô)ðð-ð -ð -ð -ð -ñ -ô -ð -ð*Cð Cð Cð Cð Cñ Cô Cð Cð(;ð ;ð ;ð ;ð ;ñ ;ô ;ð ;ð@J/ð J/ð J/ð J/ð J/ñ J/ô J/ð J/ð\ „×Ò˜ &Ñ)Ô)Ø„×Ò˜   Ñ1Ô1Ø„×Ò˜ # s Ñ,Ô,Ø„×Ò˜ # s Ñ,Ô,Ø„×Ò˜˜q "˜gÑ&Ô&ð )ð  )ñ 'Ô&ñ -Ô,ñ -Ô,ñ 2Ô1ñ *Ô)ð
 )ðF)ð )ð )ð.'4ð '4ð '4ðT'6ð '6ð '6ðT4ð 4ð 4ð8AGð AGð AGð AGð AGñ AGô AGð AGðHLð Lð Lð Lð Lñ Lô Lð Lð^.?ð .?ð .?ðbAð Að Að63ð 3ð 3ð>1ð 1ð 1ð>Fð Fð FðD&Dð &Dð &DðR7!ð 7!ð 7!ðt7:ð 7:ð 7:ðt&8ð &8ð &8ðR3ð 3ð 3ð6Dð Dð Dð@"Dð "Dð "DðJDð Dð Dð4 Lð  Lð  LðFUKð UKð UKð UKð UKñ UKô UKð UKðp%Pð %Pð %PðP%Pð %Pð %PðP*/ð */ð */ðZ<ð <ð <ð „×Ò�DØKð ñ Mô MðKð KñMô MðKð$:ð :ð :ð> „×Ò˜ &¨&Ð!1Ñ2Ô2Ø„×Ò˜ +Ñ.Ô.Ø„×Ò˜   q¡¤Ñ*Ô*Ø„×Ò˜   q¡¤Ñ*Ô*Ø„×Ò˜   q¡¤Ñ*Ô*Ø„×Ò˜ ! Q Ñ(Ô(Ø„×Ò˜ ! Q Ñ(Ô(ñb&ð b&ð b&ñ )Ô(ñ )Ô(ñ +Ô*ñ +Ô*ñ +Ô*ñ /Ô.ñ 3Ô2ðb&ðJ „×Ò˜ +Ñ.Ô.ð ð  ñ /Ô.ð ðF „×Ò˜(Ø! 1˜+Ø! 1˜+Ø! 1˜+Ø! 1˜+Ø! 1˜+Ø! 1˜+ð'ñô ð1ð 1ñô ð1ð „×ÒÐ9Ø#˜2œ8Ð%?Ð%?Ð%?Ø%?Ð%?Ð%?Ø%@Ð%@Ð%@Ø%=Ð%=Ð%=Ø%?Ð%?Ð%?Ø%?Ð%?Ð%?ð%Añ Bô Bð $˜2œ8Ð$DÐ$DÐ$DÑEÔEØ#˜2œ8Ð%GÐ%GÐ%GØ%FÐ%FÐ%FØ%EÐ%EÐ%EØ%HÐ%HÐ%HØ%GÐ%GÐ%GØ%GÐ%GÐ%Gð%Iñ Jô Jð $˜2œ8Ð%GÐ%GÐ%GØ%HÐ%HÐ%HØ%FÐ%FÐ%FØ%GÐ%GÐ%Gð%Iñ Jô JðKð LñMô Mð$,ð ,ñ%Mô Mð$,ð  „×Ò˜ &Ñ)Ô)ðXKð XKñ *Ô)ðXKðv „×ÒÐLØ#˜2œ8Ð$9Ð$9Ð$9Ñ:Ô:Ø%˜RœXÐ&@Ð&@Ð&@ÑAÔAØ%˜RœXÐ&;Ð&;Ð&;Ñ<Ô<Ø%˜RœXÐ&9Ð&9Ð&9Ñ:Ô:Ø%˜RœXÐ&BÐ&BÐ&BÑCÔCØ%˜RœX l l lÑ3Ô3Ø%˜RœX o o oÑ6Ô6Ø%˜RœX¨¨S zØ(,¨d |Ø(+¨T {Ø(+¨U |Ø(+¨T {ð	')ñ *ô *ð &˜RœX¨¨A wØ()¨2 wØ()¨2 wØ(*¨B xØ(*¨A wð	'0ñ 1ô 1ð2ð& &˜RœXÐ&GÐ&GÐ&GÑHÔHØ%˜RœXð '4ð '4ð '4ñ 5ô 5ð &˜RœXÐ&FÐ&FÐ&FÑGÔGà%˜RœXð 'Að 'Að 'Añ Bô Bà%˜RœXð ':ð ':ð ':ñ ;ô ;à%˜RœXÐ&?Ð&?Ð&?Ñ@Ô@Ø%˜RœX o o oÑ6Ô6Ø%˜RœX¨°*Ð'=Ø(3°\Ð'BØ(4°iÐ'@Ø(3°[Ð'AØ(1°:Ð'>ð	'@ñ Aô Að
 &˜RœX¨°Ð'7Ø(.°Ð'7Ø(.°Ð'8Ø(/°Ð'8Ø(.°Ð'7ð	'9ñ :ô :ð%ð%)ñ* ô * ðV ð  ñW* ô * ðV ð( „×Ò˜ &Ñ)Ô)Ø„×Ò˜   Ñ1Ô1Ø„×Ò˜˜q "˜gÑ&Ô&ð)ð )ñ 'Ô&ñ 2Ô1ñ *Ô)ð)ð2 „×Ò˜ &Ñ)Ô)Ø„×Ò˜Ð"BÐ"BÐ"BÑCÔCðð ñ DÔCñ *Ô)ðð „×Ò˜Ø˜˜[¨;Ñ6¸Ñ?Ô?ñAô Að,&ð ,&ñAô Að,&ð^ „×Ò˜Ø˜˜[¨;Ñ6¸Ñ?Ô?ñAô Að0ð 0ñAô Að0ð „×Ò˜Ø˜˜[¨;Ñ6¸Ñ?Ô?ñAô AðMð MñAô AðMð& „×ÒÐAØ"˜"œ(Ð#5Ð#5Ð#5Ñ6Ô6Ø"˜"œ( ? ? ?Ñ3Ô3Ø"˜"œ(Ð#4Ð#4Ð#4Ñ5Ô5Ø"˜"œ(Ð#8Ð#8Ð#8Ñ9Ô9Ø"˜"œ( Q¨ G¨a°¨V°a¸°V¸bÀ"¸XØ%&¨ Gð$-ñ .ô .à"˜"œ( S¨! H¨q°"¨g¸¸2°wÀÀQÀØ%&¨ Gð$-ñ .ô .ðð #˜"œ(Ð#3Ð#3Ð#3Ñ4Ô4Ø"˜"œ(Ð#>Ð#>Ð#>Ñ?Ô?Ø"˜"œ( = = =Ñ1Ô1Ø"˜"œ(Ð#5Ð#5Ð#5Ñ6Ô6Ø"˜"œ( V¨WÐ$5¸ÀÐ7GØ%+¨VÐ$4°v¸vÐ6Fð$Hñ Iô Ià"˜"œ( T¨5 M°D¸$°<À$ÈÀØ%)¨4 Lð$2ñ 3ô 3ð	ðEñ ô ð&1ð 1ñ'ô ð&1ð.ð ð ð@ „×ÒÐ)Ø˜˜V [°;Ñ%>Ñ?Ô?ñAô Aà„×Ò˜ e e¨A¡h¤hÑ/Ô/ð&ð &ñ 0Ô/ñAô Að&ð< „×ÒÐ)Ø˜˜V [°;Ñ%>Ñ?Ô?ñAô Aà„×Ò˜ e e¨A¡h¤hÑ/Ô/ð	ð 	ñ 0Ô/ñAô Að	ð „×ÒÐ)Ø˜˜V [°;Ñ%>Ñ?Ô?ñAô Aà„×Ò˜ e e¨A¡h¤hÑ/Ô/ð	Nð 	Nñ 0Ô/ñAô Að	Nð „×ÒÐ)Ø˜˜V [°;Ñ%>Ñ?Ô?ñAô Aà„×Ò˜ e e¨A¡h¤hÑ/Ô/ð	ð 	ñ 0Ô/ñAô Að	ð „×ÒÐ:ØØ#˜2œ8Ð$;Ð$;Ð$;Ñ<Ô<Ø#˜2œ8Ð$5Ð$5Ð$5Ñ6Ô6Ø#˜2œ8Ð$DÐ$DÐ$DÑEÔEØ#˜2œ8Ð%FÐ%FÐ%FØ%GÐ%GÐ%GØ%GÐ%GÐ%GØ%FÐ%FÐ%Fð%Hñ Iô Ið	Jð ñ	ô 	ð=ð =ñ	ô 	ð=ð „×Ò˜ &Ñ)Ô)Ø„×Ò˜Ð(@Ð(@Ð(@ÑAÔAð=$ð =$ñ BÔAñ *Ô)ð=$ð@.ð .ð .ð „×Ò˜Ð#>Ð#>Ð#>Ñ?Ô?Ø„×Ò˜  t Ñ-Ô-ð	Lð 	Lñ .Ô-ñ @Ô?ð	Lð „×Ò˜ D¨% =Ñ1Ô1Ø„×Ò˜  t Ñ-Ô-ð
Lð 
Lñ .Ô-ñ 2Ô1ð
Lð „×Ò˜ 6Ñ*Ô*Ø„×Ò˜Ð0Ð0Ð0Ñ1Ô1ð	'ð 	'ñ 2Ô1ñ +Ô*ð	'ð „×Ò˜ 6Ñ*Ô*ð+Cð +Cñ +Ô*ð+Cð\ „×Ò˜ &Ñ)Ô)Ø„×Ò˜¨¨t }Ñ5Ô5Ø„×Ò˜ # s Ñ,Ô,ð7@ð 7@ñ -Ô,ñ 6Ô5ñ *Ô)ð7@ðt „×Ò˜ &Ñ)Ô)Ø„×Ò˜¨¨1 vÑ.Ô.Ø„×Ò˜ # s Ñ,Ô,ð-Bð -Bñ -Ô,ñ /Ô.ñ *Ô)ð-Bð` „×Ò˜ &¨¡(Ñ+Ô+Ø„×Ò˜¨¨t }Ñ5Ô5Ø„×Ò˜ # s Ñ,Ô,ð-<ð -<ñ -Ô,ñ 6Ô5ñ ,Ô+ð-<ð` „×Ò˜Ø#˜2œ8Ð$9Ð$9Ð$9Ñ:Ô:Ø#˜2œ8Ð$?Ð$?Ð$?Ñ@Ô@Ø#˜2œ8Ð$9Ð$9Ð$9Ñ:Ô:Ø#˜2œ8 c¨3 Z°#°t°¸sÀD¸kØ&(¨% [°3¸°+ð%?ñ @ô @à#˜2œ8 b¨! W¨q°"¨g¸¸2°wÀÀRÀØ&(¨! Wð%.ñ /ô /ð0ð $˜2œ8Ð$EÐ$EÐ$EÑFÔFØ#˜2œ8ð %>ð %>ð %>ñ ?ô ?à#˜2œ8Ð$DÐ$DÐ$DÑEÔEØ#˜2œ8 h°
Ð%;Ø&1°;Ð%?Ø&2°HÐ%=Ø&1°;Ð%?Ø&/°Ð%<ð	%>ñ ?ô ?ð
 $˜2œ8 f¨fÐ%5¸ÀÐ7GØ&,¨gÐ%6¸À&Ð8IØ&,¨fÐ%5ð%7ñ 8ô 8ð9ð:ñ;ô ;ð()ð )ñ);ô ;ð()ð „×ÒÐ)¨3¨3¨v°{Ø1<ñ8=ñ ,>ô ,>ñ ?ô ?à„×ÒÐ,ØðNð NðOð Ð ?Ð ?Ð@ðBñCô Cð
1:ð 1:ñCô Cñ?ô ?ð1:ðh „×ÒÐ)¨3¨3¨v°{Ø1<ñ8=ñ ,>ô ,>ñ ?ô ?à„×ÒÐ,ØðNð NðOð Ð ?Ð ?Ð@ðBñCô Cð
Kð KñCô Cñ?ô ?ðKð( „×ÒÐ)¨3¨3¨v°{Ø1<ñ8=ñ ,>ô ,>ñ ?ô ?à„×ÒÐ,ØðNð NðOð Ð ?Ð ?Ð@ðBñCô Cð
"ð "ñCô Cñ?ô ?ð"ðJ „×Ò™Ø#˜2œ8Ð$6Ð$6Ð$6Ñ7Ô7Ø#˜2œ8 O O OÑ4Ô4Ø#˜2œ8 a¨ W¨q°!¨f°q¸!°f¸rÀ2¸hØ&'¨ Wð%.ñ /ô /à#˜2œ8 c¨1 X°°2¨w¸¸B¸Ø&(¨! W¨q°"¨gð%7ñ 8ô 8ð	9ð $˜2œ8Ð$4Ð$4Ð$4Ñ5Ô5Ø#˜2œ8Ð$?Ð$?Ð$?Ñ@Ô@Ø#˜2œ8 h°	Ð%:Ø&.°Ð%9Ø&.°Ð%9Ø&.°Ð%9ð%;ñ <ô <ð $˜2œ8 f¨gÐ%6Ø&,¨fÐ%5Ø&,¨fÐ%5Ø&,¨fÐ%5ð%7ñ 8ô 8ð	9ð:ñ;ô ;ñ"
*ð 
*ñ#;ô ;ð"
*ð „×Ò™ 5¨$ -Ñ0Ô0Ø„×Ò˜ &Ñ)Ô)ñ+=ð +=ñ *Ô)ñ 1Ô0ð+=ð\ „×Ò˜ &Ñ)Ô)ñ!4ð !4ñ *Ô)ð!4ðH „×ÒÙØ€b„hÐ)Ñ)Ð)Ø)Ñ)Ð)Ø*Ñ*Ð*Ø)Ñ)Ð)ð+ñ ,ô ,ð €b„hÐ2Ñ2Ð2Ø1Ñ1Ð1Ø1Ñ1Ð1Ø1Ñ1Ð1ð3ñ 4ô 4ð ˆðð €b„hÐJÑJÐJØKÑKÐKØHÑHÐHØHÑHÐHðJñ Kô Kð €b„hð 5ñ 5ð 5ð5ñ 5ð 5ð5ñ 5ð 5ð6ñ 6ð 6ð7ñ 8ô 8ð ˆððñô ñ0*ð *ñ1ô ð0*ð  „×Ò˜ &Ñ)Ô)ñ,>ð ,>ñ *Ô)ð,>ð^ „×Ò˜ &Ñ)Ô)ñ*4ð *4ñ *Ô)ð*4ðZ „×ÒÙ0Ø€b„hÐ1Ñ1Ð1Ø1Ñ1Ð1Ø2Ñ2Ð2Ø1Ñ1Ð1ð3ñ 4ô 4ð €b„hÐ0Ñ0Ð0Ø3Ñ3Ð3Ø3Ñ3Ð3Ø1Ñ1Ð1ð3ñ 4ô 4ð €b„hÐ2Ñ2Ð2Ø1Ñ1Ð1Ø3Ñ3Ð3Ø2Ñ2Ð2ð4ñ 5ô 5ð €b„hˆ|‰|ˆ|ÑÔÙ‘ðð €b„hð 6ñ 6ð 6ð7ñ 7ð 7ð5ñ 5ð 5ð5ñ 5ð 5ð6ñ 7ô 7ð €b„hð 5ñ 5ð 5ð6ñ 6ð 6ð5ñ 5ð 5ð6ñ 6ð 6ð7ñ 8ô 8ð €b„hð 6ñ 6ð 6ð5ñ 5ð 5ð5ñ 5ð 5ð5ñ 5ð 5ð6ñ 7ô 7ð €b„hˆ|‰|ˆ|ÑÔÙ‘ð3ð'ñ)ô )ñT5ð 5ñU)ô )ðT5ðB „×Ò˜ &Ñ)Ô)ñ5>ð 5>ñ *Ô)ð5>ðp „×ÒÙ"Ø€b„hÐ(Ñ(Ð(Ø(Ñ(Ð(Ø(Ñ(Ð(Ø(Ñ(Ð(ð*ñ +ô +ð €b„hÐ(Ñ(Ð(Ø(Ñ(Ð(Ø(Ñ(Ð(Ø(Ñ(Ð(ð*ñ +ô +ð €b„hÐ(Ñ(Ð(Ø(Ñ(Ð(Ø(Ñ(Ð(Ø(Ñ(Ð(ð*ñ +ô +ð €b„hÐ(Ñ(Ð(Ø(Ñ(Ð(Ø(Ñ(Ð(Ø(Ñ(Ð(ð*ñ +ô +ð €b„hÐ(Ñ(Ð(Ø(Ñ(Ð(Ø(Ñ(Ð(Ø(Ñ(Ð(ð*ñ +ô +ð €b„hÐ(Ñ(Ð(Ø(Ñ(Ð(Ø(Ñ(Ð(Ø(Ñ(Ð(ð*ñ +ô +ð €b„hÐ(Ñ(Ð(Ø(Ñ(Ð(Ø(Ñ(Ð(Ø(Ñ(Ð(ð*ñ +ô +ð €b„hÐ(Ñ(Ð(Ø(Ñ(Ð(Ø(Ñ(Ð(Ø(Ñ(Ð(ð*ñ +ô +ð9,ð -ñ!.ô !.ðD „×Ò˜ +Ñ.Ô.ñ;ð ;ñ /Ô.ñE!.ô !.ðF;ð" „×Ò˜ +Ñ.Ô.Ø„×Ò™¡*Ñ-Ô-Ø„×Ò™ ¡ Ñ1Ô1ñ->ð ->ñ 2Ô1ñ .Ô-ñ /Ô.ð->ð` „×Ò™ 4¨ ,Ñ/Ô/Ø„×Ò˜ &Ñ)Ô)Ø„×Ò™¡&Ñ)Ô)ñ,ð ,ñ *Ô)ñ *Ô)ñ 0Ô/ð,ð. „×Ò˜  ¡mÑ!4Ô!4Ñ5Ô5Ø„×Ò™ð (Eñ (Eð (Eñ Fô Fà„×Ò˜ # s Ñ,Ô,Ø„×Ò˜ &Ñ)Ô)ñ)ð )ñ *Ô)ñ -Ô,ñFô Fñ 6Ô5ð
)ð )ð )s$   Á8A? Á?B	ÂB	ÂB ÂBÂB