Ë
    ÏÍ:j! ã                   ó4-  — 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" 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,Z, d dl-m.Z. d dl/m0Z0 dxZ1Z2e0d   d   d   Z1e0d   d   d   Z2ejf                  ejh                  gZ5ejl                  ejn                  gZ8e5e8z   Z9d„ Z:d„ Z;d„ Z< G d„ d«      Z= G d„ d«      Z>e
j~                  j�                  de9«      e
j~                  j�                  dg d¢«      d„ «       «       ZA G d„ d«      ZB G d„ d «      ZC G d!„ d"«      ZD G d#„ d$«      ZEe
j~                  j�                  de9«      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-d.g«      d/„ «       «       «       «       «       ZFd0„ ZGd1„ ZHd2„ ZId3„ ZJ G d4„ d5«      ZK G d6„ d7«      ZLd8„ ZMd9„ ZNd:„ ZOd;„ ZPd<„ ZQd=„ ZRd>„ ZSd?„ ZTd@„ ZUdA„ ZVdB„ ZWdC„ ZXdD„ ZYdE„ ZZ G dF„ dG«      Z[dH„ Z\dI„ Z]dJ„ Z^dK„ Z_e
j~                  jÁ                  dLdM¬N«      dO„ «       ZadP„ Zbe
j~                  j�                  dQdRdSg«      e
j~                  j�                  de5«      e
j~                  j�                  dT ec eddU«      «      «      e
j~                  j�                  dV ec eddW«      «      «      e
j~                  j�                  dX ec eddW«      «      «      e
j~                  j�                  dYd dZg«      e
j~                  j�                  d[d dZg«      �dfd\„«       «       «       «       «       «       «       Zee
j~                  j�                  de5«      d]„ «       Zfe
j~                  j�                  d^dTd_idVd_idXd_idYd_id`d_id[d_if«      da„ «       Zge
j~                  j�                  db ejÐ                  g dc¢g dd¢g de¢g df¢g dg¢g dh¢g«       ejÐ                  g di¢«       ejÐ                  g dj¢g dk¢g dl¢g dm¢g dn¢g do¢g«       ejÐ                  g dp¢g dq¢g dr¢g ds¢g«      fg«      dt„ «       Zie
j~                  j�                  de9«      du„ «       Zje
j~                  j�                  dv ejÐ                  g dw¢«       ejÐ                  g dx¢«       ejÐ                  g dy¢«       ejÐ                  g dz¢«       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ŠdZg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¦„ «       Zke
j~                  j�                  de9«      e
j~                  j�                  d%g d§¢«      e
j~                  j�                  d,d-d.g«      d¨„ «       «       «       Zle
j~                  j�                  de9«      e
j~                  j�                  dg d©¢«      dª„ «       «       Zme
j~                  j�                  d« ec ene5e5z   e9«      «      «      d¬„ «       Zoe
j~                  j�                  d« ec ene5e5z   e9«      «      «      d­„ «       Zpe
j~                  j�                  d« ec ene5e5z   e9«      «      «      d®„ «       Zqe
j~                  j�                  d¯ ejÐ                  g d°¢«       ejÐ                  g d±¢«       ejÐ                  g d²¢«       ejÐ                  g d³¢«       ejÐ                  dUd.gd_dWgd´d_gdµd¶gd‰d·gg«       ejÐ                  d¸d´gd´d¹gdZdŠgd¹dUg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É„ «       ZrdÊ„ Zse
j~                  j�                  dË ec ene9e5e5z   «      «      «      e
j~                  j�                  dÌ ec edd-«      «      «      dÍ„ «       «       Zte
j~                  j�                  dË ec ene9e5e5z   «      «      «      e
j~                  j�                  dÌ ec edd-«      «      «      dÎ„ «       «       Zue
j~                  j�                  dË ec ene9e5e5z   «      «      «      e
j~                  j�                  dÌ ec edd-«      «      «      dÏ„ «       «       Zve
j~                  j�                  dË ec ene9e5e5z   «      «      «      e
j~                  j�                  dÌ ec edd-«      «      «      dÐ„ «       «       Zwe
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Ù„ «       Zxe
j~                  j�                  de9«      e
j~                  j�                  dÚg dÛ¢«      dÜ„ «       «       ZydÝ„ Zze
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çe9«      e
j~                  j�                  dèg dé¢«      dê„ «       «       Z}e
j~                  j�                  dçe9«      dë„ «       Z~e
j~                  j�                  de9«      e
j~                  j�                  dìdídLg«      e
j~                  j�                  dîdïd+g«      dð„ «       «       «       Ze
j~                  j�                  de9«      e
j~                  j�                  dìd dZg«      e
j~                  j�                  dîdïd+g«      dñ„ «       «       «       Z€e
j~                  j�                  de9d´z  «      e
j~                  j�                  dìdídLg«      e
j~                  j�                  dîdïd+g«      dò„ «       «       «       Z�e
j~                  j�                  dó ejÐ                  g dw¢«       ejÐ                  g dx¢«       ejÐ                  g dy¢«       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ŠdZg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Ë ec ene9e5e5z   «      «      «      e
j~                  j�                  dõdïdö„ fd+d÷„ fg«      dø„ «       «       Zƒe
j~                  j�                  dË ec ene9e5e5z   «      «      «      e
j~                  j�                  dõdïdù„ fd+dú„ fg«      dû„ «       «       Z„e
j~                  j�                  dË ec ene9e5e5z   «      «      «      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Ð                  dUd.gd_dWgd´d_gdµd¶gd‰d·gg«       ejÐ                  d¸d´gd´d¹gdZdŠgd¹dUg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ídLg«      e
j~                  j�                  de9«      �d„ «       «       Z‡e
j~                  j�                  de9«      �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´dZf ejÐ                  g �d¢g �d¢g �d¢g �d¢g«       ejÐ                  g �d¢g �d¢g �d¢g �d¢g«      dZdWfg«      �d„ «       Z‰e
j~                  j�                  de9«      �d„ «       ZŠe
j~                  j�                  de9«      �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 �d.¢g«       ejÐ                  g �d/¢g �d0¢g �d1¢g �d2¢g«       ejÐ                  g �d$¢«      �d3�d4fg«      �d5„ «       ZŒe
j~                  j�                  de9«      �d6„ «       Z�e
j~                  j�                  �d7 ejÐ                  g �d8¢g �d9¢g �d:¢g �d;¢g«       ejÐ                  g �d<¢g �d9¢g �d:¢g �d=¢g«       ejÐ                  g �d>¢g �d?¢g �d@¢g �dA¢g«       ejÐ                  g �dB¢g �dC¢g �dD¢g �dE¢g«       ejÐ                  g �dF¢g �dG¢g �dD¢g �dH¢g«       ejÐ                  g �dI¢g �dJ¢g �dK¢g �dL¢g«       ejÐ                  g �d<¢g �dM¢g �dN¢g �dO¢g«       ejÐ                  g �dP¢g �dQ¢g �dR¢g �dS¢g«      fg«      e
j~                  j�                  de5«      �dT„ «       «       ZŽe
j~                  j�                  de5«      e
j~                  j�                  �dU�dV«      e
j~                  j�                  �dWg �dX¢«      �dY„ «       «       «       Z�e
j~                  j�                  �dZdádâg«      e
j~                  j�                  de9«      e
j~                  j�                  �d�d[«      �d\„ «       «       «       Z�e
j~                  j�                  �dZdádâg«      e
j~                  j�                  de9«      e
j~                  j�                  �d�d[«      �d]„ «       «       «       Z‘e
j~                  j�                  d% ec�d^«      «      e
j~                  j�                  �d_g �d`¢«      e
j~                  j�                  d*d+d(g«      e
j~                  j�                  de9«      �da„ «       «       «       «       Z’e
j~                  j�                  de9«      e
j~                  j�                  d%g d§¢«      �db„ «       «       Z“e
j~                  j�                  d% ec�d^«      «      e
j~                  j�                  de9«      �dc„ «       «       Z”e
j~                  j�                  de5«      e
j~                  j�                  �dd�d[«      �de„ «       «       Z•y(g  é    )Ú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)ÚlapackÚinvÚsvdÚcholeskyÚsolveÚldlÚnormÚ
block_diagÚqrÚeighÚqz)Ú
_to_banded)Ú_compute_lwork)Úortho_groupÚunitary_group)Údiags_array)Ú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      ús/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/scipy/linalg/tests/test_lapack.pyÚgenerate_random_dtype_arrayr2   '   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ÚflapackÚHAS_LP64Ú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       r1   Útest_lapack_documentedrJ   /   sŽ   € ä‡~�~ÐÜ�‰Ð,Ô-Ü”—‘×$Ñ$Ó&Ó'€Eò	€Kô ‹f€GÜ”F“ò !ˆØ—‘ Õ$¨°[Ò)@Ø˜EÒ!Ø�N‰N˜4Õ ð!ð �bŠ=ÐNÐNÓN‰=r3   c                  óP   — ddl m}  ddlm} | |k(  sJ ‚ddl m} ddlm} ||k(  sJ ‚y )Nr   )r9   )r7   )Úscipy.linalg.blasr9   Úscipy.linalg.lapackr7   )Úblas_has_ilp64Úlapack_has_ilp64Úblas_has_lp64Úlapack_has_lp64s       r1   Ú(test_lp64_ilp64_blas_lapack_both_or_nonerR   F   s+   € Ý=ÝAØÐ-Ò-Ð-Ð-å;Ý?Ø˜OÒ+Ð+Ñ+r3   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}t         D ]°  }t        d|¬	«      }|€Œ ||«      \  }}}}}	t        |	 t        |	«      «       t	        ||«       t        ||fd
t        |d
   «      dz
  f«       t	        |t        j                  t        |«      «      «        ||dd¬«      \  }}}}}	t        |	 t        |	«      «       Œ² y )N)é   é   é   )é   é   é   )é   é   é	   )rV   r   r   ga2U0*©3?)rY   r   r   gü©ñÒMb`?)r\   rV   r   r   )r   rV   r   r   Úgebal©r/   r   rV   )ÚpermuteÚscale)	ÚDTYPESr#   r   Úreprr   r   Úlenr5   r   )
ÚselfÚaÚa1r/   ÚfÚbaÚloÚhiÚpivscaleÚinfos
             r1   Ú
test_gebalzTestFlapackSimple.test_gebalR   sÒ   € Úš	¢9Ð-ˆÚÚÚÚðˆô ò 	*ˆEÜ  °Ô6ˆ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Õ)ñ	*r3   c                 óª   — g d¢g d¢g d¢g}t         j                  fD ]4  }t        d|¬«      }|€Œ ||«      \  }}}t        | t	        |«      «       Œ6 y )N©ikÿÿÿiÎÿÿÿifÿÿÿ©i  é´   i"  ©iåÿÿÿi÷ÿÿÿiçÿÿÿÚgehrdr`   )r5   Úfloat64r#   r   rd   )rf   rg   r/   ri   ÚhtÚtaurn   s          r1   Ú
test_gehrdzTestFlapackSimple.test_gehrdg   s\   € ÚÚÚðˆô —j‘j�\ò 	*ˆEÜ  °Ô6ˆAØˆyØÙ˜a›D‰MˆB��TÜ˜�Hœd 4›jÕ)ñ	*r3   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 )NrV   rW   r   rY   rZ   r[   r]   r^   é
   é   é   ÚTÚfdFD)Útrsylr*   ÚC)ÚtranaÚtranb©Údecimaléÿÿÿÿ)Úisgn)	r5   Úarrayr-   r#   Úisupperr   ÚdotÚ	conjugater~   )rf   rg   ÚbÚcÚtransr/   rh   Úb1Úc1r€   Úxrb   rn   s                r1   Ú
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¸!÷=ñ#	=r3   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ÚFfrX   r\   ÚMmÚ1Oor   ©ÚaxisÚIirV   )r5   rˆ   r-   r‰   r#   ÚsqrtÚsumÚsquareÚabsr   Úmaxr   )	rf   rg   r/   Únorm_strrh   r–   Úvaluer…   Úrefs	            r1   Ú
test_langezTestFlapackSimple.test_langeŽ   sD  € Ü�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-ñ	-r3   N)Ú__name__Ú
__module__Ú__qualname__ro   ry   r’   r¦   © r3   r1   rT   rT   P   s   „ ò*ò*	*ò=ó8-r3   rT   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{   é   rV   )ÚgelsÚ
gels_lworkr`   ©Úlworkr   ÚTTCC©rŽ   r³   ç      ð?ç       @ç      @ç      @ç      @ç       @©ç      0@g      1@g      4@)r°   r±   ÚgeqrfrW   r†   ç¥ªªªªª,Àçûÿÿÿÿÿ-@é   ©Úrtolù      ð?      @ù      @      à?ù      @      Àù      @       Àù       @ffffffæ?©r½   y      1@       @y      4@      ÀùR úŠ–ò?¤îð\Îjþ¿ùµò£�,Æû?§ÿ² Wø?)r5   ÚrandomÚdefault_rngÚ	enumeraterc   r-   r#   r   r   ÚREAL_DTYPESrˆ   r.   re   r   ÚfinfoÚepsr	   r+   )rf   r0   Úindr/   ÚmÚnÚnrhsrh   r�   ÚglsÚglslwr³   r=   rn   r°   r±   r¾   Úlqrr‘   Ú	lqr_truths                       r1   Ú	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Ö.ñ/	/r3   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_lworkrW   rV   r†   Fr¿   rÀ   rÁ   rÂ   çYNô))1)@ç*@ƒž.«â?rÄ   rÅ   rÆ   rÇ   rÈ   rÉ   rÊ   rË   çU‹¯ý.*@çãÊ_ÅY@©rÏ   r5   rˆ   r#   r.   re   ÚintÚrealr   rÐ   rÑ   r+   )rf   r/   rh   r�   rÜ   rÝ   rÓ   rÔ   rÕ   ÚworkÚiworkrn   r³   Ú
iwork_sizer‘   ÚsÚrankÚrworkÚ
rwork_sizes                      r1   Ú
test_gelsdz"TestLeastSquaresSolvers.test_gelsdö   sà  € Ü ó 	9ˆ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	9ô: $ó 	Pˆ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	Pr3   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_lworkrW   rV   r†   Fr¿   rÀ   rÁ   rÂ   rÞ   rß   rÄ   rÅ   rÆ   rÇ   rÈ   rÉ   rÊ   rË   rà   rá   râ   )rf   r/   rh   r�   rî   rï   rÓ   rÔ   rÕ   rå   rn   r³   Úvr‘   rè   ré   s                   r1   Ú
test_gelssz"TestLeastSquaresSolvers.test_gelss2  sÁ  € ä ó 	9ˆ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ð/	9ô6 $ó 	9ˆ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	9r3   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ï   rW   rV   r{   Fr†   r¿   rÀ   rÁ   rÂ   rÄ   rÅ   rÆ   rÇ   rÈ   rÉ   rÊ   rË   )rÏ   r5   rˆ   r#   r.   re   rÐ   rÑ   rã   rä   r   Úint32r   r+   )rf   r/   rh   r�   ró   Úgelsy_lworkrÓ   rÔ   rÕ   rå   rn   r³   Újptvrð   r‘   Újré   s                    r1   Ú
test_gelsyz"TestLeastSquaresSolvers.test_gelsyk  sÓ  € ä ó 	9ˆ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ð+	9ô4 $ó 	9ˆ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ñ+	9r3   N)r§   r¨   r©   rÚ   rì   rñ   rø   rª   r3   r1   r¬   r¬   °   s   „ òB/òH:Pòx79ór59r3   r¬   r/   r.   )©rX   rY   )rZ   rW   ©é   rû   c                 óZ   — t        d| ¬«      }|\  }} |||¬«      \  }}t        |d«       y )NÚgeqrf_lworkr`   ©rÓ   rÔ   r   ©r#   r   )r/   r.   rý   rÓ   rÔ   r³   rn   s          r1   Útest_geqrf_lworkr   £  s3   € ô # M¸%Ô@€KØ�D€A€qÙ  QÔ'�K€Eˆ4Ü��qÕr3   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,  rW   r`   ÚgerqfrW   r²   ÚorgrqéþÿÿÿrV   Úungrq)rc   r5   r   r#   Úassert_raisesÚ	ExceptionrÏ   r+   )
rf   r/   rg   r  Úrqrx   rå   rn   r  r  s
             r1   Ú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¨!Ö,ñ	-r3   N)r§   r¨   r©   r  rª   r3   r1   r  r  ¬  s   „ ó-r3   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é*   )rX   rX   ©Úsize)ÚpotrfÚpotri)r  r   )r5   rÌ   rÍ   ÚnormalrŠ   r~   r#   r   r   r   r   )rf   r  r  r0   r‘   rg   ÚdpotrfÚdpotrir�   r=   Údpts              r1   Ú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³&«/Õ:r3   N)r§   r¨   r©   r?   ÚmarkÚparametrizer  rª   r3   r1   r  r  Á  sF   „ à‡[�[×Ñ˜W t¨U mÓ4Ø‡[�[×Ñ˜W t¨U mÓ4ñ;ó 5ó 5ñ;r3   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†   rV   F)Úfull_matricesÚ
compute_uvÚoverwrite_aÚcheck_finite©r   Úlasd4rX   z=LAPACK root finding dlasd4 failed to find the singular value zThere are NaN rootséd   ©ÚatolrÃ   )r5   rˆ   ÚhstackÚvstackÚdiagr   re   Únewaxisr   Úconcatenater   r#   ÚrangerF   r   ÚanyÚisnanr   rÐ   rv   rÑ   )rf   ÚsigmasÚm_vecÚMÚSMÚit_lenÚsgmÚmvcr'  ÚrootsÚiÚress               r1   Ú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ö	;r3   N)r§   r¨   r©   r=  rª   r3   r1   r  r  Õ  s   „ ó;r3   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 )Ú	TestTbtrsr/   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ÀrA  g�Âõ(\�+Àg×£p=
—0Àg333333*@gÃõ(\�ÂÀgHáz®G,ÀgìQ¸…ë#ÀrY   rV   r†   éýÿÿÿrX   rW   r  )y
×£p=
ÿ¿¸…ëQ¸@y{®Gáz@®GázÀy…ëQ¸…Û?Ház®GÀy)\�Âõ(Ü?š™™™™™¹?)y…ëQ¸À…ëQ¸…@yq=
×£pý¿®Gáz@y×£p=
×û?{®Gáz¤¿r   )yìQ¸…ëù?q=
×£p@y)\�Âõ(Àáz®Gáþ¿r   r   y¸…ëQ¸!À
×£p=
Ày×£p=
8À®GázÀy¤p=
×#/À)\�Âõh7Ày\�Âõ(üLÀHáz®G @y…ëQ¸…ÀHáz®Ç6@y×£p=
3@Ãõ(\�‚=Ày{®Gáz-À333333ÀyìQ¸…+3@®GázT5@y               @y      ð?      @y      ð?      Ày      À       Àyt&mªîÀâ=–#ôÀy×i¤¥ò6@U¾g$B@y[aú^Cðÿ?b->À¸ð¿y-@ÛjÖiÀ& ÿ”*ù!Àz	Datatype z not understood.ÚtbtrsÚL©ÚabrŒ   Úuplor   çñhãˆµøä>©rÃ   r*  N)rÏ   r5   rˆ   r+   Ú
ValueErrorr#   r   r   )rf   r/   rF  rŒ   Úx_outrC  r‘   rn   s           r1   Ú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Ö4r3   zdtype,trans)ÚNr~   r�   r�   rG  ÚUrD  r-  rM  c           	      ót  — 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        ||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¼  )rY   rX   rW   rC  r`   rN  rV   r†   Údia)ÚoffsetsÚformatr   )rF  rŒ   rG  rŽ   r-  rM  g-Cëâ6
?rÂ   r~   r�   zInvalid trans argument)r5   rÌ   ÚRandomStater#   r0  r¡   r2   r   r"   r   rÎ   Údiagonalr¢   Úminr   r   r~   r‹   rJ  )rf   r/   rŽ   rG  r-  r0   rÔ   rÕ   ÚkdrC  Úis_upperÚkuÚklÚband_offsetsr‘   Úband_widthsÚwidthÚbandsrg   rF  ÚrowÚkrŒ   rn   s                           r1   Útest_random_matriceszTestTbtrs.test_random_matrices'  sÎ  € ô �i‰i×#Ñ# DÓ)ˆð
 ‰ˆˆ4�Ü  °Ô6ˆà˜C‘KˆØ�(‰]ˆØ�"‰Wˆô ˜R "  q¡¨"Ó-ˆØ+7Ö8 a�qœ3˜q›6“zÐ8ˆÐ8à)ö+Øô -¨e¨X°u¸cÕBð +ˆð +ð �3Š;ÜŸ™ ¨Ô/ˆE�"‰Iô ˜ |¸EÔBˆô �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   ÁF0Á2F5zuplo,trans,diag)rN  rM  ÚInvalid)rN  ra  rM  )ra  rM  rM  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 exceptionsrC  r`   r®   )rY   rW   )rW   rY   N)r#   r5   rv   rÌ   rÍ   r  r	  )rf   rG  rŽ   r-  rC  r0   rF  rŒ   s           r1   Ú&test_invalid_argument_raises_exceptionz0TestTbtrs.test_invalid_argument_raises_exception[  sX   € ô ! ´·
±
Ô;ˆÜ�i‰i×#Ñ# DÓ)ˆØ�Z‰Z˜ÓˆØ�J‰J�vÓˆÜ”i ¨¨A¨t°U¸DÕAr3   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`   rY   rC  r   )r†   rX   rN  rE  N)r5   r   Úfloatr#   r   )rf   rF  rŒ   rC  r=   rn   s         r1   Útest_zero_element_in_diagonalz'TestTbtrs.test_zero_element_in_diagonali  sU   € ô �W‰W�V¤5Ô)ˆÜ�G‰G�AœUÔ#ˆÜ  ´Ô6ˆàˆˆ5‰	Ù˜2 ¨Ô-‰ˆˆ4Ü�T˜1Õr3   zldab,n,ldb,nrhs)rZ   rZ   r   rZ   )rZ   rZ   rX   rZ   c                 ó¾   — t        j                  ||ft        ¬«      }t        j                  ||ft        ¬«      }t        dt        ¬«      }t	        t
        |||«       y)z2Test ?tbtrs fails correctly if shapes are invalid.r`   rC  N©r5   r   re  r#   r  r	  )rf   ÚldabrÔ   ÚldbrÕ   rF  rŒ   rC  s           r1   Útest_invalid_matrix_shapesz$TestTbtrs.test_invalid_matrix_shapesy  sF   € ô �W‰W�d˜A�Y¤eÔ,ˆÜ�G‰G�S˜$�K¤uÔ-ˆÜ  ´Ô6ˆÜ”i ¨¨AÕ.r3   N)r§   r¨   r©   r?   r  r  rc   rL  rÏ   r`  rc  rf  rk  )Ú.0r/   rŽ   rÏ   s   0000r1   r?  r?  ÷  s@  „ à‡[�[×Ñ˜W fÓ-ñ+5ó .ð+5ðZ ‡[�[×Ñ˜]à+1÷Nñ NØ"'¸òNØ6;Ø&+¨s¢l°uÄÑ7Kð  % ešnð N˜nõ 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r?  r   )ÚIÚ1ÚOrG  rN  rD  r-  rM  rÔ   rX   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{   rN  Útrcon)r   rG  r-  rm  ©ÚordrV   ©ÚgeconÚgetrf©r   rÂ   )rC   Úencoder5   rÌ   rÍ   ÚpermutedÚlogspaceÚintegersÚ
issubdtypeÚfloatingrä   r   r   r-  r.  r-   r#   Úlinalgr   Úinfr   r   )r/   r   rG  r-  rÔ   Úseedr0   ÚAÚoffsetrq  r<  r=   Únorm_AÚ
norm_inv_Ar¥   Úanormru  rv  ÚluÚipvtrn   rÃ   s                         r1   Ú
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Ö(r3   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`   rX   rY   r*   ç333333ã?r¹   y       €š™™™™™é¿çš™™™™™é?)	r#   r5   rˆ   Úiscomplexobjr   r   Ú
isinstanceÚcomplexre  )r/   rŠ  ri   ÚgÚcsÚsnÚrs          r1   Ú
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 Õ(ñ')r3   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Œ  rY   rX   r{   rV   ÚfdÚrotr`   y       €      ð¿r*   y              @)rZ   rZ   rZ   rZ   )r   r   r   r   ©r*  rW   )rÔ   )rZ   rZ   rX   rX   r   )ÚoffxÚoffy)rX   rX   rZ   rZ   )Úincxrš  rÔ   )rZ   rX   rZ   rX   )r™  ÚincyrÔ   )r™  r›  rš  rœ  rÔ   )rX   rX   rZ   rX   r  )r›  rœ  rÔ   )Úoverwrite_xÚoverwrite_y)r5   ÚfullrÐ   Ú	precisionr$   r#   r   r   )
r/   r�   rè   Úurð   r*  r—  ri   rg   rŒ   s
             r1   Útest_rotr¢  Å  s  € ð ó $4ˆØˆØˆä�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$4r3   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®   )rY   rY   r*   r   ÚlarfgÚlarfr`   ÚFDr   rV   ©rV   r   rW   r•   r¶   ÚR©ÚsiderH  r˜  )r5   rÌ   rÍ   r~   rŠ   Úconjr#   Úcopyr.   r   r‹   r   r   )r0   Úa0Úa0jr/   r¤  r¥  rg   Úalphar‘   rx   Úexpectedrð   s               r1   Útest_larfg_larfr±  ï  sÝ  € Ü
�)‰)×
Ñ
 Ó
%€CØ	�‰�FÓ	€BØ	�‰�‰�"‹€Bà
�*‰*�VÓ
˜r #§*¡*¨VÓ"4Ñ4Ñ
4€CØ
�%‰%�*‰*‹,×
Ñ
˜3Ó
€Cð
 ó 6ˆÜ&¨°Ð'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6r3   c                  óz   — t        dt        j                  d¬«      } d}t        | ||dd¬«      }|dk(  s|dk(  sJ ‚y y )	NÚgesdd_lworkÚ	preferred©r/   Úilp64iA%  T)r#  r"  i`”Di€”D)r#   r5   Úfloat32r   )Úsgesdd_lworkrÔ   r³   s      r1   Ú test_sgesdd_lwork_bug_workaroundr¹    sQ   € ô $ M¼¿¹Ø*5ô7€Là€AÜ˜<¨¨AØ&*¸$ô@€Eð  �IÒ ¨)Ò!3Ð3Ð3Ð!3Ðr3   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)Ú	TestSytrdr/   c                 ón   — t        j                  d|¬«      }t        d|f«      }t        t        ||«       y )Nr•   r`   Úsytrd©r5   r   r#   r  rJ  )rf   r/   r�  r½  s       r1   Útest_sytrd_with_zero_dim_arrayz(TestSytrd.test_sytrd_with_zero_dim_array6  s.   € ô �H‰H�V 5Ô)ˆÜ  ¨1¨$Ó/ˆÜ”j %¨Õ+r3   rÔ   ©rV   rX   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_lworkrV   rW   r   ©r  r³   rZ   r¶   r)  ç        r²   r†   )r5   r   r#   ÚarangeÚtriu_indices_fromr   r   rÐ   rÑ   r-  r   r.   r   r0  ÚouterrŠ   r   r~   )rf   r/   rÔ   r�  r½  rÂ  r³   rn   ÚdataÚdÚerx   r~   r_  Úk2ÚQr;  rð   ÚHÚi_lowerÚQTAQs                        r1   Ú
test_sytrdzTestSytrd.test_sytrd=  s|  € ô �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¬¯©°«×(;Ñ(;Ñ&;À#ÖFr3   N)	r§   r¨   r©   r?   r  r  rÏ   r¿  rÐ  rª   r3   r1   r»  r»  5  se   „ Ø‡[�[×Ñ˜W kÓ2ñ,ó 3ð,ð ‡[�[×Ñ˜W kÓ2Ø‡[�[×Ñ˜S &Ó)ñ7Gó *ó 3ñ7Gr3   r»  c            	       óì   — e Zd Zej                  j                  de«      d„ «       Zej                  j                  d e 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¾  )rf   rÓ  r�  rÕ  s       r1   Útest_hetrd_with_zero_dim_arrayz(TestHetrd.test_hetrd_with_zero_dim_arrayz  s.   € ô �H‰H�V =Ô1ˆÜ  ¨1¨$Ó/ˆÜ”j %¨Õ+r3   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_lworkrV   rW   r*   ©r   rV   ©r  r   rÃ  rZ   r¶   r)  rÄ  r²   r†   r{   )r5   r   r#   rÅ  rÆ  Úfill_diagonalrä   r-  r   r   r   rÐ   rÑ   r   r.   rã   r   r0  rÇ  r«  rŠ   r   r~   )rf   rÔ   Ú
real_dtyperÓ  r�  rÕ  rØ  r‘   r=   rn   r³   rÈ  rÉ  rÊ  rx   r~   r_  rË  rÌ  r;  rð   rÍ  rÎ  ÚQHAQs                           r1   Ú
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ö	r3   N)r§   r¨   r©   r?   r  r  r+   rÖ  rC   ÚziprÏ   rÞ  rª   r3   r1   rÒ  rÒ  y  sw   „ Ø‡[�[×Ñ˜_¨nÓ=ñ,ó >ð,ð ‡[�[×ÑÐ7Ù!¡# k°>Ó"BÓCóEà‡[�[×Ñ˜S &Ó)ñAó *óEñAr3   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`   r[   rY   rW   )rÓ   rÔ   Úp)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Î   rc   r#   r   r5   rˆ   r   r   )rÒ   r/   ÚfuncÚ
func_lworkr³   rg   r�   rÉ  rŒ   r=   Úresultr°  s               r1   Ú
test_gglserò  È  sx  € ä¤Ó'ó ,?‰
ˆˆ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,?r3   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{   rY   Úsytrf_lworkr`   )ÚsyconÚsytrfÚhetrf_lwork)ÚheconÚhetrfr*   rW   rV   ©r³   r  )rg   Úipivr…  r  ©rã  )r5   rÌ   rÍ   rÎ   rc   r+   r#   r-   r«  r~   r   r   r   r   r¡   r~  Úcond)r0   rÒ   r/   rÔ   rð  ÚfunconÚfunctrfr�  r…  r³   Úldurû  r=   Úrconds                 r1   Útest_sycon_heconr  ù  sm  € Ü
�)‰)×
Ñ
 Ó
%€CÜ¤¤~Ñ 5Ó6ó A‰
ˆˆ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Ñ?Ö@ñ-Ar3   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`   rW   r   giUMu?rÂ   )r5   rÌ   rÍ   rÎ   rÏ   r#   r-   r~   r   r   r   )r0   rÒ   r/   rÔ   r  r  r  r  r�  ÚBÚeig_gvdr=   rn   rŒ   rg   Úeigs                   r1   Ú
test_sygstr
    s@  € Ü
�)‰)×
Ñ
 Ó
%€CÜ¤Ó,ó 3‰
ˆˆ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3r3   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*   rW   r   ç-Cëâ6?rÂ   )r5   rÌ   rÍ   rÎ   r+   r#   r-   r«  r~   r   r   r   )r0   rÒ   r/   rÔ   r  r  r  r  r�  r  r  r=   rn   rŒ   rg   r	  s                   r1   Ú
test_hegstr  3  s’  € Ü
�)‰)×
Ñ
 Ó
%€CÜ¤Ó/ó 1‰
ˆˆ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1r3   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`   rW   r*   r²   r   Nr{   r¶   rÄ  r)  )r5   rÌ   rS  rÎ   rc   r#   r   r   r,   r-   r  r	  r~   r   r+  r   r   r0  rŠ   r«  r   r   r   Úspacingrä   )r0   rÓ   rÔ   rÒ   r/   r  Útzrzf_lwr³   r�  Úrzrx   rn   r¨  ÚVÚIdr‘   r¥   ÚZs                     r1   Ú
test_tzrzfr  R  sð  € ô �)‰)×
Ñ
 Ó
%€CØ�D€A€qÜ¤Ó'ó F‰
ˆˆ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¸qˆr�#�a‘&˜˜A˜3¢˜6™Ÿ™Ÿ™¨¨A¨3²¨6©¯©Ó)9Ó:Ñ:Ó:ÐMˆÐMÜ”2—6‘6˜3ÓˆÜ˜Ÿ™˜a› 1™¤j°¸%Ô&@Ø¤§
¡
©5°«:¯?©?Ó ;Ñ;À"÷	Fñ-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¯   rV   r*   r�   r~   )ÚtrttfÚtfttrÚtfsmr`   rW   r†   r   rY   r[   r„   ©rŽ   r¶   rN  )rŽ   r-  rX   r¨  )rŽ   r-  rª  N)r5   rÌ   rS  rÎ   rc   r   r,   r   r-   r#   r   r   r«  r~   rÅ  )r0   rÒ   r/   rÔ   r�  rŽ   r  r   r!  ÚAfpr=   r  ÚsolnÚB2s                 r1   Ú	test_tfsmr&  t  s,  € ô
 �)‰)×
Ñ
 Ó
%€CÜ¤Ó'ó  D‰
ˆˆ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ñ? Dr3   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`   rW   )ÚormrzÚormrz_lworkr*   )ÚunmrzÚunmrz_lworkr²   Nr~   r�   r{   r¶   r   rÄ  r)  rµ   r¨  )rª  r³   )rª  rŽ   r³   )r5   rÌ   rS  rÎ   rc   r#   r   r   r-   r+  r   r0  r~   rŠ   r«  r   r  rä   r   r   r   )r0   ÚqmÚqnÚcnrÒ   r/   r  r  Úlwork_rzr�  r�   Úorun_mrzÚorun_mrz_lwÚ	lwork_mrzr  rx   rn   r  r  r‘   r¥   rÌ  rŽ   ÚtolÚcqs                            r1   Útest_ormrz_unmrzr5  �  sH  € ô �)‰)×
Ñ
 Ó
%€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¸qˆr�#�a‘&˜˜A˜3¢˜6™Ÿ™Ÿ™¨¨A¨3²¨6©¯©Ó)9Ó:Ñ:Ó:ÐNˆÐ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¯   rV   r*   r�   r~   )r  r   r`   r   rD  ©rG  rN  )ÚtransrrG  rW   Nr†   ÚF)Úorder)r5   rÌ   rS  rÎ   rc   r,   r-   r#   r   r   r   r«  r~   r   r   Úreshape)r0   rÒ   r/   rÔ   ÚA_fullr9  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                      r1   Útest_tfttr_trttfrH  ×  sX  € ô
 �)‰)×
Ñ
 Ó
%€CÜ¤Ó'ó 1:‰
ˆˆ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1:r3   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)r7  r®   r¯   rV   r*   )ÚtrttpÚtpttrr`   r   rD  r8  rW   N)r5   rÌ   rS  rÎ   rc   r,   r-   r#   r   r   r   r   r~   r   r   r   )r0   rÒ   r/   rÔ   r=  rJ  rK  ÚA_tp_Urn   ÚA_tp_LÚindsÚA_tp_U_mÚA_tp_L_mrD  rE  s                  r1   Útest_tpttr_trttprQ    s§  € ô
 �)‰)×
Ñ
 Ó
%€CÜ¤Ó'ó  8‰
ˆˆ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 8r3   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¯   rV   r*   )Úpftrfr  r   r`   r   N)r5   rÌ   rS  rÎ   rc   r,   r-   r«  r~   r   r#   r   r   r   )r0   rÒ   r/   rÔ   r�  rS  r  r   r#  rn   Ú	Achol_rfpÚA_chol_rr=   ÚAchols                 r1   Ú
test_pftrfrW  :  s"  € ô
 �)‰)×
Ñ
 Ó
%€CÜ¤Ó'ó 3‰
ˆˆ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ñ%3r3   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¯   rV   r*   )ÚpftrirS  r  r   r`   r   rW   rY   r[   r„   N)r5   rÌ   rS  rÎ   rc   r,   r-   r«  r~   r   r#   r   r   r   r   )r0   rÒ   r/   rÔ   r�  rY  rS  r  r   r#  rn   Ú
A_chol_rfpÚ	A_inv_rfpÚA_inv_rr=   ÚAinvs                   r1   Ú
test_pftrir^  U  sT  € ô
 �)‰)×
Ñ
 Ó
%€CÜ¤Ó'ó D‰
ˆˆ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ñ-Dr3   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¯   rV   r*   rX   r`   rW   )ÚpftrsrS  r  r   r   rY   r[   r„   N)r5   rÌ   rS  rÎ   rc   r,   r-   r«  r~   r   r   r#   r   r  r	  r   r   )r0   rÒ   r/   rÔ   r�  r  ÚBf1ÚBf2r`  rS  r  r   r#  rn   rZ  r$  s                   r1   Ú
test_pftrsrc  u  s¥  € ô
 �)‰)×
Ñ
 Ó
%€CÜ¤Ó'ó D‰
ˆˆ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Dr3   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¯   rV   r*   rW   rè   Úhr  r   Úfrkr`   r†   r   rY   r[   r„   N)r5   rÌ   rS  rÎ   rc   r,   r-   r«  r~   r   r#   r   r   rŠ   )r0   rÒ   r/   rÔ   r�  Úprefixr  r   Úshfrkr#  r=   r�   ÚAfp_outÚA_outs                 r1   Útest_sfrk_hfrkrk  š  s}  € ô �)‰)×
Ñ
 Ó
%€CÜ¤Ó'ó D‰
ˆˆ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ñ#Dr3   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{   rV   iâÿÿÿé   r*   r(  r¶   )Úsyconvrö  rô  r`   rÚ  F)r  Ú	hermitianrÃ  r†   NrÄ  r)  r   )r5   rÌ   rS  rÎ   rc   Úrandintr-   r«  r~   r   r  rä   r#   r   r   r   r   r   )r0   rÒ   r/   rÔ   r�  r3  rn  ÚtrfÚ	trf_lworkÚlwrD  ÚDÚpermr   rû  rn   rg   rÊ  rN  s                      r1   Útest_syconvrv  ´  sÝ  € ô
 �)‰)×
Ñ
 Ó
%€CÜ¤Ó'ó L‰
ˆˆ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Lr3   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¯   rV   r*   r(  r¶   )ÚgeqrtÚgemqrtr`   r   r†   rÄ  r)  r�   r~   ©rD  r¨  rM  ©rª  rŽ   rD  ©rD  rM  r�  r©  r"  )r5   rÌ   rS  rÎ   rc   r,   r-   r  rä   r#   r   r   r~   r«  r   r   r   r  r	  )rf   r0   rÒ   r/   rÔ   r�  r3  rz  r{  rg   Útrn   rð   rÌ  r¨  r�   Ú	transposerª  rŽ   r�   ÚqÚqCÚ	c_defaults                          r1   Útest_geqrt_gemqrtzTestBlockedQR.test_geqrt_gemqrtÝ  sž  € Ü�i‰i×#Ñ# DÓ)ˆÜ#¤FÓ+ó :	A‰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�Ø�	à"ò 3�Ø! 9Ð-ò 3�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ñ)3ð3ô0 œ) V¨Q°°1¸3Õ?Üœ) V¨Q°°1¸C×@ñu:	Ar3   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¯   rV   r*   r(  r¶   )ÚtpqrtÚtpmqrtr`   r   rW   r†   rÄ  r)  r�   r~   r|  rM  r}  rD  r›   r~  r�  r©  r"  )r5   rÌ   rS  rÎ   rc   r,   r-   r  rä   r#   r   r   r   r/  r   r~   r«  r   r   r  r	  )!rf   r0   rÒ   r/   rÔ   r�  r  r3  r†  r‡  Úlrg   rŒ   r  rn   ÚB_pentÚb_pentrð   rÌ  r¨  r�   rt  r€  rª  rŽ   r�   rÉ  r�  ÚcdÚCDÚqCDrƒ  Ú	d_defaults!                                    r1   Útest_tpqrt_tpmqrtzTestBlockedQR.test_tpqrt_tpmqrt  s{  € Ü�i‰i×#Ñ# DÓ)ˆÜ#¤FÓ+ó O	K‰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™ �^ó @K�Ù % 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à&ó 7�DØ"% yÐ!1ò 7˜Ù%+¨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7ð7ô: œi¨°°A°q¸!¸QÀSÕIÜœi¨°°A°q¸!¸QÀc×JòA@KñO	Kr3   N)r§   r¨   r©   r>   r„  r�  rª   r3   r1   rx  rx  ×  s   „ ñò
<Aó|QKr3   rx  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{   rW   Úpstrfr`   rV   r*   rÄ  éè  ©r   rW   rI  rÚ  ©r5   rÌ   rS  rÎ   rc   r#   r,   r-   r«  r~   r   r   rÐ   r·  rÑ   rv   r   r   )r0   rÒ   r/   rÔ   r“  r‘  r�  r�   ÚpivÚr_crn   rN  Úsingle_atolÚdouble_atolr*  rD  s                   r1   Ú
test_pstrfr™  o  óG  € Ü
�)‰)×
Ñ
 Ó
%€CÜ¤Ó'ó #P‰
ˆˆ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#Pr3   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{   rW   Úpstf2r`   rV   r*   rÄ  r’  r“  rI  rÚ  r”  )r0   rÒ   r/   rÔ   r“  rœ  r�  r�   r•  r–  rn   rN  r—  r˜  r*  rD  s                   r1   Ú
test_pstf2r�  —  rš  r3   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Á¿rW   )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  rI  )r5   rˆ   rÎ   rc   r-   r#   r   )Údesired_realÚdesired_cplxrÒ   r/   r�  r   r“  r�   ÚrowcndÚcolcndÚamaxrn   s               r1   Ú
test_geequr¦  ¿  sy  € Ü—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/r3   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  rB  r{   r`   rW   r¶   r*   éûÿÿÿrZ   r·   Úsyequb)r5   rˆ   rÎ   rc   r   r0  Úrot90r-  r#   r   Úlog2r-   rã   )Údesired_log2srÒ   r/   r�  r¯  r‘   rÉ  r©  rè   Úscondr¥  rn   s               r1   Ú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 )NrW   rZ   iê  r^   rV   )r_  r*   r   rÄ  rì  éüÿÿÿr¨  r[   ù                i   ©rZ   rZ   y              0@)rZ   r   rÚ  )r  r†   r†   r   r   r¨  r   r†   r†   r  r  )r5   r-  r   r   Úzheequbr   r   r«  r¡   rÅ  Úcheequbr-   Ú	complex64)r�  rè   r­  r¥  rn   s        r1   Ú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ÕJr3   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*   rW   Úgetc2r`   Úgesc2r   ©r$  )Úoverwrite_rhsrY   r„   )	r5   rÌ   rS  r,   rÎ   rc   r-   r#   r   )r0   rÔ   r¡  r¢  rÒ   r/   r�  rŒ   r¹  rº  r†  rû  Újpivrn   r‘   rb   s                   r1   Útest_getc2_gesc2r¾    sg  € Ü
�)‰)×
Ñ
 Ó
#€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÷:ñ+:r3   r  )r[   rZ   r³  Újobar[   ÚjoburY   ÚjobvÚjobrrV   Ú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  r(  Úgejsvr`   rW   rV   r  rB  r   )r¿  rÀ  rÁ  rÂ  ÚjobtrÃ  NF)r#  r˜  )r5   rÌ   rS  rÐ   rÑ   r2   r#   r�  r  r	  r   r   r   r-  r«  r~   Úidentityr~  Úmatrix_rankÚcount_nonzero)r  r/   r¿  rÀ  rÁ  rÂ  rÃ  rÆ  r0   rÓ   rÔ   r*  r�  rÅ  ÚlsvecÚrsvecÚl2tranÚ
is_complexÚinvalid_real_jobvÚinvalid_cplx_jobuÚinvalid_cplx_jobvÚexit_statusÚsvar¡  rð   rå   ræ   rn   Úsigmas                                r1   Ú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 r3   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   ©rV   rV   )rV   r§  r(  r{   r�  N)r#   r   r.   r5   rˆ   r   ÚsinrÅ  r<  r-   Úasfortranarrayr~   r¬  r   )r/   rÅ  rÒ  r¡  rð   rå   ræ   rn   r�  ÚAcr=   s              r1   Ú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Õr3   Úkwargsr^   rÆ  c                 ó€   — t        j                  dt        ¬«      }t        dt        ¬«      }t	        t
        ||fi | ¤Ž y)z-Test invalid job arguments raise an Exception)rW   rW   r`   rÅ  Nrh  )rÛ  r�  rÅ  s      r1   Ú test_gejsv_invalid_job_argumentsrÝ  ¾  s1   € ô 	�‰�œeÔ$€AÜ˜W¬EÔ2€EÜ”)˜U AÑ0¨Ó0r3   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#   r/   r   )r�  Ú
sva_expectÚu_expectÚv_expectr*  rÅ  rÒ  r¡  rð   rå   ræ   rn   s               r1   Ú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Ö+r3   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{   r(  rV   ©r/   r0   r†   ©ÚgttrfÚgttrsr`   r   rW   r˜  r~   r�   r"  z?gttrf: _d[info-1] is ú, not the illegal value :0.)r5   rÌ   rS  rÐ   rÑ   r2   r¬  r-  r#   r	   r   rÎ   r   rÏ   r~   r«  r  rJ  Útestingr   )"r/   r0   rÔ   r*  ÚdurÉ  ÚdlÚdiag_cpyr�  r‘   rŒ   rè  ré  Ú_dlÚ_dÚ_duÚdu2rû  rn   rN  rD  r;  rÓ   r•  Úb_cpyÚx_gttrsrŽ   Úb_transÚ__dlÚ__dÚ__duÚ_du2Ú_ipivÚ_infos"                                     r1   Ú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]   )rW   rX   rY   rZ   rZ   gš™™™™™@gffffff@ç      à¿gš™™™™™%@gÍÌÌÌÌÌ@gš™™™™™	Àr‹  gffffff&Àgš™™™™3@r±  rZ   r\   rB  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ì  rÉ  rí  Údu_expÚd_expÚdu2_expÚipiv_exprŒ   r‘   rè  ré  rï  rð  rñ  rò  rû  rn   rô  s                     r1   Ú0test_gttrf_gttrs_NAG_f07cdf_f07cef_f07crf_f07csfr  K  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Õr3   )rn  rm  ro  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*   rV   r†   rm  rr  )rè  Úgtconrw  rt  g      è?rÂ   )r5   rÌ   rÍ   r-  r|  r}  rä   r-   r~  r   r  r#   rÐ   rÑ   r   )r/   r   rÔ   r0   rÉ  rí  rì  r�  r…  rè  r  rò  rû  rn   r<  r=   ru  rv  r†  r‡  r¥   rÃ   s                         r1   Ú
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Ö(r3   ))rX   r\   )r\   rX   rú   c                 óZ   — t        d| ¬«      }|\  }} |||¬«      \  }}t        |d«       y )NÚgeqrfp_lworkr`   rþ   r   rÿ   )r/   r.   r  rÓ   rÔ   r³   rn   s          r1   Útest_geqrfp_lworkr  ¦  s3   € ô $ ^¸EÔB€LØ�D€A€qÙ  aÔ(�K€Eˆ4Ü��qÕr3   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  r(  r{   rY   rV   r†   Úpttrfr`   r   zpttrf: info = z, should be 0)Úerr_msgr˜  Úpttrszpttrs: info = )r5   rÌ   rS  rÐ   rÑ   r2   r-  r«  r¬  r#   r	   r   r   r   r‹   r~   )Úddtyper/   r0   r*  rÔ   rÉ  rÊ  r�  rî  r  rð  Ú_ern   rD  rt  r‘   rŒ   r   Ú_xs                      r1   Útest_pttrf_pttrsr$  ¯  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 Ö%r3   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`   rW   rV   r†   )r5   rÌ   rS  r#   r2   r  rJ  )r!  r/   rÔ   r0   r  rÉ  rÊ  s          r1   Ú*test_pttrf_pttrs_errors_incompatible_shaper&  à  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¨Õ/r3   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`   rW   rV   r   z?pttrf: _d[info-1] is rê  z2?pttrf should fail with non-spd matrix, but didn't)r5   rÌ   rS  r#   r2   r   r   )
r!  r/   rÔ   r0   r  rÉ  rÊ  rð  r"  rn   s
             r1   Ú'test_pttrf_pttrs_errors_singular_nonSPDr(  í  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ÕLr3   z%d, e, d_expect, e_expect, b, x_expect)rY   r{   é   rÁ   rZ   )r  r  r  r]   )rY   r^   rÁ   é   rV   )r  gKÈ=›Uå¿r‹  rë  rW   é   éA   é   g      @r†   r¨  )r*  é)   é.   é   )y      0@      0@y      2@      "Àù      ð?      À)r*  r^   rV   rY   )r  r  r1  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   rV   rÚ  )r#   r   r«  r/   r+   )rÉ  rÊ  Úd_expectÚe_expectrŒ   Úx_expectr*  r  rð  r"  rn   r   r#  s                r1   Útest_pttrf_pttrs_NAGr6  	  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ð !r3   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  rV   rY   rW   r†   )	r5   rÌ   rS  r2   r-  r   r«  r~   r   )r/   ÚrealtyperÔ   Ú	compute_zr0   ÚA_eigÚvrrÉ  rÊ  Útrir�  Úzs               r1   Úpteqr_get_d_e_A_zr>  ,	  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ˆ<Ðr3   zdtype,realtyper9  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{   ©rÉ  rÊ  r=  r9  r   zinfo = z, should be 0.r˜  N)r5   rÐ   rÑ   r#   r>  r   r   Úsortr   r«  r~   rÇ  r-  )r/   r8  r9  r*  r@  rÔ   rÉ  rÊ  r�  r=  Úd_pteqrÚe_pteqrÚz_pteqrrn   s                 r1   Ú
test_pteqrrF  L	  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Ø ö	&ð r3   c                 ó~   — t        d| ¬«      }d}t        | |||«      \  }}}} ||dz
  |||¬«      \  }	}
}}|dkD  sJ ‚y )Nr@  r`   r{   rY   ©r=  r9  r   ©r#   r>  ©r/   r8  r9  r@  rÔ   rÉ  rÊ  r�  r=  rC  rD  rE  rn   s                r1   Útest_pteqr_error_non_spdrK  l	  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‰8r3   c           	      óÞ   — t        d| ¬«      }d}t        | |||«      \  }}}}t        t        ||d d |||¬«       t        t        |||d d ||¬«       |rt        t        ||||d d |¬«       y y )Nr@  r`   r{   r†   rH  )r#   r>  r  rJ  )	r/   r8  r9  r@  rÔ   rÉ  rÊ  r�  r=  s	            r1   Ú"test_pteqr_raise_error_wrong_shaperM  z	  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ð r3   c                 óŒ   — t        d| ¬«      }d}t        | |||«      \  }}}}d|d<   d|d<    |||||¬«      \  }	}
}}|dkD  sJ ‚y )Nr@  r`   r{   r   rH  rI  rJ  s                r1   Útest_pteqr_error_singularrO  ˆ	  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‰8r3   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  r@  r`   rV   r†   rA  r˜  N)r#   r/   r5   r-  r   r¡   )r9  rÉ  rÊ  r3  Úz_expectr*  r@  r=  rð  r"  Ú_zrn   s               r1   Útest_pteqr_NAG_f08jgfrS  –	  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Ö<r3   Úmatrix_size)rù   )r\   r[   ©r[   r[   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  éú   r(  Úgeqrfpr`   Úorgqrræ  )rx   r³   r   rÂ   rI  r†   )r5   rÌ   rS  rÐ   rÑ   r#   r2   r   r   r   r   r.   r«  r~   r   Úallr-  re   r   r1  )r/   rT  r0   rÃ   r*  rX  ÚgqrrÓ   rÔ   r�  Úqr_Arx   rn   r“  Úqqrr�  Ú
A_negativeÚr_rq_negÚq_rq_negÚrq_A_negÚtau_negÚinfo_negs                         r1   Útest_geqrfprd  ¯	  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“: ‘>Ó"õ$r3   c                  ó~   — t        j                  g «      } t        d| j                  ¬«      }t	        t
        || «       y )NrX  r`   )r5   rˆ   r#   r/   r  r	  )ÚA_emptyrX  s     r1   Ú#test_geqrfp_errors_with_empty_arrayrg  ñ	  s+   € ä�h‰h�r‹l€GÜ˜h¨g¯m©mÔ<€FÜ”)˜V WÕ-r3   Ú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é°  rn  Ú_lworkr   r`   rV   rÚ  ú$_lwork raised unexpected exception: ©rÏ   r+   r#   r   r	  r?   Úfail©rm  rh  rÔ   r/   Úsc_dlwÚdz_dlwrÊ  s          r1   Útest_standard_eigh_lworksry  ø	  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)
Nrq  rn  rr  r   r`   rV   rD  r8  rs  rt  rv  s          r1   Ú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úrz  Údtype_rÓ   )rV   r{   r(  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`   )r5   rÌ   rÍ   r{  rÏ   r#   r   rZ  )
r  rÓ   r0   rã  r�  rm  Údlwrs  Úlwvalr‘   s
             r1   Ú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Ö%˜!��A“Ò%Ô&Ð&Ñ&ùÒ%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)rW  éP   éª   r�  r‚  Úcsdrƒ  r`   r³   Úlrworkr   r¶   rÄ  g     ˆÃ@rI  )rÏ   r    Úrvsr!   r#   r   Údictrß  r   rU  r5   r   r0  Úcosr×  r   rÐ   rÑ   )r  rÓ   rã  r�  rm  ÚXÚdrvr„  r…  ÚlwvalsÚcs11Úcs12Úcs21Úcs22ÚthetaÚu1Úu2Úv1tÚv2trn   rN  ÚVHr“  Ún11Ún12Ún21Ún22ÚSÚoner;  ÚXcs                                  r1   Útest_orcsd_uncsdr£  #
  s_  € à�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ÖBr3   Ú
trans_boolFÚfactr:  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  r(  ©Úgtsvxrè  r`   r{   rV   ræ  r†   rW   r~   r�   rM  r:  Nr[   ©r¥  rŽ   ÚdlfÚdfÚdufrò  rû  r   z?gtsvx info = z, should be zerorX   r˜  Ú__len__Túrcond should be scalar but is úferr.shape is z but should be úberr.shape is )r5   rÌ   rS  rÐ   rÑ   r#   r2   r-  rÏ   r«  r~   r¬  r   r	   r   Úhasattrr.   )!r/   r¤  r¥  r0   r*  r¨  rè  rÔ   rí  rÉ  rì  r�  r‘   rŽ   rŒ   Ú
inputs_cpyÚdlf_Údf_Úduf_Údu2f_Úipiv_Úinfo_Ú	gtsvx_outrª  r«  r¬  Údu2frû  Úx_solnr  ÚferrÚberrrn   s!                                    r1   Ú
test_gtsvxr¾  R
  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·±¸±°ð+>õ @r3   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{   rV   ræ  r†   rW   r~   r�   r:  r[   r©  rM  r   z&info should be > 0 for singular matrix)r¥  rª  r«  r¬  rò  rû  )	r5   rÌ   rS  r#   r2   r-  rÏ   r«  r~   )r/   r¤  r¥  r0   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½  rn   s                                  r1   Ú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ð 
r3   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{   rV   ræ  r†   rW   r~   r�   r:  r[   rM  r©  )r5   rÌ   rS  r#   r2   r-  rÏ   r«  r~   r  rJ  r	  )r/   r¤  r¥  r0   r¨  rè  rÔ   rí  rÉ  rì  r�  r‘   rŽ   rŒ   r³  r´  rµ  r¶  r·  r¸  s                       r1   Ú"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ö	<r3   zdu,d,dl,b,xc           
      óz   — t        d|j                  ¬«      } |||| |«      }|\
  }}}	}
}}}}}}t        ||«       y )Nr¨  r`   ©r#   r/   r   )rì  rÉ  rí  rŒ   r‘   r¨  r¹  rª  r«  r¬  rº  rû  r»  r  r¼  r½  rn   s                    r1   Útest_gtsvx_NAGrÅ  õ
  sH   € ô. ˜W¨A¯G©GÔ4€Eá�b˜!˜R Ó#€IØ@IÑ=€CˆˆS�$˜˜f e¨T°4¸ä˜a Õ(r3   zfact,df_de_lambdac                 ó>   —  t        d|j                  ¬«      | |«      S ©Nr  r`   ©r#   r/   ©rÉ  rÊ  s     r1   ú<lambda>rÊ    ó'   € ð )HÔ(8¸Ø?@¿w¹wô)HØHIÈ1ó)N€ r3   c                  ó   — y©N)NNNrª   rÉ  s     r1   rÊ  rÊ    ó   � r3   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  r(  Úptsvxr`   rZ   rY   rV   r†   rW   ræ  ©r¥  r«  Úefr   zinfo should be 0 but is ú.r˜  r­  r®  )rW   r¯  z# but should be ({x_soln.shape[1]},)r°  N)r5   rÌ   rS  rÐ   rÑ   r#   r2   r-  r«  r¬  r	   r   r   r   r   r~   r±  r.   )r/   r8  r¥  Údf_de_lambdar0   r*  rÐ  rÔ   rÉ  rÊ  r�  r»  rŒ   r«  rÒ  rn   rî  r‘   r  r¼  r½  rD  rt  s                          r1   Ú
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õ :r3   c                 ó>   —  t        d|j                  ¬«      | |«      S rÇ  rÈ  rÉ  s     r1   rÊ  rÊ  S  rË  r3   c                  ó   — yrÍ  rª   rÉ  s     r1   rÊ  rÊ  U  rÎ  r3   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`   rZ   rY   rV   r†   rW   ræ  rÑ  )
r5   rÌ   rS  r#   r2   r-  r«  r  rJ  r	  )r/   r8  r¥  rÔ  r0   rÐ  rÔ   rÉ  rÊ  r�  r»  rŒ   r«  rÒ  rn   s                  r1   Útest_ptsvx_error_raise_errorsrÙ  O  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ÖJr3   c                 ó>   —  t        d|j                  ¬«      | |«      S rÇ  rÈ  rÉ  s     r1   rÊ  rÊ  n  rË  r3   c                  ó   — yrÍ  rª   rÉ  s     r1   rÊ  rÊ  p  rÎ  r3   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`   rZ   rY   rV   r†   rW   ræ  rM  r   rX   rÑ  )r5   rÌ   rS  r#   r2   r-  r«  )r/   r8  r¥  rÔ  r0   rÐ  rÔ   rÉ  rÊ  r�  r»  rŒ   r«  rÒ  rn   r‘   r  r¼  r½  s                      r1   Útest_ptsvx_non_SPD_singularrÝ  j  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ˆ‰xr3   zd,e,b,xc                 ón   — t        d|j                  ¬«      } || ||«      \  }}}}}	}
}t        ||«       y )NrÐ  r`   rÄ  )rÉ  rÊ  rŒ   r‘   rÐ  r«  rÒ  Úx_ptsvxr  r¼  r½  rn   s               r1   Útest_ptsvx_NAGrà  –  s:   € ô. ˜W¨A¯G©GÔ4€Eá/4°Q¸¸1«~Ñ,€BˆˆG�U˜D $¨ä˜a Õ)r3   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®   r(  )r{   rY   ræ  r`   r¹   rV   )ÚppsvÚpptrfÚpptrsÚpptriÚppconr´  rµ  rÚ  r   rI  )r…  r  rü  )r5   rÌ   rS  rÐ   rÑ   r2   r«  r~   r   r0  r#   r   r   r   r   r   r~  r   r   r¡   rý  )r/   r  r0   r*  rÔ   rÕ   rg   rŒ   Úyr‘   rN  Úaprâ  rã  rä  rå  ræ  Úulrn   ÚaulÚuliÚauliÚbxÚxvr…  r  s                             r1   Ú!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×:�q¬e°A°q«kÒ:¨’Ð:�Ó:Ü! !›H×:�q¬e°A°q«kÒ:¨’Ð:�Ó:ð<‰ô " ! Q q¡S›M×<�q´5¸³8Ò<¨a’Ð<�Ó<Ü# A q¨¡s›m×>˜´U¸1³XÒ>°��1“Ð>�Ó>ð@ˆà	
ˆ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®   r(  r{   ræ  )ÚgeesÚtrexcr`   c                  ó   — y ©Nrª   ©r‘   s    r1   rÊ  z!test_gees_trexc.<locals>.<lambda>î  rÎ  r3   Fr»  r†   r   rB  rU  rI  r\   rV   r  r•   ©r5   rÌ   rS  rÐ   rÑ   r2   r#   r   r+   r   r   r«  r~   )r/   r0   r*  rÔ   rg   rñ  rò  rñ  r  r=  Úd2s              r1   Ú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Ö3r3   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#   r/   r   r   )r  ÚifstÚilstÚexpectr*  rò  rñ  s          r1   Útest_trexc_NAGr  	  sN   € ð< €DÜ˜W¨A¯G©GÔ4€Eá�1�a˜˜t¨1Ô-€FÜ�˜‘˜QÔàˆq‰	€AÜ�F˜A DÖ)r3   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®   r(  r{   ræ  )ÚggesÚtgexcr`   c                  ó   — y rô  rª   rõ  s    r1   rÊ  z!test_gges_tgexc.<locals>.<lambda><  rÎ  r3   F©r$  Úoverwrite_br†   r   rV   r±  rB  r•   rU  rI  r\   rW   rX   rÖ  rö  )r/   r0   r*  rÔ   rg   rŒ   r  r	  rñ  rè   r  r�  r=  Úd1r÷  s                  r1   Útest_gges_tgexcr  1  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°¸Ö=r3   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®   r(  r{   ræ  )rñ  ÚtrsenÚtrsen_lworkr`   c                  ó   — y rô  rª   rõ  s    r1   rÊ  z!test_gees_trsen.<locals>.<lambda>l  rÎ  r3   Fr»  r†   r   rB  rU  rI  rV   r[   r²   ©r³   Úliworkr•   ©r5   rÌ   rS  rÐ   rÑ   r2   r#   r   r+   r   r   r«  r~   r   r   )r/   r0   r*  rÔ   rg   rñ  r  r  rñ  r  r=  r÷  Úselectr³   s                 r1   Útest_gees_trsenr  a  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Ö3r3   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)\�Âõ(¼?)rV   r   r   rV   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²   rV   r  r†   r   rY   rZ   r[   r˜  N)r#   r/   r   r+   r   r   r«  r~   )r  r�  r  r  Úexpect_sÚ
expect_sepr*  Úatol2r  r  r³   rñ  rè   Úseps                 r1   Ú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Ö4r3   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®   r(  r{   ræ  )r  ÚtgsenÚtgsen_lworkr`   c                  ó   — y rô  rª   rõ  s    r1   rÊ  z!test_gges_tgsen.<locals>.<lambda>æ  rÎ  r3   Fr  r†   r   rV   r±  rB  r•   rU  rI  r[   r²   iùÿÿÿr  rÖ  r  )r/   r0   r*  rÔ   rg   rŒ   r  r   r!  rñ  rè   r  r�  r=  r  r÷  r  r³   s                     r1   Útest_gges_tgsenr#  Ú  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°¸Ö=r3   za, b, c, d, e, f, rans, lans)r¸   r¶   r¶   r·   )rÄ  r   r¸   r¶   )rÄ  r¶   r   r¶   )rÄ  rÄ  rÄ  g      @)r¶   r¶   r¶   r¶   )rÄ  rÄ  rÄ  r¸   )ç      Àrº   r¶   g      (@)g      "Àr·   ç       Àr%  )r$  r·   r%  r»   )ç      Àrº   r  g      3@)r·   r¶   r¶   r   )rÄ  r¶   r·   r¶   )rÄ  rÄ  r¶   r¶   )rÄ  rÄ  rÄ  r·   )r¶   r¶   r¶   r·   )rÄ  r¶   r¸   r¶   )rÄ  rÄ  rÄ  r¶   )r&  r¹   rÄ  rº   )rþ  r¶   g       ÀrÄ  )rì  r·   ç      Àr¹   )r'  r·   rÄ  r¹   )rì  r·   rì  rì  )rì  r¶   r   r¶   )rì  r¶   rì  r¸   )r¸   rì  r¶   rì  )r¶   r   rì  r¶   )rì  r¶   r·   rì  )r¶   rì  r¶   r¶   c	                 ó\  — d}	t        d|¬«      }
 |
| |||||«      \  }}}}}t        |d«       t        |ddt        j                  |«      j
                  dz  d¬«       t        |d	dt        j                  |«      j
                  dz  d
¬«       t        |||	d¬«       t        |||	d¬«       y )Nr  Útgsylr`   r   r¶   r(  zSCALE must be 1.0©rÃ   r*  r  rÄ  zDIF must be nearly 0zSolution for R is incorrect)r*  r  zSolution for L is incorrect)r#   r   r   r5   rÐ   rÑ   )rg   rŒ   r�   rÉ  rÊ  ri   ÚransÚlansr/   r*  r)  ÚroutÚloutrb   Údifrn   s                   r1   Útest_tgsyl_NAGr0    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ö;r3   rŽ   )rM  r~   Úijob)r   rV   rW   rX   rY   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  rW   r)  r`   )rŽ   r1  r   zINFO is non-zerorÄ  zSCALE must be non-negativer(  zDIF must be 0 for ijob =0r*  zDIF must be non-negativerM  r~   rì  zlhs1 and rhs1 do not match)r*  rÃ   r  zlhs2 and rhs2 do not match)r5   r·  rÌ   rÍ   r   Úuniformr-   r#   r   rÐ   rÑ   r€  )r/   rŽ   r1  r*  r0   rÓ   rÔ   rg   rÉ  r=   rŒ   rÊ  r�   ri   r)  r-  r.  rb   r/  rn   Úlhs1Úrhs1Úlhs2Úrhs2s                           r1   Ú
test_tgsylr9  G  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Ø <ö	>ð r3   Ú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 )Nro  zhetrs not for real dtypes.ì   *Mö/t|0 )r¯   rZ   r  r*   rn  rq  rr  Útrsr`   rÚ  rú  r   )rg   rû  rŒ   r  r(  r˜  )rÏ   r?   r@   r5   rÌ   rÍ   r+   r4  r-   r~   r«  r#   rÐ   rÑ   r   )r:  r/   r  r0   rÔ   rÕ   r�  rŒ   rG   rq  rr  r=  r³   r   rû  rn   r‘   rÑ   s                     r1   Útest_sy_hetrsr>  z  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¡Ö+r3   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 )Nro  zhetri not for real dtypes.z	win-arm64z1Test segfaulting on win-arm64 in CI, see gh-23133r<  r¯   r*   rn  rq  r<  r`   rÚ  r   )rg   rû  r  r(  r˜  )rÏ   r?   r@   Ú	sysconfigÚget_platformr+   r5   rÌ   rÍ   r|  r}  rä   r-   r~   r«  r#   rÐ   rÑ   r~  r   r   r   r   )r/   r  r:  r0   rÔ   r�  rG   rq  r<  r   rû  rn   ÚA_invrÑ   r¥   s                  r1   Útest_sy_he_trirC  ”  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ÖEr3   r”   z
uplo, m, n))rN  rZ   r{   )rN  r{   r{   )rD  r{   rZ   )rD  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–   )rG  r-  rN  rV   ç�íµ ÷ÆÀ>rÂ   )
r5   rÌ   rÍ   r-   r#   r   r   rÅ  rU  r   )r   rG  rÓ   rÔ   r-  r/   r0   r�  rE  r–   r<  r;  r¥   s                r1   Ú
test_lantrrG  ²  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Ö(r3   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{   rW   rW   r*   r   r{   rV   rW   r`   rm  rr  )ÚgbconÚgbtrf)r   rY  rX  rF  rû  r…  rt  rw  rÂ   )r5   rÌ   rÍ   ry  rz  r{  r|  r}  rä   r-   r   r   r   r   r~  r   r  r#   r   )r/   r   r0   rÔ   rX  rY  r�  r‚  ÚtmpÚLDABrF  r…  rK  rL  Úlu_bandrû  r=   r<  ru  rv  r†  r¥   s                         r1   Ú
test_gbconrP  Ç  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Ö%r3   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 )	NrI  rJ  r*   r   rV   )Úlangbr–   rF  rÂ   )r5   rÌ   rÍ   r|  r}  rä   r-   r   r   r   r#   r   )r/   r   r0   rÔ   rX  rY  r�  rF  rR  r–   r¥   r<  s               r1   Ú
test_langbrS  í  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Ö(r3   Ú	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`   rV   r†   Ústevd)rT  r   rŒ  r˜  )r5   rÌ   rÍ   r-  r~  Úeigvalshr#   r   rB  rÐ   rÑ   r~   )r/   rT  r0   rÔ   rÉ  rÊ  r�  r¥   rV  rN  r  rn   rÑ   s                r1   Ú
test_stevdrX    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Ö?ð r3   r&  )–Ú	functoolsr   r@  Únumpy.testingr   r   r   r   r   r	   r?   r
   r  Únumpyr5   r   r   r   r   r   r   r   r   Úscipy.linalgr   r   r   r   r   r   r   r   r   r   r   Úscipy.linalg._basicr   rM   r   Úscipy.statsr    r!   Úscipy.sparser"   r#   rL   r$   Úscipy.__config__r%   Úblas_providerÚblas_versionr·  rv   rÏ   r¶  Ú
complex128r+   rc   r2   rJ   rR   rT   r¬   r  r  r   r  r  r  r?  rˆ  r”  r¢  r±  r¹  r»  rÒ  rò  r  r
  r  r  r&  r5  rH  rQ  rW  r^  rc  rk  rv  rx  r™  r�  r¦  r®  Úskipifr·  r¾  rC   r0  rÔ  rÚ  rÝ  rˆ   rä  rü  r  r  r  rß  r$  r&  r(  r6  r>  rF  rK  rM  rO  rS  rd  rg  ry  r~  r†  r£  r¾  rÀ  rÂ  rÅ  rÕ  rÙ  rÝ  rà  rï  rø  r  r  r  r  r#  r0  r9  r>  rC  rG  rP  rS  rX  rª   r3   r1   ú<module>re     sà  ðõ
 Û ÷/÷ /ó Ý *ã ÷!÷ !ó !÷÷ ÷ ñ õ +Ý .ß 2Ý $å 0Ý ,å #Ø#Ð #€�ØÐ+Ñ,¨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Ø‡�×Ñ˜ +Ó.Ø‡�×Ñ˜¡¡e¨A£h£Ó0Ø‡�×Ñ˜¡¡e¨A£h£Ó0Ø‡�×Ñ˜¡¡e¨A£h£Ó0Ø‡�×Ñ˜ ! Q Ó(Ø‡�×Ñ˜ ! Q Ó(ób&ó )ó )ó 1ó 1ó 1ó /ó 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ó *ðð ‡�×Ñ˜Ù™c +°Ñ";¸VÓDÓEóGñ,&óGð,&ð^ ‡�×Ñ˜Ù™c +°Ñ";¸VÓDÓEóGñ0óGð0ð ‡�×Ñ˜Ù™S ¨{Ñ!:¸FÓCÓDóFñMóFð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ò.ð@ ‡�×ÑÐ)Ù™c &¨+¸Ñ*CÓDÓEóGà‡�×Ñ˜¡d©5°«8£nÓ5ñ&ó 6óGð&ð: ‡�×ÑÐ)Ù™c &¨+¸Ñ*CÓDÓEóGà‡�×Ñ˜¡d©5°«8£nÓ5ñó 6óGðð ‡�×ÑÐ)Ù™c &¨+¸Ñ*CÓDÓEóGà‡�×Ñ˜¡d©5°«8£nÓ5ñNó 6óGðNð ‡�×ÑÐ)Ù™c &¨+¸Ñ*CÓDÓEóGà‡�×Ñ˜¡d©5°«8£nÓ5ñó 6óGðð ‡�×ÑÐ:ØØ#˜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ð:ó;ñ()ó);ð()ð ‡�×ÑÐ)©4±°F¸KØ1<ñ==ó 1>ó ,?ó @à‡�×ÑÐ,ØñNðOð Ñ ?Ð@ðBóCñ
1:óCó@ð1:ðh ‡�×ÑÐ)©4±°F¸KØ1<ñ==ó 1>ó ,?ó @à‡�×ÑÐ,ØñNðOð Ñ ?Ð@ðBóCñ
KóCó@ðKð( ‡�×ÑÐ)©4±°F¸KØ1<ñ==ó 1>ó ,?ó @à‡�×ÑÐ,Øñ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Ó-ò@ó .ó /ñ@r3   