Ë
    qwju ã                   ó®,  — 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 d dl'm2Z2 d dl3m4Z4 d dl5m6Z6 dxZ7Z8e6d   d   d   Z7e6d   d   d   Z8ejr                  ejt                  gZ;ejx                  ejz                  gZ>e;e>z   Z?d„ Z@d„ ZAd„ ZB G d„ d«      ZC G d„ d«      ZD G d„ d«      ZEe
jŒ                  j�                  de?«      e
jŒ                  j�                  dg d¢«      d„ «       «       ZH G d„ d «      ZI G d!„ d"«      ZJ G d#„ d$«      ZK G d%„ d&«      ZLe
jŒ                  j�                  de?«      e
jŒ                  j�                  d'g d(¢«      e
jŒ                  j�                  d)d*d+g«      e
jŒ                  j�                  d,d-d*g«      e
jŒ                  j�                  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
jŒ                  jÏ                  dNdO¬P«      dQ„ «       ZhdR„ Zie
jŒ                  j�                  dSdTdUg«      e
jŒ                  j�                  de;«      e
jŒ                  j�                  dV ejdW«      «      e
jŒ                  j�                  dX ejdY«      «      e
jŒ                  j�                  dZ ejdY«      «      e
jŒ                  j�                  d[d d\g«      e
jŒ                  j�                  d]d d\g«      �dhd^„«       «       «       «       «       «       «       Zke
jŒ                  j�                  de;«      d_„ «       Zle
jŒ                  j�                  d`dVdaidXdaidZdaid[daidbdaid]daif«      dc„ «       Zme
jŒ                  j�                  dd ejÜ                  g de¢g df¢g dg¢g dh¢g di¢g dj¢g«       ejÜ                  g dk¢«       ejÜ                  g dl¢g dm¢g dn¢g do¢g dp¢g dq¢g«       ejÜ                  g dr¢g ds¢g dt¢g du¢g«      fg«      dv„ «       Zoe
jŒ                  j�                  de?«      dw„ «       Zpe
jŒ                  j�                  dx ejÜ                  g dy¢«       ejÜ                  g dz¢«       ejÜ                  g d{¢«       ejÜ                  g d|¢«       ejÜ                  g d}¢«       ejÜ                  g d~¢«       ejÜ                  g d¢«       ejÜ                  d€d�gd‚dƒgd„d…gd†d‡gd€dˆgg«       ejÜ                  d‰dŠgd‹d‰gd/dŒgd‰d�gdŒd\gg«      f	 ejÜ                  g dŽ¢«       ejÜ                  g d�¢«       ejÜ                  g d�¢«       ejÜ                  g d‘¢«       ejÜ                  g d’¢«       ejÜ                  g d“¢«       ejÜ                  g d¢«       ejÜ                  d”d•gd–d—gd˜d™gdšd›gdœd�gg«       ejÜ                  dždŸgd d¡gd¢d£gd¤d¥gd¦d§gg«      f	g«      d¨„ «       Zqe
jŒ                  j�                  de?«      e
jŒ                  j�                  d'g d©¢«      e
jŒ                  j�                  d.d/d0g«      dª„ «       «       «       Zre
jŒ                  j�                  de?«      e
jŒ                  j�                  dg d«¢«      d¬„ «       «       Zse
jŒ                  j�                  d­ ete;e;z   e?«      «      d®„ «       Zue
jŒ                  j�                  d­ ete;e;z   e?«      «      d¯„ «       Zve
jŒ                  j�                  d­ ete;e;z   e?«      «      d°„ «       Zwe
jŒ                  j�                  d± ejÜ                  g d²¢«       ejÜ                  g d³¢«       ejÜ                  g d´¢«       ejÜ                  g dµ¢«       ejÜ                  dWd0gdadYgd¶dagd·d¸gd‹d¹gg«       ejÜ                  dºd¶gd¶d»gd\dŒgd»dWgd/d¼gg«      f ejÜ                  g d½¢«       ejÜ                  g d¾¢«       ejÜ                  g d¿¢«       ejÜ                  g dÀ¢«       ejÜ                  dÁdÂgdÃdÄgdÅdÆgdÇdÈgg«       ejÜ                  d¥dÉgdždžgdÊdÊgd¦d¥gg«      fg«      dË„ «       ZxdÌ„ Zye
jŒ                  j�                  dÍ ete?e;e;z   «      «      e
jŒ                  j�                  dÎ ejd/«      «      dÏ„ «       «       Zze
jŒ                  j�                  dÍ ete?e;e;z   «      «      e
jŒ                  j�                  dÎ ejd/«      «      dÐ„ «       «       Z{e
jŒ                  j�                  dÍ ete?e;e;z   «      «      e
jŒ                  j�                  dÎ ejd/«      «      dÑ„ «       «       Z|e
jŒ                  j�                  dÍ ete?e;e;z   «      «      e
jŒ                  j�                  dÎ ejd/«      «      dÒ„ «       «       Z}e
jŒ                  j�                  dÓd¶ ejÜ                  g dÔ¢«       ejÜ                  g dÕ¢«       ejÜ                  g dÖ¢«       ejÜ                  g d×¢g dØ¢g dÙ¢g dÚ¢g«      fg«      dÛ„ «       Z~e
jŒ                  j�                  de?«      e
jŒ                  j�                  dÜg dÝ¢«      dÞ„ «       «       Zdß„ Z€e
jŒ                  j�                  dàg dá¢«      e
jŒ                  j�                  dâdãdäg«      då„ «       «       Z�e
jŒ                  j�                  dàdædçg«      e
jŒ                  j�                  dâdãdäg«      dè„ «       «       Z‚e
jŒ                  j�                  dée?«      e
jŒ                  j�                  dêg dë¢«      dì„ «       «       Zƒe
jŒ                  j�                  dée?«      dí„ «       Z„e
jŒ                  j�                  de?«      e
jŒ                  j�                  dîdïdNg«      e
jŒ                  j�                  dðdñd-g«      dò„ «       «       «       Z…e
jŒ                  j�                  de?«      e
jŒ                  j�                  dîd d\g«      e
jŒ                  j�                  dðdñd-g«      dó„ «       «       «       Z†e
jŒ                  j�                  de?d¶z  «      e
jŒ                  j�                  dîdïdNg«      e
jŒ                  j�                  dðdñd-g«      dô„ «       «       «       Z‡e
jŒ                  j�                  dõ ejÜ                  g dy¢«       ejÜ                  g dz¢«       ejÜ                  g d{¢«       ejÜ                  d€d�gd‚dƒgd„d…gd†d‡gd€dˆgg«       ejÜ                  d‰dŠgd‹d‰gd/dŒgd‰d�gdŒd\gg«      f ejÜ                  g dŽ¢«       ejÜ                  g d�¢«       ejÜ                  g d�¢«       ejÜ                  d”d•gd–d—gd˜d™gdšd›gdœd�gg«       ejÜ                  dždŸgd d¡gd¢d£gd¤d¥gd¦d§gg«      fg«      dö„ «       Zˆe
jŒ                  j�                  dÍ ete?e;e;z   «      «      e
jŒ                  j�                  d÷dñdø„ fd-dù„ fg«      dú„ «       «       Z‰e
jŒ                  j�                  dÍ ete?e;e;z   «      «      e
jŒ                  j�                  d÷dñdû„ fd-dü„ fg«      dý„ «       «       ZŠe
jŒ                  j�                  dÍ ete?e;e;z   «      «      e
jŒ                  j�                  d÷dñdþ„ fd-dÿ„ fg«      �d „ «       «       Z‹e
jŒ                  j�                  �d ejÜ                  g d²¢«       ejÜ                  g d³¢«       ejÜ                  dWd0gdadYgd¶dagd·d¸gd‹d¹gg«       ejÜ                  dºd¶gd¶d»gd\dŒgd»dWgd/d¼gg«      f ejÜ                  g d½¢«       ejÜ                  g d¾¢«       ejÜ                  dÁdÂgdÃdÄgdÅdÆgdÇdÈgg«       ejÜ                  d¥dÉgdždžgdÊdÊgd¦d¥gg«      fg«      �d„ «       ZŒe
jŒ                  j�                  �ddïdNg«      e
jŒ                  j�                  de?«      �d„ «       «       Z�e
jŒ                  j�                  de?«      �d„ «       ZŽe
jŒ                  j�                  �d ejÜ                  g �d¢g �d¢g �d	¢g �d
¢g«       ejÜ                  g �d¢g �d¢g �d¢g �d
¢g«      d¶d\f ejÜ                  g �d¢g �d¢g �d¢g �d¢g«       ejÜ                  g �d¢g �d¢g �d¢g �d¢g«      d\dYfg«      �d„ «       Z�e
jŒ                  j�                  de?«      �d„ «       Z�e
jŒ                  j�                  de?«      �d„ «       Z‘e
jŒ                  j�                  �d ejÜ                  g �d¢g �d¢g �d¢g �d¢g«       ejÜ                  g �d¢g �d¢g �d ¢g �d!¢g«       ejÜ                  g �d"¢g �d#¢g �d$¢g �d%¢g«       ejÜ                  g �d&¢«      �d'�d(f ejÜ                  g �d)¢g �d*¢g �d+¢g �d,¢g«       ejÜ                  g �d-¢g �d.¢g �d/¢g �d0¢g«       ejÜ                  g �d1¢g �d2¢g �d3¢g �d4¢g«       ejÜ                  g �d&¢«      �d5�d6fg«      �d7„ «       Z’e
jŒ                  j�                  de?«      �d8„ «       Z“e
jŒ                  j�                  �d9 ejÜ                  g �d:¢g �d;¢g �d<¢g �d=¢g«       ejÜ                  g �d>¢g �d;¢g �d<¢g �d?¢g«       ejÜ                  g �d@¢g �dA¢g �dB¢g �dC¢g«       ejÜ                  g �dD¢g �dE¢g �dF¢g �dG¢g«       ejÜ                  g �dH¢g �dI¢g �dF¢g �dJ¢g«       ejÜ                  g �dK¢g �dL¢g �dM¢g �dN¢g«       ejÜ                  g �d>¢g �dO¢g �dP¢g �dQ¢g«       ejÜ                  g �dR¢g �dS¢g �dT¢g �dU¢g«      fg«      e
jŒ                  j�                  de;«      �dV„ «       «       Z”e
jŒ                  j�                  de;«      e
jŒ                  j�                  �dW�dX«      e
jŒ                  j�                  �dYg �dZ¢«      �d[„ «       «       «       Z•e
jŒ                  j�                  �d\dãdäg«      e
jŒ                  j�                  de?«      e
jŒ                  j�                  �d�d]«      �d^„ «       «       «       Z–e
jŒ                  j�                  �d\dãdäg«      e
jŒ                  j�                  de?«      e
jŒ                  j�                  �d�d]«      �d_„ «       «       «       Z—e
jŒ                  j�                  d' e˜�d`«      «      e
jŒ                  j�                  �dag �db¢«      e
jŒ                  j�                  d,d-d*g«      e
jŒ                  j�                  de?«      �dc„ «       «       «       «       Z™e
jŒ                  j�                  de?«      e
jŒ                  j�                  d'g d©¢«      �dd„ «       «       Zše
jŒ                  j�                  d' e˜�d`«      «      e
jŒ                  j�                  de?«      �de„ «       «       Z›e
jŒ                  j�                  de;«      e
jŒ                  j�                  �df�d]«      �dg„ «       «       Zœy# e1$ r dZ0Y �ŒÙw xY w(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 r1 |j                  | Ž  |j                  | Ž dz  z   j                  |«      S  |j                  | Ž j                  |«      S )Nù              ð?)ÚCOMPLEX_DTYPESÚrandÚastype)ÚshapeÚdtypeÚrngs      úc/var/www/html/newmanjeet/manjet/venv/lib/python3.12/site-packages/scipy/linalg/tests/test_lapack.pyÚgenerate_random_dtype_arrayr3   +   sZ   € à”ÑØ�—‘˜%Ð Ø�#—(‘(˜EÐ" 4Ñ'ñ(ß)/©°«ð	7àˆ3�8‰8�UÐ×"Ñ" 5Ó)Ð)ó    c                  óR  — t         j                  €t        j                  d«       t	        t         j                  j                  «       «      } h d£}t        «       }t        t         «      D ]/  }|j                  d«      rŒ||vsŒ|| vsŒ|j                  |«       Œ1 |g k(  sJ d«       ‚y)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€GÜ”F–ˆØ—‘ Õ$¨°[Ò)@Ø˜EÒ!Ø�N‰N˜4Õ ð ð �bŠ=ÐNÐNÓN‰=r4   c                  ó*   — ddl m}  ddlm} | |k(  sJ ‚y )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ØÐ-Ò-Ð-Ñ-r4   c                   ó$   — e Zd Zd„ Zd„ Zd„ Zd„ Zy)Ú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        |	«      «       Œ¹ y )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   sÓ   € Úš	¢9Ð-ˆÚÚÚÚðˆó ˆAÜœ  7¡¨DÓ1ˆAØˆyØÙ)*¨1«Ñ&ˆB��B˜ $Ü˜�Hœd 4›jÔ)Ü% b¨!Ô,Ü˜"˜b˜ A¤s¨1¨Q©4£y°¡{Ð#3Ô4Ü% h´·±¼¸A»³Ô@á)*¨2°qÀÔ)BÑ&ˆB��B˜ $Ü˜�Hœd 4›jÕ)ñ r4   c                 óš   — g d¢g d¢g d¢g}dD ];  }t        t        |dz   d «      }|€Œ ||«      \  }}}t        | t        |«      «       Œ= y )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   sW   € ÚÚÚðˆó ˆAÜœ  7¡¨DÓ1ˆAØˆyØÙ˜a›D‰MˆB��TÜ˜�Hœd 4›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 �]u  }|j                  |«      |j                  |«      |j                  |«      }}}t        d|f«      \  }	|j	                  «       r|dxx   dz  cc<   d} |	|||«      \  }
}}t        t        j                  ||
«      t        j                  |
|«      z   ||z  «        |	|||||¬«      \  }
}}t        t        j                  |j                  «       j                  |
«      t        j                  |
|j                  «       j                  «      z   ||z  d¬«        |	|||d¬«      \  }
}}t        t        j                  ||
«      t        j                  |
|«      z
  ||z  d¬«       �Œx y )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‰H�q˜!�f˜q !˜fÐ%Ó&ˆÜ�H‰H�q˜!�f˜q !˜fÐ%Ó&ˆÜ�H‰H�q˜"�g  B˜xÐ(Ó)ˆØˆô ˆEØŸ™ %›¨!¯(©(°5«/¸1¿8¹8ÀE»?�B�ˆBÜ% j°2°%Ó8‰FˆEØ�}‰}ŒØ�1“˜‘“Ø�á" 2 r¨2Ó.‰NˆAˆu�dÜ%¤b§f¡f¨R°£m´b·f±f¸QÀ³mÑ&CØ&+¨b¡jô2ñ # 2 r¨2°UÀ%ÔH‰NˆAˆu�dÜ%Ü—F‘F˜2Ÿ<™<›>×+Ñ+¨QÓ/´"·&±&¸¸B¿L¹L»N×<LÑ<LÓ2MÑMØ˜B‘J¨õ+ñ # 2 r¨2°BÔ7‰NˆAˆu�dÜ%¤b§f¡f¨R°£m´b·f±f¸QÀ³mÑ&CØ&+¨b¡j¸!÷=ñ# r4   c                 ó:  — t        j                  g d¢g d¢g d¢g«      }dD �]w  }dD �]n  }|j                  |«      }|j                  «       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¬«      «      }nA|dv r=t        j                  t        j                  t        j                  |«      d¬«      «      }t        |«       �Œq �Œz y )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‰HÚÚÚðó ˆô
 ˆEÜ)�Ø—X‘X˜e“_�Ø—=‘=”?à�t“H ‘N“Hä)¨*°r°eÓ<‘�Ù˜h¨Ó+�à˜vÑ%Ø ‘}Ø"#™à"#˜ÜŸ'™'¤"§&¡&¬¯©´2·6±6¸"³:Ó)>Ó"?Ó@�CÜ'¨¨s°GÕ<à 4Ñ'Ü Ÿf™f¤R§V¡V¨B£ZÓ0™Ø! UÑ*Ü Ÿf™f¤R§V¡V¬B¯F©F°2«J¸QÔ%?Ó@™Ø! TÑ)Ü Ÿf™f¤R§V¡V¬B¯F©F°2«J¸QÔ%?Ó@˜ä  ¨Ö,ò1 *ñ r4   N)Ú__name__Ú
__module__Ú__qualname__ro   ry   r’   r¦   © r4   r2   rS   rS   P   s   „ ò*ò*	*ò=ó8-r4   rS   c                   ó   — e Zd Zd„ Zd„ Zy)Ú
TestLapackc                 ó&   — t        t        d«      ry y ©NÚempty_module)Úhasattrr8   ©re   s    r2   Útest_flapackzTestLapack.test_flapack²   ó   € Ü”7˜NÔ+àð ,r4   c                 ó&   — t        t        d«      ry y r®   )r°   r7   r±   s    r2   Útest_clapackzTestLapack.test_clapack·   r³   r4   N)r§   r¨   r©   r²   rµ   rª   r4   r2   r¬   r¬   °   s   „ òó
r4   r¬   c                   ó$   — e Zd Zd„ Zd„ Zd„ Zd„ Zy)ÚTestLeastSquaresSolversc           	      óô  — t         j                  j                  d«      }t        t        «      D ]©  \  }}d}d}d}|j                  ||f«      j                  |«      }|j                  |«      j                  |«      }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!        ||«       �Œ y )!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‰i×#Ñ# DÓ)ˆä#¤FÖ+‰JˆC�ØˆAØˆAØˆDØ—‘˜Q ˜FÓ#×*Ñ*¨5Ó1ˆBØ—‘˜A“×%Ñ% eÓ,ˆBÜ)Ð*@ÈÔN‰JˆC�ô # 5¨!¨Q°Ó5ˆEÙ˜R ¨5Ô1‰JˆAˆq�$Ü�D˜A‘IÔÙ˜R ¨6°#©;¸eÔD‰JˆAˆq�$Ü�D˜A‘IÕð ,÷ !�[ˆEÜ—‘˜C ˜:Ø ˜:Ø ˜:ð'à.3ô5ˆBô —‘Ò,°EÔ:ˆBÜ&6Ø3°b¸"°Xó'?Ñ#ˆD�*˜eð —8‘8‰DˆAˆqÜ�2—8‘8‹} Ò!Ø—x‘x ‘{‘à�ô # :¨q°!°TÓ:ˆEá  B¨eÔ4‰LˆC��DÜ˜A˜c˜r˜F¤B§H¡HÐ.AØ.@ð.Bà38ô%:ð "$¤B§H¡H¨U£O×$7Ñ$7Ñ!7õ9ñ "' r£ÑˆI�q˜!˜QÜ˜s IÖ.ð/ !÷2 $�^ˆEÜ—‘˜H c˜?Ø$ hÐ/Ø$ hÐ/ð1à8=ô?ˆBô —‘Ò6¸eÔDˆBÜ&6Ø3°b¸"°Xó'?Ñ#ˆD�*˜eð —8‘8‰DˆAˆqÜ�2—8‘8‹} Ò!Ø—x‘x ‘{‘à�ô # :¨q°!°TÓ:ˆEá  B¨eÔ4‰LˆC��DÜ˜A˜c˜r˜FÜŸH™HÐ&JØ&Jð&Là+0ô2à8:¼2¿8¹8ÀE»?×;NÑ;NÑ8NõPñ "' r£ÑˆI�q˜!˜QÜ˜s IÖ.ñ/ $r4   c                 óš  — t         D �]U  }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  ¬«       �ŒX t        D �]b  }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  ¬«       �Œe y )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Ø  € ß �[ˆEÜ—‘˜C ˜:Ø ˜:Ø ˜:ð'à.3ô5ˆBô —‘Ò,°EÔ:ˆBÜ!1Ð2JØ35°r°(ó"<ÑˆE�;ð —8‘8‰DˆAˆqÜ�2—8‘8‹} Ò!Ø—x‘x ‘{‘à�ñ !,¨A¨q°$¸Ó ;ÑˆD�%˜ÜœŸ™ ›Ó&ˆEØˆJá$ R¨¨U°JØ%'¨°ó 7ÑˆAˆq�$˜ä˜A˜c˜r˜F¤B§H¡HÐ.AØ.@ð.Bà38ô%:ð "$¤B§H¡H¨U£O×$7Ñ$7Ñ!7õ9ô ˜AœrŸx™xÐ);Ø):ð)<ØCHô Jà!#¤B§H¡H¨U£O×$7Ñ$7Ñ!7÷9ð3 !÷: $�^ˆEÜ—‘˜H c˜?Ø$ hÐ/Ø$ hÐ/ð1à8=ô?ˆBô —‘Ò6¸eÔDˆBÜ!1Ð2JØ35°r°(ó"<ÑˆE�;ð —8‘8‰DˆAˆqÜ�2—8‘8‹} Ò!Ø—x‘x ‘{‘à�ñ (3°1°a¸¸rÓ'BÑ$ˆD�%˜ ÜœŸ™ ›Ó&ˆEÜ˜U›ˆJØˆJá$ R¨¨U°JÀ
Ø%'¨°ó 7ÑˆAˆq�$˜ä˜A˜c˜r˜FÜŸH™HÐ&JØ&Jð&Là+0ô2à8:¼2¿8¹8ÀE»?×;NÑ;NÑ8NõPô ˜AÜŸH™HÐ&8Ð:KÐ%LØ+0ô2Ø8:¼2¿8¹8ÀE»?×;NÑ;NÑ8N÷Pñ5 $r4   c           	      óx  — t         D �]S  }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  ¬«       �ŒV t        D �]S  }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  ¬«       �ŒV y )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?  s»  € ç �[ˆEÜ—‘˜C ˜:Ø ˜:Ø ˜:ð'à.3ô5ˆBô —‘Ò,°EÔ:ˆBÜ!1Ð2JØ35°r°(ó"<ÑˆE�;ð —8‘8‰DˆAˆqÜ�2—8‘8‹} Ò!Ø—x‘x ‘{‘à�ñ % Q¨¨4°Ó4‰JˆD�$ÜœŸ™ ›Ó&ˆEá(-¨b°"°b¸%ÀÈÓ(NÑ%ˆAˆq�!�T˜4 Ü˜A˜c˜r˜F¤B§H¡HÐ.AØ.@ð.Bà38ô%:ð "$¤B§H¡H¨U£O×$7Ñ$7Ñ!7õ9ô ˜AœrŸx™xÐ);Ø):ð)<ØCHô Jà!#¤B§H¡H¨U£O×$7Ñ$7Ñ!7÷9ð/ !÷6 $�^ˆEÜ—‘˜H c˜?Ø$ hÐ/Ø$ hÐ/ð1à8=ô?ˆBô —‘Ò6¸eÔDˆBÜ!1Ð2JØ35°r°(ó"<ÑˆE�;ð —8‘8‰DˆAˆqÜ�2—8‘8‹} Ò!Ø—x‘x ‘{‘à�ñ % Q¨¨4°Ó4‰JˆD�$ÜœŸ™ ›Ó&ˆEá(-¨b°"°b¸%ÀÈÓ(NÑ%ˆAˆq�!�T˜4 Ü˜A˜c˜r˜FÜŸH™HÐ&JØ&Jð&Là+0ô2ð "$¤B§H¡H¨U£O×$7Ñ$7Ñ!7õ	9ô
 ˜AœrŸx™xÐ);Ø):ð)<ØCHô Jà!#¤B§H¡H¨U£O×$7Ñ$7Ñ!7÷9ñ1 $r4   c           
      ó(  — 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} ||||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  ¬«       �Œ‚ 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} ||||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  ¬«       �Œ‚ y )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  sÍ  € ç �[ˆEÜ—‘˜C ˜:Ø ˜:Ø ˜:ð'à.3ô5ˆBô —‘Ò,°EÔ:ˆBÜ!1Ð2JØ35°r°(ó"<ÑˆE�;ð —8‘8‰DˆAˆqÜ�2—8‘8‹} Ò!Ø—x‘x ‘{‘à�ñ % Q¨¨4°´B·H±H¸U³O×4GÑ4GÑ1GÓH‰JˆD�$ÜœŸ™ ›Ó&ˆEä—8‘8˜RŸX™X a™[¨!Ð,´B·H±HÔ=ˆDÙ"'¨¨B°´b·h±h¸u³o×6IÑ6IØ(-¨u°eó#=ÑˆAˆq�!�T˜4ä˜A˜c˜r˜F¤B§H¡HÐ.AØ.@ð.Bà38ô%:ð "$¤B§H¡H¨U£O×$7Ñ$7Ñ!7÷9ð+ !÷4 $�^ˆEÜ—‘˜H c˜?Ø$ hÐ/Ø$ hÐ/ð1à8=ô?ˆBô —‘Ò6¸eÔDˆBÜ!1Ð2JØ35°r°(ó"<ÑˆE�;ð —8‘8‰DˆAˆqÜ�2—8‘8‹} Ò!Ø—x‘x ‘{‘à�ñ % Q¨¨4°´B·H±H¸U³O×4GÑ4GÑ1GÓH‰JˆD�$ÜœŸ™ ›Ó&ˆEä—8‘8˜RŸX™X a™[¨!Ð,´B·H±HÔ=ˆDÙ"'¨¨B°´b·h±h¸u³o×6IÑ6IØ(-¨u°eó#=ÑˆAˆq�!�T˜4ä˜A˜c˜r˜FÜŸH™HÐ&JØ&Jð&Là+0ô2ð "$¤B§H¡H¨U£O×$7Ñ$7Ñ!7÷	9ñ+ $r4   N)r§   r¨   r©   rç   rù   rþ   r  rª   r4   r2   r·   r·   ½   s   „ òB/òH:Pòx79ór59r4   r·   r0   r/   )©rW   rX   )rY   rV   ©é   r  c                 óZ   — t        d| ¬«      }|\  }} |||¬«      \  }}t        |d«       y )NÚgeqrf_lworkr½   ©rà   rá   r   ©r$   r   )r0   r/   r
  rà   rá   r¿   rn   s          r2   Útest_geqrf_lworkr  °  s3   € ô # M¸%Ô@€KØ�D€A€qÙ  QÔ'�K€Eˆ4Ü��qÕr4   c                   ó   — e Zd Zd„ Zy)ÚTestRegressionc                 ó   — t         D ]Å  }t        j                  d|¬«      }t        dg|g«      \  }t	        t
        ||d¬«        ||«      \  }}}}|t        v r6t        dg|g«      \  }t	        t
        ||dd  |d¬«        ||dd  |d¬«       Œˆ|t        v sŒ‘t        d	g|g«      \  }	t	        t
        |	|dd  |d¬«        |	|dd  |d¬«       ŒÇ y )
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»  sÒ   € çˆEÜ—‘˜¨Ô/ˆAä% w i°!°Ó5‰FˆEÜœ) U¨A°QÕ7Ù"'¨£(ÑˆB��T˜4àœÑ#Ü)¨7¨)°a°SÓ9‘�Üœi¨°°2°3°¸ÀAÕFÙ�b˜˜�g˜s¨!Ö,Øœ.Ò(Ü)¨7¨)°a°SÓ9‘�Üœi¨°°2°3°¸ÀAÕ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                  j                  dddg«      ej                  j                  dddg«      d„ «       «       Zy)Ú	TestDpotrÚlowerTFÚcleanc                 óâ  — t         j                  j                  d«      }|j                  d¬«      }|j	                  |j
                  «      }t        d|f«      \  }} ||||¬«      \  }}	 |||«      d   }
|r<t        t        j                  |
«      t        j                  t        |«      «      «       y t        t        j                  |
«      t        j                  t        |«      «      «       y )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‰i×#Ñ# BÓ'ˆØ�J‰J˜FˆJÓ#ˆØ�E‰E�!—#‘#‹Jˆä)Ð*<¸q¸eÓD‰ˆ�á�a˜ eÔ,‰ˆˆ1Ù�Q˜Ó˜qÑ!ˆáÜœBŸG™G C›L¬"¯'©'´#°a³&«/Õ:äœBŸG™G C›L¬"¯'©'´#°a³&«/Õ:r4   N)r§   r¨   r©   r@   ÚmarkÚparametrizer'  rª   r4   r2   r  r  Î  sF   „ à‡[�[×Ñ˜W t¨U mÓ4Ø‡[�[×Ñ˜W t¨U mÓ4ñ;ó 5ó 5ñ;r4   r  c                   ó   — e Zd Zd„ Zy)Ú
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 ]5  }
 ||
||«      }|	j                  |d   «       t        |d
   dk  d|
› �«       Œ7 t        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  ¬«       y )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ã  sÆ  € ä—‘š/Ó*ˆÜ—‘Ò0Ó1ˆä�I‰I”r—y‘y¤"§'¡'¨&°°2¨,Ó"7Ü"$§(¡(¨A¬s°5«z¸A©~Ð+>Ó"?ð"Aó BàšQ¤§
¡
˜]Ñ+ð-ó .ˆô � %°EÀuØ#ô%ˆô �V“ˆÜ�n‰n˜f¡T r T™l¨V°A©Y¸ÄÀUÃÑ9KÑ-KÐ,LÐMÓNˆÜ�n‰n˜e¡D b D™k¨4Ð0Ó1ˆä  ¨6¨)Ó4ˆàˆÜ�q˜&Ö!ˆAÙ˜˜3 Ó$ˆCØ�L‰L˜˜Q™Ô äØ�Q‘˜1‘ØOÐPQÈsÐSõð	 "ô —‘˜“¡ " Ñ%ˆä”R—V‘VœBŸH™H U›OÓ,Ð,Ð.CÐDÔEÜ˜˜E¨¬B¯H©H´R·Z±ZÓ,@×,DÑ,DÑ(DØ ¤§¡¬"¯*©*Ó!5×!9Ñ!9Ñ9ö	;r4   N)r§   r¨   r©   rK  rª   r4   r2   r+  r+  â  s   „ ó;r4   r+  c                   ó   — e Zd Zej                  j                  de«      d„ «       Zej                  j                  deD � ���cg c]  }dD ]  }|dk(  r|t        v s||f‘Œ Œ c}}}} «      ej                  j                  dddg«      ej                  j                  d	d
dg«      d„ «       «       «       Z	ej                  j                  dg d¢g d¢g d¢g«      d„ «       Z
d„ Zej                  j                  dddg«      d„ «       Zyc c}}}} w )Ú	TestTbtrsr0   c                 óD  — |t         v rdt        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 rgt        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,¬-«       y.)/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Ú2ð4à %ô'ˆBô —‘˜6 5˜/Ø! 6Ð*Ø  %˜.Ø! 5˜/ð+ð  %ô	&ˆAô
 —H‘H˜q !˜fØ! 2˜hØ  !˜fØ  "˜gð'ð $)ô	*‰Eð
 ”nÑ$Ü—‘ÒKÚFÚ:ð<ð !&ô'ˆBô —‘˜=¨.Ð9Ø*¨NÐ;Ø)¨>Ð:Ø)¨>Ð:ð<ð  %ô	&ˆAô
 —H‘H˜r 6˜lØ% wÐ/Ø4Ð6JÐKØ3Ð5JÐKðMð $)ô	*‰Eô ˜y¨¨Ð/?Ð@ÓAÐAä  '°%Ô8ˆÙ˜2 ¨Ô-‰ˆˆ4Ü�T˜1ÔÜ˜˜5 q¨tÖ4r4   zdtype,trans)ÚNr~   r�   r�   rU  ÚUrR  r:  r[  c           	      óˆ  — t         j                  j                  d«      }d\  }}}t        d|¬«      }	|dk(  }
||
z  }||z
  }t	        || dz
  d«      }|D �cg c]  }|t        |«      z
  ‘Œ }}|D �cg c]  }t        |f||«      ‘Œ }}|dk(  rt        j                  ||¬«      ||<   t        j                  ||d¬	«      }t        j                  |dz   |f|«      }t        |«      D ]4  \  }}|j                  |«      ||t        |d
«      t        ||z   |«      …f<   Œ6 t        ||f||«      } |	|||||¬«      \  }}t        |d
«       |dk(  rt!        ||z  |d¬«       y |dk(  rt!        |j"                  |z  |d¬«       y |dk(  r*t!        |j"                  j%                  «       |z  |d¬«       y t'        d«      ‚c c}w c c}w )Ni¼  )rX   rW   rV   rQ  r½   r\  rU   r†   Údia)Úformatr   )rT  rŒ   rU  rŽ   r:  r[  g-Cëâ6
?rÎ   r~   r�   zInvalid trans argument)r6   rØ   ÚRandomStater$   r=  r¡   r3   r   ÚspsÚdiagsr   rÚ   Údiagonalr¢   Úminr   r   r~   r‹   rX  )re   r0   rŽ   rU  r:  r1   rá   râ   ÚkdrQ  Úis_upperÚkuÚklÚband_offsetsr‘   Úband_widthsÚwidthÚbandsrf   rT  ÚrowÚkrŒ   rn   s                           r2   Útest_random_matriceszTestTbtrs.test_random_matrices4  sÑ  € ô �i‰i×#Ñ# DÓ)ˆð
 ‰ˆˆ4�Ü  °Ô6ˆà˜C‘KˆØ�(‰]ˆØ�"‰Wˆô ˜R "  q¡¨"Ó-ˆÙ+7Ó8©< a�qœ3˜q›6“z¨<ˆÐ8á)ó+Ù)�Uô -¨e¨X°u¸cÕBØ)ð 	ð +ð �3Š;ÜŸ™ ¨Ô/ˆE�"‰Iô �I‰I�e˜\°%Ô8ˆô �X‰X�r˜A‘v˜q�k 5Ó)ˆÜ Ö-‰FˆC�Ø-.¯Z©Z¸«]ˆBˆs”C˜˜1“Iœc ! A¡# q›kÐ)Ð)Ò*ð .ô (¨¨D¨	°5¸#Ó>ˆá˜2 ¨°UÀÔF‰ˆˆ4Ü�T˜1Ôà�CŠ<Ü˜A ™E 1¨4Ö0Ø�cŠ\Ü˜AŸC™C !™G Q¨TÖ2Ø�cŠ\Ü˜AŸC™CŸM™M›O¨aÑ/°¸Ö>äÐ5Ó6Ð6ùò9 9ùò+s   ÁF:Á2F?zuplo,trans,diag)r\  r[  ÚInvalid)r\  rp  r[  )rp  r[  r[  c           	      óæ   — t        dt        j                  ¬«      }t        j                  j	                  d«      }|j                  d«      }|j                  d«      }t        t        ||||||«       y)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  sX   € ô ! ´·
±
Ô;ˆÜ�i‰i×#Ñ# DÓ)ˆØ�Z‰Z˜ÓˆØ�J‰J�vÓˆÜ”i ¨¨A¨t°U¸DÕAr4   c                 óÐ   — t        j                  dt        ¬«      }t        j                  dt        ¬«      }t        dt        ¬«      }d|d<    |||d¬«      \  }}t	        |d«       y	)
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  sU   € ô �W‰W�V¤5Ô)ˆÜ�G‰G�AœUÔ#ˆÜ  ´Ô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
        |||«       y)z2Test ?tbtrs fails correctly if shapes are invalid.r½   rQ  N©r6   r   rt  r$   r  r  )re   Úldabrá   Úldbrâ   rT  rŒ   rQ  s           r2   Útest_invalid_matrix_shapesz$TestTbtrs.test_invalid_matrix_shapes†  sF   € ô �W‰W�d˜A�Y¤eÔ,ˆÜ�G‰G�S˜$�K¤uÔ-ˆÜ  ´Ô6ˆÜ”i ¨¨AÕ.r4   N)r§   r¨   r©   r@   r(  r)  rÛ   rZ  rÜ   ro  rr  ru  rz  )Ú.0r0   rŽ   rÜ   s   0000r2   rM  rM    s8  „ à‡[�[×Ñ˜W fÓ-ñ+5ó .ð+5ðZ ‡[�[×Ñ˜]á+1öNÙ+1 %»°eØ&+¨s¢l°uÄÑ7Kð  % ešnØ?Nð -Ø+1ôNóOð ‡[�[×Ñ˜V c¨3 ZÓ0Ø‡[�[×Ñ˜V c¨3 ZÓ0ñ,7ó 1ó 1ó	Oð,7ð\ ‡[�[×ÑÐ.Ú3Ú3Ú3ð5ó6ñBó	6ðBòð  ‡[�[×ÑÐ.Ø*Ø*ð1ó ñ/ó	ñ/ùõkNs   ÁDrM  r   )ÚIÚ1ÚOrU  r\  rR  r:  r[  rá   rW   r{   c           	      óž  — t        | › |› |› |› |› �j                  «       «      }t        j                  j	                  |«      }|j                  ||f¬«      |j                  ||f¬«      dz  z   }|j                  t        j                  d|j                  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  }|j                  | «      }t!        d|f«      }	 |	||||¬«      \  }
}|dk(  r„t        j"                  j%                  |t        j&                  ¬	«      }t        j"                  j%                  t        j"                  j)                  |«      t        j&                  ¬	«      }d
||z  z  }nKt        j"                  j%                  |d
¬	«      }t!        d|f«      \  }} ||«      \  }}} ||||¬«      \  }}d
}t+        |
||¬«       y )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—  “  sÞ  € ô �5�'˜$˜ ˜v d V¨A¨3Ð/×6Ñ6Ó8Ó9€DÜ
�)‰)×
Ñ
 Ó
%€Cà�
‰
˜˜A˜ˆ
Ó #§*¡*°1°a°& *Ó"9¸"Ñ"<Ñ<€Aà�\‰\œ"Ÿ+™+ a¨¯©°a¸Ó)<¸aÓ@ÓA€FØˆ�K€AÜ—-‘- ¤r§{¡{Ô3ˆ�Š¸€AØ˜c’kŒ�‰�Œ
¤r§w¡w¨q£z€AØˆs‚{Ø	ŒR�W‰W�Q‹Zšœ2Ÿ:™:˜Ñ&Ñ&ˆØ	�‰�‹€Aä˜W q dÓ+€EÙ�1˜4 d°Ô6�F€Cˆàˆs‚{Ü—‘—‘ ¤r§v¡v�Ó.ˆÜ—Y‘Y—^‘^¤B§I¡I§M¡M°!Ó$4¼"¿&¹&�^ÓAˆ
Ø�6˜JÑ&Ñ'‰ä—	‘	—‘˜q a�Ó(ˆÜ'Ð(:¸Q¸DÓ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                  |«      r?t	        |d	«       t        t        |t        «      «       t        t        |t        «      «       ŒÏt	        |d
«       ŒÜ y )Nr   Úlartgr½   rW   rX   r+   ç333333ã?rÅ   y       €š™™™™™é¿çš™™™™™é?)	r$   r6   rˆ   Úiscomplexobjr   r   Ú
isinstanceÚcomplexrt  )r0   r™  ri   ÚgÚcsÚsnÚrs          r2   Ú
test_lartgr£  »  s°   € ÛˆÜ  °Ô6ˆä�H‰H�Q˜ÓˆÜ�H‰H�Q˜Óˆä�?‰?˜1ÔØ�‰GˆAá˜!˜Q“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¢|¬«       �ŒÄ y )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±  Ò  s  € ô ˆØˆØˆä�G‰G�A�q˜%Ó ˆÜ�G‰G�A�q˜%Ó ˆØ”R—X‘X˜e“_×.Ñ.¨qÑ0Ð1Ñ1ˆà�D‰=Ü  ¨eÔ4ˆCØ‰Aä" 5°Ô6ˆCØ�‰HˆAØ�‰GˆAØˆAä™˜A˜q ! Q›ª,Ú*6ð*8Ø>Bõ	Dä™˜A˜q ! Q¨!Ô,ª|Ø01°1°a¸¨|ð/=ØCGõ	Iä™˜A˜q ! Q¨Q°QÔ7Ú%¨¨1¨a° |Ð4¸4õ	Aä™˜A˜q ! Q¨Q°Q¸!Ô<Ú%¨¨1¨a° |Ð4¸4õ	Aä™˜A˜q ! Q¨Q°Q¸!Ô<Ú%¨¨1¨a° |Ð4¸4õ	Aä™˜A˜q ! Q¨Q°Q¸QÀQÈ!ÔLÚ%¨¨1¨a° |Ð4¸4õ	Aä™˜A˜q ! Q¨R°b¸AÔ>Ú%¨¨1¨a° |Ð4¸4õ	Añ �1�a˜˜A¨1¸!Ô<‰ˆˆ1Ü��Q�ŒÜ��Q�ŒÜ˜š<¨dÕ3Ü˜š<¨d×3ñI r4   c            
      ó  — t         j                  j                  d«      } | j                  d«      }|j                  j	                  |«      }| j                  d«      d| j                  d«      z  z   }|j                  j                  «       j	                  |«      }dD �]e  }t        ddg|¬«      \  }}|dv r|j                  «       }n|j                  «       } ||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   |||	j                  «       |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¬«       �Œh y )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À  ü  sØ  € Ü
�)‰)×
Ñ
 Ó
%€CØ	�‰�FÓ	€BØ	�‰�‰�"‹€Bà
�*‰*�VÓ
˜r #§*¡*¨VÓ"4Ñ4Ñ
4€CØ
�%‰%�*‰*‹,×
Ñ
˜3Ó
€Cô
 ˆÜ&¨°Ð'8ÀÔF‰ˆˆtà�D‰=Ø—‘“
‰Aà—‘“	ˆAñ ˜aŸg™g a™j¨™l¨A¨d©G°Q°q±r¸1°u±XÓ>‰ˆˆq�#ô —=‘= ¢1 a 4¡Ó)ˆØ˜‘gˆ�‰Øˆ�‰ô �M‰M˜!˜A™B ˜E™(Ó#ˆØˆˆ!‰Øˆˆ!ˆ"ˆñ ˜˜3Ÿ=™=›?¨A¨a©b²!¨e©H´b·h±h¸q¿w¹wÀq¹zÓ6JÓKˆˆ!‰"Šaˆ%‰ñ ˜˜3 ¢! Q¡R %¡¬"¯(©(°1·7±7¸1±:Ó*>ÀSÔIˆŠ!ˆQ‰Rˆ%‰ä˜š!˜Q˜$™ °Õ5Ü˜˜!šQ˜$™ °×5ñ9 r4   c                  óz   — t        dt        j                  d¬«      } d}t        | ||dd¬«      }|dk(  s|dk(  sJ ‚y y )	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€Là€AÜ˜<¨¨AØ&*¸$ô@€Eð  �IÒ ¨)Ò!3Ð3Ð3Ð!3Ðr4   c                   óÒ   — e Zd Zej                  j                  de«      d„ «       Zej                  j                  de«      ej                  j                  dd«      d„ «       «       Zy)Ú	TestSytrdr0   c                 ón   — t        j                  d|¬«      }t        d|f«      }t        t        ||«       y )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  s.   € ô �H‰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 ]x  }t        j                  ||¬«      }|d |…|dz   f   |d | d||<   t        j                  |||¬«      ||   t        j                  ||«      z  z
  }t        j                  ||«      }Œz t        j                   |d«      }|j"                  |   ||<   t        j                  |j"                  t        j                  ||«      «      }t        ||dt        j                  |«      j                  z  d¬	«       y )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~   rn  Úk2ÚQrI  rý   ÚHÚi_lowerÚQTAQs                        r2   Ú
test_sytrdzTestSytrd.test_sytrdJ  sw  € ô �H‰H�a˜�V 5Ô)ˆô Ð5¸°tÓ<ñ 	ˆˆ{ô
 �I‰I�a˜˜A˜a™C™ !™ A™¨UÔ3ð 	
Œ"×
Ñ
˜qÓ
!Ñ"ñ " !“n‰ˆˆtÜ�T˜1Ôñ !& a¨q¸Ô >Ñˆˆa��C˜Ü�T˜1Ôä˜˜a a¬¯©°«×(;Ñ(;Ñ&;À#ÕFÜ˜œ2Ÿ7™7 1›:Ô&Ü˜˜3ÔÜ˜˜SÔ!ñ !& a¨uÔ 5Ñˆˆa��C˜Ü�T˜1Ôô
 �M‰M˜! 5Ô)ˆÜ�I‰I�a—g‘g˜a‘jÓ!ˆØˆˆ!ˆQˆ$‰Ü�Y‰Y�q—w‘w˜q‘z !‘|Ó$ˆØˆˆ"ˆQ‰$�ˆ(‰Øˆˆ"ˆb�‰dˆ(‰ô �F‰F�1�a˜uÔ%ˆÜ�q˜‘s–ˆAÜ—‘˜ %Ô(ˆAØ˜˜!˜˜Q˜q™S˜‘MˆAˆbˆqˆEØˆAˆa‰DÜ—‘�q˜! 5Ô)¨C°©F´R·X±X¸aÀ³^Ñ,CÑCˆAÜ—‘�q˜!“‰Að ô —/‘/ ! RÓ(ˆØ—S‘S˜‘\ˆˆ'‰
ä�v‰v�a—c‘cœ2Ÿ6™6 ! Q›<Ó(ˆô 	˜˜a a¬¯©°«×(;Ñ(;Ñ&;À#ÖFr4   N)	r§   r¨   r©   r@   r(  r)  rÜ   rÎ  rÞ  rª   r4   r2   rÊ  rÊ  B  se   „ Ø‡[�[×Ñ˜W kÓ2ñ,ó 3ð,ð ‡[�[×Ñ˜W kÓ2Ø‡[�[×Ñ˜S &Ó)ñ7Gó *ó 3ñ7Gr4   rÊ  c                   óà   — e Zd Zej                  j                  de«      d„ «       Zej                  j                  d ee	e«      «      ej                  j                  dd«      d„ «       «       Z
y)Ú	TestHetrdÚcomplex_dtypec                 ón   — t        j                  d|¬«      }t        d|f«      }t        t        ||«       y )Nr•   r½   ÚhetrdrÍ  )re   rá  r�  rã  s       r2   Útest_hetrd_with_zero_dim_arrayz(TestHetrd.test_hetrd_with_zero_dim_array‡  s.   € ô �H‰H�V =Ô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¬«       y )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~   rn  rÙ  rÚ  rI  rý   rÛ  rÜ  ÚQHAQs                           r2   Ú
test_hetrdzTestHetrd.test_hetrdŽ  s  € ô �H‰H�a˜�V =Ô1ˆäÐ5¸°tÓ<ñ 	ˆˆ{ô
 �I‰I�a˜˜A˜a™C™ !™ A™¨ZÔ8Ø”2—9‘9˜Q  1 Q¡3¡¨¡
¨1¡°JÔ?Ñ?ñ@ð 	
Œ"×
Ñ
˜qÓ
!Ñ"ô 	×Ñ˜œBŸG™G¤B§G¡G¨A£JÓ/Ô0ó ˆAÙ! !¨1Ô-‰GˆAˆtÜ˜˜qÕ!ð ô
 ˜{¨AÓ.ˆñ !& a¨q¸Ô >Ñˆˆa��C˜Ü�T˜1Ôä˜˜a a¬¯©°Ó(<×(@Ñ(@Ñ&@ÀsÕKä˜œ2Ÿ7™7¤2§7¡7¨1£:Ó.Ô/Ü˜˜3ÔÜ˜˜SÔ!ñ !& a¨uÔ 5Ñˆˆa��C˜Ü�T˜1Ôô
 �M‰M˜! :Ô.ˆÜ�I‰I�a—g‘g˜a‘j¬Ô,ˆØˆˆ!ˆQˆ$‰Ü�Y‰Y�q—w‘w˜q‘z !‘|¬3Ô/ˆØˆˆ"ˆQ‰$�ˆ(‰Øˆˆ"ˆb�‰dˆ(‰ô �F‰F�1�a˜}Ô-ˆÜ�q˜‘s–ˆAÜ—‘˜ -Ô0ˆAØ˜˜!˜˜Q˜q™S˜‘MˆAˆbˆqˆEØˆAˆa‰DÜ—‘�q˜! =Ô1Ø�a‘&œ2Ÿ8™8 A¤r§w¡w¨q£zÓ2Ñ2ñ3ˆAä—‘�q˜!“‰Að ô —/‘/ ! RÓ(ˆÜ—W‘W˜QŸS™S ™\Ó*ˆˆ'‰
ä�v‰v”b—g‘g˜aŸc™c“l¤B§F¡F¨1¨a£LÓ1ˆô 	Ø�!˜"œRŸX™X jÓ1×5Ñ5Ñ5¸Cö	r4   N)r§   r¨   r©   r@   r(  r)  r,   rä  ÚziprÜ   rì  rª   r4   r2   rà  rà  †  sp   „ Ø‡[�[×Ñ˜_¨nÓ=ñ,ó >ð,ð ‡[�[×ÑÐ7Ù  ¨nÓ=ó?à‡[�[×Ñ˜S &Ó)ñAó *ó?ñAr4   rà  c            
      óØ  — t        t        «      D �]W  \  } }t        d|¬«      \  }}t        |ddd¬«      }| dk  r\t	        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¬ «       �ŒZ y )!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ÿ  Õ  ss  € ä¤×'‰
ˆˆUä+Ð,DØ27ô9Ñˆˆjä˜z¨Q°!°qÔ9ˆà�Š7Ü—‘Ò5Ú5Ú3Ú4Ú3Ú4ð6ð
 >CôDˆAô —‘ÒAÈÔOˆAÜ—‘˜"˜b˜¨Ô/‰Aô —‘ÒMÚNÚKÚKÚKÚKðMó NˆAô —‘˜;˜-Ø%˜,Ø&˜-Ø%˜,Ø&˜-Ø%˜,ð(ó )ˆAô —‘˜ %Ô(ˆAä�H‰HÒ'Ò):Ð;À5ÔIˆá! ! Q¨¨1°EÔ:Ñˆˆ1ˆa�˜Ø�Š7Ü—x‘xò !-ó .‰Hô
 —x‘xò !:ó ;ˆHô 	" &¨(¸A×>ñY (r4   c            
      ó  — t         j                  j                  d«      } t        t        t
        z   «      D �]S  \  }}d}|dk  r@t        d|¬«      }t        d|¬«      \  }}| j                  ||f«      j                  |«      }nVt        d|¬«      }t        d|¬«      \  }}| j                  ||f«      | j                  ||f«      d	z  z   j                  |«      }||j                  «       j                  z   d
z  d
t        j                  ||¬«      z  z   }t        |d«      }t        ||«      }	 |||	d¬«      \  }
}} ||
||d¬«      \  }}t        t        d|z  t         j                  j!                  |d¬«      z
  «      |z  dk  «       �ŒV y )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    sf  € Ü
�)‰)×
Ñ
 Ó
%€CÜ¤¤~Ñ 5×6‰
ˆˆUàˆà�Š7Ü)¨-¸uÔEˆJÜ.Ð/AÈÔO‰OˆF�GØ—‘˜Q ˜FÓ#×+Ñ+¨EÓ2‰Aô *¨-¸uÔEˆJÜ.Ð/AÈÔO‰OˆF�GØ—‘˜Q ˜FÓ# c§j¡j°!°Q°Ó&8¸Ñ&;Ñ;×CÑCÀEÓJˆAð �—‘“—‘‰^˜QÑ ¤2§6¡6¨!°5Ô#9Ñ!9Ñ9ˆä�Q˜“
ˆÜ˜z¨1Ó-ˆÙ˜q¨°QÔ7‰ˆˆT�1Ù˜C d°%¸qÔA‰ˆˆqä”�A�e‘GœbŸi™iŸn™n¨Q°!˜nÓ4Ñ4Ó5°eÑ;¸aÑ?Ö@ñ- 7r4   c                  óŽ  — t         j                  j                  d«      } t        t        «      D �]  \  }}d}t        d|¬«      \  }}}}| j                  ||f«      j                  |«      }||j                  z   dz  }| j                  ||f«      j                  |«      }	|	|	j                  z   dz  dt        j                  ||¬«      z  z   }	 |||	«      \  }
}}t        |dk(  «        ||	«      \  }}t        |dk(  «        |||«      \  }}t        |dk(  «        ||«      \  }}}t        |dk(  «       t        ||
d¬«       �Œ y )	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Ü¤×,‰
ˆˆUàˆä%5ð 7Ià<Aô&CÑ"ˆˆu�e˜Uð �J‰J˜˜1�vÓ×%Ñ% eÓ,ˆØ�—‘‰W�a‰Kˆà�J‰J˜˜1�vÓ×%Ñ% eÓ,ˆØ�—‘‰W�a‰K˜!œbŸf™f Q¨eÔ4Ñ4Ñ4ˆñ !  A›;Ñˆ��DÜ�˜‘	Ôñ ˜“(‰ˆˆ4Ü�˜‘	ÔÙ˜˜1“+‰ˆˆ4Ü�˜‘	Ôá˜Q“x‰ˆˆQ�Ü�˜‘	ÔÜ˜˜W¨6×2ñ5 -r4   c                  ó^  — t         j                  j                  d«      } t        t        «      D �]{  \  }}d}t        d|¬«      \  }}}}| j                  ||f«      j                  |«      d| j                  ||f«      j                  |«      z  z   }||j                  «       j                  z   dz  }| j                  ||f«      j                  |«      d| j                  ||f«      j                  |«      z  z   }	|	|	j                  «       j                  z   dz  dt        j                  ||¬«      z  z   }	 |||	«      \  }
}}t        |dk(  «        ||	«      \  }}t        |dk(  «        |||«      \  }}t        |dk(  «        ||«      \  }}}t        |dk(  «       t        ||
d¬	«       �Œ~ y )
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Ü¤×/‰
ˆˆUàˆä%5ð 7Ià<Aô&CÑ"ˆˆu�e˜Uð �J‰J˜˜1�vÓ×%Ñ% eÓ,¨r°C·J±JÀÀ1¸vÓ4F×4MÑ4MÈeÓ4TÑ/TÑTˆØ�—‘“—‘‰^˜QÑˆà�J‰J˜˜1�vÓ×%Ñ% eÓ,¨r°C·J±JÀÀ1¸vÓ4F×4MÑ4MÈeÓ4TÑ/TÑTˆØ�—‘“—‘‰^˜QÑ ¤R§V¡V¨A°UÔ%;Ñ!;Ñ;ˆñ !  A›;Ñˆ��DÜ�˜‘	Ôñ ˜“(‰ˆˆ4Ü�˜‘	ÔÙ˜˜1“+‰ˆˆ4Ü�˜‘	Ôá˜Q“x‰ˆˆQ�Ü�˜‘	ÔÜ˜˜W¨4×0ñ5 0r4   c                  ó¤  — t         j                  j                  d«      } d\  }}t        t        «      D �]  \  }}t        d|¬«      \  }}t        |||«      }|dk  r+t        | j                  ||«      j                  |«      «      }n@t        | j                  ||«      | j                  ||«      dz  z   j                  |«      «      }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                   ||¬«      }t#        |«      D �cg c]D  }||
|   ||gd	d	…f   j                  j%                  ||gd	d	…f   j'                  «       «      z  z
  ‘ŒF }}t)        t         j$                  |«      }t+        |j%                  |«      |z
  t-        ||¬«      d
t        j.                   |d«      j0                  «      z  d¬«       �Œ y	c c}w )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   Nr{   rÂ   rÓ  r6  )r6   rØ   r`  rÚ   rÛ   r$   r    r   r-   r.   r  r  r~   r   r8  r   r   r=  rŠ   rº  r   r   r   Úspacingrñ   )r1   rà   rá   rß   r0   r"  Útzrzf_lwr¿   r�  Úrzrx   rn   r·  ÚVÚIdr‘   r¥   ÚZs                     r2   Ú
test_tzrzfr*  _  sê  € ô �)‰)×
Ñ
 Ó
%€CØ�D€A€qÜ¤×'‰
ˆˆUÜ*Ð+CØ16ô8‰ˆˆxä˜x¨¨AÓ.ˆà�Š7Ü�S—X‘X˜a “^×*Ñ*¨5Ó1Ó2‰Aä�c—h‘h˜q !“n s§x¡x°°1£~°bÑ'8Ñ8×@Ñ@ÀÓGÓHˆAô 	”i ¨¯©Ô,Ù˜a uÔ-‰ˆˆC�ä�˜‘	Ôô �I‰I�rš!˜R˜a˜R˜%‘y¤"§(¡(¨A¨q°©s¨8¸5Ô"AÐBÓCˆÜ�I‰I”r—v‘v˜a uÔ-¨r²!°Q±R°%©yÐ9Ó:ˆÜ�V‰V�A˜UÔ#ˆÜDIÈ!ÄHÓMÁH¸qˆr�#�a‘&˜˜A˜3¢˜6™Ÿ™Ÿ™¨¨A¨3²¨6©¯©Ó)9Ó:Ñ:Ó:ÀHˆÐMÜ”2—6‘6˜3ÓˆÜ˜Ÿ™˜a› 1™¤j°¸%Ô&@Ø¤§
¡
©5°«:¯?©?Ó ;Ñ;À"÷	Fñ- (ùò( Ns   ÆA	Ic            	      óÐ  — t         j                  j                  d«      } t        t        «      D �]4  \  }}d}|dkD  rOt        | j                  ||«      | j                  ||«      dz  z   t        |«      z   «      j                  |«      }d}n8t        | j                  ||«      t        |«      z   «      j                  |«      }d}t        d|¬«      \  }}} ||«      \  }	}
| j                  |d	«      j                  |«      } |d
|	|«      }t        |t        | |«      |d	z  dk(  rdnd¬«        |d
|	||¬«      }t        |t        |j                  «       j                   |«      |d	z  dk(  rdnd¬«        |d«      |t        j                  |«      t        j                  |«      f<    |d
|	||d¬«      }t        |t        |j                  «       j                   |«      |d	z  dk(  rdnd¬«       | j                  d|«      j                  |«      } |d
|	||dd¬«      }t        |t        | |j                  «      j                  «       j                  |d	z  dk(  rdnd¬«       �Œ7 y)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Ø   r`  rÚ   rÛ   r   r-   r   r.   r$   r   r   rº  r~   rÔ  )r1   rß   r0   rá   r�  rŽ   r,  r-  r.  ÚAfpr>   r  ÚsolnÚB2s                 r2   Ú	test_tfsmr3  �  s%  € ô
 �)‰)×
Ñ
 Ó
%€CÜ¤×'‰
ˆˆUØˆØ�Š7Ü�S—X‘X˜a “^ c§h¡h¨q°!£n°RÑ&7Ñ7¼#¸a»&Ñ@ÓA×HÑHÈÓOˆAØ‰Eä�S—X‘X˜a “^¤c¨!£fÑ,Ó-×4Ñ4°UÓ;ˆAØˆEä-Ð.HØ49ô;Ñˆˆu�dñ �q“‰ˆˆQØ�H‰H�Q˜‹N×!Ñ! %Ó(ˆÙ�B˜˜QÓˆÜ! $¬¨q¨b°!«Ø/2°Q©w¸!ª|©!Àõ	Dñ �B˜˜Q eÔ,ˆÜ! $¬¨q¯v©v«x¯z©z¨k¸1Ó(=Ø/2°Q©w¸!ª|©!Àõ	Dñ ).¨b«	ˆŒ"�)‰)�A‹,œŸ	™	 !›Ð
$Ñ%Ù�B˜˜Q e°#Ô6ˆÜ! $¬¨q¯v©v«x¯z©z¨k¸1Ó(=Ø/2°Q©w¸!ª|©!Àõ	Dð �X‰X�a˜‹^×"Ñ" 5Ó)ˆÙ�B˜˜R u°3¸SÔAˆÜ! $¬¨q¨b°"·$±$«×(<Ñ(<Ó(>×(@Ñ(@Ø/2°Q©w¸!ª|©!À÷	Dñ? (r4   c                  óT  — t         j                  j                  d«      } d\  }}}t        t        «      D �]k  \  }}t        d|¬«      \  }}t        |||«      }|dk  r^t        | j                  ||f«      j                  |«      «      }	| j                  ||f«      j                  |«      }
t        d|¬«      \  }}n‹t        | j                  ||f«      | j                  ||f«      dz  z   j                  |«      «      }	| j                  ||f«      | j                  ||f«      dz  z   j                  |«      }
t        d|¬«      \  }}t        |||«      } ||	|¬	«      \  }}}t        j                  t        j                  ||¬«      |d
d
…|d
…f   f«      }t        j                  ||¬«      }t        |«      D �cg c]D  }|||   ||gd
d
…f   j                  j                  ||gd
d
…f   j                  «       «      z  z
  ‘ŒF }}t        t         j                  |«      }|dk  rdnd}dt        j                    |d«      j"                  «      z  } ||||
|¬	«      \  }}t%        |dk(  «       t'        ||j                  |
«      z
  t)        |
«      |d¬«        ||||
||¬«      \  }}t%        |dk(  «       t'        ||j                  «       j                  j                  |
«      z
  t)        |
«      |d¬«        ||||
d|¬«      \  }}t%        |dk(  «       t'        ||
j                  |«      z
  t)        |
«      |d¬«        ||||
d||¬«      \  }}t%        |dk(  «       t'        ||
j                  |j                  «       j                  «      z
  t)        |
«      |d¬«       �Œn y
c c}w )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¾   Nr~   r�   r{   rÂ   r   rÓ  r6  rÁ   r·  )r¹  r¿   )r¹  rŽ   r¿   )r6   rØ   r`  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_mrzr&  rx   rn   r'  r(  r‘   r¥   rÚ  rŽ   ÚtolÚcqs                            r2   Útest_ormrz_unmrzrB  ª  sD  € ô �)‰)×
Ñ
 Ó
%€CØ�J€BˆˆBÜ¤×'‰
ˆˆUÜ*Ð+CØ16ô8‰ˆˆxä! (¨B°Ó3ˆà�Š7Ü�S—Z‘Z  R Ó)×0Ñ0°Ó7Ó8ˆAØ—
‘
˜B ˜8Ó$×+Ñ+¨EÓ2ˆAÜ$4Ð5MØ;@ô%BÑ!ˆH‘kô �c—j‘j " b Ó*¨S¯Z©Z¸¸R¸Ó-AÀ"Ñ-DÑD×LÑLÈUÓSÓTˆAØ—‘˜R ˜HÓ%¨¯
©
°B¸°8Ó(<¸RÑ(?Ñ?×GÑGÈÓNˆAÜ$4Ð5MØ;@ô%BÑ!ˆH�kô # ;°°BÓ7ˆ	Ù˜a xÔ0‰ˆˆC�ô �I‰I”r—v‘v˜b¨Ô.°²1°b±c°6±
Ð;Ó<ˆÜ�V‰V�B˜eÔ$ˆÜDIÈ"ÄIÓNÁI¸qˆr�#�a‘&˜˜A˜3¢˜6™Ÿ™Ÿ™¨¨A¨3²¨6©¯©Ó)9Ó:Ñ:Ó:ÀIˆÐNÜ”2—6‘6˜3Óˆð ˜Q’w‘ CˆØ”—‘™E #›JŸO™OÓ,Ñ,ˆá˜B  Q¨iÔ8‰ˆˆDÜ�˜‘	ÔÜ˜˜QŸU™U 1›X™¤z°!£}¸3ÀRÕHá˜B  Q¨e¸9ÔE‰ˆˆDÜ�˜‘	ÔÜ˜˜QŸV™V›XŸZ™ZŸ^™^¨AÓ.Ñ.´
¸1³ÀCØõ	!ñ ˜B  Q¨S¸	ÔB‰ˆˆDÜ�˜‘	ÔÜ˜˜QŸU™U 1›X™¤z°!£}¸3ÀRÕHá˜B  Q¨S¸ÀYÔO‰ˆˆDÜ�˜‘	ÔÜ˜˜QŸU™U 1§6¡6£8§:¡:Ó.Ñ.´
¸1³ÀCØ÷	!ñ[ (ùò, Os   Æ;A	N%c            	      óö  — t         j                  j                  d«      } t        t        «      D �]G  \  }}d}|dkD  r:| j                  ||«      | j                  ||«      dz  z   j                  |«      }d}n#| j                  ||«      j                  |«      }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                  «       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                  «       j                  z  cc<   t        ||j                  dd¬«      «       t        ||j                  «       j                  j                  dd¬«      «       t        |
|j                  dd¬«      «       t        ||j                  «       j                  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        |«      «       �ŒJ y)úz
    Test conversion routines between the Rectangular Full Packed (RFP) format
    and Standard Triangular Array (TR)
    r¹   rº   rU   r+   r�   r~   )r,  r-  r½   r   rR  ©rU  r\  )ÚtransrrU  rV   Nr†   ÚF)Úorder)r6   rØ   r`  rÚ   rÛ   r-   r.   r$   r   r   r   rº  r~   r   r   Úreshape)r1   rß   r0   rá   ÚA_fullrF  r,  r-  Ú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_trttfrU  ä  sS  € ô
 �)‰)×
Ñ
 Ó
%€CÜ¤×'‰
ˆˆUØˆØ�Š7Ø—h‘h˜q !“n s§x¡x°°1£~°bÑ'8Ñ8×@Ñ@ÀÓGˆFØ‰Fà—h‘h˜q !“n×,Ñ,¨UÓ3ˆFØˆFä'Ð(:À%ÔH‰ˆˆuÙ˜V“}‰ˆ�Ü�˜‘	ÔÙ˜V¨#Ô.‰ˆ�Ü�˜‘	ÔÙ˜v¨f¸3Ô?‰ˆ�$Ü�˜‘	ÔÙ˜v¨f¸3Ô?‰ˆ�$Ü�˜‘	Ôô ˜!˜A™#˜q !™t˜¨EÔ2ˆÜ ›<ª¨1¨a©4©5¨Ñ1ˆ��"�’a�ÑØ��A‘�a‘‘š!�Ó¤ V£¨U¨a°©d¨U°E°Q¸±T°E¨\Ñ :× ?Ñ ?Ó A× CÑ CÑCÓä˜!˜A™#˜q !™t˜¨EÔ2ˆÜ˜v›,¢q¨%¨1¨a©4¨% xÑ0ˆ�‘’Q�‰Ø��!�Q‘$�š�Óœd 6›l¨1¨a©4©5°!°Q±$±%¨<Ñ8×=Ñ=Ó?×AÑAÑAÓä! &¨(×*:Ñ*:¸2ÀSÐ*:Ó*IÔJÜ! (Ø"*§-¡-£/×"3Ñ"3×";Ñ";¸BÀcÐ";Ó"Jô	Lô 	" &¨(×*:Ñ*:¸2ÀSÐ*:Ó*IÔJÜ! (Ø"*§-¡-£/×"3Ñ"3×";Ñ";¸BÀcÐ";Ó"Jô	Lñ ˜Q Ó'‰ˆ�Ü�˜‘	ÔÙ˜Q ¨SÔ1‰ˆ�Ü�˜‘	ÔÙ˜q (°6ÀÔD‰ˆ�$Ü�˜‘	ÔÙ˜q (°6ÀÔD‰ˆ�$Ü�˜‘	Ôä! &¬$¨v«,Ô7Ü! (¬D°«LÔ9Ü! &¬$¨v«,Ô7Ü! (¬D°«LÖ9ñc (r4   c                  óœ  — t         j                  j                  d«      } t        t        «      D �]š  \  }}d}|dkD  r8| j                  ||«      | j                  ||«      dz  z   j                  |«      }n!| j                  ||«      j                  |«      }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        |«      «       �Œ� y)rD  r¹   rº   rU   r+   )ÚtrttpÚtpttrr½   r   rR  rE  rV   N)r6   rØ   r`  rÚ   rÛ   r-   r.   r$   r   r   r   r   r~   r   r   r   )r1   rß   r0   rá   rJ  rW  rX  ÚA_tp_Urn   ÚA_tp_LÚindsÚA_tp_U_mÚA_tp_L_mrQ  rR  s                  r2   Útest_tpttr_trttpr^    s¢  € ô
 �)‰)×
Ñ
 Ó
%€CÜ¤×'‰
ˆˆUØˆØ�Š7Ø—h‘h˜q !“n s§x¡x°°1£~°bÑ'8Ñ8×@Ñ@ÀÓG‰Fà—h‘h˜q !“n×,Ñ,¨UÓ3ˆFä'Ð(:À%ÔH‰ˆˆuÙ˜V“}‰ˆ�Ü�˜‘	ÔÙ˜V¨#Ô.‰ˆ�Ü�˜‘	Ôô ˜A‹ˆÜ˜˜A˜a™C™ !™¨5Ô1ˆÜ˜F“|—~‘~ tÑ,ˆ‘ˆä˜A‹ˆÜ˜˜A˜a™C™ !™¨5Ô1ˆÜ˜F“|—~‘~ tÑ,ˆ‘ˆä! &¨(Ô3Ü! &¨(Ô3ñ ˜Q Ó'‰ˆ�Ü�˜‘	ÔÙ˜Q ¨SÔ1‰ˆ�Ü�˜‘	Ôä! &¬$¨v«,Ô7Ü! &¬$¨v«,Ö7ñA (r4   c                  óz  — t         j                  j                  d«      } t        t        «      D �]	  \  }}d}|dkD  rd| j                  ||«      | j                  ||«      dz  z   j                  |«      }||j                  «       j                  z   |t        |«      z  z   }n?| j                  ||«      j                  |«      }||j                  z   |t        |«      z  z   }t        d|¬«      \  }}} ||«      \  }}	 |||«      \  }
}	t        |	dk(  «        |||
«      \  }}t        |«      }t        ||«       �Œ y)	zk
    Test Cholesky factorization of a positive definite Rectangular Full
    Packed (RFP) format array
    r¹   rº   rU   r+   )Úpftrfr,  r-  r½   r   N)r6   rØ   r`  rÚ   rÛ   r-   r.   rº  r~   r   r$   r   r   r   )r1   rß   r0   rá   r�  r`  r,  r-  r0  rn   Ú	Achol_rfpÚA_chol_rr>   ÚAchols                 r2   Ú
test_pftrfrd  G  s  € ô
 �)‰)×
Ñ
 Ó
%€CÜ¤×'‰
ˆˆUØˆØ�Š7Ø—‘˜!˜Q“ #§(¡(¨1¨a£.°Ñ"3Ñ3×;Ñ;¸EÓBˆAØ�A—F‘F“H—J‘J‘ ¤3 q£6¡Ñ)‰Aà—‘˜!˜Q“×'Ñ'¨Ó.ˆAØ�A—C‘C‘˜!œC ›F™(Ñ"ˆAä.Ð/JØ5:ô<Ñˆˆu�eñ ˜!“H‰	ˆˆTÙ  3›-‰ˆ	�4Ü�˜‘	ÔÙ˜A˜yÓ)‰ˆ�!Ü˜“ˆÜ! (¨EÖ2ñ% (r4   c                  ó¾  — t         j                  j                  d«      } t        t        «      D �]+  \  }}d}|dkD  rd| j                  ||«      | j                  ||«      dz  z   j                  |«      }||j                  «       j                  z   |t        |«      z  z   }n?| j                  ||«      j                  |«      }||j                  z   |t        |«      z  z   }t        d|¬«      \  }}}} ||«      \  }	}
 |||	«      \  }}
 |||«      \  }}
t        |
dk(  «        |||«      \  }}t        |«      }t        |t        |«      |dz  dk(  rd	nd
¬«       �Œ. y)z
    Test Cholesky factorization of a positive definite Rectangular Full
    Packed (RFP) format array to find its inverse
    r¹   rº   rU   r+   )Úpftrir`  r,  r-  r½   r   rV   rX   rZ   r„   N)r6   rØ   r`  rÚ   rÛ   r-   r.   rº  r~   r   r$   r   r   r   r   )r1   rß   r0   rá   r�  rf  r`  r,  r-  r0  rn   Ú
A_chol_rfpÚ	A_inv_rfpÚA_inv_rr>   ÚAinvs                   r2   Ú
test_pftrirk  b  sM  € ô
 �)‰)×
Ñ
 Ó
%€CÜ¤×'‰
ˆˆUØˆØ�Š7Ø—‘˜!˜Q“ #§(¡(¨1¨a£.°Ñ"3Ñ3×;Ñ;¸EÓBˆAØ�A—F‘F“H—J‘J‘ ¤3 q£6¡Ñ)‰Aà—‘˜!˜Q“×'Ñ'¨Ó.ˆAØ�A—C‘C‘˜!œC ›F™(Ñ"ˆAä%5ð 7@ð =Bô	&CÑ"ˆˆu�e˜Uñ ˜!“H‰	ˆˆTÙ   C›=Ñˆ
�DÙ  :Ó.‰ˆ	�4Ü�˜‘	ÔÙ˜1˜iÓ(‰
ˆ�Ü�1‹vˆÜ! '¬4°«:Ø/2°Q©w¸!ª|©!À÷	Dñ- (r4   c                  óV  — t         j                  j                  d«      } t        t        «      D �]w  \  }}d}|dkD  rd| j                  ||«      | j                  ||«      dz  z   j                  |«      }||j                  «       j                  z   |t        |«      z  z   }n?| j                  ||«      j                  |«      }||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¬«       �Œz y)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   )Úpftrsr`  r,  r-  r   rX   rZ   r„   N)r6   rØ   r`  rÚ   rÛ   r-   r.   rº  r~   r   r   r$   r   r  r  r   r   )r1   rß   r0   rá   r�  r  ÚBf1ÚBf2rm  r`  r,  r-  r0  rn   rg  r1  s                   r2   Ú
test_pftrsrp  ‚  sž  € ô
 �)‰)×
Ñ
 Ó
%€CÜ¤×'‰
ˆˆUØˆØ�Š7Ø—‘˜!˜Q“ #§(¡(¨1¨a£.°Ñ"3Ñ3×;Ñ;¸EÓBˆAØ�A—F‘F“H—J‘J‘ ¤3 q£6¡Ñ)‰Aà—‘˜!˜Q“×'Ñ'¨Ó.ˆAØ�A—C‘C‘˜!œC ›F™(Ñ"ˆAä�!�Q�˜uÔ%ˆÜ�A�a‘C˜�8 5Ô)ˆÜ�A�a‘C˜�8 5Ô)ˆÜ%5ð 7@ð =Bô	&CÑ"ˆˆu�e˜Uñ ˜!“H‰	ˆˆTÙ   C›=Ñˆ
�Dá˜1˜j¨#Ó.‰
ˆˆdÜ�˜‘	ÔÜ”i ¨¨:°sÔ;Ù˜1˜j¨!Ó,‰
ˆˆdÜ�˜‘	ÔÜ!¤%¨¨1£+¨tØ/2°Q©w¸!ª|©!À÷	Dñ7 (r4   c            
      ó0  — t         j                  j                  d«      } t        t        «      D �]d  \  }}d}|dkD  rd| j                  ||«      | j                  ||«      dz  z   j                  |«      }||j                  «       j                  z   |t        |«      z  z   }n?| j                  ||«      j                  |«      }||j                  z   |t        |«      z  z   }|dk  rdnd}t        dd	|› d
�f|¬«      \  }}} ||«      \  }	}
| j                  |d«      j                  |«      } ||dd|d|	«      } |||«      \  }}
t        |t        |j                  |j                  «       j                  «       d|z  z   «      |dz  dk(  rdnd¬«       �Œg y)zT
    Test for performing a symmetric rank-k operation for matrix in RFP format.
    r¹   rº   rU   r+   rV   rõ   Úhr,  r-  Úfrkr½   r†   r   rX   rZ   r„   N)r6   rØ   r`  rÚ   rÛ   r-   r.   rº  r~   r   r$   r   r   rŠ   )r1   rß   r0   rá   r�  Úprefixr,  r-  Úshfrkr0  r>   r�   ÚAfp_outÚA_outs                 r2   Útest_sfrk_hfrkrx  §  sv  € ô �)‰)×
Ñ
 Ó
%€CÜ¤×'‰
ˆˆUØˆØ�Š7Ø—‘˜!˜Q“ #§(¡(¨1¨a£.°Ñ"3Ñ3×;Ñ;¸EÓBˆAØ�A—F‘F“H—J‘J‘ ¤3 q£6¡Ñ)‰Aà—‘˜!˜Q“×'Ñ'¨Ó.ˆAØ�A—C‘C‘˜!œC ›F™(Ñ"ˆAà˜Q’w‘ CˆÜ.°¸ÀVÀHÈCÀ.Ð/QØ5:ô<Ñˆˆu�eñ �q“‰ˆˆQØ�H‰H�Q˜‹N×!Ñ! %Ó(ˆÙ˜˜1˜b ! Q¨Ó,ˆÙ˜˜GÓ$‰ˆˆqÜ! %¬¨q¯u©u°Q·V±V³X·Z±ZÓ/@Ð.@À1ÀQÁ3Ñ.FÓ)GØ/2°Q©w¸!ª|©!À÷	Dñ# (r4   c            
      óÌ  — t         j                  j                  d«      } t        t        «      D �]²  \  }}d}|dkD  r[| j                  dd||f«      | j                  dd||f«      dz  z   j                  |«      }||j                  «       j                  z   }nB| j                  dd||f«      j                  |«      }||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¬«       �Œµ y)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Ø   r`  rÚ   rÛ   Úrandintr.   rº  r~   r   r$  rñ   r$   r    r   r   r   r   )r1   rß   r0   rá   r�  r@  r{  ÚtrfÚ	trf_lworkÚlwrR  ÚDÚpermr  r  rn   rf   rØ  r\  s                      r2   Útest_syconvrƒ  Á  sÖ  € ô
 �)‰)×
Ñ
 Ó
%€CÜ¤×'‰
ˆˆUØˆà�Š7Ø—‘˜S " q¨! fÓ-Ø—‘˜S " q¨! fÓ-¨bÑ0ñ1ß28±&¸³-ð ð �A—F‘F“H—J‘J‘‰Aà—‘˜C  a¨ VÓ,×3Ñ3°EÓ:ˆAØ�A—C‘C‘˜!œC ›F™(Ñ"ˆAà”"—*‘*™U 3›ZŸ_™_Ó-Ñ-ˆÜ!1ð 3BØINô"PÑˆ��Yä˜I q°Ô2ˆÜ˜ !¨uÔ5‰
ˆˆ1ˆdÜ˜I q°Ô2ˆÙ˜a q°Ô3‰ˆˆT�4Ù˜C ¨QÔ/‰
ˆˆ1ˆdÜœ˜Q ›¤d¨1¨T²1¨W©:°rÓ&:ÀÈ2ÕNô ˜ !¨uÔ5‰
ˆˆ1ˆdÙ˜a qœ/‰ˆˆT�4Ù˜C ¨QÔ/‰
ˆˆ1ˆdÜœ˜Q ›
¤D¨¨4²¨7©°QÓ$7¸cÈ×Kñ5 (r4   c                   ó   — e Zd ZdZd„ Zd„ Zy)ÚTestBlockedQRzd
    Tests for the blocked QR factorization, namely through geqrt, gemqrt, tpqrt
    and tpmqr.
    c           
      óœ  — t         j                  j                  d«      }t        t        «      D �]š  \  }}d}|dkD  r8|j                  ||«      |j                  ||«      dz  z   j                  |«      }n!|j                  ||«      j                  |«      }dt        j                   |d«      j                  «      z  }t        d|¬«      \  }} |||«      \  }	}
}|d	k(  sJ ‚t        j                  |	d
«      t        j                  ||¬«      z   }t        j                  ||¬«      ||
z  |j                  j                  «       z  z
  }t        j                  |	«      }t        |j                  j                  «       |z  t        j                  ||¬«      |d¬«       t        ||z  ||d¬«       |dkD  r:|j                  ||«      |j                  ||«      dz  z   j                  |«      }d}n#|j                  ||«      j                  |«      }d}dD ]‹  }d|fD ]‚  } ||	|
|||¬«      \  }}|d	k(  sJ ‚||k(  r|j                  j                  «       }n|}|dk(  r||z  }n||z  }t        |||d¬«       ||fdk(  sŒc ||	|
|«      \  }}|d	k(  sJ ‚t!        ||«       Œ„ Œ� t#        t$        ||	|
|d¬«       t#        t$        ||	|
|d¬«       �Œ� y )Nr¹   rº   rU   r+   r5  rÂ   )ÚgeqrtÚgemqrtr½   r   r†   rÓ  r6  r�   r~   ©rR  r·  r[  ©r¹  rŽ   rR  ©rR  r[  r�  r¸  r/  )r6   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@  r‡  rˆ  rf   Útrn   rý   rÚ  r·  r�   Ú	transposer¹  rŽ   r�   ÚqÚqCÚ	c_defaults                          r2   Útest_geqrt_gemqrtzTestBlockedQR.test_geqrt_gemqrtê  s�  € Ü�i‰i×#Ñ# DÓ)ˆÜ#¤F×+‰JˆC�ØˆAà�QŠwØ—X‘X˜a “^ c§h¡h¨q°!£n°RÑ&7Ñ7×?Ñ?ÀÓF‘à—X‘X˜a “^×+Ñ+¨EÓ2�à”b—j‘j¡ s£§¡Ó1Ñ1ˆCÜ,Ð-@ÈÔN‰MˆE�6á˜q !›‰JˆAˆq�$Ø˜1’9Ð�9ô —‘˜˜2“¤§¡¨°Ô!7Ñ7ˆAä—‘�q Ô&¨¨Q©°·±·±³Ñ);Ñ;ˆAÜ—‘˜“
ˆAô ˜AŸC™CŸH™H›J¨™N¬B¯F©F°1¸EÔ,BÈØ!#õ%ä˜A ™E 1¨3°RÕ8à�QŠwØ—X‘X˜a “^ c§h¡h¨q°!£n°RÑ&7Ñ7×?Ñ?ÀÓF�Ø‘	à—X‘X˜a “^×+Ñ+¨EÓ2�Ø�	ã"�Ø! 9Ó-�EÙ$ Q¨¨1°4¸uÔE‘G�A�tØ 1š9Ð$˜9à 	Ò)ØŸC™CŸH™H›J™à˜à˜s’{Ø ™U™à ™U˜ä# A r°¸"Õ=ð ˜e�}¨
Ó2Ù*0°°A°q«/™˜	 4Ø# qšyÐ(˜yÜ$ Y°Õ2ñ) .ð #ô0 œ) V¨Q°°1¸3Õ?Üœ) V¨Q°°1¸C×@ñu ,r4   c                 ó
  — t         j                  j                  d«      }t        t        «      D �]Ò  \  }}d}|dkD  ro|j                  ||«      |j                  ||«      dz  z   j                  |«      }|j                  ||«      |j                  ||«      dz  z   j                  |«      }nB|j                  ||«      j                  |«      }|j                  ||«      j                  |«      }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                  j!                  «       z  z
  }t        j                  t        j                  |«      t        j"                  |«      f«      }t%        |j                  j!                  «       |z  t        j                  d
|z  |¬«      |d¬«       t%        ||z  t        j                  t        j                  |«      |f«      |d¬«       |dkD  rq|j                  ||«      |j                  ||«      dz  z   j                  |«      }|j                  ||«      |j                  ||«      dz  z   j                  |«      }d}nD|j                  ||«      j                  |«      }|j                  ||«      j                  |«      }d}dD �]  }d|fD ]ø  } |	|
||||||¬«      \  }}}|d	k(  sJ ‚||k(  r|j                  j!                  «       }n|}|dk(  r8t        j                  ||fd	¬«      }t        j                  ||fd	¬«      }||z  }n7t        j                  ||fd¬«      }t        j                  ||fd¬«      }||z  }t%        |||d¬«       ||fdk(  sŒÊ |	|
||||«      \  }} }|d	k(  sJ ‚t        ||«       t        | |«       Œú �Œ t'        t(        |	|
||||d¬«       t'        t(        |	|
||||d¬«       �ŒÓ �ŒÕ y )Nr¹   rº   rU   r+   r5  rÂ   )ÚtpqrtÚtpmqrtr½   r   rV   r†   rÓ  r6  r�   r~   r‰  r[  rŠ  rR  r›   r‹  r�  r¸  r/  )r6   rØ   r`  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  r@  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(  s_  € Ü�i‰i×#Ñ# DÓ)ˆÜ#¤F×+‰JˆC�ØˆAà�QŠwØ—X‘X˜a “^ c§h¡h¨q°!£n°RÑ&7Ñ7×?Ñ?ÀÓF�Ø—X‘X˜a “^ c§h¡h¨q°!£n°RÑ&7Ñ7×?Ñ?ÀÓF‘à—X‘X˜a “^×+Ñ+¨EÓ2�Ø—X‘X˜a “^×+Ñ+¨EÓ2�à”b—j‘j¡ s£§¡Ó1Ñ1ˆCÜ,Ð-@ÈÔN‰MˆE�6ð ˜˜a™ ”^�Ù % a¨¨A¨qÓ 1‘��1�a˜Ø˜q’yÐ �yô œRŸW™W Q¨›^¬R¯W©W°Q¸«^Ô<ô œRŸW™W Q¨¨A©°©	Ó2´B·G±G¸A¸qÀ1¹uÀq¹yÓ4IÔJô "$§¡¨¨A°©EÓ!2´B·G±G¸A¸qÀ1¹uÓ4E˜�ô —N‘N¤B§F¡F¨1°EÔ$:¸FÐ#CÓD�ä—F‘F˜1˜q™5¨Ô.°°Q±¸¿¹¿¹»Ñ1CÑC�Ü—N‘N¤B§G¡G¨A£J´·±¸aÓ0@Ð#AÓB�ô   §¡§¡£
¨Q¡´·±°q¸1±uÀEÔ0JØ%(¨rõ3ä  A¡¤r§~¡~´r·w±w¸q³zÀ6Ð6JÓ'KØ%(¨rõ3ð ˜’7ØŸ™ ! Q›¨#¯(©(°1°a«.¸Ñ*;Ñ;×CÑCÀEÓJ�AØŸ™ ! Q›¨#¯(©(°1°a«.¸Ñ*;Ñ;×CÑCÀEÓJ�AØ #‘IàŸ™ ! Q›×/Ñ/°Ó6�AØŸ™ ! Q›×/Ñ/°Ó6�AØ #�Iä&�DØ"% yÓ!1˜Ù%+¨A¨q°!°Q¸ÀØ27ô&9™
˜˜1˜dà# qšyÐ(˜yà  IÒ-Ø !§¡§¡£
™Aà !˜Aà 3š;Ü!#§¡°°A°¸QÔ!?˜BÜ!#§¡°°A°¸QÔ!?˜BØ"# b¡&™Cä!#§¡°°A°¸QÔ!?˜BÜ!#§¡°°A°¸QÔ!?˜BØ"$ q¡&˜Cä'¨¨C°cÀÕCà  %˜=¨JÓ6Ù9?ÀÀ1ÀaÈÈAÓ9NÑ6˜I y°$Ø#'¨1¢9Ð, 9Ü(¨°AÔ6Ü(¨°AÕ6ò3 "2ð 'ô: œi¨°°A°q¸!¸QÀSÕIÜœi¨°°A°q¸!¸QÀc×JòA $ñ ,r4   N)r§   r¨   r©   r?   r‘  rœ  rª   r4   r2   r…  r…  ä  s   „ ñò
<Aó|QKr4   r…  c                  ó:  — t         j                  j                  d«      } t        t        «      D �]i  \  }}d}d}t        d|¬«      }|dkD  rj| j                  |||z
  «      j                  |«      d| j                  |||z
  «      j                  |«      z  z   }||j                  «       j                  z  }n3| j                  |||z
  «      j                  |«      }||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                  «       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                  «       j                  z  d|¬«       �Œl y )Nr¹   r{   rV   Úpstrfr½   rU   r+   rÓ  éè  ©r   rV   rW  rè  ©r6   rØ   r`  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Ü¤×'‰
ˆˆUàˆØˆÜ  °Ô6ˆð �Š7Ø—‘˜˜A˜a™CÓ ×'Ñ'¨Ó.°°c·h±h¸qÀ!ÀAÁ#Ó6F×6MÑ6MÈeÓ6TÑ1TÑTˆAØ�A—F‘F“H—J‘J‘‰Aà—‘˜˜A˜a™CÓ ×'Ñ'¨Ó.ˆAØ�A—C‘C‘ˆAá! !›HÑˆˆ3��TÜ�‹GˆØ "ˆˆ#�‰'‰(�C˜!‘G‘HÐ
Ñä�T˜1Ôð œRŸX™X¤b§j¡jÓ1×5Ñ5Ñ5ˆØœRŸX™X¤b§j¡jÓ1×5Ñ5Ñ5ˆØ! V™m‰{°ˆÜ˜˜#˜a™%™¢ C¨¡E Ñ*¨A¯F©F«H¯J©J¸©NÀÈ$ÕOá! !¨1Ô-Ñˆˆ3��TÜ�‹GˆØ "ˆˆ#�‰'‰(�C˜!‘G‘HÐ
Ñä�T˜1ÔàœRŸX™X¤b§j¡jÓ1×5Ñ5Ñ5ˆØœRŸX™X¤b§j¡jÓ1×5Ñ5Ñ5ˆØ! V™m‰{°ˆÜ˜˜#˜a™%™¢ C¨¡E Ñ*¨A°·±³·
±
©NÀÈ$×OñG (r4   c                  ó:  — t         j                  j                  d«      } t        t        «      D �]i  \  }}d}d}t        d|¬«      }|dkD  rj| j                  |||z
  «      j                  |«      d| j                  |||z
  «      j                  |«      z  z   }||j                  «       j                  z  }n3| j                  |||z
  «      j                  |«      }||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                  «       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                  «       j                  z  d|¬«       �Œl y )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  r3t        j                  g d	¢g d
¢g d¢g d¢g«      }|j	                  |«      }nUt        j                  g d¢g d¢g d¢g|¬«      }|t        j                  g d¢g d¢g d¢g«      dz  z  }|j	                  |«      }t        d|¬«      } ||«      \  }}}}	}
}|dk  r,t        | j	                  |«      |d d …d f   |z  |z  dd¬«       Œát        |j	                  |«      |d d …d f   |z  |z  dd¬«       �Œ y )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³  Ì  st  € Ü—8‘8Ò>Ú@Ú@Ú@ðBó C€Lô
 —8‘8ò 1ò1ò1ð2ó 3€Lô  ¤×'‰
ˆˆUØ�Š7ä—‘ÒCÚEÚEÚEðGó HˆAð —‘˜“‰Aä—‘Ò:Ú:Ú:ð<àCHôJˆAð ”—‘Ò:Ú;Ú:ð<ó =à=?ñ@ñ @ˆAð —‘˜“ˆAä  °Ô6ˆÙ+0°«8Ñ(ˆˆ1ˆf�f˜d Dà�Š7Ü˜L×/Ñ/°Ó6¸º!¸T¸'¹
À1¹ÀQ¹Ø!"¨ö/ô ˜L×/Ñ/°Ó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                  t        dd«      D �cg c]
  }|d	|z  z  ‘Œ c}|¬«      }|t        j                  t        j                  |«      «      z  }t        d
|¬«      } ||«      \  }}	}
}t        t        j                  |«      j                  t        «      | «       ŒÙ y c c}w )N)
r   r   r   r   r   r   r†   r†   r  rP  r{   r½   rV   rÂ   r+   éûÿÿÿrY   rÃ   Úsyequb)r6   rˆ   rÚ   rÛ   r   r=  Úrot90r:  r$   r   Úlog2r.   rð   )Údesired_log2srß   r0   r�  r¾  r‘   ru   r¶  rõ   Úscondr²  rn   s               r2   Útest_syequbr»  ù  sÎ   € Ü—H‘HÒ?Ó@€Mä¤Ö'‰
ˆˆUÜ�F‰F�2˜UÔ#ˆÙ˜C !šG‘b¨Ó-ˆÜ�H‰H¬U°2°q¬\Ó:©\¨�e˜b !™e“m¨\Ñ:À%ÔHˆØ	ŒR�X‰X”b—g‘g˜a“jÓ!Ñ!ˆä! (°%Ô8ˆÙ% a›yÑˆˆ5�$˜ä”R—W‘W˜Q“Z×&Ñ&¤sÓ+¨]Õ;ñ (ùò ;s   Á0D
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                  | j                  t         j                  «      d¬«      \  }}}}t        |d«       t        t        j                  |«      g d¢«       y )NrV   rY   iê  r]   rU   )rn  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¡G¬B¯G©G°A«J¸!Ô$<¸RÑ$?Ñ?€AÜ!Ÿ>™>¨!Ó,Ñ€A€uˆd�DÜ��qÔÜ”B—G‘G˜A“J  S 	¨!¡¨r¨dÑ 2°b°T¸!±VÑ ;Ô<ä
�‰�”2—6‘6œ"Ÿ)™) B¨Ó*Ó+Ñ+¨bÑ0Ó1€AØ€A€d�GØ€A€d�GÜ!Ÿ>™>¨!¯(©(´2·<±<Ó*@ÈÔJÑ€A€uˆd�DÜ��qÔÜ”B—G‘G˜A“JÒ IÕJr4   c                  ó   — t         j                  j                  d«      } d}| j                  |«      }| j                  |«      | j                  |«      dz  z   }t	        t
        «      D �]  \  }}|dk  r:| j                  ||«      }|j                  |«      }||z  }|j                  |«      }nO| j                  ||«      | j                  ||«      dz  z   }|j                  |«      }||z  }|j                  |«      }t        d|¬«      }t        d|¬«      }	 ||d¬	«      \  }
}}} |	|
|||d¬
«      \  }}|dk  r!t        |j                  |«      ||z  d¬«       Œôt        |j                  |«      ||z  d¬«       �Œ y )Nr  r{   r+   rV   Úgetc2r½   Úgesc2r   ©r1  )Úoverwrite_rhsrX   r„   )	r6   rØ   r`  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Ë    sb  € Ü
�)‰)×
Ñ
 Ó
#€CØ
€AØ—8‘8˜A“;€LØ—8‘8˜A“; §¡¨!£¨R¡Ñ/€Lä¤×'‰
ˆˆUØ�Š7Ø—‘˜˜A“ˆAØ—‘˜“ˆAØ�LÑ ˆAØ—‘˜“‰Aà—‘˜˜A“ §¡¨!¨Q£°Ñ!2Ñ2ˆAØ—‘˜“ˆAØ�LÑ ˆAØ—‘˜“ˆAä  °Ô6ˆÜ  °Ô6ˆÙ$ Q°AÔ6ÑˆˆD�$˜Ù˜˜Q  d¸!Ô<‰ˆˆ5à�Š7Ü% l×&9Ñ&9¸%Ó&@Ø&'¨¡g°qö:ô & l×&9Ñ&9¸%Ó&@Ø&'¨¡g°q÷:ñ+ (r4   r   )rZ   rY   rÀ  ÚjobarZ   ÚjoburX   ÚjobvÚjobrrU   Újobpc                 óØ  — t         j                  j                  d«      }| \  }	}
dt        j                  |«      j                  z  }t        | ||«      }t        d|¬«      }|dk  }|dk  }|dk(  xr |	|
k(  }t        j                  |«      }|dk(  xr | xr | }|dk(  xr |xr | xr |}|dk(  xr |xr | xr |}|rd}n	|s|rd}nd	}|dkD  r|dk(  rt        t        ||||||||«	       y ||||||||¬
«      \  }}}}}}t        ||«       |�sW|d	   |d   z  |d|
 z  }t        |t        |d¬«      |¬«       |dk(  r|dd…d|
…f   }|rA|r?t        |t        j                  |«      z  |j                  «       j                  z  ||¬«       |r<t        |j                  «       j                  |z  t        j                   |
«      |¬«       |r<t        |j                  «       j                  |z  t        j                   |
«      |¬«       t        |d	   t         j"                  j%                  |«      «       t        |d   t        j&                  |«      «       t        |d   d	«       yy)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Ø   r`  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á  ;  sc  € ôB �)‰)×
Ñ
 Ó
#€Cð �D€A€qØ”—‘˜%“×$Ñ$Ñ$€DÜ# D¨%°Ó5€AÜ˜W¨EÔ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Ü”i ¨¨4°°t¸TÀ4ÈÕNá',¨QØ26Ø26Ø26Ø26Ø26Ø26ô(8Ñ$ˆˆQ��4˜ ô 	�T˜;Ô'ò ð ˜!‘W˜t A™wÑ&¨#¨b¨q¨'Ñ1ˆEÜ˜E¤3 q°UÔ#;À$ÕGà�qŠyð ’a˜˜!˜�e‘H�á™Ü ¤B§G¡G¨E£NÑ 2°Q·V±V³X·Z±ZÑ ?ÀÈÕNÙÜ §¡£§
¡
¨Q¡´·±¸A³ÀTÕJÙÜ §¡£§
¡
¨Q¡´·±¸A³ÀTÕJä˜˜q™¤2§9¡9×#8Ñ#8¸Ó#;Ô<Ü˜˜q™¤2×#3Ñ#3°EÓ#:Ô;ô ˜˜q™ 1Õ%ð5 r4   c                 ó
  — 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«      j                  d	d	«      «      j                  | «      }t        j                  ||j                  z   «      }|j                  d
«      }	 ||«      }
t        ||	«       y)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Ô  rI  r.   Úasfortranarrayr~   r»  r   )r0   rÒ  rß  r°  rý   rò   ró   rn   r�  ÚAcr>   s              r2   Útest_gejsv_edge_argumentsrç  §  s•  € ô ˜W¨EÔ2€Eñ $)¨£9Ñ €CˆˆAˆt�U˜DÜ��qÔÜ�—‘˜&Ô!Ü�—‘˜&Ô!Ü�”b—h‘h ˜t¨5Ô1Ô2ô 	�‰�˜EÔ"€AÙ#(¨£8Ñ €CˆˆAˆt�U˜DÜ��qÔÜ�—‘˜&Ô!Ü�—‘˜&Ô!Ü�”b—h‘h ˜t¨5Ô1Ô2ô 	�‰�˜eÔ$€AÙ#(¨£8Ñ €CˆˆAˆt�U˜DÜ��qÔÜ�—‘˜&Ô!Ü�—‘˜&Ô!Ü�”b—h‘h˜r¨Ô/Ô0ô 	�‰Œr�y‰y˜‹~×%Ñ% b¨"Ó-Ó.×5Ñ5°eÓ<€AÜ
×Ñ˜!˜aŸc™c™'Ó"€AØ	
�‰�‹€BÙˆa‹€AÜ�A�rÕr4   Úkwargsr]   rÓ  c                 ó€   — t        j                  dt        ¬«      }t        dt        ¬«      }t	        t
        ||fi | ¤Ž y)z-Test invalid job arguments raise an Exception)rV   rV   r½   rÒ  Nrw  )rè  r�  rÒ  s      r2   Ú test_gejsv_invalid_job_argumentsrê  Ë  s1   € ô 	�‰�œeÔ$€AÜ˜W¬EÔ2€EÜ”)˜U AÑ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        |||¬«       y)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ñ  Ú  sS   € ð0 €DÜ˜W¨A¯G©GÔ4€Eá#(¨£8Ñ €CˆˆAˆt�U˜Dä�J ¨$Õ/Ü�H˜a dÕ+Ü�H˜a dÖ+r4   c           	      ó   — t         j                  j                  d«      }d}dt        j                  | «      j                  z  }t        |dz
  f| |¬«      }t        |f| |¬«      }t        |dz
  f| |¬«      }|j                  «       |j                  «       |j                  «       g}t        j                  |«      t        j                  |d«      z   t        j                  |d«      z   }|j                  |«      }	||	z  }
t        d| ¬«      \  }} ||||«      \  }}}}}}t        ||d	   «       t        ||d   «       t        ||d
   «       t        j                  |d	«      t        j                  |d«      z   t        j                  |d
«      z   }t        j                  || ¬«      }t        |«      D ]?  \  }}||   dz
  }|d d …||gf   |d d …||gf<   |d d …|fxx   |d d …|dz   f   |z  z  cc<   ŒA d|d   dz
  }}|d d …||gf   |d d …||gf<   t        |||z  |¬«       |
j                  «       } |||||||
«      \  }}t        |
|«       t        |	||¬«       | t        v rd}|j                  |	z  }nd}|j                  «       j                  |	z  } ||||||||¬«      \  }}t        |	||¬«       t!        t"        «      5   ||d d ||«       d d d «       t!        t"        «      5   |||d d |«       d d d «       t!        t"        «      5   ||||d d «       d d d «       t!        t"        «      5   ||d	   |d d |d	   «       d d d «       d	|d	<   d	|d	<    ||||«      \  }}}}} }!t         j$                  j'                  ||dz
     d	k(  d||dz
     › d�«       y # 1 sw Y   ŒÍxY w# 1 sw Y   Œ´xY w# 1 sw Y   Œ›xY w# 1 sw Y   Œ|xY w)Nr  r{   r5  rU   ©r0   r1   r†   ©ÚgttrfÚgttrsr½   r   rV   r§  r~   r�   r/  z?gttrf: _d[info-1] is ú, not the illegal value :0.)r6   rØ   r`  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Ü# Q D°¸3Ô?€AÜ	$ a¨¡c V°5¸cÔ	B€Bà—‘“	˜1Ÿ6™6›8 R§W¡W£YÐ/€Hä
�‰�‹
”R—W‘W˜R “_Ñ$¤r§w¡w¨r°1£~Ñ5€AØ�
‰
�1‹€AØ	ˆA‰€Aä#Ð$6¸eÔD�L€Eˆ5á$)¨"¨a°Ó$4Ñ!€CˆˆS�#�t˜Tä�r˜8 A™;Ô'Ü�q˜( 1™+Ô&Ü�r˜8 A™;Ô'ô 	�‰��A‹œŸ™  a›Ñ(¬2¯7©7°3¸«?Ñ:€AÜ
�‰ˆq˜Ô€Aä˜#–‰ˆˆ1ð �1‰g˜‰kˆàš1˜s A˜h˜;™ˆŠ!ˆa�ˆXˆ+‰à	Š!ˆQˆ$‹�1’Q˜˜!™�V‘9˜Q‘;ÑŒð ð ��b‘˜A‘€s€Aà’q˜3 ˜(�{‘^€A‚aˆ!ˆSˆ€k�Nô �A�q˜1‘u 4Õ(à�F‰F‹H€EÙ˜#˜r 3¨¨T°1Ó5�M€GˆTä�q˜%Ô ä�A�w TÕ*ð ”ÑØˆØ—#‘#˜‘'‰àˆØ—&‘&“(—*‘*˜q‘.ˆá˜#˜r 3¨¨T°7À%ÔH�M€GˆTÜ�A�w TÕ*ô 
”zÕ	"Ùˆb��"ˆg�q˜"Ô÷ 
#ä	”zÕ	"Ùˆb�!�C�R�&˜"Ô÷ 
#ä	”zÕ	"Ùˆb�!�R˜˜�WÔ÷ 
#ô 
”zÕ	"Ùˆb�‰e�Q�r˜�U˜B˜q™EÔ"÷ 
#ð €B€q�EØ€A€a�DÙ*/°°A°rÓ*:Ñ'€Dˆ#ˆt�T˜5 %Ü‡J�J×Ñ�s˜4 !™8‘}¨Ñ)Ð.DÀSÈÐPQÉÁ]ÀOð TIð -Iõ K÷ 
#Ð	"úç	"Ð	"úç	"Ð	"ú÷ 
#Ð	"ús0   ËN Ë+N,ÌN8Ì5OÎ N)Î,N5Î8OÏO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        ||«       y )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�L€Eˆ5á$)¨"¨a°Ó$4Ñ!€CˆˆS�#�t˜TÜ�C˜Ô!Ü�C˜Ô Ü�B˜ DÕ)Ü�D˜(Ô#á˜#˜r 3¨¨T°1Ó5�M€GˆTä�G˜QÕr4   )r}  r|  r~  c           	      ó†  — t         j                  j                  d«      }|j                  |«      |j                  |«      dz  z   }|j                  |dz
  «      |j                  |dz
  «      dz  z   }|j                  |dz
  «      |j                  |dz
  «      dz  z   }t        j                  |«      t        j                  |d«      z   t        j                  |d«      z   }t        j                  | t         j
                  «      r3|j                  |j                  |j                  |j                  f\  }}}}|j                  | «      |j                  | «      |j                  | «      |j                  | «      f\  }}}}t         j                  j                  ||dk(  rt         j                  nd¬«      }t        d|f«      \  }	}
 |	|||«      \  }}}}}} |
|||||||¬«      \  }}t        d	|f«      \  }} ||«      \  }}} ||||¬«      \  }}t        j                  | «      j                  d
z  }t        |||¬«       y )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õ  r%  rÿ  r  rn   rJ  r>   r„  r…  r•  r–  r¥   rÏ   s                         r2   Ú
test_gtconr&  —  sç  € ô �)‰)×
Ñ
 Ó
)€Cà�
‰
�1‹˜Ÿ
™
 1› bÑ(Ñ(€AØ	�‰�A˜‘EÓ	˜SŸZ™Z¨¨A©Ó.¨rÑ1Ñ	1€BØ	�‰�A˜‘EÓ	˜SŸZ™Z¨¨A©Ó.¨rÑ1Ñ	1€BÜ
�‰�‹
”R—W‘W˜R “_Ñ$¤r§w¡w¨r°1£~Ñ5€AÜ	‡}�}�UœBŸK™KÔ(Ø—v‘v˜qŸv™v r§w¡w°·±Ð7‰ˆˆ1ˆb�"Ø—8‘8˜E“? A§H¡H¨U£O°R·Y±Y¸uÓ5EÀrÇyÁyÐQVÓGWÐW�L€A€qˆ"ˆbä�I‰I�N‰N˜1¨D°CªK¤"§&¢&¸QˆNÓ?€Eä#Ð$6¸¸Ó=�L€Eˆ5Ù!& r¨1¨bÓ!1Ñ€Bˆˆ2ˆs�D˜$Ù�2�q˜"˜c 4¨°TÔ:�F€Cˆä#Ð$6¸¸Ó=�L€Eˆ5Ù˜1“X�N€BˆˆdÙ�2�u 4Ô(�F€Cˆä�8‰8�E‹?×Ñ Ñ$€DÜ�C˜ 4Ö(r4   ))rW   r[   )r[   rW   r  c                 óZ   — t        d| ¬«      }|\  }} |||¬«      \  }}t        |d«       y )NÚgeqrfp_lworkr½   r  r   r  )r0   r/   r(  rà   rá   r¿   rn   s          r2   Útest_geqrfp_lworkr)  ³  s3   € ô $ ^¸EÔB€LØ�D€A€qÙ  aÔ(�K€Eˆ4Ü��qÕr4   zddtype,dtypec                 ó  — t         j                  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   }|j                  «       |j                  «       g}t        d|¬«      }	 |	||«      \  }
}}t        ||d	   «       t        ||d   «       t        |d	d
|› d�¬«       t        j                  |d«      t        j                  t        j                  |«      «      z   }t        j                  |
«      }t        |||z  |j                  «       j                  z  |¬«       t        |f||«      }||z  }t        d|¬«      } ||
|j                  «       |«      \  }}t        |d	d|› d�¬«       t        |||¬«       y )Nr  r5  r{   rX   rU   r†   Úpttrfr½   r   zpttrf: info = z, should be 0)Úerr_msgr§  Úpttrszpttrs: info = )r6   rØ   r`  rÝ   rÞ   r3   r:  rº  r»  r$   r	   r   r   r   r‹   r~   )Úddtyper0   r1   r7  rá   ru   rØ  r�  rû  r+  rý  Ú_ern   rR  r�  r‘   rŒ   r-  Ú_xs                      r2   Útest_pttrf_pttrsr1  ¼  s±  € ô �)‰)×
Ñ
 Ó
#€CàŒr�x‰x˜‹×"Ñ"Ñ"€Dà
€Aô
 	$ Q D¨&°#Ó6¸Ñ:€Aä# Q q¡S F¨E°3Ó7€Aô 	�‰�‹
”R—W‘W˜Q “^Ñ#¤b§g¡g¬b¯g©g°a«j¸!Ó&<Ñ<€Aà—‘“˜!Ÿ&™&›(Ð#€Hä˜W¨EÔ2€Eá˜˜A“;�L€BˆˆDä�q˜( 1™+Ô&Ü�q˜( 1™+Ô&Ü��q N°4°&¸Ð"FÕGô 	�‰��B‹œ"Ÿ'™'¤"§'¡'¨!£*Ó-Ñ-€AÜ
�‰�‹€Aä�A�q˜‘s˜1Ÿ;™;›=Ÿ?™?Ñ*°Õ6ô 	$ Q D¨%°Ó5€Aà	ˆ!‰€Aô ˜W¨EÔ2€EÙ�R˜Ÿ™› AÓ&�H€BˆÜ��q N°4°&¸Ð"FÕGô �A�r Ö%r4   c                 óø   — d}t         j                  j                  d«      }t        d|¬«      }t	        |f| |«      dz   }t	        |dz
  f||«      }t        t        ||d d |«       t        t        |||d d «       y )Nr{   r¹   r+  r½   rV   rU   r†   )r6   rØ   r`  r$   r3   r  rX  )r.  r0   rá   r1   r+  ru   rØ  s          r2   Ú*test_pttrf_pttrs_errors_incompatible_shaper3  í  sz   € ð 	€AÜ
�)‰)×
Ñ
 Ó
%€CÜ˜W¨EÔ2€EÜ# Q D¨&°#Ó6¸Ñ:€AÜ# Q q¡S F¨E°3Ó7€Aä”*˜e Q s¨ V¨QÔ/Ü”*˜e Q¨¨#¨2¨Õ/r4   c                 ó`  — d}t         j                  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k7  d
«       y )Nr{   r  r+  r½   rV   rU   r   z?pttrf: _d[info-1] is r÷  z2?pttrf should fail with non-spd matrix, but didn't)r6   rØ   r`  r$   r3   r   r   )
r.  r0   rá   r1   r+  ru   rØ  rý  r/  rn   s
             r2   Ú'test_pttrf_pttrs_errors_singular_nonSPDr5  ú  sÑ   € ð 	€AÜ
�)‰)×
Ñ
 Ó
#€CÜ˜W¨EÔ2€EÜ# Q D¨&°#Ó6¸Ñ:€AÜ# Q q¡S F¨E°3Ó7€Aà€A€a�DØ€A€a�DÙ˜˜A“;�L€BˆˆDÜ��D˜1‘H‘˜qØ)¨"¨T°A©X©,¨Ð7RÐSôUô 	$ Q D¨&°#Ó6€AÙ˜˜A“;�L€BˆˆDÜˆD�A‰IÐKÕ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µ  )r7  é)   é.   é   )y      0@      0@y      2@      "Àù      ð?      À)r7  r]   rU   rX   )r  r  r>  y      P@      0@y      0À      @Ày     @W@      O@y     €N@     €PÀy     €S@      TÀy     ÀQ@     €RÀy      ,@      ;Ày     €A@      .@y      À       Àr  c                 óL  — d}t        d|d   ¬«      } || |«      \  }}	}
t        |||¬«       t        |	||¬«       t        d|d   ¬«      } |||	j                  «       |«      \  }}
t        |||¬«       |j                  t        v r |||	|d¬«      \  }}
t        |||¬«       y y )	Nr  r+  r   r½   r§  r-  rU   rè  )r$   r   rº  r0   r,   )ru   rØ  Úd_expectÚe_expectrŒ   Úx_expectr7  r+  rý  r/  rn   r-  r0  s                r2   Útest_pttrf_pttrs_NAGrC  	  s©   € ð4 €DÜ˜W¨A¨a©DÔ1€EÙ˜˜A“;�L€BˆˆDÜ�B˜ tÕ,Ü�B˜ tÕ,ä˜W¨A¨a©DÔ1€EÙ�R˜Ÿ™› AÓ&�H€BˆÜ�B˜ tÕ,ð 	‡w�w”.Ñ Ù˜˜R ¨!Ô,‰ˆˆDÜ˜˜H¨4Ö0ð !r4   c                 ó–  — t         j                  j                  d«      }|dk(  röt        ||f| |«      }|t        j                  t        j
                  |«      d|z  z   «      z   }||j                  «       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                  «       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Ø   r`  r3   r:  r   rº  r~   r   )r0   Úrealtyperá   Ú	compute_zr1   ÚA_eigÚvrru   rØ  Útrir�  Úzs               r2   Úpteqr_get_d_e_A_zrK  9	  s�  € ô �)‰)×
Ñ
 Ó
#€CØ�A‚~ä+¨Q°¨F°E¸3Ó?ˆØœŸ™¤§¡¨£¨a°©cÑ 1Ó2Ñ2ˆØ˜Ÿ™›Ÿ™Ñ'¨1Ñ,ˆä�%‹[˜‰^ˆä'¨¨¨h¸Ó<¸qÑ@ˆÜ'¨¨1©¨°¸#Ó>ˆÜ�g‰g�a‹jœ2Ÿ7™7 1 a›=Ñ(¬2¯7©7°1°b«>Ñ9ˆà�‰H�r—w‘w“y—{‘{Ñ"ˆà‰ô (¨¨¨h¸Ó<ˆÜ'¨¨1©¨°¸#Ó>ˆð �‰EˆÜ�G‰G�A‹JœŸ™  A›Ñ&¬¯©°°B«Ñ7ˆÜ�G‰G�A‹JœŸ™  B›Ñ'¬"¯'©'°!°Q«-Ñ7ˆØˆq�!�Qˆ<Ðr4   zdtype,realtyperF  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  ||¬	«       y
y
)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Ø  rJ  rF  r   zinfo = z, should be 0.r§  N)r6   rÝ   rÞ   r$   rK  r   r   Úsortr   rº  r~   rÔ  r:  )r0   rE  rF  r7  rM  rá   ru   rØ  r�  rJ  Úd_pteqrÚe_pteqrÚz_pteqrrn   s                 r2   Ú
test_pteqrrS  Y	  s  € ð ”—‘˜“×#Ñ#Ñ#€DÜ˜g¨eÔ4€Eà
€Aä" 5¨(°A°yÓA�J€A€qˆ!ˆQá&+¨a°1¸ÀYÔ&OÑ#€GˆW�g˜tÜ��q˜G D 6¨Ð8Ô9ô ”B—G‘GœD ›G A™JÓ'¬¯©°Ó)9ÀÕEáä˜¤"§'¡'¨'Ó"2×"4Ñ"4Ñ4´b·k±kÀ!³nØ!õ	#ô 	˜¤"§'¡'¨'Ó"2Ñ2´R·W±W¸WÓ5E×5GÑ5GÑGØ ö	&ð r4   c                 ó~   — t        d| ¬«      }d}t        | |||«      \  }}}} ||dz
  |||¬«      \  }	}
}}|dkD  sJ ‚y )NrM  r½   r{   rX   ©rJ  rF  r   ©r$   rK  ©r0   rE  rF  rM  rá   ru   rØ  r�  rJ  rP  rQ  rR  rn   s                r2   Útest_pteqr_error_non_spdrX  y	  sW   € ô ˜g¨eÔ4€Eà
€AÜ" 5¨(°A°yÓA�J€A€qˆ!ˆQñ ',¨A°©E°1¸ÀYÔ&OÑ#€GˆW�g˜tØ�!Š8€O‰8r4   c           	      óÞ   — t        d| ¬«      }d}t        | |||«      \  }}}}t        t        ||d d |||¬«       t        t        |||d d ||¬«       |rt        t        ||||d d |¬«       y y )NrM  r½   r{   r†   rU  )r$   rK  r  rX  )	r0   rE  rF  rM  rá   ru   rØ  r�  rJ  s	            r2   Ú"test_pteqr_raise_error_wrong_shaperZ  ‡	  s}   € ô ˜g¨eÔ4€EØ
€AÜ" 5¨(°A°yÓA�J€A€qˆ!ˆQä”*˜e Q s¨ V¨Q°!¸yÕIÜ”*˜e Q¨¨#¨2¨°!¸yÕIÙÜ”j %¨¨A°°3°B°À9ÖMð r4   c                 óŒ   — t        d| ¬«      }d}t        | |||«      \  }}}}d|d<   d|d<    |||||¬«      \  }	}
}}|dkD  sJ ‚y )NrM  r½   r{   r   rU  rV  rW  s                r2   Útest_pteqr_error_singularr\  •	  sc   € ô ˜g¨eÔ4€EØ
€AÜ" 5¨(°A°yÓA�J€A€qˆ!ˆQà€A€a�DØ€A€a�DÙ&+¨A¨q°AÀÔ&KÑ#€GˆW�g˜tØ�!Š8€O‰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                 ób  — d}t        d|j                  ¬«      }t        j                  |«      t        j                  |d«      z   t        j                  |d«      z   } ||||| ¬«      \  }}	}
}t	        |||¬«       t	        t        j
                  |
«      t        j
                  |«      |¬«       y)	zb
    Implements real (f08jgf) example from NAG Manual Mark 26.
    Tests for correct outputs.
    r  rM  r½   rU   r†   rN  r§  N)r$   r0   r6   r:  r   r¡   )rF  ru   rØ  r@  Úz_expectr7  rM  rJ  rý  r/  Ú_zrn   s               r2   Útest_pteqr_NAG_f08jgfr`  £	  s†   € ð  €DÜ˜g¨a¯g©gÔ6€Eä
�‰�‹
”R—W‘W˜Q “]Ñ"¤R§W¡W¨Q°£^Ñ3€AÙ˜q A¨°iÔ@Ñ€BˆˆB�Ü�B˜ tÕ,Ü”B—F‘F˜2“J¤§¡ xÓ 0°tÖ<r4   Úmatrix_size)r  )r[   rZ   ©rZ   rZ   c                 óþ  — t         j                  j                  d«      }dt        j                  | «      j                  z  }dt        j                  | «      j                  z  }t        d| ¬«      }t        d| ¬«      }|\  }}t        ||f| |¬«      }	 ||	«      \  }
}}t        j                  |
«      }||kD  r3t        j                  ||f| ¬«      }|
|d d …d |…f<    ||||¬«      d	   }n ||
d d …d |…f   ||¬«      d	   }t        ||z  |	|¬
«       t        t        j                  |j                  d	   «      ||j                  «       j                  z  ||¬«       t        |t        j                  |«      |¬
«       t        t        j                  t        j                   |«      t        j                  t#        t        j                   |«      «      «      kD  «      «       t        |d	k(  «       t        ||f| |¬«      dz  }t%        |«      \  }} ||«      \  }}}t        t        j&                  t        j                   |«      d	k  «      xr+ t        j                  t        j                   |«      d	kD  «      «       y )Nr  éú   r5  Úgeqrfpr½   Úorgqrró  )rx   r¿   r   rÎ   rW  r†   )r6   rØ   r`  rÝ   rÞ   r$   r3   r   r   r   r   r/   rº  r~   r   Úallr:  rd   r   r>  )r0   ra  r1   rÏ   r7  re  Ú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_geqrfprq  ¼	  s  € ô �)‰)×
Ñ
 Ó
#€CØŒr�x‰x˜‹×"Ñ"Ñ"€DØŒr�x‰x˜‹×"Ñ"Ñ"€Dä˜x°Ô6€FÜ
˜G¨EÔ
2€Cà�D€A€qô 	$ Q¨ F°%¸SÔA€Aá˜Q“i�O€Dˆ#ˆtô 	�‰�‹€Að
 	ˆ1‚uô �h‰h˜˜1�v UÔ+ˆàˆŠAˆr�ˆrˆE‰
ñ �˜ AÔ& qÑ)‰á�’Q˜˜˜�U‘ ¨AÔ.¨qÑ1ˆô �A�a‘C˜ Õ&ä”B—F‘F˜1Ÿ7™7 1™:Ó&¨¨1¯6©6«8¯:©:©¸TØõô �A”r—w‘w˜q“z¨Õ-äŒB�F‰F”2—7‘7˜1“:¤§¡¬¬R¯W©W°Q«Z«Ó 9Ñ9Ó:Ô;äˆD�A‰IÔô -¨a°¨V¸5ÀcÔJÈRÑO€JÜ˜J›Ñ€HˆhÙ"(¨Ó"4Ñ€Hˆg�xô ŒB�F‰F”2—7‘7˜8Ó$ qÑ(Ó)ò #Ü�F‰F”2—7‘7˜1“: ‘>Ó"õ$r4   c                  ó~   — t        j                  g «      } t        d| j                  ¬«      }t	        t
        || «       y )Nre  r½   )r6   rˆ   r$   r0   r  r  )ÚA_emptyre  s     r2   Ú#test_geqrfp_errors_with_empty_arrayrt  þ	  s+   € ä�h‰h�r‹l€GÜ˜h¨g¯m©mÔ<€FÜ”)˜V WÕ-r4   Údriver)ÚevÚevdÚevrÚevxÚpfxÚsyÚhec                 ó"  — d}| dk(  rt         nt        }t        | |z   dz   |d   ¬«      }t        | |z   dz   |d   ¬«      }	 t        ||d¬«       t        ||d¬«       y # t        $ r'}t        j                  | |z   › d|› �«       Y d }~y d }~ww xY w)	Né°  r{  Ú_lworkr   r½   rU   rè  ú$_lwork raised unexpected exception: ©rÜ   r,   r$   r    r  r@   Úfail©rz  ru  rá   r0   Úsc_dlwÚdz_dlwrØ  s          r2   Útest_standard_eigh_lworksr†  
  s—   € ð 	€AØ $š;�K¬N€EÜ˜c &™j¨Ñ1¸¸q¹ÔB€FÜ˜c &™j¨Ñ1¸¸q¹ÔB€FðLÜ�v˜q¨Õ*Ü�v˜q¨Ö*øÜò LÜ�‰�s˜6‘z�lÐ"FÀqÀcÐJ×KÑKûðLúó   ÁA Á	BÁ'B	Â	BÚgvÚgvxc                 ó"  — d}| dk(  rt         nt        }t        | |z   dz   |d   ¬«      }t        | |z   dz   |d   ¬«      }	 t        ||d¬«       t        ||d¬«       y # t        $ r'}t        j                  | |z   › d	|› �«       Y d }~y d }~ww xY w)
Nr~  r{  r  r   r½   rU   rR  rE  r€  r�  rƒ  s          r2   Útest_generalized_eigh_lworksr‹  
  s—   € ð 	€AØ $š;�K¬N€EÜ˜c &™j¨Ñ1¸¸q¹ÔB€FÜ˜c &™j¨Ñ1¸¸q¹ÔB€FðLÜ�v˜q sÕ+Ü�v˜q sÖ+øÜò LÜ�‰�s˜6‘z�lÐ"FÀqÀcÐJ×KÑKûðLúr‡  Údtype_rà   )rU   r{   r5  rŸ  c                 ó"  — t         j                  j                  d«      }|j                  d|«      }||z
  }| t        v rdnd}|dz   }t        || ¬«      }t        ||||«      }|dk(  r|n|f}t        |D �	cg c]  }	|	dkD  ‘Œ	 c}	«      sJ ‚y c c}	w )Nr¹   r   ÚorÚunÚ	csd_lworkr½   )r6   rØ   rÙ   rŠ  rÜ   r$   r    rg  )
rŒ  rà   r1   rh   rŽ  rz  Údlwr€  Úlwvalr‘   s
             r2   Útest_orcsd_uncsd_lworkr“  "
  s˜   € ô �)‰)×
Ñ
 Ó
%€CØ�‰�Q˜Ó€AØ	ˆA‰€AØœKÑ'‰$¨T€CØ
�Ñ
€CÜ	˜# VÔ	,€BÜ˜2˜q ! QÓ'€EØ˜D’[‰E u h€EÜ™uÓ%™u˜!��A“˜uÑ%Ô&Ð&Ñ&ùÒ%s   Á6Bc           
      óÄ  — 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  ¬«       y )N)rd  éP   éª   rŽ  r�  Úcsdr�  r½   r¿   Úlrworkr   rÂ   rÓ  g     ˆÃ@rW  )rÜ   r!   Úrvsr"   r$   r    Údictrí  r   rd  r6   r   r=  Úcosrä  r   rÝ   rÞ   )rŒ  rà   rh   rŽ  rz  Ú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
  sF  € à�G€A€qˆ!àœKÑ'‰$¨T€CØ! TškŒ�‰˜Ô¬}×/@Ñ/@ÀÓ/C€Aä  u¡¨c°KÑ.?Ð @ÈÔO�H€CˆÜ˜3  1 aÓ(€EØ!$¨¢ˆg�uÑ´$´s¸GØ<Dð<FØGLó8Nó 3O€Fñ 	ˆAˆbˆqˆb�"�1�"ˆf‰I�q˜˜!˜˜Q™R˜‘y ! A¡B¨¨¨ F¡)¨Q¨q©r°1±2¨v©YÑA¸&ÑAñ :€Dˆ$��d˜E 2 r¨3°°Tð �1Š9Ðˆ9ä�2�rÓ€AÜ	�C˜Ó	€BÜŒC��1‹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ˆØˆˆ!ˆQˆ$Šð ä�3ŽZˆØˆˆ!ˆA‰#ˆq�‰sˆ(Šð ä�3ŽZˆØ),¨ˆˆ!ˆC‰%�‰'�1�S‘5˜‘7˜3‘;˜s‘? 1Ñ$Ð
$Ò%ð ä�3ŽZˆØ #ˆˆ!ˆC‰%�‰'�!‰)�S˜‘U˜1‘WÐ
Òð ô �1ŽXˆÜŸ&™&  q¡Ó*ˆˆ!ˆC‰%��3‘ˆ,‰Ü"$§&¡&¨¨q©Ó"2ˆˆ!ˆC‰%�‰'�1�Q‘3�s‘7˜3‘;Ð
Ñä%'§V¡V¨E°!©HÓ%5Ð$5ˆˆ!ˆC‰%��3‘�s‘˜3‘˜q‘Ð
 Ñ!ÜŸF™F 5¨¡8Ó,ˆˆ!ˆC‰%�‰'�1�S‘5ˆ.Òð ð 
ˆQ‰�‰€BÜ�A�r ¨¬R¯X©X°fÓ-=×-AÑ-AÑ)AÖBr4   Ú
trans_boolFÚfactrG  c                 ó   — t         j                  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                  «       j                  n||z  }|j                  «       |	j                  «       |
j                  «       |j                  «       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   › �«       y)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[  rG  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Ø   r`  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�L€Eˆ5à
€AÜ	$ a¨¡c V°5¸cÔ	B€BÜ# Q D°¸3Ô?€AÜ	$ a¨¡c V°5¸cÔ	B€BÜ
�‰��B‹œ"Ÿ'™' !›*Ñ$¤r§w¡w¨r°1£~Ñ5€Aä# Q¨ F°%¸SÔA€Aá6@�Eœ[Ñ(‰S©cÀc€EÙ!ˆ�‰‹�Š q¨AÑ-€Að —'‘'“)˜QŸV™V›X r§w¡w£y°!·&±&³(Ð;€Jð ! CšK‰ˆb�!�RÔ¨d¨V°A©Xñ )€Dˆ#ˆt�U˜E 5ñ �b˜!˜R ¨°UÀÈØ E°ô7€Ià@IÑ=€CˆˆS�$˜˜f e¨T°4¸ÜˆD�A‰I˜¨ vÐ-=Ð>Ô?ô �r˜: a™=Ô)Ü�q˜* Q™-Ô(Ü�r˜: a™=Ô)Ü�q˜* Q™-Ô(ô �A�v DÕ)ô ŒG�E˜9Ó%¨TÐ1Ø,¨U¨GÐ4ô6ô ˆD�J‰J�q‰M˜QŸW™W Q™ZÑ'¨N¸4¿:¹:Àa¹=¸/ð J1Ø12·±¸±°ð+>ô @ô ˆD�J‰J�q‰M˜QŸW™W Q™ZÑ'¨N¸4¿:¹:Àa¹=¸/ð J1Ø12·±¸±°ð+>õ @r4   c                 ó,  — t         j                  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                  «       j                  n|
|z  }|dk(  r
 ||||	«      nd gdz  \  }}}}}} ||||	||||||||¬«      }|\
  }}}}}}}}}}|dk(  r/d|d<   d|d<    ||||	|«      }|\
  }}}}}}}}}}|dkD  sJ d«       ‚y |dk(  r;d|d<   d|d<   d|d<    ||||	|||||||¬«
      }|\
  }}}}}}}}}}|dkD  sJ d«       ‚y y )Nr  r´  r½   r{   rU   ró  r†   rV   r~   r�   rG  rZ   r¶  r[  r   z&info should be > 0 for singular matrix)r²  r·  r¸  r¹  rÿ  r  )	r6   rØ   r`  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Ì  œ
  sü  € ô �)‰)×
Ñ
 Ó
#€Cä#Ð$6¸eÔD�L€Eˆ5à
€AÜ	$ a¨¡c V°5¸cÔ	B€BÜ# Q D°¸3Ô?€AÜ	$ a¨¡c V°5¸cÔ	B€BÜ
�‰��B‹œ"Ÿ'™' !›*Ñ$¤r§w¡w¨r°1£~Ñ5€Aä# Q¨ F°%¸SÔA€AàœKÑ'‰C¨S€EÙ!ˆ�‰‹�Š q¨AÑ-€Að ! CšK‰ˆb�!�RÔ¨d¨V°A©Xñ )€Dˆ#ˆt�U˜E 5ñ �b˜!˜R ¨°UÀÈØ E°ô7€Ià@IÑ=€CˆˆS�$˜˜f e¨T°4¸ð ˆs‚{àˆˆ"‰Øˆˆ2‰á˜"˜a  QÓ'ˆ	ØDMÑAˆˆR��d˜D &¨%°°t¸Tà�aŠxÐAÐAÓA‰xà	�ŠàˆˆB‰ØˆˆR‰Øˆˆb‰	á˜"˜a  Q¨T°tÀÈØ#¨%ô1ˆ	àDMÑAˆˆR��d˜D &¨%°°t¸Tà�aŠxÐAÐAÓA‰xð 
r4   c                 ó   — t         j                  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                  «       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 |||||||¬«       y t        t        ||||	||||d d ||||¬«       t        t        ||||	|||||d d |||¬«       t        t        ||||	||||||d d ||¬«       t        t        ||||	|||||||d d |¬«       y )Nr  r´  r½   r{   rU   ró  r†   rV   r~   r�   rG  rZ   r[  r¶  )r6   rØ   r`  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�L€Eˆ5à
€AÜ	$ a¨¡c V°5¸cÔ	B€BÜ# Q D°¸3Ô?€AÜ	$ a¨¡c V°5¸cÔ	B€BÜ
�‰��B‹œ"Ÿ'™' !›*Ñ$¤r§w¡w¨r°1£~Ñ5€Aä# Q¨ F°%¸SÔA€AàœKÑ'‰C¨S€EÙ!ˆ�‰‹�Š q¨AÑ-€Að ! CšK‰ˆb�!�RÔ¨d¨V°A©Xñ )€Dˆ#ˆt�U˜E 5ð ˆs‚{Ü”j %¨¨C¨R¨°!°R¸Ø u°$¸3Ø E°õ	7ô 	”j %¨¨Q¨s°¨V°R¸Ø u°$¸3Ø E°õ	7ô 	”j %¨¨Q°°3°B°¸Ø u°$¸3Ø E°õ	7ô 	”i ¨¨A¨r°1°S°b°6Ø u°$¸3Ø E°ö	7ô 	”j %¨¨Q°°AØ u°$°s¸°)ÀØ E°õ	7ô 	”j %¨¨Q°°AØ u°$¸3¸sÀ¸8Ø E°õ	7ô 	”j %¨¨Q°°AØ u°$¸3Ø˜s ˜)¨°Uõ	<ô 	”j %¨¨Q°°AØ u°$¸3Ø E¨#¨2 J°Uö	<r4   zdu,d,dl,b,xc           
      óz   — t        d|j                  ¬«      } |||| |«      }|\
  }}}	}
}}}}}}t        ||«       y )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Ñ    sH   € ô. ˜W¨A¯G©GÔ4€Eá�b˜!˜R Ó#€IØ@IÑ=€CˆˆS�$˜˜f e¨T°4¸ä˜a Õ(r4   zfact,df_de_lambdac                 ó>   —  t        d|j                  ¬«      | |«      S ©Nr+  r½   ©r$   r0   ©ru   rØ  s     r2   Ú<lambda>rÖ  %  ó%   € ð )HÔ(8¸Ø?@¿w¹wô)HØHIÈ1ô)Nr4   c                  ó   — y©N)NNNrª   rÕ  s     r2   rÖ  rÖ  '  ó   € Ð-?r4   c                 óÌ  — t         j                  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  } |||	«      \  }}}|j                  «       |	j                  «       |j                  «       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�«       y)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Ø   r`  rÝ   rÞ   r$   r3   r:  rº  r»  r	   r   r   r   r   r~   r°   r/   )r0   rE  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€EØ	€Aä# Q D¨(°CÓ8¸1Ñ<€AÜ# Q q¡S F¨E°3Ó7€AÜ
�‰�‹
”R—W‘W˜Q “^Ñ#¤b§g¡g¬b¯g©g°a«j¸!Ó&<Ñ<€AÜ(¨!¨Q¨°uÀ#ÔF€FØ	ˆF‰
€Añ    1Ó%�L€BˆˆDð —‘“˜!Ÿ&™&›( A§F¡F£HÐ-€Hñ */¨q°!°Q¸TØ24¸ô*=Ñ&€BˆˆAˆu�d˜D $ô �q˜( 1™+Ô&Ü�q˜( 1™+Ô&Ü�q˜( 1™+Ô&ÜˆD�A‰IÐ1°$°°qÐ9Ô:Ü˜f aÔ(ô 	�‰��B‹œ"Ÿ'™'¤"§'¡'¨!£*Ó-Ñ-€AÜ
�‰�‹€AÜ�A�q˜‘sœBŸG™G A›JŸL™LÑ)°Õ5ô �u˜iÔ(ð 1Ø
(¨¨Ð0ó1Ð(ô ˆD�J‰J˜$Ñ >°$·*±*°ð >8ð "8ô :ô ˆD�J‰J˜$Ñ >°$·*±*°ð >8ð "8õ :r4   c                 ó>   —  t        d|j                  ¬«      | |«      S rÓ  rÔ  rÕ  s     r2   rÖ  rÖ  `  r×  r4   c                  ó   — yrÙ  rª   rÕ  s     r2   rÖ  rÖ  b  rÚ  r4   c           
      ó0  — t         j                  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 |||¬
«       y )Nr  rÜ  r½   rY   rX   rU   r†   rV   ró  rÝ  )
r6   rØ   r`  r$   r3   r:  rº  r  rX  r  )r0   rE  r²  rà  r1   rÜ  rá   ru   rØ  r�  rÇ  rŒ   r¸  rÞ  rn   s                  r2   Útest_ptsvx_error_raise_errorsrå  \  s  € ô �)‰)×
Ñ
 Ó
#€CÜ˜W¨EÔ2€EØ	€Aä# Q D¨(°CÓ8¸1Ñ<€AÜ# Q q¡S F¨E°3Ó7€AÜ
�‰�‹
”R—W‘W˜Q “^Ñ#¤b§g¡g¬b¯g©g°a«j¸!Ó&<Ñ<€AÜ(¨!¨Q¨°uÀ#ÔF€FØ	ˆF‰
€Añ    1Ó%�L€BˆˆDô ”*˜e Q s¨ V¨Q°¸ÀÈÕKÜ”*˜e Q¨¨#¨2¨°¸ÀÈÕKÜ”)˜U A q¨!¨C¨R¨&°tÀÀrÖJr4   c                 ó>   —  t        d|j                  ¬«      | |«      S rÓ  rÔ  rÕ  s     r2   rÖ  rÖ  {  r×  r4   c                  ó   — yrÙ  rª   rÕ  s     r2   rÖ  rÖ  }  rÚ  r4   c                 óÀ  — t         j                  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(  r]d|d<    |||«      \  }}} ||||«      \  }}}}}}}|dkD  r||k  sJ ‚t	        |f||«      } ||||«      \  }}}}}}}|dkD  r||k  sJ ‚y  |||«      \  }}}d|d<   d|d<    |||||||¬«      \  }}}}}}}|dkD  sJ ‚y )Nr  rÜ  r½   rY   rX   rU   r†   rV   ró  r[  r   rW   rÝ  )r6   rØ   r`  r$   r3   r:  rº  )r0   rE  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€EØ	€Aä# Q D¨(°CÓ8¸1Ñ<€AÜ# Q q¡S F¨E°3Ó7€AÜ
�‰�‹
”R—W‘W˜Q “^Ñ#¤b§g¡g¬b¯g©g°a«j¸!Ó&<Ñ<€AÜ(¨!¨Q¨°uÀ#ÔF€FØ	ˆF‰
€Añ    1Ó%�L€BˆˆDàˆs‚{Øˆˆ!‰á# A qÓ)‰ˆˆB�á-2°1°a¸«^Ñ*ˆˆB��5˜$  dà�aŠx˜D AšIÐ%Ð%ô (¨¨¨h¸Ó<ˆÙ-2°1°a¸«^Ñ*ˆˆB��5˜$  dØ�aŠx˜D AšIÐ%Ð%˜Iñ $ A qÓ)‰ˆˆB�Øˆˆ1‰Øˆˆ1‰Ù-2°1°a¸ÀØ68¸Rô.AÑ*ˆˆB��5˜$  dà�aŠxˆ‰xr4   zd,e,b,xc                 ón   — t        d|j                  ¬«      } || ||«      \  }}}}}	}
}t        ||«       y )NrÜ  r½   rÐ  )ru   rØ  rŒ   r‘   rÜ  r¸  rÞ  Úx_ptsvxr  rÈ  rÉ  rn   s               r2   Útest_ptsvx_NAGrì  £  s:   € ô. ˜W¨A¯G©GÔ4€Eá/4°Q¸¸1«~Ñ,€BˆˆG�U˜D $¨ä˜a Õ)r4   r  c           	      óº  — t         j                  j                  d«      }t        j                  | «      j                  dz  }d\  }}t        ||g| |¬«      }t        ||g| |¬«      }|j                  «       j                  |z   t        j                  || ¬«       | d«      z  z   }|rYt        |«      D ��	cg c]  }t        ||«      D ]  }	|	‘Œ Œ c}	}t        |«      D ��	cg c]  }t        ||«      D ]  }	|‘Œ Œ c}	}f}
nat        d|dz   «      D ��	cg c]  }t        |«      D ]  }	|	‘Œ Œ c}	}t        d|dz   «      D ��	cg c]  }t        |«      D ]  }	|dz
  ‘Œ	 Œ c}	}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                   j#                  |d«      } |||||¬«      \  }}t        |d«       t%        t'        d|z  t         j                   j)                  |d¬«      z
  «      |z  dk  «       y c c}	}w c c}	}w c c}	}w c c}	}w )Nr¹   r5  )r{   rX   ró  r½   rÅ   rU   )ÚppsvÚpptrfÚpptrsÚpptriÚppconrÃ  rÄ  rè  r   rW  )r”  r  r	  )r6   rØ   r`  rÝ   rÞ   r3   rº  r~   r   r=  r$   r   r   r   r   r   r�  r   r   r¡   r
  )r0   r  r1   r7  rá   râ   rf   rŒ   Úyr‘   r[  Úaprî  rï  rð  rñ  rò  Úulrn   ÚaulÚuliÚauliÚbxÚxvr”  r  s                             r2   Ú!test_pptrs_pptri_pptrf_ppsv_ppconrû  Á  s©  € ô �)‰)×
Ñ
 Ó
%€CÜ�8‰8�E‹?×Ñ˜sÑ"€Dà�G€A€tÜ# Q¨ F°%¸SÔA€AÜ# Q¨ I°UÀÔD€Aà	�‰‹�
‰
�Q‰œŸ™ ¨Ô/±%¸³)Ñ;Ñ;€AÙÜ! !œHÔ:™H�q¬e°A°q®k¨’¨k�˜HÒ:Ü! !œHÔ:™H�q¬e°A°q®k¨’¨k�˜HÒ:ð<‰ô " ! Q q¡SœMÔ<™M�q´5¸¶8¨a’°8�˜MÒ<Ü# A q¨¡sœmÔ>™m˜´U¸1¶X°��1“°X�˜mÒ>ð@ˆà	
ˆ4‰€BÜ'7Ø4ØØô(Ñ$€Dˆ%�˜˜uñ
 �Q˜ %Ô(�H€BˆÜ��qÔÜ
�1˜EÔ
" 4Ñ
(€CÜ�B˜ !¨$Õ/á�a˜ 5Ô)�I€CˆÜ��qÔÜˆq‹6�$‰<€DÜ�C˜ A¨DÕ1á�A�r˜1 EÔ*�G€A€tÜ��qÔÜ	ˆq�!‹€BÜ�A�r ¨Õ-á�A�r˜1 EÔ*�H€BˆÜ��qÔÜ�B˜ ¨Õ.ä�I‰I�N‰N˜1˜aÓ €EÙ˜˜2 U°%Ô8�K€Eˆ4Ü��qÔÜŒC��%‘œ"Ÿ)™)Ÿ.™.¨¨a˜.Ó0Ñ0Ó1°%Ñ7¸!Ñ;Õ<ùóC ;ùÛ:ùã<ùÛ>s   Â5KÃ KÄKÅ Kc                 óæ  — t         j                  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                  «       j                  z  |d|¬«        |||	dd«      }t        |d
   d«       |d   }|d   }	| t        v r"t        |t        j                  |«      d|¬«       t        |	|z  |	j                  «       j                  z  |d|¬«       t        |d   |
d|¬«       y )Nr¹   r5  r{   ró  )ÚgeesÚtrexcr½   c                  ó   — y ©Nrª   ©r‘   s    r2   rÖ  z!test_gees_trexc.<locals>.<lambda>û  ó   € ˜Dr4   FrÈ  r†   r   rP  rb  rW  r[   rU   r  r•   ©r6   rØ   r`  rÝ   rÞ   r3   r$   r   r,   r   r   rº  r~   )r0   r1   r7  rá   rf   rý  rþ  rþ  rŒ  rJ  Úd2s              r2   Útest_gees_trexcr  ñ  sM  € ä
�)‰)×
Ñ
 Ó
%€CÜ�8‰8�E‹?×Ñ˜sÑ"€Dà
€AÜ# Q¨ F°%¸SÔA€Aä"Ð#4¸EÔB�K€Dˆ%á‘. !°Ô7€FÜ�˜‘˜QÔàˆq‰	€AØˆr‰
€Aà	
ˆ4‰€Bà”ÑÜ˜œ2Ÿ7™7 1›:¨A°DÕ9ä�A˜‘E˜AŸF™F›HŸJ™JÑ&¨°¸Õ=á�1�a˜˜AÓ€FÜ�˜‘˜QÔàˆq‰	€AØˆr‰
€Aà”ÑÜ˜œ2Ÿ7™7 1›:¨A°DÕ9ä�A˜‘E˜AŸF™F›HŸJ™JÑ&¨°¸Õ=ä�A�d‘G˜R a¨dÖ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        || |¬«       y)	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    sN   € ð< €DÜ˜W¨A¯G©GÔ4€Eá�1�a˜˜t¨1Ô-€FÜ�˜‘˜QÔàˆq‰	€AÜ�F˜A DÖ)r4   c                 óÐ  — t         j                  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 rDt        |	t        j                  |	«      d|¬«       t        |
t        j                  |
«      d|¬«       t        ||	z  |j                  «       j                  z  |d|¬«       t        ||
z  |j                  «       j                  z  |d|¬«        ||	|
||dd«      }t        |d
   d«       |d   }	|d   }
|d   }|d   }| t        v rDt        |	t        j                  |	«      d|¬«       t        |
t        j                  |
«      d|¬«       t        ||	z  |j                  «       j                  z  |d|¬«       t        ||
z  |j                  «       j                  z  |d|¬«       t        |	d   |
d   z  |d|¬«       t        |	d   |
d   z  |d|¬«       y )Nr¹   r5  r{   ró  )ÚggesÚtgexcr½   c                  ó   — y r   rª   r  s    r2   rÖ  z!test_gges_tgexc.<locals>.<lambda>I  r  r4   F©r1  Úoverwrite_br†   r   rU   r¾  rP  r•   rb  rW  r[   rV   rW   rã  r  )r0   r1   r7  rá   rf   rŒ   r  r  rþ  rõ   rŒ  rŽ  rJ  Úd1r  s                  r2   Útest_gges_tgexcr  >  s8  € ä
�)‰)×
Ñ
 Ó
%€CÜ�8‰8�E‹?×Ñ˜sÑ"€Dà
€AÜ# Q¨ F°%¸SÔA€AÜ# Q¨ F°%¸SÔA€Aä"Ð#4¸EÔB�K€Dˆ%á‘. ! Q°EÀuÔM€FÜ�˜‘˜QÔàˆq‰	€AØˆq‰	€AØˆr‰
€AØˆr‰
€Aà	
ˆ4‰�1�T‘7Ñ	€BØ	
ˆ4‰�1�T‘7Ñ	€Bà”ÑÜ˜œ2Ÿ7™7 1›:¨A°DÕ9Ü˜œ2Ÿ7™7 1›:¨A°DÕ9ä�A˜‘E˜AŸF™F›HŸJ™JÑ&¨°¸Õ=Ü�A˜‘E˜AŸF™F›HŸJ™JÑ&¨°¸Õ=á�1�a˜˜A˜q !Ó$€FÜ�˜‘˜QÔàˆq‰	€AØˆq‰	€AØˆq‰	€AØˆq‰	€Aà”ÑÜ˜œ2Ÿ7™7 1›:¨A°DÕ9Ü˜œ2Ÿ7™7 1›:¨A°DÕ9ä�A˜‘E˜AŸF™F›HŸJ™JÑ&¨°¸Õ=Ü�A˜‘E˜AŸF™F›HŸJ™JÑ&¨°¸Õ=ä�A�d‘G˜a ™gÑ% r°¸Õ=Ü�A�d‘G˜a ™gÑ% r°¸Ö=r4   c                 ój  — t         j                  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                  «       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                  «       j                  z  |d|¬«       t        |	d   |d|¬«       y )Nr¹   r5  r{   ró  )rý  ÚtrsenÚtrsen_lworkr½   c                  ó   — y r   rª   r  s    r2   rÖ  z!test_gees_trsen.<locals>.<lambda>y  r  r4   FrÈ  r†   r   rP  rb  rW  rU   rZ   r¾   ©r¿   Úliworkr•   ©r6   rØ   r`  rÝ   rÞ   r3   r$   r   r,   r   r   rº  r~   r   r    )r0   r1   r7  rá   rf   rý  r  r  rþ  rŒ  rJ  r  Úselectr¿   s                 r2   Útest_gees_trsenr$  n  s–  € ä
�)‰)×
Ñ
 Ó
%€CÜ�8‰8�E‹?×Ñ˜sÑ"€Dà
€AÜ# Q¨ F°%¸SÔA€Aä/Ø(°ô 7Ñ€Dˆ%�ñ ‘. !°Ô7€FÜ�˜‘˜QÔàˆq‰	€AØˆr‰
€Aà	
ˆ4‰€Bà”ÑÜ˜œ2Ÿ7™7 1›:¨A°DÕ9ä�A˜‘E˜AŸF™F›HŸJ™JÑ&¨°¸Õ=ä�X‰X�a‹[€FØ€Fˆ1�Iä˜;¨°Ó2€Eà”ÑÙ�v˜q !¨5Ô1‰á�v˜q !¨5¸¸q¹ÔBˆÜ�˜‘˜QÔàˆq‰	€AØˆq‰	€Aà”ÑÜ˜œ2Ÿ7™7 1›:¨A°DÕ9ä�A˜‘E˜AŸF™F›HŸJ™JÑ&¨°¸Õ=ä�A�d‘G˜R a¨dÖ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Éå?¤ß¾ä¿r%  gtµûËîÉ?)rÓ  rÓ  rÓ  gµ¦yÇ¹¿)gØ�sF”öä?g_˜LŒº?g®GázÖ?gUÁ¨¤N@å?)goð…ÉTÁà?g¾0™*•â¿g»'µ¦ã¿gz6«>W»¿)g¸¯çŒ(á¿g&äƒžÍªÓ¿gbX9´ÈÒ¿g-!ôlVç?)g·bÙ=y¸?gÛŠýe÷äç?r	  gï8EGrù¿?)r  gÍÌÌÌÌÌÜ?gìQ¸…ëÁ¿gÃõ(\�ÂÅ¿)g
×£p=
·?gìQ¸…ë±?rì  r  )g)\�Âõ(Ü¿g…ëQ¸Õ¿g¸…ëQ¸ž¿gÃõ(\�ÂÅ?)rñ  g{®GázÔ¿g¤p=
×£À¿g)\�Âõ(¼?)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                  «       j                  z  |¬«       t        |d|z  |¬«       t        |d|z  |¬«       y)zW
    This test implements the example found in the NAG manual,
    f08qgc, f08quc.
    r  r  )r  r  r½   r¾   rU   r   r†   r   rX   rY   rZ   r§  N)r$   r0   r    r,   r   r   rº  r~   )rŒ  rŽ  r#  r  Úexpect_sÚ
expect_sepr7  Úatol2r  r  r¿   rþ  rõ   Úseps                 r2   Útest_trsen_NAGr+  œ  sø   € ð` €DØ€EÜ)Ø ¨¯©ô1Ñ€Eˆ;ô ˜;¨°Ó2€Eà‡w�w”.Ñ Ù�v˜q !¨5Ô1‰á�v˜q !¨5¸¸q¹ÔBˆÜ�˜‘˜QÔàˆq‰	€AØˆq‰	€AØ‡w�w”.Ñ Ø�1‰IˆØ�Q‰i‰à�1‰IˆØ�Q‰iˆä�F˜A ™E A§F¡F£H§J¡JÑ.°TÕ:Ü�H˜a !™e¨%Õ0Ü�J  C¡¨eÖ4r4   c                 ó>  — t         j                  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 rDt        |
t        j                  |
«      d|¬«       t        |t        j                  |«      d|¬«       t        ||
z  |j                  «       j                  z  |d|¬«       t        ||z  |j                  «       j                  z  |d|¬«       t        j                  |«      }d|d<   t        |||
|«      }|d   dz   |d   f} |||
||||¬«      }	t        |	d
   d«       |	d   }
|	d   }|	d   }|	d   }| t        v rDt        |
t        j                  |
«      d|¬«       t        |t        j                  |«      d|¬«       t        ||
z  |j                  «       j                  z  |d|¬«       t        ||z  |j                  «       j                  z  |d|¬«       t        |
d   |d   z  |d|¬«       t        |
d   |d   z  |d|¬«       y )Nr¹   r5  r{   ró  )r  ÚtgsenÚtgsen_lworkr½   c                  ó   — y r   rª   r  s    r2   rÖ  z!test_gges_tgsen.<locals>.<lambda>ó  r  r4   Fr  r†   r   rU   r¾  rP  r•   rb  rW  rZ   r¾   iùÿÿÿr  rã  r"  )r0   r1   r7  rá   rf   rŒ   r  r-  r.  rþ  rõ   rŒ  rŽ  rJ  r  r  r#  r¿   s                     r2   Útest_gges_tgsenr0  ç  s}  € ä
�)‰)×
Ñ
 Ó
%€CÜ�8‰8�E‹?×Ñ˜sÑ"€Dà
€AÜ# Q¨ F°%¸SÔA€AÜ# Q¨ F°%¸SÔA€Aä/Ø(°ô 7Ñ€Dˆ%�ñ ‘. ! Q°EÀuÔM€FÜ�˜‘˜QÔàˆq‰	€AØˆq‰	€AØˆr‰
€AØˆr‰
€Aà	
ˆ4‰�1�T‘7Ñ	€BØ	
ˆ4‰�1�T‘7Ñ	€Bà”ÑÜ˜œ2Ÿ7™7 1›:¨A°DÕ9Ü˜œ2Ÿ7™7 1›:¨A°DÕ9ä�A˜‘E˜AŸF™F›HŸJ™JÑ&¨°¸Õ=Ü�A˜‘E˜AŸF™F›HŸJ™JÑ&¨°¸Õ=ä�X‰X�a‹[€FØ€Fˆ1�Iä˜;¨°°1Ó5€Eð �1‰X�a‰Z˜˜q™Ð"€Eá�6˜1˜a  A¨UÔ3€FÜ�˜‘˜QÔàˆq‰	€AØˆq‰	€AØˆr‰
€AØˆr‰
€Aà”ÑÜ˜œ2Ÿ7™7 1›:¨A°DÕ9Ü˜œ2Ÿ7™7 1›:¨A°DÕ9ä�A˜‘E˜AŸF™F›HŸJ™JÑ&¨°¸Õ=Ü�A˜‘E˜AŸF™F›HŸJ™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Ã   ç       Àr2  )r1  rÃ   r2  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Â   )r3  rÅ   rÓ  rÆ   )r  rÂ   g       ÀrÓ  )rù  rÃ   ç      ÀrÅ   )r4  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¬«       y )Nr  Útgsylr½   r   rÂ   r5  zSCALE must be 1.0©rÏ   r7  r,  rÓ  zDIF must be nearly 0zSolution for R is incorrect)r7  r,  zSolution for L is incorrect)r$   r   r   r6   rÝ   rÞ   )rf   rŒ   r�   ru   rØ  ri   ÚransÚlansr0   r7  r6  ÚroutÚloutra   Údifrn   s                   r2   Útest_tgsyl_NAGr=     s­   € ðH €Dä˜g¨eÔ4€EÙ#(¨¨A¨q°!°Q¸Ó#:Ñ €Dˆ$��s˜Dä��qÔÜ�E˜3 Q¬R¯X©X°e«_×-@Ñ-@ÀÑ-DØ/õ1ä�C˜ 1¬2¯8©8°E«?×+>Ñ+>¸sÑ+BØ2õ4ä�D˜$ TØ9õ;ä�D˜$ TØ9ö;r4   rŽ   )r[  r~   Úijob)r   rU   rV   rW   rX   c           
      óØ  — | t         j                  k(  rdnd}t         j                  j                  d«      }d\  }}t	        |j                  dd||g«      j                  | «      |j                  dd||g«      j                  | «      d¬«      ^}}}	t	        |j                  dd||g«      j                  | «      |j                  dd||g«      j                  | «      d¬«      ^}
}}	|j                  d	d
||g«      j                  | «      }|j                  d	d
||g«      j                  | «      }t        d| ¬«      } |||
||||||¬«      \  }}}}}|dk(  sJ d«       ‚|dk\  sJ d«       ‚|dk(  r1t        |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  }nt|dk(  rot        j                  |«      |z  t        j                  |«      |z  z   }||z  }|t        j                  |
«      z  |t        j                  |«      z  z   }d|z  |z  }t        |dd¬«       t        |dd¬«       y y )Ngü©ñÒMbP?g»½×Ùß|Û=l   OElÔt/ r  iöÿÿÿr{   rñ   )Úoutputr  rV   r6  r½   )rŽ   r>  r   zINFO is non-zerorÓ  zSCALE must be non-negativer5  zDIF must be 0 for ijob =0r7  zDIF must be non-negativer[  r~   rù  zlhs1 and rhs1 do not match)r7  rÏ   r,  zlhs2 and rhs2 do not match)r6   rÆ  rØ   rÙ   r   Úuniformr.   r$   r   rÝ   rÞ   r�  )r0   rŽ   r>  r7  r1   rà   rá   rf   ru   r>   rŒ   rØ  r�   ri   r6  r:  r;  ra   r<  rn   Úlhs1Úrhs1Úlhs2Úrhs2s                           r2   Ú
test_tgsylrF  T  sŠ  € ð
 œBŸJ™JÒ&‰4¨E€DÜ
�)‰)×
Ñ
Ð 0Ó
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€AØ�‰�B˜˜A˜q˜6Ó"×)Ñ)¨%Ó0€Aä˜g¨eÔ4€EÙ#(¨¨A¨q°!°Q¸Ø/4¸4ô$AÑ €Dˆ$��s˜Dð �1Š9Ð(Ð(Ó(ˆ9Ø�CŠ<Ð5Ð5Ó5ˆ<Øˆq‚yÜ˜˜S q¬r¯x©x¸«×/BÑ/BÀ3Ñ/FØ ;ö	=ð �cŠzÐ5Ð5Ó5ˆzð ˆq‚yØ�CŠ<Ø�t‘8˜d Q™hÑ&ˆDØ˜‘7ˆDØ�t‘8˜d Q™hÑ&ˆDØ˜‘7‰DØ�cŠ\Ü—<‘< “? TÑ)¬B¯L©L¸«O¸dÑ,BÑBˆDØ˜‘7ˆDØœ"Ÿ,™, q›/Ñ)¨D´2·<±<À³?Ñ,BÑBˆDØ˜‘:˜a‘<ˆDä˜˜d¨°BØ <õ	>ä˜˜d¨°BØ <ö	>ð r4   Úmtyperç  c                 ó  — | dk(  r|t         v rt        j                  d«       t        j                  j                  d«      }d\  }}|t        v r<|j                  ||f¬«      |j                  ||f¬«      dz  z   j                  |«      }n#|j                  ||f¬«      j                  |«      }| dk(  r||j                  z   n||j                  «       j                  z   }|j                  ||f¬«      j                  |«      }| › d�| › d	�| › d
�f}t        ||¬«      \  }	}
} |
||¬«      } |	|||¬«      \  }}}|dk(  sJ ‚ |||||¬«      \  }}|dk(  sJ ‚t        j                  |«      j                  }t        ||z  |d|z  |z  ¬«       y )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,   rA  r.   r~   rº  r$   rÝ   rÞ   r   )rG  r0   r  r1   rá   râ   r�  rŒ   rH   r~  r  rJ  r¿   r  r  rn   r‘   rÞ   s                     r2   Útest_sy_hetrsrK  ‡  s‡  € ð �‚}˜¤+Ñ-Ü�‰Ð0Ô1Ü
�)‰)×
Ñ
Ð 0Ó
1€CØ�G€A€tØ”ÑØ�[‰[˜q !˜fˆ[Ó%¨¯©¸!¸Q¸¨Ó(@ÀÑ(CÑC×KÑKÈEÓR‰à�K‰K˜a ˜VˆKÓ$×+Ñ+¨EÓ2ˆà˜D’=ˆˆA�C‰CŠ a¨!¯&©&«(¯*©*¡n€AØ�‰˜!˜T˜ˆÓ#×*Ñ*¨5Ó1€AØˆg�SˆM˜e˜W IÐ.°5°'¸°Ð=€EÜ*¨5¸Ô>Ñ€Cˆ�CÙ�a˜uÔ%€EÙ˜! 5°Ô6�O€CˆˆtØ�1Š9Ðˆ9Ù�C˜d a¨uÔ5�G€A€tØ�1Š9Ðˆ9Ü
�(‰(�5‹/×
Ñ
€CÜ�A�a‘C˜  Q¡ s¡Ö+r4   c                 ó  — |dk(  r| t         v rt        j                  d«       t        j                  «       dk(  r| t
        v rt        j                  d«       t        j                  j                  d«      }d}|j                  ||f«      |j                  ||f«      dz  z   }t        j                  | t        j                  «      r|j                  }|j                  | «      }|dk(  r||j                  z   n||j                  «       j                  z   }|› d	�|› d
�f}t        || ¬«      \  }} |||¬«      \  }	}
}|dk(  sJ ‚ ||	|
|¬«      \  }}|dk(  sJ ‚t        j                   | «      j"                  }t        j$                  j'                  |«      }|r;t)        t        j*                  |«      t        j*                  |«      d|z  |z  ¬«       y t)        t        j,                  |«      t        j,                  |«      d|z  |z  ¬«       y )Nr|  zhetri not for real dtypes.z	win-arm64z1Test segfaulting on win-arm64 in CI, see gh-23133rI  rº   r+   r{  r~  rI  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  rG  r1   rá   r�  rH   r~  rI  r  r  rn   ÚA_invrÞ   r¥   s                  r2   Útest_sy_he_trirP  ¡  s¤  € ð �‚}˜¤+Ñ-Ü�‰Ð0Ô1Ü×ÑÓ ;Ò.°5¼NÑ3JÜ�‰ÐGÔHä
�)‰)×
Ñ
Ð 0Ó
1€CØ
€AØ�
‰
�A�q�6Ó˜SŸZ™Z¨¨A¨Ó/°Ñ2Ñ2€AÜ	‡}�}�UœBŸK™KÔ(Ø�F‰FˆØ	�‰�‹€AØ˜D’=ˆˆA�C‰CŠ a¨!¯&©&«(¯*©*¡n€AØˆg�SˆM˜e˜W C˜=Ð(€EÜ ¨UÔ3�H€CˆÙ˜! 5Ô)�O€CˆˆtØ�1Š9Ðˆ9Ù˜ $¨eÔ4�K€Eˆ4Ø�1Š9Ðˆ9Ü
�(‰(�5‹/×
Ñ
€CÜ
�)‰)�-‰-˜Ó
€CÙÜœŸ™ ›¬¯©°«¸3¸q¹5À¹9ÖEäœŸ™ ›¬¯©°«¸3¸q¹5À¹9ÖEr4   r”   z
uplo, m, n))r\  rY   r{   )r\  r{   r{   )rR  r{   rY   )rR  r{   r{   c                 ó¢  — t         j                  j                  d«      }|j                  ||f¬«      j                  |«      }t	        d|f«      \  }}	 || |||¬«      }
|dk(  rt        j
                  |«      nt        j                  |«      }|dk(  r&t        j                  t        ||«      «      }d|||f<    |	| |«      }t        |
|d¬«       y )	Nl   8#ìqà9í
r  )Úlantrr–   )rU  r:  r\  rU   ç�íµ ÷ÆÀ>rÎ   )
r6   rØ   rÙ   r.   r$   r   r   rÔ  rd  r   )r   rU  rà   rá   r:  r0   r1   r�  rR  r–   rJ  rI  r¥   s                r2   Ú
test_lantrrT  ¿  s¹   € ô �)‰)×
Ñ
Ð 1Ó
2€CØ�
‰
˜˜A˜ˆ
Ó×&Ñ& uÓ-€AÜ#Ð$6¸¸Ó=�L€Eˆ5Ù
��a˜d¨Ô
.€Cð ˜c’kŒ�‰�Œ
¤r§w¡w¨q£z€AØˆs‚{Ü�I‰I”c˜!˜Q“iÓ ˆØˆˆ!ˆQˆ$‰Ù
��a‹.€Cä�C˜ 4Ö(r4   c           	      ó¼  — t         j                  j                  d«      }d\  }}}|j                  ||f«      |j                  ||f«      dz  z   }|j                  t        j                  d|j                  dd«      |«      «      }||z  }t        j                  | t         j                  «      r|j                  }|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                  j                  ||d	k(  rt         j                   nd¬
«      }t#        d|
f«      \  }} ||
||«      \  }}} |||||||¬«      d   }t#        d|f«      \  }} ||«      d   } ||||¬«      d   }t%        ||d¬«       y )Nì   €2 ©r{   rV   rV   r+   r   r{   rU   rV   r½   r|  r�  )ÚgbconÚgbtrf)r   rh  rg  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á   rg  rh  r�  r‘  ÚtmpÚLDABrT  r”  rX  rY  Úlu_bandr  r>   rJ  r„  r…  r•  r¥   s                         r2   Ú
test_gbconr]  Ô  sÉ  € ô �)‰)×
Ñ
 Ó
,€Cð �I€A€rˆ2Ø�
‰
�A�q�6Ó˜SŸZ™Z¨¨A¨Ó/°Ñ2Ñ2€Aà�\‰\œ"Ÿ+™+ a¨¯©°a¸Ó)<¸aÓ@ÓA€FØˆ�K€AÜ	‡}�}�UœBŸK™KÔ(Ø�F‰FˆØ	�‰�‹€AØ$%€A„b‡o�o�a˜˜a™Ó Ñ!Ø%&€A„b‡o�o�a˜"˜˜q™Ó!Ñ"ô �R˜˜QÓ
€CàˆR‰4�"‰9�q‰=€DÜ	�‰�4˜�) 5Ô	)€BØ€B€r�sŠA€v�Jä�I‰I�N‰N˜1¨D°CªK¤"§&¢&¸QˆNÓ?€EÜ#Ð$6¸¸Ó>�L€Eˆ5Ù˜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                  j                  d«      }d\  }}}|j                  ||f«      |j                  ||f«      dz  z   }t        j                  | t         j                  «      r|j
                  }|j                  | «      }d|t        j                  ||dz   «      <   d|t        j                  || dz
  «      <   t        |||«      }t        d|f«      \  }}	 |	||«      }
 |||||«      }t        ||
d¬«       y )	NrV  rW  r+   r   rU   )Úlangbr–   rS  rÎ   )r6   rØ   rÙ   r‹  rŒ  rñ   r.   r   r   r   r$   r   )r0   r   r1   rá   rg  rh  r�  rT  r_  r–   r¥   rJ  s               r2   Ú
test_langbr`  ú  sò   € ô �)‰)×
Ñ
 Ó
,€Cð �I€A€rˆ2Ø�
‰
�A�q�6Ó˜SŸZ™Z¨¨A¨Ó/°Ñ2Ñ2€AÜ	‡}�}�UœBŸK™KÔ(Ø�F‰FˆØ	�‰�‹€AØ$%€A„b‡o�o�a˜˜a™Ó Ñ!Ø%&€A„b‡o�o�a˜"˜˜q™Ó!Ñ"Ü	�B˜˜AÓ	€Bä#Ð$6¸¸Ó=�L€Eˆ5Ù
��a‹.€CÙ
��b˜"˜bÓ
!€CÜ�C˜ 4Ö(r4   Ú	compute_vc                 ó®  — t         j                  j                  d«      }d}|j                  || ¬«      }|j                  |dz
  | ¬«      }t        j                  |d«      t        j                  |«      z   t        j                  |d«      z   }t         j                  j                  |«      }t        d«      } ||||¬«      \  }	}
}|dk(  sJ ‚t        t        j                  |	«      t        j                  |«      «       |rTt        j                  | «      j                  }t        |
t        j                  |	«      z  |
j                  z  ||d	z  ¬
«       y y )Nl   J*Os{U•r{   r½   rU   r†   Ústevd)ra  r   r›  r§  )r6   rØ   rÙ   r:  r�  Úeigvalshr$   r   rO  rÝ   rÞ   r~   )r0   ra  r1   rá   ru   rØ  r�  r¥   rc  r\  r'  rn   rÞ   s                r2   Ú
test_stevdre    s	  € ô �)‰)×
Ñ
Ð 2Ó
3€CØ
€AØ�
‰
�1˜Eˆ
Ó"€AØ�
‰
�1�q‘5 ˆ
Ó&€AÜ
�‰��2‹œŸ™ ›Ñ#¤b§g¡g¨a°£mÑ3€AÜ
�)‰)×
Ñ
˜QÓ
€Cä˜WÓ%€EÙ�q˜! yÔ1�J€A€qˆ$Ø�1Š9Ðˆ9Ü”B—G‘G˜A“J¤§¡¨£Ô-ÙÜ�h‰h�u‹o×!Ñ!ˆÜ˜œBŸG™G A›J™¨¯©Ñ,¨a°c¸3±hÖ?ð r4   r3  )�Ú	functoolsr   rM  Ú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Úsparsera  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  r*  r3  rB  rU  r^  rd  rk  rp  rx  rƒ  r…  r¦  rª  r³  r»  ÚskipifrÄ  rË  r=  rá  rç  rê  rˆ   rñ  r	  r#  r&  r)  rí  r1  r3  r5  rC  rK  rS  rX  rZ  r\  r`  rq  rt  r†  r‹  r“  r°  rÊ  rÌ  rÎ  rÑ  rá  rå  ré  rì  rû  r  r  r  r$  r+  r0  r=  rF  rK  rP  rD   rT  r]  r`  re  rª   r4   r2   Ú<module>rt     s´  ðõ
 Û ÷/÷ /ó Ý *ã ÷!÷ !ó !÷F÷ F÷ Fó Få *Ý .ß 2å ðÝ0õ 1Ý ,å #Ø#Ð #€�ØÐ+Ñ,¨VÑ4°VÑ<€ØÐ*Ñ+¨FÑ3°IÑ>€à�z‰z˜2Ÿ:™:Ð&€Ø—,‘, §¡Ð.€Ø	�~Ñ	%€ò*òOò..÷]-ñ ]-÷@
ñ 
÷p9ñ p9ðf ‡�×Ñ˜ &Ó)Ø‡�×Ñ˜Ò"BÓCñó Dó *ð÷-ñ -÷*;ñ ;÷(;ñ ;÷DK/ñ K/ð^ ‡�×Ñ˜ &Ó)Ø‡�×Ñ˜¢Ó1Ø‡�×Ñ˜ # s Ó,Ø‡�×Ñ˜ # s Ó,Ø‡�×Ñ˜˜q "˜gÓ&ñ )ó 'ó -ó -ó 2ó *ð
 )òF)ò.'4òT'6òT4÷8AGñ AG÷HLñ Lò^.?òbAò63ò>1ò>FòD&DòR7!òt7:òt&8òR3ò6Dò@"DòJDò4 L÷FUKñ UKòp%PòP%PòP*/òZ<ð ‡�×Ñ�DØKð ó MñKóMðKò$:ð> ‡�×Ñ˜ &¨&Ð!1Ó2Ø‡�×Ñ˜ +Ó.Ø‡�×Ñ˜¡ q£Ó*Ø‡�×Ñ˜¡ q£Ó*Ø‡�×Ñ˜¡ q£Ó*Ø‡�×Ñ˜ ! Q Ó(Ø‡�×Ñ˜ ! Q Ó(ób&ó )ó )ó +ó +ó +ó /ó 3ðb&ðJ ‡�×Ñ˜ +Ó.ñ ó /ð ðF ‡�×Ñ˜(Ø! 1˜+Ø! 1˜+Ø! 1˜+Ø! 1˜+Ø! 1˜+Ø! 1˜+ð'óñ1óð1ð ‡�×ÑÐ9Ø#˜2Ÿ8™8Ò%?Ú%?Ú%@Ú%=Ú%?Ú%?ð%Aó Bð $˜2Ÿ8™8Ò$DÓEØ#˜2Ÿ8™8Ò%GÚ%FÚ%EÚ%HÚ%GÚ%Gð%Ió Jð $˜2Ÿ8™8Ò%GÚ%HÚ%FÚ%Gð%Ió JðKð LóMñ$,ó%Mð$,ð  ‡�×Ñ˜ &Ó)ñXKó *ðXKðv ‡�×ÑÐLØ#˜2Ÿ8™8Ò$9Ó:Ø%˜RŸX™XÒ&@ÓAØ%˜RŸX™XÒ&;Ó<Ø%˜RŸX™XÒ&9Ó:Ø%˜RŸX™XÒ&BÓCØ%˜RŸX™X¢lÓ3Ø%˜RŸX™X¢oÓ6Ø%˜RŸX™X¨¨S zØ(,¨d |Ø(+¨T {Ø(+¨U |Ø(+¨T {ð	')ó *ð &˜RŸX™X¨¨A wØ()¨2 wØ()¨2 wØ(*¨B xØ(*¨A wð	'0ó 1ð2ð& &˜RŸX™XÒ&GÓHØ%˜RŸX™Xò '4ó 5ð &˜RŸX™XÒ&FÓGà%˜RŸX™Xò 'Aó Bà%˜RŸX™Xò ':ó ;à%˜RŸX™XÒ&?Ó@Ø%˜RŸX™X¢oÓ6Ø%˜RŸX™X¨°*Ð'=Ø(3°\Ð'BØ(4°iÐ'@Ø(3°[Ð'AØ(1°:Ð'>ð	'@ó Að
 &˜RŸX™X¨°Ð'7Ø(.°Ð'7Ø(.°Ð'8Ø(/°Ð'8Ø(.°Ð'7ð	'9ó :ð%ð%)ó* ñV óW* ðV ð( ‡�×Ñ˜ &Ó)Ø‡�×Ñ˜¢Ó1Ø‡�×Ñ˜˜q "˜gÓ&ñ)ó 'ó 2ó *ð)ð2 ‡�×Ñ˜ &Ó)Ø‡�×Ñ˜Ò"BÓCñó Dó *ðð ‡�×Ñ˜Ù˜[¨;Ñ6¸Ó?óAñ,&óAð,&ð^ ‡�×Ñ˜Ù˜[¨;Ñ6¸Ó?óAñ0óAð0ð ‡�×Ñ˜Ù˜[¨;Ñ6¸Ó?óAñMóAðMð& ‡�×ÑÐAØ"˜"Ÿ(™(Ò#5Ó6Ø"˜"Ÿ(™(¢?Ó3Ø"˜"Ÿ(™(Ò#4Ó5Ø"˜"Ÿ(™(Ò#8Ó9Ø"˜"Ÿ(™( Q¨ G¨a°¨V°a¸°V¸bÀ"¸XØ%&¨ Gð$-ó .à"˜"Ÿ(™( S¨! H¨q°"¨g¸¸2°wÀÀQÀØ%&¨ Gð$-ó .ðð #˜"Ÿ(™(Ò#3Ó4Ø"˜"Ÿ(™(Ò#>Ó?Ø"˜"Ÿ(™(¢=Ó1Ø"˜"Ÿ(™(Ò#5Ó6Ø"˜"Ÿ(™( V¨WÐ$5¸ÀÐ7GØ%+¨VÐ$4°v¸vÐ6Fð$Hó Ià"˜"Ÿ(™( T¨5 M°D¸$°<À$ÈÀØ%)¨4 Lð$2ó 3ð	ðEó ñ&1ó'ð&1ò.ð@ ‡�×ÑÐ)Ù˜V [°;Ñ%>Ó?óAà‡�×Ñ˜¡e¨A£hÓ/ñ&ó 0óAð&ð: ‡�×ÑÐ)Ù˜V [°;Ñ%>Ó?óAà‡�×Ñ˜¡e¨A£hÓ/ñó 0óAðð ‡�×ÑÐ)Ù˜V [°;Ñ%>Ó?óAà‡�×Ñ˜¡e¨A£hÓ/ñNó 0óAðNð ‡�×ÑÐ)Ù˜V [°;Ñ%>Ó?óAà‡�×Ñ˜¡e¨A£hÓ/ñó 0óAðð ‡�×ÑÐ:ØØ#˜2Ÿ8™8Ò$;Ó<Ø#˜2Ÿ8™8Ò$5Ó6Ø#˜2Ÿ8™8Ò$DÓEØ#˜2Ÿ8™8Ò%FÚ%GÚ%GÚ%Fð%Hó Ið	Jð ó	ñ=ó	ð=ð ‡�×Ñ˜ &Ó)Ø‡�×Ñ˜Ò(@ÓAñ=$ó Bó *ð=$ò@.ð ‡�×Ñ˜Ò#>Ó?Ø‡�×Ñ˜  t Ó-ñ	Ló .ó @ð	Lð ‡�×Ñ˜ D¨% =Ó1Ø‡�×Ñ˜  t Ó-ñ
Ló .ó 2ð
Lð ‡�×Ñ˜ 6Ó*Ø‡�×Ñ˜Ò0Ó1ñ	'ó 2ó +ð	'ð ‡�×Ñ˜ 6Ó*ñ+Có +ð+Cð\ ‡�×Ñ˜ &Ó)Ø‡�×Ñ˜¨¨t }Ó5Ø‡�×Ñ˜ # s Ó,ñ7@ó -ó 6ó *ð7@ðt ‡�×Ñ˜ &Ó)Ø‡�×Ñ˜¨¨1 vÓ.Ø‡�×Ñ˜ # s Ó,ñ-Bó -ó /ó *ð-Bð` ‡�×Ñ˜ &¨¡(Ó+Ø‡�×Ñ˜¨¨t }Ó5Ø‡�×Ñ˜ # s Ó,ñ-<ó -ó 6ó ,ð-<ð` ‡�×Ñ˜Ø#˜2Ÿ8™8Ò$9Ó:Ø#˜2Ÿ8™8Ò$?Ó@Ø#˜2Ÿ8™8Ò$9Ó:Ø#˜2Ÿ8™8 c¨3 Z°#°t°¸sÀD¸kØ&(¨% [°3¸°+ð%?ó @à#˜2Ÿ8™8 b¨! W¨q°"¨g¸¸2°wÀÀRÀØ&(¨! Wð%.ó /ð0ð $˜2Ÿ8™8Ò$EÓFØ#˜2Ÿ8™8ò %>ó ?à#˜2Ÿ8™8Ò$DÓEØ#˜2Ÿ8™8 h°
Ð%;Ø&1°;Ð%?Ø&2°HÐ%=Ø&1°;Ð%?Ø&/°Ð%<ð	%>ó ?ð
 $˜2Ÿ8™8 f¨fÐ%5¸ÀÐ7GØ&,¨gÐ%6¸À&Ð8IØ&,¨fÐ%5ð%7ó 8ð9ð:ó;ñ()ó);ð()ð ‡�×ÑÐ)©3¨v°{Ø1<ñ8=ó ,>ó ?à‡�×ÑÐ,ØñNðOð Ñ ?Ð@ðBóCñ
1:óCó?ð1:ðh ‡�×ÑÐ)©3¨v°{Ø1<ñ8=ó ,>ó ?à‡�×ÑÐ,ØñNðOð Ñ ?Ð@ðBóCñ
KóCó?ðKð( ‡�×ÑÐ)©3¨v°{Ø1<ñ8=ó ,>ó ?à‡�×ÑÐ,ØñNðOð Ñ ?Ð@ðBóCò
"óCó?ð"ðJ ‡�×Ñ™Ø#˜2Ÿ8™8Ò$6Ó7Ø#˜2Ÿ8™8¢OÓ4Ø#˜2Ÿ8™8 a¨ W¨q°!¨f°q¸!°f¸rÀ2¸hØ&'¨ Wð%.ó /à#˜2Ÿ8™8 c¨1 X°°2¨w¸¸B¸Ø&(¨! W¨q°"¨gð%7ó 8ð	9ð $˜2Ÿ8™8Ò$4Ó5Ø#˜2Ÿ8™8Ò$?Ó@Ø#˜2Ÿ8™8 h°	Ð%:Ø&.°Ð%9Ø&.°Ð%9Ø&.°Ð%9ð%;ó <ð $˜2Ÿ8™8 f¨gÐ%6Ø&,¨fÐ%5Ø&,¨fÐ%5Ø&,¨fÐ%5ð%7ó 8ð	9ð:ó;ò"
*ó#;ð"
*ð ‡�×Ñ™ 5¨$ -Ó0Ø‡�×Ñ˜ &Ó)ò+=ó *ó 1ð+=ð\ ‡�×Ñ˜ &Ó)ò!4ó *ð!4ðH ‡�×ÑÙØ€b‡h�hÓ)Û)Û*Û)ð+ó ,ð €b‡h�hÓ2Û1Û1Û1ð3ó 4ð ˆðð €b‡h�hÓJÛKÛHÛHðJó Kð €b‡h�hó 5ó5ó5ó6ð7ó 8ð ˆððóò0*ó1ð0*ð  ‡�×Ñ˜ &Ó)ò,>ó *ð,>ð^ ‡�×Ñ˜ &Ó)ò*4ó *ð*4ðZ ‡�×ÑÙ0Ø€b‡h�hÓ1Û1Û2Û1ð3ó 4ð €b‡h�hÓ0Û3Û3Û1ð3ó 4ð €b‡h�hÓ2Û1Û3Û2ð4ó 5ð €b‡h�h‹|ÓÙ‘ðð €b‡h�hó 6ó7ó5ó5ð6ó 7ð €b‡h�hó 5ó6ó5ó6ð7ó 8ð €b‡h�hó 6ó5ó5ó5ð6ó 7ð €b‡h�h‹|ÓÙ‘ð3ð'ó)òT5óU)ðT5ðB ‡�×Ñ˜ &Ó)ò5>ó *ð5>ðp ‡�×ÑÙ"Ø€b‡h�hÓ(Û(Û(Û(ð*ó +ð €b‡h�hÓ(Û(Û(Û(ð*ó +ð €b‡h�hÓ(Û(Û(Û(ð*ó +ð €b‡h�hÓ(Û(Û(Û(ð*ó +ð €b‡h�hÓ(Û(Û(Û(ð*ó +ð €b‡h�hÓ(Û(Û(Û(ð*ó +ð €b‡h�hÓ(Û(Û(Û(ð*ó +ð €b‡h�hÓ(Û(Û(Û(ð*ó +ð9,ð -ó!.ðD ‡�×Ñ˜ +Ó.ò;ó /óE!.ðF;ð" ‡�×Ñ˜ +Ó.Ø‡�×Ñ™¡*Ó-Ø‡�×Ñ™£Ó1ò->ó 2ó .ó /ð->ð` ‡�×Ñ™ 4¨ ,Ó/Ø‡�×Ñ˜ &Ó)Ø‡�×Ñ™¡&Ó)ò,ó *ó *ó 0ð,ð. ‡�×Ñ™ 4¨ ,Ó/Ø‡�×Ñ˜ &Ó)Ø‡�×Ñ™¡&Ó)òFó *ó *ó 0ðFð6 ‡�×Ñ˜¡¡mÓ!4Ó5Ø‡�×Ñ™ó (Eó Fà‡�×Ñ˜ # s Ó,Ø‡�×Ñ˜ &Ó)ò)ó *ó -óFó 6ð
)ð  ‡�×Ñ˜ &Ó)Ø‡�×Ñ˜¢Ó1ò!&ó 2ó *ð!&ðH ‡�×Ñ˜¡¡mÓ!4Ó5Ø‡�×Ñ˜ &Ó)ò)ó *ó 6ð)ð& ‡�×Ñ˜ +Ó.Ø‡�×Ñ™¡fÓ-ò@ó .ó /ñ@øðko ò ØƒGðús   Á4AY	 ÁY	AYÁYAY