§
    fŠtju ã                   óž-  — 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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( d d	l)m*Z*m+Z+ d dl,m-Z. 	 d d
lm/Z0 n# e1$ r dZ0Y nw xY wd dl'm2Z2 d dl3m4Z4 d dl5m6Z6 dxZ7Z8e6d         d         d         Z7e6d         d         d         Z8ej9        ej:        gZ;ej<        ej=        gZ>e;e>z   Z?d„ Z@d„ ZAd„ ZB G d„ d¦  «        ZC G d„ d¦  «        ZD G d„ d¦  «        ZEe
jF         G                    de?¦  «        e
jF         G                    dg d¢¦  «        d„ ¦   «         ¦   «         ZH G d„ d ¦  «        ZI G d!„ d"¦  «        ZJ G d#„ d$¦  «        ZK G d%„ d&¦  «        ZLe
jF         G                    de?¦  «        e
jF         G                    d'g d(¢¦  «        e
jF         G                    d)d*d+g¦  «        e
jF         G                    d,d-d*g¦  «        e
jF         G                    d.d/d0g¦  «        d1„ ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         ZMd2„ ZNd3„ ZOd4„ ZPd5„ ZQ G d6„ d7¦  «        ZR G d8„ d9¦  «        ZSd:„ ZTd;„ ZUd<„ ZVd=„ ZWd>„ ZXd?„ ZYd@„ ZZdA„ Z[dB„ Z\dC„ Z]dD„ Z^dE„ Z_dF„ Z`dG„ Za G dH„ dI¦  «        ZbdJ„ ZcdK„ ZddL„ ZedM„ Zfe
jF         g                    dNdO¬P¦  «        dQ„ ¦   «         ZhdR„ Zie
jF         G                    dSdTdUg¦  «        e
jF         G                    de;¦  «        e
jF         G                    dV ejdW¦  «        ¦  «        e
jF         G                    dX ejdY¦  «        ¦  «        e
jF         G                    dZ ejdY¦  «        ¦  «        e
jF         G                    d[d d\g¦  «        e
jF         G                    d]d d\g¦  «        �dhd^„¦   «         ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         Zke
jF         G                    de;¦  «        d_„ ¦   «         Zle
jF         G                    d`dVdaidXdaidZdaid[daidbdaid]daif¦  «        dc„ ¦   «         Zme
jF         G                    dd ejn        g de¢g df¢g dg¢g dh¢g di¢g dj¢g¦  «         ejn        g dk¢¦  «         ejn        g dl¢g dm¢g dn¢g do¢g dp¢g dq¢g¦  «         ejn        g dr¢g ds¢g dt¢g du¢g¦  «        fg¦  «        dv„ ¦   «         Zoe
jF         G                    de?¦  «        dw„ ¦   «         Zpe
jF         G                    dx ejn        g dy¢¦  «         ejn        g dz¢¦  «         ejn        g d{¢¦  «         ejn        g d|¢¦  «         ejn        g d}¢¦  «         ejn        g d~¢¦  «         ejn        g d¢¦  «         ejn        d€d�gd‚dƒgd„d…gd†d‡gd€dˆgg¦  «         ejn        d‰dŠgd‹d‰gd/dŒgd‰d�gdŒd\gg¦  «        f	 ejn        g dŽ¢¦  «         ejn        g d�¢¦  «         ejn        g d�¢¦  «         ejn        g d‘¢¦  «         ejn        g d’¢¦  «         ejn        g d“¢¦  «         ejn        g d¢¦  «         ejn        d”d•gd–d—gd˜d™gdšd›gdœd�gg¦  «         ejn        dždŸgd d¡gd¢d£gd¤d¥gd¦d§gg¦  «        f	g¦  «        d¨„ ¦   «         Zqe
jF         G                    de?¦  «        e
jF         G                    d'g d©¢¦  «        e
jF         G                    d.d/d0g¦  «        dª„ ¦   «         ¦   «         ¦   «         Zre
jF         G                    de?¦  «        e
jF         G                    dg d«¢¦  «        d¬„ ¦   «         ¦   «         Zse
jF         G                    d­ ete;e;z   e?¦  «        ¦  «        d®„ ¦   «         Zue
jF         G                    d­ ete;e;z   e?¦  «        ¦  «        d¯„ ¦   «         Zve
jF         G                    d­ ete;e;z   e?¦  «        ¦  «        d°„ ¦   «         Zwe
jF         G                    d± ejn        g d²¢¦  «         ejn        g d³¢¦  «         ejn        g d´¢¦  «         ejn        g dµ¢¦  «         ejn        dWd0gdadYgd¶dagd·d¸gd‹d¹gg¦  «         ejn        dºd¶gd¶d»gd\dŒgd»dWgd/d¼gg¦  «        f ejn        g d½¢¦  «         ejn        g d¾¢¦  «         ejn        g d¿¢¦  «         ejn        g dÀ¢¦  «         ejn        dÁdÂgdÃdÄgdÅdÆgdÇdÈgg¦  «         ejn        d¥dÉgdždžgdÊdÊgd¦d¥gg¦  «        fg¦  «        dË„ ¦   «         ZxdÌ„ Zye
jF         G                    dÍ ete?e;e;z   ¦  «        ¦  «        e
jF         G                    dÎ ejd/¦  «        ¦  «        dÏ„ ¦   «         ¦   «         Zze
jF         G                    dÍ ete?e;e;z   ¦  «        ¦  «        e
jF         G                    dÎ ejd/¦  «        ¦  «        dÐ„ ¦   «         ¦   «         Z{e
jF         G                    dÍ ete?e;e;z   ¦  «        ¦  «        e
jF         G                    dÎ ejd/¦  «        ¦  «        dÑ„ ¦   «         ¦   «         Z|e
jF         G                    dÍ ete?e;e;z   ¦  «        ¦  «        e
jF         G                    dÎ ejd/¦  «        ¦  «        dÒ„ ¦   «         ¦   «         Z}e
jF         G                    dÓd¶ ejn        g dÔ¢¦  «         ejn        g dÕ¢¦  «         ejn        g dÖ¢¦  «         ejn        g d×¢g dØ¢g dÙ¢g dÚ¢g¦  «        fg¦  «        dÛ„ ¦   «         Z~e
jF         G                    de?¦  «        e
jF         G                    dÜg dÝ¢¦  «        dÞ„ ¦   «         ¦   «         Zdß„ Z€e
jF         G                    dàg dá¢¦  «        e
jF         G                    dâdãdäg¦  «        då„ ¦   «         ¦   «         Z�e
jF         G                    dàdædçg¦  «        e
jF         G                    dâdãdäg¦  «        dè„ ¦   «         ¦   «         Z‚e
jF         G                    dée?¦  «        e
jF         G                    dêg dë¢¦  «        dì„ ¦   «         ¦   «         Zƒe
jF         G                    dée?¦  «        dí„ ¦   «         Z„e
jF         G                    de?¦  «        e
jF         G                    dîdïdNg¦  «        e
jF         G                    dðdñd-g¦  «        dò„ ¦   «         ¦   «         ¦   «         Z…e
jF         G                    de?¦  «        e
jF         G                    dîd d\g¦  «        e
jF         G                    dðdñd-g¦  «        dó„ ¦   «         ¦   «         ¦   «         Z†e
jF         G                    de?d¶z  ¦  «        e
jF         G                    dîdïdNg¦  «        e
jF         G                    dðdñd-g¦  «        dô„ ¦   «         ¦   «         ¦   «         Z‡e
jF         G                    dõ ejn        g dy¢¦  «         ejn        g dz¢¦  «         ejn        g d{¢¦  «         ejn        d€d�gd‚dƒgd„d…gd†d‡gd€dˆgg¦  «         ejn        d‰dŠgd‹d‰gd/dŒgd‰d�gdŒd\gg¦  «        f ejn        g dŽ¢¦  «         ejn        g d�¢¦  «         ejn        g d�¢¦  «         ejn        d”d•gd–d—gd˜d™gdšd›gdœd�gg¦  «         ejn        dždŸgd d¡gd¢d£gd¤d¥gd¦d§gg¦  «        fg¦  «        dö„ ¦   «         Zˆe
jF         G                    dÍ ete?e;e;z   ¦  «        ¦  «        e
jF         G                    d÷dñdø„ fd-dù„ fg¦  «        dú„ ¦   «         ¦   «         Z‰e
jF         G                    dÍ ete?e;e;z   ¦  «        ¦  «        e
jF         G                    d÷dñdû„ fd-dü„ fg¦  «        dý„ ¦   «         ¦   «         ZŠe
jF         G                    dÍ ete?e;e;z   ¦  «        ¦  «        e
jF         G                    d÷dñdþ„ fd-dÿ„ fg¦  «        �d „ ¦   «         ¦   «         Z‹e
jF         G                    �d ejn        g d²¢¦  «         ejn        g d³¢¦  «         ejn        dWd0gdadYgd¶dagd·d¸gd‹d¹gg¦  «         ejn        dºd¶gd¶d»gd\dŒgd»dWgd/d¼gg¦  «        f ejn        g d½¢¦  «         ejn        g d¾¢¦  «         ejn        dÁdÂgdÃdÄgdÅdÆgdÇdÈgg¦  «         ejn        d¥dÉgdždžgdÊdÊgd¦d¥gg¦  «        fg¦  «        �d„ ¦   «         ZŒe
jF         G                    �ddïdNg¦  «        e
jF         G                    de?¦  «        �d„ ¦   «         ¦   «         Z�e
jF         G                    de?¦  «        �d„ ¦   «         ZŽe
jF         G                    �d ejn        g �d¢g �d¢g �d	¢g �d
¢g¦  «         ejn        g �d¢g �d¢g �d¢g �d
¢g¦  «        d¶d\f ejn        g �d¢g �d¢g �d¢g �d¢g¦  «         ejn        g �d¢g �d¢g �d¢g �d¢g¦  «        d\dYfg¦  «        �d„ ¦   «         Z�e
jF         G                    de?¦  «        �d„ ¦   «         Z�e
jF         G                    de?¦  «        �d„ ¦   «         Z‘e
jF         G                    �d ejn        g �d¢g �d¢g �d¢g �d¢g¦  «         ejn        g �d¢g �d¢g �d ¢g �d!¢g¦  «         ejn        g �d"¢g �d#¢g �d$¢g �d%¢g¦  «         ejn        g �d&¢¦  «        �d'�d(f ejn        g �d)¢g �d*¢g �d+¢g �d,¢g¦  «         ejn        g �d-¢g �d.¢g �d/¢g �d0¢g¦  «         ejn        g �d1¢g �d2¢g �d3¢g �d4¢g¦  «         ejn        g �d&¢¦  «        �d5�d6fg¦  «        �d7„ ¦   «         Z’e
jF         G                    de?¦  «        �d8„ ¦   «         Z“e
jF         G                    �d9 ejn        g �d:¢g �d;¢g �d<¢g �d=¢g¦  «         ejn        g �d>¢g �d;¢g �d<¢g �d?¢g¦  «         ejn        g �d@¢g �dA¢g �dB¢g �dC¢g¦  «         ejn        g �dD¢g �dE¢g �dF¢g �dG¢g¦  «         ejn        g �dH¢g �dI¢g �dF¢g �dJ¢g¦  «         ejn        g �dK¢g �dL¢g �dM¢g �dN¢g¦  «         ejn        g �d>¢g �dO¢g �dP¢g �dQ¢g¦  «         ejn        g �dR¢g �dS¢g �dT¢g �dU¢g¦  «        fg¦  «        e
jF         G                    de;¦  «        �dV„ ¦   «         ¦   «         Z”e
jF         G                    de;¦  «        e
jF         G                    �dW�dX¦  «        e
jF         G                    �dYg �dZ¢¦  «        �d[„ ¦   «         ¦   «         ¦   «         Z•e
jF         G                    �d\dãdäg¦  «        e
jF         G                    de?¦  «        e
jF         G                    �d�d]¦  «        �d^„ ¦   «         ¦   «         ¦   «         Z–e
jF         G                    �d\dãdäg¦  «        e
jF         G                    de?¦  «        e
jF         G                    �d�d]¦  «        �d_„ ¦   «         ¦   «         ¦   «         Z—e
jF         G                    d' e˜�d`¦  «        ¦  «        e
jF         G                    �dag �db¢¦  «        e
jF         G                    d,d-d*g¦  «        e
jF         G                    de?¦  «        �dc„ ¦   «         ¦   «         ¦   «         ¦   «         Z™e
jF         G                    de?¦  «        e
jF         G                    d'g d©¢¦  «        �dd„ ¦   «         ¦   «         Zše
jF         G                    d' e˜�d`¦  «        ¦  «        e
jF         G                    de?¦  «        �de„ ¦   «         ¦   «         Z›e
jF         G                    de;¦  «        e
jF         G                    �df�d]¦  «        �dg„ ¦   «         ¦   «         ZœdS (i  é    )Ú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)Ú_flapackÚlapackÚinvÚsvdÚcholeskyÚsolveÚldlÚnormÚ
block_diagÚqrÚeighÚqz)Ú
_to_banded)Ú_compute_lwork)Úortho_groupÚunitary_group)Ú_clapack)Úget_lapack_funcs)Úget_blas_funcs)ÚCONFIGzBuild DependenciesÚblasÚnameÚversionc                 ó¤   — |t           v r+ |j        | Ž  |j        | Ž dz  z                        |¦  «        S  |j        | Ž                      |¦  «        S )Nù              ð?)ÚCOMPLEX_DTYPESÚrandÚastype)ÚshapeÚdtypeÚrngs      ú\/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/scipy/linalg/tests/test_lapack.pyÚgenerate_random_dtype_arrayr3   +   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       r2   Útest_lapack_documentedrK   3   s»   € å„~ÐÝŒÐ,Ñ-Ô-Ð-Ý•”×$Ò$Ñ&Ô&Ñ'Ô'€Eð	ð 	ð 	€Kõ ‰fŒf€GÝ•F‘”ð !ð !ˆØ—’ Ñ$Ô$ð 	!¨°[Ð)@Ð)@Ø˜EÐ!Ð!Ø�NŠN˜4Ñ Ô Ð øØ�bŠ=ˆ=ˆ=ÐN‰=Œ=ˆ=ˆ=ˆ=r4   c                  ó.   — ddl m}  ddlm} | |k    sJ ‚d S )Nr   )r:   )Úscipy.linalg.blasr:   Úscipy.linalg.lapack)Úblas_has_ilp64Úlapack_has_ilp64s     r2   Ú#test_ilp64_blas_lapack_both_or_nonerQ   J   s>   € Ø=Ð=Ð=Ð=Ð=Ð=ØAÐAÐAÐAÐAÐAØÐ-Ò-Ð-Ð-Ð-Ð-Ð-r4   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)é   é   é   )é   é   é   )é   é   é	   )rU   r   r   ga2U0*©3?)rX   r   r   gü©ñÒMb`?)r[   rU   r   r   )r   rU   r   r   ÚsdzcÚgebalr   rU   )ÚpermuteÚscale)	Úgetattrr8   r   Úreprr   r   Úlenr6   r   )
ÚselfÚaÚa1ÚpÚfÚbaÚloÚhiÚpivscaleÚinfos
             r2   Ú
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Ñ)Ô)Ð)Ð)ð	*ð 	*r4   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)rb   r8   r   rc   )re   rf   rh   ri   ÚhtÚtaurn   s          r2   Ú
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Ñ)Ô)Ð)Ð)ð	*ð 	*r4   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 )NrU   rV   r   rX   rY   rZ   r\   r]   é
   é   é   ÚTÚfdFD)Útrsylr+   ÚC)ÚtranaÚtranb©Údecimaléÿÿÿÿ)Úisgn)	r6   Úarrayr.   r$   Úisupperr   ÚdotÚ	conjugater~   )re   rf   ÚbÚcÚtransr0   rg   Úb1Úc1r€   Úxra   rn   s                r2   Ú
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¸!ð=ñ =ô =ð =ñ =ð#	=ð 	=r4   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 )Nrq   rr   rt   r   ÚMm1OoIiFfEe©r   r   r+   )ÚlangeÚFfEeÚFfrW   r[   ÚMmÚ1Oor   ©ÚaxisÚIirU   )r6   rˆ   r.   r‰   r$   ÚsqrtÚsumÚsquareÚabsr   Úmaxr   )	re   rf   r0   Únorm_strrg   r–   Úvaluer…   Úrefs	            r2   Ú
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-ð	-ð 	-r4   N)Ú__name__Ú
__module__Ú__qualname__ro   ry   r’   r¦   © r4   r2   rS   rS   P   sP   € € € € € ð*ð *ð *ð*	*ð 	*ð 	*ð=ð =ð =ð8-ð -ð -ð -ð -r4   rS   c                   ó   — e Zd Zd„ Zd„ ZdS )Ú
TestLapackc                 ó4   — t          t          d¦  «        rd S d S ©NÚempty_module)Úhasattrr8   ©re   s    r2   Útest_flapackzTestLapack.test_flapack²   ó#   € Ý•7˜NÑ+Ô+ð 	àˆDð	ð 	r4   c                 ó4   — t          t          d¦  «        rd S d S r®   )r°   r7   r±   s    r2   Útest_clapackzTestLapack.test_clapack·   r³   r4   N)r§   r¨   r©   r²   rµ   rª   r4   r2   r¬   r¬   °   s2   € € € € € ðð ð ð
ð ð ð ð r4   r¬   c                   ó&   — e Zd Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestLeastSquaresSolversc           	      óz  — t           j                             d¦  «        }t          t          ¦  «        D ]Ô\  }}d}d}d}|                     ||f¦  «                             |¦  «        }|                     |¦  «                             |¦  «        }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éÒ  r{   é   rU   )ÚgelsÚ
gels_lwork©r0   ©Úlworkr   ÚTTCC©rŽ   r¿   ç      ð?ç       @ç      @ç      @ç      @ç       @©ç      0@g      1@g      4@)r»   r¼   ÚgeqrfrV   r†   ç¥ªªªªª,Àçûÿÿÿÿÿ-@é   ©Úrtolù      ð?      @ù      @      à?ù      @      Àù      @       Àù       @ffffffæ?©rÉ   y      1@       @y      4@      ÀùR úŠ–ò?¤îð\Îjþ¿ùµò£�,Æû?§ÿ² Wø?)r6   ÚrandomÚdefault_rngÚ	enumerateÚDTYPESr.   r$   r    r   ÚREAL_DTYPESrˆ   r/   rd   r   ÚfinfoÚepsr	   r,   )re   r1   Úindr0   ÚmÚnÚnrhsrg   r�   ÚglsÚglslwr¿   r>   rn   r»   r¼   rÊ   Úlqrr‘   Ú	lqr_truths                       r2   Ú	test_gelsz!TestLeastSquaresSolvers.test_gels¿   sç  € ÝŒi×#Ò# DÑ)Ô)ˆå#¥FÑ+Ô+ð 	ð 	‰JˆC�ØˆAØˆAØˆDØ—’˜Q ˜FÑ#Ô#×*Ò*¨5Ñ1Ô1ˆBØ—’˜A‘”×%Ò% eÑ,Ô,ˆ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Ñ.Ô.Ð.Ñ.ð/	/ð 	/r4   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_lworkrV   rU   r†   FrË   rÌ   rÍ   rÎ   çYNô))1)@ç*@ƒž.«â?rÐ   rÑ   rÒ   rÓ   rÔ   rÕ   rÖ   r×   çU‹¯ý.*@çãÊ_ÅY@©rÜ   r6   rˆ   r$   r/   rd   ÚintÚrealr   rÝ   rÞ   r,   )re   r0   rg   r�   ré   rê   rà   rá   râ   ÚworkÚiworkrn   r¿   Ú
iwork_sizer‘   ÚsÚrankÚrworkÚ
rwork_sizes                      r2   Ú
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r4   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_lworkrV   rU   r†   FrË   rÌ   rÍ   rÎ   rë   rì   rÐ   rÑ   rÒ   rÓ   rÔ   rÕ   rÖ   r×   rí   rî   rï   )re   r0   rg   r�   rû   rü   rà   rá   râ   rò   rn   r¿   Úvr‘   rõ   rö   s                   r2   Ú
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ð 	9r4   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ü   rV   rU   r{   Fr†   rË   rÌ   rÍ   rÎ   rÐ   rÑ   rÒ   rÓ   rÔ   rÕ   rÖ   r×   )rÜ   r6   rˆ   r$   r/   rd   rÝ   rÞ   rð   rñ   r   Úint32r   r,   )re   r0   rg   r�   r   Úgelsy_lworkrà   rá   râ   rò   rn   r¿   Újptvrý   r‘   Újrö   s                    r2   Ú
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ð 	9r4   N)r§   r¨   r©   rç   rù   rþ   r  rª   r4   r2   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9r4   r·   r0   r/   )©rW   rX   )rY   rV   ©é   r  c                 ór   — t          d| ¬¦  «        }|\  }} |||¬¦  «        \  }}t          |d¦  «         d S )NÚgeqrf_lworkr½   ©rà   rá   r   ©r$   r   )r0   r/   r
  rà   rá   r¿   rn   s          r2   Útest_geqrf_lworkr  °  sM   € õ # M¸%Ð@Ñ@Ô@€KØ�D€A€qØ�+  QÐ'Ñ'Ô'�K€Eˆ4Ý��qÑÔÐÐÐr4   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,  rV   r½   ÚgerqfrV   r¾   ÚorgrqéþÿÿÿrU   Úungrq)rÛ   r6   r   r$   Úassert_raisesÚ	ExceptionrÜ   r,   )
re   r0   rf   r  Úrqrx   rò   rn   r  r  s
             r2   Ú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¨!Ð,Ñ,Ô,Ð,øð	-ð 	-r4   N)r§   r¨   r©   r  rª   r4   r2   r  r  ¹  s#   € € € € € ð-ð -ð -ð -ð -r4   r  c                   ó    — e Zd Zej                             dddg¦  «        ej                             dddg¦  «        d„ ¦   «         ¦   «         ZdS )Ú	TestDpotrÚlowerTFÚcleanc                 ó  — t           j                             d¦  «        }|                     d¬¦  «        }|                     |j        ¦  «        }t          d|f¦  «        \  }} ||||¬¦  «        \  }}	 |||¦  «        d         }
|rCt          t          j        |
¦  «        t          j        t          |¦  «        ¦  «        ¦  «         d S t          t          j
        |
¦  «        t          j
        t          |¦  «        ¦  «        ¦  «         d S )Né*   )rW   rW   ©Úsize)ÚpotrfÚpotri)r  r   )r6   rØ   rÙ   ÚnormalrŠ   r~   r$   r   r   r   r   )re   r  r  r1   r‘   rf   ÚdpotrfÚdpotrir�   r>   Údpts              r2   Útest_gh_2691zTestDpotr.test_gh_2691Ð  sã   € õ Œi×#Ò# BÑ'Ô'ˆØ�JŠJ˜FˆJÑ#Ô#ˆØ�EŠE�!”#‰JŒJˆå)Ð*<¸q¸eÑDÔD‰ˆ�àˆv�a˜ eÐ,Ñ,Ô,‰ˆˆ1Øˆf�Q˜ÑÔ˜qÔ!ˆàð 	;Ý�BœG C™LœL­"¬'µ#°a±&´&©/¬/Ñ:Ô:Ð:Ð:Ð:å�BœG C™LœL­"¬'µ#°a±&´&©/¬/Ñ:Ô:Ð:Ð:Ð:r4   N)r§   r¨   r©   r@   ÚmarkÚparametrizer'  rª   r4   r2   r  r  Î  se   € € € € € à„[×Ò˜W t¨U mÑ4Ô4Ø„[×Ò˜W t¨U mÑ4Ô4ð;ð ;ñ 5Ô4ñ 5Ô4ð;ð ;ð ;r4   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|
› �¦  «         Œ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†   rU   F)Úfull_matricesÚ
compute_uvÚoverwrite_aÚcheck_finite©r   Úlasd4rW   z=LAPACK root finding dlasd4 failed to find the singular value zThere are NaN rootséd   ©ÚatolrÏ   )r6   rˆ   ÚhstackÚvstackÚdiagr   rd   Únewaxisr   Úconcatenater   r$   ÚrangerG   r   ÚanyÚisnanr   rÝ   Úfloat64rÞ   )re   ÚsigmasÚm_vecÚMÚSMÚit_lenÚsgmÚmvcr4  ÚrootsÚiÚress               r2   Útest_sing_val_updatezTestDlasd4.test_sing_val_updateã  s5  € å”˜/˜/˜/Ñ*Ô*ˆÝ”Ð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œÑ Ô Ð åØ�Q”˜1’ØSÐPQÐSÐSñô ð ð õ ”˜‘”   " Ô%ˆå•R”V�BœH U™OœOÑ,Ô,Ð,Ð.CÐDÑEÔEÐEÝ˜˜E¨­B¬HµR´ZÑ,@Ô,@Ô,DÑ(DØ ¥¤­"¬*Ñ!5Ô!5Ô!9Ñ9ð	;ñ 	;ô 	;ð 	;ð 	;ð 	;r4   N)r§   r¨   r©   rK  rª   r4   r2   r+  r+  â  s#   € € € € € ð;ð ;ð ;ð ;ð ;r4   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 )Ú	TestTbtrsr0   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ÀrO  g�Âõ(\�+Àg×£p=
—0Àg333333*@gÃõ(\�ÂÀgHáz®G,ÀgìQ¸…ë#ÀrX   rU   r†   éýÿÿÿrW   rV   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Ï   r7  N)rÜ   r6   rˆ   r,   Ú
ValueErrorr$   r   r   )re   r0   rT  rŒ   Úx_outrQ  r‘   rn   s           r2   Ú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Ð4r4   zdtype,transc                 ó>   — g | ]}d D ]}|dk    r	|t           v °||f‘ŒŒS ))ÚNr~   r�   r�   )rÜ   )Ú.0r0   rŽ   s      r2   ú
<listcomp>zTestTbtrs.<listcomp>5  sP   € ð Nð Nð NØ"'¸ðNð NØ6;Ø&+¨s¢l l°uÅÐ7KÐ7Kð  % e˜nà7KÐ7KÐ7KÐ7Kr4   rU  ÚUrR  r:  r\  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¼  )rX   rW   rV   rQ  r½   r_  rU   r†   c                 ó4   •— g | ]}‰t          |¦  «        z
  ‘ŒS rª   )r¡   )r]  r‘   rá   s     €r2   r^  z2TestTbtrs.test_random_matrices.<locals>.<listcomp>J  s#   ø€ Ð8Ð8Ð8 a�q�3˜q™6œ6‘zÐ8Ð8Ð8r4   c                 ó4   •— g | ]}t          |f‰‰¦  «        ‘ŒS rª   )r3   )r]  Úwidthr0   r1   s     €€r2   r^  z2TestTbtrs.test_random_matrices.<locals>.<listcomp>K  s7   ø€ ð +ð +ð +Øõ -¨e¨X°u¸cÑBÔBð +ð +ð +r4   Údia)Úformatr   )rT  rŒ   rU  rŽ   r:  r\  g-Cëâ6
?rÎ   r~   r�   zInvalid trans argument)r6   rØ   ÚRandomStater$   r=  r   ÚspsÚdiagsr   rÚ   Údiagonalr¢   Úminr3   r   r   r~   r‹   rX  )re   r0   rŽ   rU  r:  râ   ÚkdrQ  Úis_upperÚkuÚklÚband_offsetsÚband_widthsÚbandsrf   rT  ÚrowÚkrŒ   r‘   rn   rá   r1   s    `                   @@r2   Útest_random_matriceszTestTbtrs.test_random_matrices4  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Ð6r4   zuplo,trans,diag)r_  r\  ÚInvalid)r_  ru  r\  )ru  r\  r\  c           	      ó  — t          dt          j        ¬¦  «        }t          j                             d¦  «        }|                     d¦  «        }|                     d¦  «        }t          t          ||||||¦  «         dS )z?Test if invalid values of uplo, trans and diag raise exceptionsrQ  r½   r¹   )rX   rV   )rV   rX   N)r$   r6   r@  rØ   rÙ   r  r  )re   rU  rŽ   r:  rQ  r1   rT  rŒ   s           r2   Ú&test_invalid_argument_raises_exceptionz0TestTbtrs.test_invalid_argument_raises_exceptionh  so   € õ ! µ´
Ð;Ñ;Ô;ˆÝŒi×#Ò# DÑ)Ô)ˆØ�ZŠZ˜ÑÔˆØ�JŠJ�vÑÔˆÝ•i ¨¨A¨t°U¸DÑAÔAÐAÐAÐAr4   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½   rX   rQ  r   )r†   rW   r_  rS  N)r6   r   Úfloatr$   r   )re   rT  rŒ   rQ  r>   rn   s         r2   Útest_zero_element_in_diagonalz'TestTbtrs.test_zero_element_in_diagonalv  sw   € õ ŒW�V¥5Ð)Ñ)Ô)ˆÝŒG�A�UÐ#Ñ#Ô#ˆÝ  µÐ6Ñ6Ô6ˆàˆˆ5‰	Ø�%˜2 ¨Ð-Ñ-Ô-‰ˆˆ4Ý�T˜1ÑÔÐÐÐr4   zldab,n,ldb,nrhs)rY   rY   r   rY   )rY   rY   rW   rY   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½   rQ  N©r6   r   ry  r$   r  r  )re   Úldabrá   Úldbrâ   rT  rŒ   rQ  s           r2   Útest_invalid_matrix_shapesz$TestTbtrs.test_invalid_matrix_shapes†  s`   € õ ŒW�d˜A�Y¥eÐ,Ñ,Ô,ˆÝŒG�S˜$�K¥uÐ-Ñ-Ô-ˆÝ  µÐ6Ñ6Ô6ˆÝ•i ¨¨AÑ.Ô.Ð.Ð.Ð.r4   N)r§   r¨   r©   r@   r(  r)  rÛ   rZ  rt  rw  rz  r  rª   r4   r2   rM  rM    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ñ ô ð/ð /ñ	ô ð/ð /ð /r4   rM  r   )ÚIÚ1ÚOrU  r_  rR  r:  r\  rá   rW   r{   c           	      óÚ  — t          | › |› |› |› |› �                     ¦   «         ¦  «        }t          j                             |¦  «        }|                     ||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  }nUt          j                             |d
¬	¦  «        }t!          d|f¦  «        \  }} ||¦  «        \  }}} ||||¬¦  «        \  }}d
}t+          |
||¬¦  «         d S )Nr  r+   r   r{   r_  Útrcon)r   rU  r:  r€  ©ÚordrU   ©ÚgeconÚgetrf©r   rÎ   )rD   Úencoder6   rØ   rÙ   ÚpermutedÚlogspaceÚintegersÚ
issubdtypeÚfloatingrñ   r   r   r:  r;  r.   r$   Úlinalgr   Úinfr   r   )r0   r   rU  r:  rá   Úseedr1   ÚAÚoffsetr„  rJ  r>   Únorm_AÚ
norm_inv_Ar¥   Úanormrˆ  r‰  ÚluÚipvtrn   rÏ   s                         r2   Ú
test_trconr›  “  s0  € õ �5Ð/˜$Ð/ Ð/ dÐ/¨AÐ/Ð/×6Ò6Ñ8Ô8Ñ9Ô9€DÝ
Œ)×
Ò
 Ñ
%Ô
%€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 a�Ñ(Ô(ˆÝ'Ð(:¸Q¸DÑAÔA‰ˆˆuØ˜˜q™œ‰ˆˆD�$Ø��r˜5 tÐ,Ñ,Ô,‰ˆˆQð
 €DÝ�C˜ 4Ð(Ñ(Ô(Ð(Ð(Ð(r4   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 )Nr   Úlartgr½   rW   rX   r+   ç333333ã?rÅ   y       €š™™™™™é¿çš™™™™™é?)	r$   r6   rˆ   Úiscomplexobjr   r   Ú
isinstanceÚcomplexry  )r0   r�  ri   ÚgÚcsÚsnÚrs          r2   Ú
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 Ñ(Ô(Ð(Ñ(ð')ð )r4   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 )Nr   rž  rŸ  rX   rW   r{   rU   ÚfdÚrotr½   y       €      ð¿r+   y              @)rY   rY   rY   rY   )r   r   r   r   ©r7  rV   )rá   )rY   rY   rW   rW   r   )ÚoffxÚoffy)rW   rW   rY   rY   )Úincxr­  rá   )rY   rW   rY   rW   )r¬  Úincyrá   )r¬  r®  r­  r¯  rá   )rW   rW   rY   rW   r  )r®  r¯  rá   )Úoverwrite_xÚoverwrite_y)r6   ÚfullrÝ   Ú	precisionr%   r$   r   r   )
r0   r�   rõ   Úurý   r7  rª  ri   rf   rŒ   s
             r2   Ú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ð $4r4   c            
      ó�  — t           j                             d¦  «        } |                      d¦  «        }|j                             |¦  «        }|                      d¦  «        d|                      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¹   )rX   rX   r+   r   ÚlarfgÚlarfr½   ÚFDr   rU   ©rU   r   rV   r•   rÂ   ÚR©ÚsiderV  r«  )r6   rØ   rÙ   r~   rŠ   Úconjr$   Úcopyr/   r   r‹   r   r   )r1   Úa0Úa0jr0   r·  r¸  rf   Úalphar‘   rx   Úexpectedrý   s               r2   Útest_larfg_larfrÄ  ü  sS  € Ý
Œ)×
Ò
 Ñ
%Ô
%€CØ	�Š�FÑ	Ô	€BØ	Œ�Š�"‰Œ€Bà
�*Š*�VÑ
Ô
˜r #§*¢*¨VÑ"4Ô"4Ñ4Ñ
4€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ð 6r4   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©r0   Úilp64iA%  T)r0  r/  i`”Di€”D)r$   r6   Úfloat32r    )Úsgesdd_lworkrá   r¿   s      r2   Ú test_sgesdd_lwork_bug_workaroundrÌ  &  sq   € õ $ M½¼Ø*5ð7ñ 7ô 7€Là€AÝ˜<¨¨AØ&*¸$ð@ñ @ô @€Eð  �IÒÐ ¨)Ò!3Ð!3Ð!3Ð3ÐÐÐ!3Ð!3r4   c                   óà   — e Zd Zej                             de¦  «        d„ ¦   «         Zej                             de¦  «        ej                             dd¦  «        d„ ¦   «         ¦   «         ZdS )Ú	TestSytrdr0   c                 ó€   — t          j        d|¬¦  «        }t          d|f¦  «        }t          t          ||¦  «         d S )Nr•   r½   Úsytrd©r6   r   r$   r  rX  )re   r0   r”  rÐ  s       r2   Útest_sytrd_with_zero_dim_arrayz(TestSytrd.test_sytrd_with_zero_dim_arrayC  sA   € õ ŒH�V 5Ð)Ñ)Ô)ˆÝ  ¨1¨$Ñ/Ô/ˆÝ•j %¨Ñ+Ô+Ð+Ð+Ð+r4   rá   ©rU   rW   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_lworkrU   rV   r   ©r  r¿   rY   rÂ   r6  ç        r¾   r†   )r6   r   r$   ÚarangeÚtriu_indices_fromr   r   rÝ   rÞ   r:  r   r/   r   r=  ÚouterrŠ   r   r~   )re   r0   rá   r”  rÐ  rÕ  r¿   rn   Údataru   Úerx   r~   rs  Úk2ÚQrI  rý   ÚHÚi_lowerÚQTAQs                        r2   Ú
test_sytrdzTestSytrd.test_sytrdJ  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ÐFr4   N)	r§   r¨   r©   r@   r(  r)  rÜ   rÒ  râ  rª   r4   r2   rÎ  rÎ  B  s�   € € € € € Ø„[×Ò˜W kÑ2Ô2ð,ð ,ñ 3Ô2ð,ð „[×Ò˜W kÑ2Ô2Ø„[×Ò˜S &Ñ)Ô)ð7Gð 7Gñ *Ô)ñ 3Ô2ð7Gð 7Gð 7Gr4   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Ñ  )re   rå  r”  rç  s       r2   Útest_hetrd_with_zero_dim_arrayz(TestHetrd.test_hetrd_with_zero_dim_array‡  sA   € õ ŒH�V =Ð1Ñ1Ô1ˆÝ  ¨1¨$Ñ/Ô/ˆÝ•j %¨Ñ+Ô+Ð+Ð+Ð+r4   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_lworkrU   rV   r+   ©r   rU   ©r  r   rÖ  rY   rÂ   r6  r×  r¾   r†   r{   )r6   r   r$   rØ  rÙ  Úfill_diagonalrñ   r:  r   r    r   rÝ   rÞ   r   r/   rð   r   r=  rÚ  r¾  rŠ   r   r~   )re   rá   Ú
real_dtyperå  r”  rç  rê  r‘   r>   rn   r¿   rÛ  ru   rÜ  rx   r~   rs  rÝ  rÞ  rI  rý   rß  rà  ÚQHAQs                           r2   Ú
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ð	ñ 	ô 	ð 	ð 	ð 	r4   N)r§   r¨   r©   r@   r(  r)  r,   rè  ÚziprÜ   rð  rª   r4   r2   rä  rä  †  s¤   € € € € € Ø„[×Ò˜_¨nÑ=Ô=ð,ð ,ñ >Ô=ð,ð „[×ÒÐ7Ø ˜S ¨nÑ=Ô=ñ?ô ?à„[×Ò˜S &Ñ)Ô)ðAð Añ *Ô)ñ?ô ?ðAð Að Ar4   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½   rZ   rX   rV   )rà   rá   rh   )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    r6   rˆ   r   r   )rß   r0   ÚfuncÚ
func_lworkr¿   rf   r�   ru   rŒ   r>   ÚresultrÃ  s               r2   Ú
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,?ð ,?r4   c            
      óš  — t           j                             d¦  «        } t          t          t
          z   ¦  «        D �]�\  }}d}|dk     rPt          d|¬¦  «        }t          d|¬¦  «        \  }}|                      ||f¦  «                             |¦  «        }njt          d|¬¦  «        }t          d|¬¦  «        \  }}|                      ||f¦  «        |                      ||f¦  «        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     ¦  «         �Œ�d S )Nr¹   r{   rX   Úsytrf_lworkr½   )ÚsyconÚsytrfÚhetrf_lwork)ÚheconÚhetrfr+   rV   rU   ©r¿   r  )rf   Úipivr˜  r  ©rh   )r6   rØ   rÙ   rÚ   rÛ   r,   r$   r.   r¾  r~   r   r   r    r   r¡   r‘  Úcond)r1   rß   r0   rá   r  ÚfunconÚfunctrfr”  r˜  r¿   Úldur  r>   Úrconds                 r2   Útest_sycon_heconr    sÎ  € Ý
Œ)×
Ò
 Ñ
%Ô
%€CÝ¥¥~Ñ 5Ñ6Ô6ð Añ A‰
ˆˆUàˆà�Š7ˆ7Ý)¨-¸uÐEÑEÔEˆJÝ.Ð/AÈÐOÑOÔO‰OˆF�GØ—’˜Q ˜FÑ#Ô#×+Ò+¨EÑ2Ô2ˆAˆAõ *¨-¸uÐEÑEÔEˆJÝ.Ð/AÈÐOÑOÔO‰OˆF�GØ—’˜Q ˜FÑ#Ô# c§j¢j°!°Q°Ñ&8Ô&8¸Ñ&;Ñ;×CÒCÀEÑJÔJˆ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r4   c                  óð  — t           j                             d¦  «        } t          t          ¦  «        D �]@\  }}d}t          d|¬¦  «        \  }}}}|                      ||f¦  «                             |¦  «        }||j        z   dz  }|                      ||f¦  «                             |¦  «        }	|	|	j        z   dz  dt          j        ||¬¦  «        z  z   }	 |||	¦  «        \  }
}}t          |dk    ¦  «          ||	¦  «        \  }}t          |dk    ¦  «          |||¦  «        \  }}t          |dk    ¦  «          ||¦  «        \  }}}t          |dk    ¦  «         t          ||
d¬¦  «         �ŒBd S )	Nr¹   r{   )r!  ÚsygstÚsyevdÚsygvdr½   rV   r   giUMu?rÎ   )r6   rØ   rÙ   rÚ   rÜ   r$   r.   r~   r   r   r   )r1   rß   r0   rá   r!  r  r  r  r”  ÚBÚeig_gvdr>   rn   rŒ   rf   Úeigs                   r2   Ú
test_sygstr  !  sš  € Ý
Œ)×
Ò
 Ñ
%Ô
%€CÝ¥Ñ,Ô,ð 3ñ 3‰
ˆˆUàˆå%5ð 7Ià<Að&Cñ &Cô &CÑ"ˆˆu�e˜Uð �JŠJ˜˜1�vÑÔ×%Ò% eÑ,Ô,ˆØ�”‰W�a‰Kˆà�JŠJ˜˜1�vÑÔ×%Ò% 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ð 3r4   c                  óð  — t           j                             d¦  «        } t          t          ¦  «        D �]À\  }}d}t          d|¬¦  «        \  }}}}|                      ||f¦  «                             |¦  «        d|                      ||f¦  «                             |¦  «        z  z   }||                     ¦   «         j        z   dz  }|                      ||f¦  «                             |¦  «        d|                      ||f¦  «                             |¦  «        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¹   r{   )r!  ÚhegstÚheevdÚhegvdr½   r+   rV   r   ç-Cëâ6?rÎ   )r6   rØ   rÙ   rÚ   r,   r$   r.   r¾  r~   r   r   r   )r1   rß   r0   rá   r!  r  r  r  r”  r  r  r>   rn   rŒ   rf   r  s                   r2   Ú
test_hegstr!  @  sü  € Ý
Œ)×
Ò
 Ñ
%Ô
%€CÝ¥Ñ/Ô/ð 1ñ 1‰
ˆˆUàˆå%5ð 7Ià<Að&Cñ &Cô &CÑ"ˆˆu�e˜Uð �JŠJ˜˜1�vÑÔ×%Ò% eÑ,Ô,¨r°C·J²JÀÀ1¸vÑ4FÔ4F×4MÒ4MÈeÑ4TÔ4TÑ/TÑTˆØ�—’‘””‰^˜QÑˆà�JŠJ˜˜1�vÑÔ×%Ò% eÑ,Ô,¨r°C·J²JÀÀ1¸vÑ4FÔ4F×4MÒ4MÈeÑ4TÔ4TÑ/TÑTˆØ�—’‘””‰^˜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ð 1r4   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¹   ©r{   é   ©ÚtzrzfÚtzrzf_lworkr½   rV   r+   r¾   r   Nc           
      ó¬   •— g | ]P}‰‰|         ‰|gd d …f         j                              ‰|gd d …f                              ¦   «         ¦  «        z  z
  ‘ŒQS ©N©r~   rŠ   r¾  ©r]  r‘   ÚIdÚVrx   s     €€€r2   r^  ztest_tzrzf.<locals>.<listcomp>{  s[   ø€ ÐMÐMÐM¸qˆr�#�a”&˜˜A˜3   ˜6œœŸš¨¨A¨3°°°¨6¬¯ªÑ)9Ô)9Ñ:Ô:Ñ:Ñ:ÐMÐMÐMr4   r{   rÂ   r×  r6  )r6   rØ   rf  rÚ   rÛ   r$   r    r   r-   r.   r  r  r~   r   r8  r   r   r=  r   rŠ   r   r   Úspacingrñ   )r1   rà   rá   rß   r0   r&  Útzrzf_lwr¿   r”  Úrzrn   r»  r¥   ÚZr,  r-  rx   s                 @@@r2   Ú
test_tzrzfr2  _  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r4   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º   rU   r+   r�   r~   )ÚtrttfÚtfttrÚtfsmr½   rV   r†   r   rX   rZ   r„   ©rŽ   rÂ   r_  )rŽ   r:  rW   r»  )rŽ   r:  r½  N)r6   rØ   rf  rÚ   rÛ   r   r-   r   r.   r$   r   r   r¾  r~   rØ  )r1   rß   r0   rá   r”  rŽ   r4  r5  r6  ÚAfpr>   r  ÚsolnÚB2s                 r2   Ú	test_tfsmr;  �  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r4   c            	      ó
  ‡‡‡— t           j                             d¦  «        } d\  }}}t          t          ¦  «        D �]Ä\  }}t          d|¬¦  «        \  }}t          |||¦  «        }|dk     rvt          |                      ||f¦  «                             |¦  «        ¦  «        }	|                      ||f¦  «                             |¦  «        }
t          d|¬¦  «        \  }}n«t          |                      ||f¦  «        |                      ||f¦  «        dz  z                        |¦  «        ¦  «        }	|                      ||f¦  «        |                      ||f¦  «        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¹   )r{   r$  r$  r%  r½   rV   )Ú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     €€€r2   r^  z$test_ormrz_unmrz.<locals>.<listcomp>É  s[   ø€ ÐNÐNÐN¸qˆr�#�a”&˜˜A˜3   ˜6œœŸš¨¨A¨3°°°¨6¬¯ªÑ)9Ô)9Ñ:Ô:Ñ:Ñ:ÐNÐNÐNr4   r~   r�   r{   rÂ   r   r×  r6  rÁ   r»  )r½  r¿   )r½  rŽ   r¿   )r6   rØ   rf  rÚ   rÛ   r$   r    r   r.   r8  r   r=  r   rŠ   r.  rñ   r   r   r   r¾  r~   )r1   ÚqmÚqnÚcnrß   r0   r&  r/  Úlwork_rzr”  r�   Úorun_mrzÚorun_mrz_lwÚ	lwork_mrzr0  rn   r¥   rÞ  rŽ   ÚtolÚcqr,  r-  rx   s                        @@@r2   Útest_ormrz_unmrzrK  ª  s  øøø€ õ Œ)×
Ò
 Ñ
%Ô
%€CØ�J€BˆˆBÝ¥Ñ'Ô'ð .!ñ .!‰
ˆˆUÝ*Ð+CØ16ð8ñ 8ô 8‰ˆˆxå! (¨B°Ñ3Ô3ˆà�Š7ˆ7Ý�S—Z’Z  R Ñ)Ô)×0Ò0°Ñ7Ô7Ñ8Ô8ˆAØ—
’
˜B ˜8Ñ$Ô$×+Ò+¨EÑ2Ô2ˆAÝ$4Ð5MØ;@ð%Bñ %Bô %BÑ!ˆH�k�kõ �c—j’j " b Ñ*Ô*¨S¯ZªZ¸¸R¸Ñ-AÔ-AÀ"Ñ-DÑD×LÒLÈUÑSÔSÑTÔTˆAØ—’˜R ˜HÑ%Ô%¨¯
ª
°B¸°8Ñ(<Ô(<¸RÑ(?Ñ?×GÒGÈÑNÔNˆ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Øð	!ñ 	!ô 	!ð 	!ñ 	!ð[.!ð .!r4   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º   rU   r+   r�   r~   )r4  r5  r½   r   rR  ©rU  r_  )ÚtransrrU  rV   Nr†   ÚF)Úorder)r6   rØ   rf  rÚ   rÛ   r-   r.   r$   r   r   r   r¾  r~   r   r   Úreshape)r1   rß   r0   rá   ÚA_fullrO  r4  r5  ÚA_tf_Urn   Ú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                      r2   Útest_tfttr_trttfr^  ä  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:r4   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 )rM  r¹   rº   rU   r+   )ÚtrttpÚtpttrr½   r   rR  rN  rV   N)r6   rØ   rf  rÚ   rÛ   r-   r.   r$   r   r   r   r   r~   r   r   r   )r1   rß   r0   rá   rS  r`  ra  ÚA_tp_Urn   ÚA_tp_LÚindsÚA_tp_U_mÚA_tp_L_mrZ  r[  s                  r2   Útest_tpttr_trttprg    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ð  8r4   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º   rU   r+   )Úpftrfr4  r5  r½   r   N)r6   rØ   rf  rÚ   rÛ   r-   r.   r¾  r~   r   r$   r   r   r   )r1   rß   r0   rá   r”  ri  r4  r5  r8  rn   Ú	Achol_rfpÚA_chol_rr>   ÚAchols                 r2   Ú
test_pftrfrm  G  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ð 3r4   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º   rU   r+   )Úpftriri  r4  r5  r½   r   rV   rX   rZ   r„   N)r6   rØ   rf  rÚ   rÛ   r-   r.   r¾  r~   r   r$   r   r   r   r   )r1   rß   r0   rá   r”  ro  ri  r4  r5  r8  rn   Ú
A_chol_rfpÚ	A_inv_rfpÚA_inv_rr>   ÚAinvs                   r2   Ú
test_pftrirt  b  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r4   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º   rU   r+   rW   r½   rV   )Úpftrsri  r4  r5  r   rX   rZ   r„   N)r6   rØ   rf  rÚ   rÛ   r-   r.   r¾  r~   r   r   r$   r   r  r  r   r   )r1   rß   r0   rá   r”  r  ÚBf1ÚBf2rv  ri  r4  r5  r8  rn   rp  r9  s                   r2   Ú
test_pftrsry  ‚  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r4   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º   rU   r+   rV   rõ   Úhr4  r5  Úfrkr½   r†   r   rX   rZ   r„   N)r6   rØ   rf  rÚ   rÛ   r-   r.   r¾  r~   r   r$   r   r   rŠ   )r1   rß   r0   rá   r”  Úprefixr4  r5  Úshfrkr8  r>   r�   ÚAfp_outÚA_outs                 r2   Útest_sfrk_hfrkr�  §  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r4   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¹   r{   rU   iâÿÿÿé   r+   r5  rÂ   )Úsyconvr  r  r½   rì  F)r  Ú	hermitianrÖ  r†   Nr×  r6  r   )r6   rØ   rf  rÚ   rÛ   Úrandintr.   r¾  r~   r   r.  rñ   r$   r    r   r   r   r   )r1   rß   r0   rá   r”  rI  r„  ÚtrfÚ	trf_lworkÚlwrR  ÚDÚpermr  r  rn   rf   rÜ  r_  s                      r2   Ú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r4   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º   rU   r+   r5  rÂ   )ÚgeqrtÚgemqrtr½   r   r†   r×  r6  r�   r~   ©rR  r»  r\  ©r½  rŽ   rR  ©rR  r\  r”  r¼  r7  )r6   rØ   rf  rÚ   rÛ   r-   r.   r.  rñ   r$   r   r   r~   r¾  r   r   r   r  r  )re   r1   rß   r0   rá   r”  rI  r�  r‘  rf   Útrn   rý   rÞ  r»  r�   Ú	transposer½  rŽ   r�   ÚqÚqCÚ	c_defaults                          r2   Ú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r4   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º   rU   r+   r5  rÂ   )ÚtpqrtÚtpmqrtr½   r   rV   r†   r×  r6  r�   r~   r’  r\  r“  rR  r›   r”  r”  r¼  r7  )r6   rØ   rf  rÚ   rÛ   r-   r.   r.  rñ   r$   r   r   r   r<  r   r~   r¾  r   r   r  r  )!re   r1   rß   r0   rá   r”  r  rI  rœ  r�  Úlrf   rŒ   r•  rn   ÚB_pentÚb_pentrý   rÞ  r»  r�   rŠ  r–  r½  rŽ   r�   ru   r—  ÚcdÚCDÚqCDr™  Ú	d_defaults!                                    r2   Ú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r4   N)r§   r¨   r©   r?   rš  r¥  rª   r4   r2   rŽ  rŽ  ä  sJ   € € € € € ðð ð
<Að <Að <Að|QKð QKð QKð QKð QKr4   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¹   r{   rV   Úpstrfr½   rU   r+   r×  éè  ©r   rV   rW  rì  ©r6   rØ   rf  rÚ   rÛ   r$   r-   r.   r¾  r~   r   r   rÝ   rÊ  rÞ   r@  r   r   )r1   rß   r0   rá   r¦  r§  r”  r�   ÚpivÚr_crn   r_  Úsingle_atolÚdouble_atolr7  rR  s                   r2   Ú
test_pstrfr¯  |  óª  € Ý
Œ)×
Ò
 Ñ
%Ô
%€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r4   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¹   r{   rV   Úpstf2r½   rU   r+   r×  r¨  r©  rW  rì  rª  )r1   rß   r0   rá   r¦  r²  r”  r�   r«  r¬  rn   r_  r­  r®  r7  rR  s                   r2   Ú
test_pstf2r³  ¤  r°  r4   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Á¿rV   )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   rW  )r6   rˆ   rÚ   rÛ   r.   r$   r   )Údesired_realÚdesired_cplxrß   r0   r”  r¶  r¦  r�   ÚrowcndÚcolcndÚamaxrn   s               r2   Ú
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/ð /r4   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  rP  r{   r½   rV   rÂ   r+   c                 ó    •— g | ]
}‰d |z  z  ‘ŒS )rÃ   rª   )r]  r‘   rÂ  s     €r2   r^  ztest_syequb.<locals>.<listcomp>ÿ  s!   ø€ Ð:Ð:Ð:¨�e˜b !™e‘mÐ:Ð:Ð:r4   éûÿÿÿrY   Úsyequb)r6   rˆ   rÚ   rÛ   r   r=  Úrot90r:  r$   r   Úlog2r.   rð   )Údesired_log2srß   r0   r”  ru   rÀ  rõ   Úscondr»  rn   rÂ  s             @r2   Ú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Ñ+Ô+¨]Ñ;Ô;Ð;Ð;ð	<ð 	<r4   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 )NrV   rY   iê  r]   rU   )rs  r+   r   r×  rý  éüÿÿÿr¿  rZ   ù                i   ©rY   rY   y              0@)rY   r   rì  )r  r†   r†   r   r   r¿  r   r†   r†   r  r  )r6   r:  r   r   Úzheequbr   r   rÂ  r¡   rØ  Úcheequbr.   Ú	complex64)r”  rõ   rÄ  r»  rn   s        r2   Ú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ÐJr4   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  r{   r+   rV   Úgetc2r½   Úgesc2r   ©r1  )Úoverwrite_rhsrX   r„   )	r6   rØ   rf  r-   rÚ   rÛ   r.   r$   r   )r1   rá   r·  r¸  rß   r0   r”  rŒ   rÐ  rÑ  r™  r  Újpivrn   r‘   ra   s                   r2   Ú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ð:ñ :ô :ð :ñ :ð+:ð :r4   r   )rZ   rY   rÊ  ÚjobarZ   ÚjoburX   ÚjobvÚjobrrU   Ú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  r5  Úgejsvr½   rV   rU   r  rP  r   )rÖ  r×  rØ  rÙ  ÚjobtrÚ  NF)r0  r«  )r6   rØ   rf  rÝ   rÞ   r3   r$   r   r  r  r   r   r   r:  r¾  r~   Úidentityr‘  Úmatrix_rankÚcount_nonzero)r   r0   rÖ  r×  rØ  rÙ  rÚ  rÝ  r1   rà   rá   r7  r”  rÜ  ÚlsvecÚrsvecÚl2tranÚ
is_complexÚinvalid_real_jobvÚinvalid_cplx_jobuÚinvalid_cplx_jobvÚexit_statusÚsvar´  rý   rò   ró   rn   Úsigmas                                r2   Útest_gejsv_generalrë  ;  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	&ð 	&r4   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   ©rU   rU   ©rU   rº  r5  r{   r”  N)r$   r   r/   r6   rˆ   r   ÚsinrØ  rR  r.   Úasfortranarrayr~   r¿  r   )r0   rÜ  ré  r´  rý   rò   ró   rn   r”  ÚAcr>   s              r2   Ú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ÑÔÐÐÐr4   Úkwargsr]   rÝ  c                 ó�   — t          j        dt          ¬¦  «        }t          dt          ¬¦  «        }t	          t
          ||fi | ¤Ž dS )z-Test invalid job arguments raise an Exception)rV   rV   r½   rÜ  Nr|  )ró  r”  rÜ  s      r2   Ú test_gejsv_invalid_job_argumentsrõ  Ë  sJ   € õ 	Œ��eÐ$Ñ$Ô$€AÝ˜W­EÐ2Ñ2Ô2€EÝ•)˜U AÐ0Ð0¨Ð0Ð0Ð0Ð0Ð0r4   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$   r0   r   )r”  Ú
sva_expectÚu_expectÚv_expectr7  rÜ  ré  r´  rý   rò   ró   rn   s               r2   Ú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Ð+Ñ+Ô+Ð+Ð+Ð+r4   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   }|                     |¦  «        }	||	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  r{   r5  rU   ©r0   r1   r†   ©ÚgttrfÚgttrsr½   r   rV   r«  r~   r�   r7  z?gttrf: _d[info-1] is ú, not the illegal value :0.)r6   rØ   rf  rÝ   rÞ   r3   r¿  r:  r$   r	   r   rÚ   r   rÜ   r~   r¾  r  rX  Útestingr   )"r0   r1   rá   r7  Úduru   ÚdlÚdiag_cpyr”  r‘   rŒ   r   r  Ú_dlÚ_dÚ_duÚdu2r  rn   r_  rR  rI  rà   r«  Úb_cpyÚx_gttrsrŽ   Úb_transÚ__dlÚ__dÚ__duÚ_du2Ú_ipivÚ_infos"                                     r2   Ú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Ø�
Š
�1‰Œ€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  r[   éúÿÿÿgÏÜCÂ÷>ð¿)r†   r  r\   )rV   rW   rX   rY   rY   gš™™™™™@gffffff@ç      à¿gš™™™™™%@gÍÌÌÌÌÌ@gš™™™™™	Àrž  gffffff&Àgš™™™™3@rÈ  rY   r[   rP  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  ru   r  Údu_expÚd_expÚdu2_expÚipiv_exprŒ   r‘   r   r  r  r  r	  r
  r  rn   r  s                     r2   Ú0test_gttrf_gttrs_NAG_f07cdf_f07cef_f07crf_f07csfr.  X  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ÑÔÐÐÐr4   )r�  r€  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k    rt           j
        nd¬¦  «        }t          d|f¦  «        \  }	}
 |	|||¦  «        \  }}}}}} |
|||||||¬¦  «        \  }}t          d	|f¦  «        \  }} ||¦  «        \  }}} ||||¬¦  «        \  }}t          j        | ¦  «        j        d
z  }t          |||¬¦  «         d S )NiTŽfr+   rU   r†   r€  r…  )r   ÚgtconrŠ  r‡  g      è?rÎ   )r6   rØ   rÙ   r:  r�  r�  rñ   r.   r‘  r   r’  r$   rÝ   rÞ   r   )r0   r   rá   r1   ru   r  r  r”  r˜  r   r0  r
  r  rn   rJ  r>   rˆ  r‰  r™  rš  r¥   rÏ   s                         r2   Ú
test_gtconr1  —  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åŒI�NŠN˜1¨D°CªK¨K¥"¤& &¸QˆNÑ?Ô?€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Ð(Ñ(Ô(Ð(Ð(Ð(r4   ))rW   r[   )r[   rW   r  c                 ór   — t          d| ¬¦  «        }|\  }} |||¬¦  «        \  }}t          |d¦  «         d S )NÚgeqrfp_lworkr½   r  r   r  )r0   r/   r3  rà   rá   r¿   rn   s          r2   Útest_geqrfp_lworkr4  ³  sM   € õ $ ^¸EÐBÑBÔB€LØ�D€A€qØ�,  aÐ(Ñ(Ô(�K€Eˆ4Ý��qÑÔÐÐÐr4   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  r5  r{   rX   rU   r†   Úpttrfr½   r   zpttrf: info = z, should be 0)Úerr_msgr«  Úpttrszpttrs: info = )r6   rØ   rf  rÝ   rÞ   r3   r:  r¾  r¿  r$   r	   r   r   r   r‹   r~   )Úddtyper0   r1   r7  rá   ru   rÜ  r”  r  r6  r  Ú_ern   rR  rŠ  r‘   rŒ   r8  Ú_xs                      r2   Útest_pttrf_pttrsr<  ¼  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 Ð%Ñ%Ô%Ð%Ð%Ð%r4   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 )Nr{   r¹   r6  r½   rV   rU   r†   )r6   rØ   rf  r$   r3   r  rX  )r9  r0   rá   r1   r6  ru   rÜ  s          r2   Ú*test_pttrf_pttrs_errors_incompatible_shaper>  í  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¨#¬Ñ/Ô/Ð/Ð/Ð/r4   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 )Nr{   r  r6  r½   rV   rU   r   z?pttrf: _d[info-1] is r  z2?pttrf should fail with non-spd matrix, but didn't)r6   rØ   rf  r$   r3   r   r   )
r9  r0   rá   r1   r6  ru   rÜ  r  r:  rn   s
             r2   Ú'test_pttrf_pttrs_errors_singular_nonSPDr@  ú  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ÐLr4   z%d, e, d_expect, e_expect, b, x_expect)rX   r{   é   rÍ   rY   )r  r  r$  r\   )rX   r]   rÍ   é   rU   )r  gKÈ=›Uå¿rž  rü  rV   é   éA   é   g      @r†   r¿  )rB  é)   é.   é   )y      0@      0@y      2@      "Àù      ð?      À)rB  r]   rU   rX   )r'  r  rI  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   r6  r   r½   r«  r8  rU   rì  )r$   r   r¾  r0   r,   )ru   rÜ  Úd_expectÚe_expectrŒ   Úx_expectr7  r6  r  r:  rn   r8  r;  s                r2   Útest_pttrf_pttrs_NAGrN  	  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ð !Ð r4   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  rU   rX   rV   r†   )	r6   rØ   rf  r3   r:  r   r¾  r~   r   )r0   Úrealtyperá   Ú	compute_zr1   ÚA_eigÚvrru   rÜ  Útrir”  Úzs               r2   Úpteqr_get_d_e_A_zrV  9	  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ˆ<Ðr4   zdtype,realtyperQ  c                 ó|  — 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¨  Úpteqrr½   r{   ©ru   rÜ  rU  rQ  r   zinfo = z, should be 0.r«  N)r6   rÝ   rÞ   r$   rV  r   r   Úsortr   r¾  r~   rÞ  r:  )r0   rP  rQ  r7  rX  rá   ru   rÜ  r”  rU  Úd_pteqrÚe_pteqrÚz_pteqrrn   s                 r2   Ú
test_pteqrr^  Y	  sT  € ð •”˜‘”Ô#Ñ#€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Ø ð	&ñ 	&ô 	&ð 	&ð 	&ð 	&ð&ð &r4   c                 ó˜   — t          d| ¬¦  «        }d}t          | |||¦  «        \  }}}} ||dz
  |||¬¦  «        \  }	}
}}|dk    sJ ‚d S )NrX  r½   r{   rX   ©rU  rQ  r   ©r$   rV  ©r0   rP  rQ  rX  rá   ru   rÜ  r”  rU  r[  r\  r]  rn   s                r2   Útest_pteqr_error_non_spdrc  y	  sn   € õ ˜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ˆ8r4   c           	      ó.  — t          d| ¬¦  «        }d}t          | |||¦  «        \  }}}}t          t          ||d d…         |||¬¦  «         t          t          |||d d…         ||¬¦  «         |r$t          t          ||||d d…         |¬¦  «         d S d S )NrX  r½   r{   r†   r`  )r$   rV  r  rX  )	r0   rP  rQ  rX  rá   ru   rÜ  r”  rU  s	            r2   Ú"test_pteqr_raise_error_wrong_shapere  ‡	  sº   € õ ˜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r4   c                 ó¦   — t          d| ¬¦  «        }d}t          | |||¦  «        \  }}}}d|d<   d|d<    |||||¬¦  «        \  }	}
}}|dk    sJ ‚d S )NrX  r½   r{   r   r`  ra  rb  s                r2   Útest_pteqr_error_singularrg  •	  sz   € õ ˜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ˆ8r4   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   rX  r½   rU   r†   rY  r«  N)r$   r0   r6   r:  r   r¡   )rQ  ru   rÜ  rK  Úz_expectr7  rX  rU  r  r:  Ú_zrn   s               r2   Útest_pteqr_NAG_f08jgfrk  £	  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Ð<Ñ<Ô<Ð<Ð<Ð<r4   Úmatrix_size)r  )r[   rZ   ©rZ   rZ   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  éú   r5  Úgeqrfpr½   Úorgqrrþ  )rx   r¿   r   rÎ   rW  r†   )r6   rØ   rf  rÝ   rÞ   r$   r3   r   r   r   r   r/   r¾  r~   r   Úallr:  rd   r   r>  )r0   rl  r1   rÏ   r7  rp  Úgqrrà   rá   r”  Úqr_Arx   rn   r¦  Úqqrr—  Ú
A_negativeÚr_rq_negÚq_rq_negÚrq_A_negÚtau_negÚinfo_negs                         r2   Útest_geqrfpr|  ¼	  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‘:”: ’>Ñ"Ô"ñ$ô $ð $ð $ð $r4   c                  ó†   — t          j        g ¦  «        } t          d| j        ¬¦  «        }t	          t
          || ¦  «         d S )Nrp  r½   )r6   rˆ   r$   r0   r  r  )ÚA_emptyrp  s     r2   Ú#test_geqrfp_errors_with_empty_arrayr  þ	  s;   € åŒh�r‰lŒl€GÝ˜h¨g¬mÐ<Ñ<Ô<€FÝ•)˜V WÑ-Ô-Ð-Ð-Ð-r4   Ú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½   rU   rì  ú$_lwork raised unexpected exception: ©rÜ   r,   r$   r    r  r@   Úfail©r…  r€  rá   r0   Úsc_dlwÚdz_dlwrÜ  s          r2   Ú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½   rU   rR  rN  r‹  rŒ  rŽ  s          r2   Ú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à   )rU   r{   r5  r¨  c                 ó0  — t           j                             d¦  «        }|                     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 r3  rª   )r]  r‘   s     r2   r^  z*test_orcsd_uncsd_lwork.<locals>.<listcomp>-
  s   € Ð%Ð%Ð%˜!��A’Ð%Ð%Ð%r4   )r6   rØ   rÙ   rŽ  rÜ   r$   r    rr  )	r—  rà   r1   rh   r—  r…  Údlwr‰  Úlwvals	            r2   Útest_orcsd_uncsd_lworkrŸ  "
  s³   € õ Œ)×
Ò
 Ñ
%Ô
%€CØ�Š�Q˜ÑÔ€AØ	ˆA‰€AØ�KÐ'Ð'ˆ$ˆ$¨T€CØ
�Ñ
€CÝ	˜# VÐ	,Ñ	,Ô	,€BÝ˜2˜q ! QÑ'Ô'€EØ˜D’[�[ˆEˆE u h€EÝÐ%Ð%˜uÐ%Ñ%Ô%Ñ&Ô&Ð&Ð&Ð&Ð&Ð&r4   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)ro  éP   éª   r™  rš  Úcsdr›  r½   r¿   Úlrworkr   rÂ   r×  g     ˆÃ@rW  )rÜ   r!   Úrvsr"   r$   r    Údictrñ  r   rj  r6   r   r=  Úcosrï  r   rÝ   rÞ   )r—  rà   rh   r—  r…  ÚXÚdrvr�  rž  ÚlwvalsÚcs11Úcs12Úcs21Úcs22ÚthetaÚu1Úu2Úv1tÚv2trn   r_  ÚVHr¦  Ún11Ún12Ún21Ún22ÚSÚonerI  ÚXcs                                  r2   Útest_orcsd_uncsdr¼  0
  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ÐBr4   Ú
trans_boolFÚfactrP  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  r5  ©Úgtsvxr   r½   r{   rU   rþ  r†   rV   r~   r�   r\  rP  NrZ   ©r¾  rŽ   ÚdlfÚdfÚdufr
  r  r   z?gtsvx info = z, should be zerorW   r«  Ú__len__Túrcond should be scalar but is úferr.shape is z but should be úberr.shape is )r6   rØ   rf  rÝ   rÞ   r$   r3   r:  rÜ   r¾  r~   r¿  r   r	   r   r°   r/   )!r0   r½  r¾  r1   r7  rÁ  r   rá   r  ru   r  r”  r‘   rŽ   rŒ   Ú
inputs_cpyÚdlf_Údf_Úduf_Údu2f_Úipiv_Úinfo_Ú	gtsvx_outrÃ  rÄ  rÅ  Údu2fr  Úx_solnr  ÚferrÚberrrn   s!                                    r2   Ú
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´¸´ð+>ð +>ñ @ô @ð @ð @ð @r4   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½   r{   rU   rþ  r†   rV   r~   r�   rP  rZ   rÂ  r\  r   z&info should be > 0 for singular matrix)r¾  rÃ  rÄ  rÅ  r
  r  )	r6   rØ   rf  r$   r3   r:  rÜ   r¾  r~   )r0   r½  r¾  r1   rÁ  r   rá   r  ru   r  r”  r‘   rŽ   rŒ   rË  rÌ  rÍ  rÎ  rÏ  rÐ  rÑ  rÃ  rÄ  rÅ  rÒ  r  rÓ  r  rÔ  rÕ  rn   s                                  r2   Ú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ð 
ˆð ˆxr4   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½   r{   rU   rþ  r†   rV   r~   r�   rP  rZ   r\  rÂ  )r6   rØ   rf  r$   r3   r:  rÜ   r¾  r~   r  rX  r  )r0   r½  r¾  r1   rÁ  r   rá   r  ru   r  r”  r‘   rŽ   rŒ   rË  rÌ  rÍ  rÎ  rÏ  rÐ  s                       r2   Ú"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ð	<ñ 	<ô 	<ð 	<ð 	<ð 	<r4   zdu,d,dl,b,xc           
      óˆ   — t          d|j        ¬¦  «        } |||| |¦  «        }|\
  }}}	}
}}}}}}t          ||¦  «         d S )NrÁ  r½   ©r$   r0   r   )r  ru   r  rŒ   r‘   rÁ  rÑ  rÃ  rÄ  rÅ  rÒ  r  rÓ  r  rÔ  rÕ  rn   s                    r2   Útest_gtsvx_NAGrÝ    s]   € õ. ˜W¨A¬GÐ4Ñ4Ô4€Eà��b˜!˜R Ñ#Ô#€IØ@IÑ=€CˆˆS�$˜˜f e¨T°4¸å˜a Ñ(Ô(Ð(Ð(Ð(r4   zfact,df_de_lambdac                 óB   —  t          d|j        ¬¦  «        | |¦  «        S ©Nr6  r½   ©r$   r0   ©ru   rÜ  s     r2   ú<lambda>râ  %  ó7   € ð )HÕ(8¸Ø?@¼wð)Hñ )Hô )HØHIÈ1ñ)Nô )N€ r4   c                 ó   — dS ©N)NNNrª   rá  s     r2   râ  râ  '  ó   € Ð-?€ r4   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  r5  Úptsvxr½   rY   rX   rU   r†   rV   rþ  ©r¾  rÄ  Úefr   zinfo should be 0 but is ú.r«  rÆ  rÇ  )rV   rÈ  z# but should be ({x_soln.shape[1]},)rÉ  N)r6   rØ   rf  rÝ   rÞ   r$   r3   r:  r¾  r¿  r	   r   r   r   r   r~   r°   r/   )r0   rP  r¾  Údf_de_lambdar1   r7  rè  rá   ru   rÜ  r”  rÓ  rŒ   rÄ  rê  rn   r  r‘   r  rÔ  rÕ  rR  rŠ  s                          r2   Ú
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Ð(õ ˆDŒJ˜$Òð "8°$´*ð "8ð "8ð "8ñ :ô :ð :õ ˆDŒJ˜$Òð "8°$´*ð "8ð "8ð "8ñ :ô :ð :ð :ð :r4   c                 óB   —  t          d|j        ¬¦  «        | |¦  «        S rß  rà  rá  s     r2   râ  râ  `  rã  r4   c                 ó   — dS rå  rª   rá  s     r2   râ  râ  b  ræ  r4   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½   rY   rX   rU   r†   rV   rþ  ré  )
r6   rØ   rf  r$   r3   r:  r¾  r  rX  r  )r0   rP  r¾  rì  r1   rè  rá   ru   rÜ  r”  rÓ  rŒ   rÄ  rê  rn   s                  r2   Ú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ÐJr4   c                 óB   —  t          d|j        ¬¦  «        | |¦  «        S rß  rà  rá  s     r2   râ  râ  {  rã  r4   c                 ó   — dS rå  rª   rá  s     r2   râ  râ  }  ræ  r4   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½   rY   rX   rU   r†   rV   rþ  r\  r   rW   ré  )r6   rØ   rf  r$   r3   r:  r¾  )r0   rP  r¾  rì  r1   rè  rá   ru   rÜ  r”  rÓ  rŒ   rÄ  rê  rn   r‘   r  rÔ  rÕ  s                      r2   Útest_ptsvx_non_SPD_singularrõ  w  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Ð%õ (¨¨¨h¸Ñ<Ô<ˆØ-2¨U°1°a¸©^¬^Ñ*ˆˆB��5˜$  dØ�aŠxˆx˜D Aš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ˆxr4   zd,e,b,xc                 ó|   — t          d|j        ¬¦  «        } || ||¦  «        \  }}}}}	}
}t          ||¦  «         d S )Nrè  r½   rÜ  )ru   rÜ  rŒ   r‘   rè  rÄ  rê  Úx_ptsvxr  rÔ  rÕ  rn   s               r2   Útest_ptsvx_NAGrø  £  sN   € õ. ˜W¨A¬GÐ4Ñ4Ô4€Eà/4¨u°Q¸¸1©~¬~Ñ,€BˆˆG�U˜D $¨å˜a Ñ)Ô)Ð)Ð)Ð)r4   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¹   r5  )r{   rX   rþ  r½   rÅ   c                 ó:   •— g | ]}t          |‰¦  «        D ]}|‘ŒŒS rª   ©r=  ©r]  Úyr‘   rá   s      €r2   r^  z5test_pptrs_pptri_pptrf_ppsv_ppcon.<locals>.<listcomp>Í  ó.   ø€ Ð:Ð:Ð:�q­e°A°q©k¬kÐ:Ð:¨�Ð:Ð:Ð:Ð:r4   c                 ó:   •— g | ]}t          |‰¦  «        D ]}|‘ŒŒS rª   rû  rü  s      €r2   r^  z5test_pptrs_pptri_pptrf_ppsv_ppcon.<locals>.<listcomp>Î  rþ  r4   c                 ó6   — g | ]}t          |¦  «        D ]}|‘ŒŒS rª   rû  ©r]  rý  r‘   s      r2   r^  z5test_pptrs_pptri_pptrf_ppsv_ppcon.<locals>.<listcomp>Ð  s+   € Ð<Ð<Ð<�qµ5¸±8´8Ð<Ð<¨a�Ð<Ð<Ð<Ð<r4   rU   c                 ó<   — g | ]}t          |¦  «        D ]}|d z
  ‘ŒŒS rî  rû  r  s      r2   r^  z5test_pptrs_pptri_pptrf_ppsv_ppcon.<locals>.<listcomp>Ñ  s/   € Ð>Ð>Ð>˜µU¸1±X´XÐ>Ð>°��1‘Ð>Ð>Ð>Ð>r4   )ÚppsvÚpptrfÚpptrsÚpptriÚppconrÇ  rÈ  rì  r   rW  )r˜  r  r  )r6   rØ   rf  rÝ   rÞ   r3   r¾  r~   r   r=  r$   r   r   r   r   r   r‘  r   r   r¡   r  )r0   r  r1   r7  râ   rf   rŒ   rd  Úapr  r  r  r  r  Úulrn   ÚaulÚuliÚaulir‘   ÚbxÚxvr˜  r  rá   s                           @r2   Ú!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¸!Ò;Ñ<Ô<Ð<Ð<Ð<r4   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¹   r5  r{   rþ  )ÚgeesÚtrexcr½   c                 ó   — d S r)  rª   ©r‘   s    r2   râ  z!test_gees_trexc.<locals>.<lambda>û  ó   € ˜D€ r4   FrÒ  r†   r   rP  rm  rW  r[   rU   r  r•   ©r6   rØ   rf  rÝ   rÞ   r3   r$   r   r,   r   r   r¾  r~   )r0   r1   r7  rá   rf   r  r  r  r•  rU  Úd2s              r2   Ú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Ð3r4   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$   r0   r   r   )r•  ÚifstÚilstÚexpectr7  r  r  s          r2   Útest_trexc_NAGr&    so   € ð< €DÝ˜W¨A¬GÐ4Ñ4Ô4€EàˆU�1�a˜˜t¨1Ð-Ñ-Ô-€FÝ�˜”˜QÑÔÐàˆqŒ	€AÝ�F˜A DÐ)Ñ)Ô)Ð)Ð)Ð)r4   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¹   r5  r{   rþ  )ÚggesÚtgexcr½   c                 ó   — d S r)  rª   r  s    r2   râ  z!test_gges_tgexc.<locals>.<lambda>I  r  r4   F©r1  Úoverwrite_br†   r   rU   rÈ  rP  r•   rm  rW  r[   rV   rW   rí  r  )r0   r1   r7  rá   rf   rŒ   r(  r)  r  rõ   r•  r—  rU  Úd1r  s                  r2   Ú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°¸Ð=Ñ=Ô=Ð=Ð=Ð=r4   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¹   r5  r{   rþ  )r  ÚtrsenÚtrsen_lworkr½   c                 ó   — d S r)  rª   r  s    r2   râ  z!test_gees_trsen.<locals>.<lambda>y  r  r4   FrÒ  r†   r   rP  rm  rW  rU   rZ   r¾   ©r¿   Úliworkr•   ©r6   rØ   rf  rÝ   rÞ   r3   r$   r   r,   r   r   r¾  r~   r   r    )r0   r1   r7  rá   rf   r  r0  r1  r  r•  rU  r  Úselectr¿   s                 r2   Útest_gees_trsenr7  n  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Ð3r4   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Éå?¤ß¾ä¿r8  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)\�Âõ(¼?)rU   r   r   rU   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  )r0  r1  r½   r¾   rU   r3  r†   r   rX   rY   rZ   r«  N)r$   r0   r    r,   r   r   r¾  r~   )r•  r—  r6  r%  Úexpect_sÚ
expect_sepr7  Úatol2r0  r1  r¿   r  rõ   Úseps                 r2   Útest_trsen_NAGr>  œ  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Ð4r4   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¹   r5  r{   rþ  )r(  ÚtgsenÚtgsen_lworkr½   c                 ó   — d S r)  rª   r  s    r2   râ  z!test_gges_tgsen.<locals>.<lambda>ó  r  r4   Fr+  r†   r   rU   rÈ  rP  r•   rm  rW  rZ   r¾   iùÿÿÿr  rí  r5  )r0   r1   r7  rá   rf   rŒ   r(  r@  rA  r  rõ   r•  r—  rU  r-  r  r6  r¿   s                     r2   Útest_gges_tgsenrC  ç  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°¸Ð=Ñ=Ô=Ð=Ð=Ð=r4   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Ã   ç       ÀrE  )rD  rÃ   rE  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Â   )rF  rÅ   r×  rÆ   )r  rÂ   g       Àr×  )rý  rÃ   ç      ÀrÅ   )rG  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Â   r5  zSCALE must be 1.0©rÏ   r7  r7  r×  zDIF must be nearly 0zSolution for R is incorrect)r7  r7  zSolution for L is incorrect)r$   r   r   r6   rÝ   rÞ   )rf   rŒ   r�   ru   rÜ  ri   ÚransÚlansr0   r7  rI  ÚroutÚloutra   Údifrn   s                   r2   Útest_tgsyl_NAGrP     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ð;ñ ;ô ;ð ;ð ;ð ;r4   rŽ   )r\  r~   Úijob)r   rU   rV   rW   rX   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öÿÿÿr{   rñ   )Úoutputr  rV   rI  r½   )rŽ   rQ  r   zINFO is non-zeror×  zSCALE must be non-negativer5  zDIF must be 0 for ijob =0rJ  zDIF must be non-negativer\  r~   rý  zlhs1 and rhs1 do not match)r7  rÏ   r7  zlhs2 and rhs2 do not match)r6   rÊ  rØ   rÙ   r   Úuniformr.   r$   r   rÝ   rÞ   r–  )r0   rŽ   rQ  r7  r1   rà   rá   rf   ru   r>   rŒ   rÜ  r�   ri   rI  rM  rN  ra   rO  rn   Úlhs1Úrhs1Úlhs2Úrhs2s                           r2   Ú
test_tgsylrY  T  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Ø <ð	>ñ 	>ô 	>ð 	>ð 	>ð 	>ð €yr4   Úmtyperë  c                 ój  — | 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.ì   *Mö/t|0 )rº   rY   r  r+   r†  r‡  rˆ  Útrsr½   rì  r  r   )rf   r  rŒ   r  r5  r«  )rÜ   r@   rA   r6   rØ   rÙ   r,   rT  r.   r~   r¾  r$   rÝ   rÞ   r   )rZ  r0   r  r1   rá   râ   r”  rŒ   rH   r‡  rˆ  r]  r¿   r  r  rn   r‘   rÞ   s                     r2   Útest_sy_hetrsr^  ‡  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°Ð6Ñ6Ô6�O€CˆˆtØ�1Š9ˆ9ˆ9ˆ9Øˆc�C˜d a¨uÐ5Ñ5Ô5�G€A€tØ�1Š9ˆ9ˆ9ˆ9Ý
Œ(�5‰/Œ/Ô
€CÝ�A�a‘C˜  Q¡ s¡Ð+Ñ+Ô+Ð+Ð+Ð+r4   c                 ó0  — |dk    r| t           v rt          j        d¦  «         t          j        ¦   «         dk    r| t
          v rt          j        d¦  «         t          j                             d¦  «        }d}|                     ||f¦  «        |                     ||f¦  «        dz  z   }t          j	        | t          j
        ¦  «        r|j        }|                     | ¦  «        }|dk    r
||j        z   n||                     ¦   «         j        z   }|› d	�|› d
�f}t          || ¬¦  «        \  }} |||¬¦  «        \  }	}
}|dk    sJ ‚ ||	|
|¬¦  «        \  }}|dk    sJ ‚t          j        | ¦  «        j        }t          j                             |¦  «        }|r>t)          t          j        |¦  «        t          j        |¦  «        d|z  |z  ¬¦  «         d S t)          t          j        |¦  «        t          j        |¦  «        d|z  |z  ¬¦  «         d S )Nr‡  zhetri not for real dtypes.z	win-arm64z1Test segfaulting on win-arm64 in CI, see gh-23133r\  rº   r+   r†  r‡  rT  r½   rì  r   )rf   r  r  r5  r«  )rÜ   r@   rA   Ú	sysconfigÚget_platformr,   r6   rØ   rÙ   r�  r�  rñ   r.   r~   r¾  r$   rÝ   rÞ   r‘  r   r   r   r   )r0   r  rZ  r1   rá   r”  rH   r‡  rT  r  r  rn   ÚA_invrÞ   r¥   s                  r2   Útest_sy_he_trirc  ¡  sþ  € ð �‚}€}˜¥+Ð-Ð-ÝŒÐ0Ñ1Ô1Ð1ÝÔÑÔ ;Ò.Ð.°5½NÐ3JÐ3JÝŒÐGÑHÔHÐHå
Œ)×
Ò
Ð 0Ñ
1Ô
1€CØ
€AØ�
Š
�A�q�6ÑÔ˜SŸZšZ¨¨A¨Ñ/Ô/°Ñ2Ñ2€AÝ	„}�U�BœKÑ(Ô(ð ØŒFˆØ	�Š�‰Œ€AØ˜D’=�=ˆˆAŒC‰ˆ a¨!¯&ª&©(¬(¬*¡n€AØˆMˆMˆM˜e˜=˜=˜=Ð(€EÝ ¨UÐ3Ñ3Ô3�H€CˆØ�c˜! 5Ð)Ñ)Ô)�O€CˆˆtØ�1Š9ˆ9ˆ9ˆ9Ø�#˜ $¨eÐ4Ñ4Ô4�K€Eˆ4Ø�1Š9ˆ9ˆ9ˆ9Ý
Œ(�5‰/Œ/Ô
€CÝ
Œ)�-Š-˜Ñ
Ô
€CØð FÝ�œ ™œ­¬°©¬¸3¸q¹5À¹9ÐEÑEÔEÐEÐEÐEå�œ ™œ­¬°©¬¸3¸q¹5À¹9ÐEÑEÔEÐEÐEÐEr4   r”   z
uplo, m, n))r_  rY   r{   )r_  r{   r{   )rR  r{   rY   )rR  r{   r{   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–   )rU  r:  r_  rU   ç�íµ ÷ÆÀ>rÎ   )
r6   rØ   rÙ   r.   r$   r   r   rØ  rj  r   )r   rU  rà   rá   r:  r0   r1   r”  re  r–   rJ  rI  r¥   s                r2   Ú
test_lantrrg  ¿  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Ð(Ñ(Ô(Ð(Ð(Ð(r4   c           	      ó  — t           j                             d¦  «        }d\  }}}|                     ||f¦  «        |                     ||f¦  «        dz  z   }|                     t          j        d|                     dd¦  «        |¦  «        ¦  «        }||z  }t          j        | t           j        ¦  «        r|j        }| 	                    | ¦  «        }d|t          j
        ||dz   ¦  «        <   d|t          j        || dz
  ¦  «        <   t          |||¦  «        }d|z  |z   dz   }	t          j        |	|f| ¬¦  «        }
||
|d …d d …f<   t           j                             ||d	k    rt           j        nd¬
¦  «        }t#          d|
f¦  «        \  }} ||
||¦  «        \  }}} |||||||¬¦  «        d         }t#          d|f¦  «        \  }} ||¦  «        d         } ||||¬¦  «        d         }t%          ||d¬¦  «         d S )Nì   €2 ©r{   rV   rV   r+   r   r{   rU   rV   r½   r€  r…  )ÚgbconÚgbtrf)r   rn  rm  rT  r  r˜  r‡  rŠ  rÎ   )r6   rØ   rÙ   rŒ  r�  rŽ  r�  r�  rñ   r.   r   r   r   r   r‘  r   r’  r$   r   )r0   r   r1   rá   rm  rn  r”  r•  ÚtmpÚLDABrT  r˜  rk  rl  Úlu_bandr  r>   rJ  rˆ  r‰  r™  r¥   s                         r2   Ú
test_gbconrp  Ô  s  € õ Œ)×
Ò
 Ñ
,Ô
,€Cð �I€A€rˆ2Ø�
Š
�A�q�6ÑÔ˜SŸZšZ¨¨A¨Ñ/Ô/°Ñ2Ñ2€Aà�\Š\�"œ+ a¨¯ª°a¸Ñ)<Ô)<¸aÑ@Ô@ÑAÔA€FØˆ�K€AÝ	„}�U�BœKÑ(Ô(ð ØŒFˆØ	�Š�‰Œ€AØ$%€A…b„o�a˜˜a™Ñ Ô Ñ!Ø%&€A…b„o�a˜"˜˜q™Ñ!Ô!Ñ"õ �R˜˜QÑ
Ô
€CàˆR‰4�"‰9�q‰=€DÝ	Œ�4˜�) 5Ð	)Ñ	)Ô	)€BØ€B€r€s€sˆAˆAˆA€v�JåŒI�NŠN˜1¨D°CªK¨K¥"¤& &¸QˆNÑ?Ô?€EÝ#Ð$6¸¸Ñ>Ô>�L€Eˆ5Ø�u˜R  RÑ(Ô(Ñ€GˆT�1Ø
ˆ%�T˜b R¨G¸$Øðñ ô Øô €Cõ $Ð$6¸¸Ñ=Ô=�L€Eˆ5Ø	ˆˆq‰Œ�!Œ€BØ
ˆ%��E Ð
%Ñ
%Ô
% aÔ
(€Cõ �C˜ 1Ð%Ñ%Ô%Ð%Ð%Ð%r4   c                 ó:  — t           j                             d¦  «        }d\  }}}|                     ||f¦  «        |                     ||f¦  «        dz  z   }t          j        | t           j        ¦  «        r|j        }|                     | ¦  «        }d|t          j        ||dz   ¦  «        <   d|t          j        || dz
  ¦  «        <   t          |||¦  «        }t          d|f¦  «        \  }}	 |	||¦  «        }
 |||||¦  «        }t          ||
d¬¦  «         d S )	Nri  rj  r+   r   rU   )Úlangbr–   rf  rÎ   )r6   rØ   rÙ   r�  r�  rñ   r.   r   r   r   r$   r   )r0   r   r1   rá   rm  rn  r”  rT  rr  r–   r¥   rJ  s               r2   Ú
test_langbrs  ú  s  € õ Œ)×
Ò
 Ñ
,Ô
,€Cð �I€A€rˆ2Ø�
Š
�A�q�6ÑÔ˜SŸZšZ¨¨A¨Ñ/Ô/°Ñ2Ñ2€AÝ	„}�U�BœKÑ(Ô(ð ØŒFˆØ	�Š�‰Œ€AØ$%€A…b„o�a˜˜a™Ñ Ô Ñ!Ø%&€A…b„o�a˜"˜˜q™Ñ!Ô!Ñ"Ý	�B˜˜AÑ	Ô	€Bå#Ð$6¸¸Ñ=Ô=�L€Eˆ5Ø
ˆ%��a‰.Œ.€CØ
ˆ%��b˜"˜bÑ
!Ô
!€CÝ�C˜ 4Ð(Ñ(Ô(Ð(Ð(Ð(r4   Ú	compute_vc                 óÀ  — t           j                             d¦  «        }d}|                     || ¬¦  «        }|                     |dz
  | ¬¦  «        }t          j        |d¦  «        t          j        |¦  «        z   t          j        |d¦  «        z   }t           j                             |¦  «        }t          d¦  «        } ||||¬¦  «        \  }	}
}|dk    sJ ‚t          t          j        |	¦  «        t          j        |¦  «        ¦  «         |rMt          j	        | ¦  «        j
        }t          |
t          j        |	¦  «        z  |
j        z  ||d	z  ¬
¦  «         d S d S )Nl   J*Os{U•r{   r½   rU   r†   Ústevd)rt  r   rŸ  r«  )r6   rØ   rÙ   r:  r‘  Úeigvalshr$   r   rZ  rÝ   rÞ   r~   )r0   rt  r1   rá   ru   rÜ  r”  r¥   rv  r_  r-  rn   rÞ   s                r2   Ú
test_stevdrx    s:  € õ Œ)×
Ò
Ð 2Ñ
3Ô
3€CØ
€AØ�
Š
�1˜Eˆ
Ñ"Ô"€AØ�
Š
�1�q‘5 ˆ
Ñ&Ô&€AÝ
Œ��2‰Œ�œ ™œÑ#¥b¤g¨a°¡m¤mÑ3€AÝ
Œ)×
Ò
˜QÑ
Ô
€Cå˜WÑ%Ô%€EØ��q˜! yÐ1Ñ1Ô1�J€A€qˆ$Ø�1Š9ˆ9ˆ9ˆ9Ý•B”G˜A‘J”J¥¤¨¡¤Ñ-Ô-Ð-Øð @ÝŒh�u‰oŒoÔ!ˆÝ˜�BœG A™JœJ™¨¬Ñ,¨a°c¸3±hÐ?Ñ?Ô?Ð?Ð?Ð?ð@ð @r4   r3  )�Ú	functoolsr   r`  Únumpy.testingr   r   r   r   r   r	   r@   r
   r  Únumpyr6   r   r   r   r   r   r   r   r   Úscipy.linalgr   r8   r   r   r   r   r   r   r   r   r   r   r   Úscipy.linalg._basicr   rN   r    Úscipy.statsr!   r"   Úscipy.sparseÚsparserg  r#   r7   ÚImportErrorr$   rM   r%   Úscipy.__config__r&   Úblas_providerÚblas_versionrÊ  r@  rÜ   rÍ  Ú
complex128r,   rÛ   r3   rK   rQ   rS   r¬   r·   r(  r)  r  r  r  r+  rM  r›  r§  rµ  rÄ  rÌ  rÎ  rä  r  r  r  r!  r2  r;  rK  r^  rg  rm  rt  ry  r�  rŒ  rŽ  r¯  r³  r¼  rÅ  ÚskipifrÎ  rÕ  r=  rë  rò  rõ  rˆ   rü  r  r.  r1  r4  rñ  r<  r>  r@  rN  rV  r^  rc  re  rg  rk  r|  r  r‘  r–  rŸ  r¼  rÖ  rØ  rÚ  rÝ  rí  rñ  rõ  rø  r  r  r&  r.  r7  r>  rC  rP  rY  r^  rc  rD   rg  rp  rs  rx  rª   r4   r2   ú<module>r‡     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à Ð Ð Ð Ð Ð ðØ0Ð0Ð0Ð0Ð0Ð0Ð0øØð ð ð Ø€G€G€Gðøøøà 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,à #Ð #Ð #Ð #Ð #Ð #Ø#Ð #€�ØÐ+Ô,¨VÔ4°VÔ<€ØÐ*Ô+¨FÔ3°IÔ>€àŒz˜2œ:Ð&€Ø”, ¤Ð.€Ø	�~Ñ	%€ð*ð *ð *ð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ñ *Ô)ðð-ð -ð -ð -ð -ñ -ô -ð -ð*;ð ;ð ;ð ;ð ;ñ ;ô ;ð ;ð(;ð ;ð ;ð ;ð ;ñ ;ô ;ð ;ðDK/ð K/ð K/ð K/ð K/ñ K/ô K/ð K/ð^ „×Ò˜ &Ñ)Ô)Ø„×Ò˜   Ñ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Ô/ð,ð. „×Ò™ 4¨ ,Ñ/Ô/Ø„×Ò˜ &Ñ)Ô)Ø„×Ò™¡&Ñ)Ô)ñFð Fñ *Ô)ñ *Ô)ñ 0Ô/ðFð6 „×Ò˜  ¡mÑ!4Ô!4Ñ5Ô5Ø„×Ò™ð (Eñ (Eð (Eñ Fô Fà„×Ò˜ # s Ñ,Ô,Ø„×Ò˜ &Ñ)Ô)ñ)ð )ñ *Ô)ñ -Ô,ñFô Fñ 6Ô5ð
)ð  „×Ò˜ &Ñ)Ô)Ø„×Ò˜   Ñ1Ô1ñ!&ð !&ñ 2Ô1ñ *Ô)ð!&ðH „×Ò˜  ¡mÑ!4Ô!4Ñ5Ô5Ø„×Ò˜ &Ñ)Ô)ñ)ð )ñ *Ô)ñ 6Ô5ð)ð& „×Ò˜ +Ñ.Ô.Ø„×Ò™¡fÑ-Ô-ñ@ð @ñ .Ô-ñ /Ô.ð@ð @ð @s   Á4A; Á;BÂB