§
    fŠtj&‡  ã                   óN  — d dl Z d dlZd dlmZmZ d dlZd dlmZ d dl	m
Z
 d dl	mZmZ d dl	mZmZ d dl	mZmZmZ d dlmZ d d	lmZ eeej        eej        gZd
„ Z G d„ d¦  «        Z G d„ d¦  «        Z G d„ d¦  «        Z G d„ d¦  «        Z d„ Z!d„ Z"d„ Z# G d„ d¦  «        Z$dS )é    N)Úassert_array_almost_equalÚassert_allclose)Úraises)Úsolve_sylvester)Úsolve_continuous_lyapunovÚsolve_discrete_lyapunov)Úsolve_continuous_areÚsolve_discrete_are)Ú
block_diagÚsolveÚLinAlgError)Úmatrix)Úskip_xp_invalid_argc                 ó`  — t           j                             t           j                             t           j                             t
          ¦  «        ¦  «        d| ¦  «        }t          j        |¦  «        5 }t          | 	                    ¦   «         ¦  «        cddd¦  «         S # 1 swxY w Y   dS )zo
    Load npz data file under data/
    Returns a copy of the data, rather than keeping the npz file open.
    ÚdataN)
ÚosÚpathÚjoinÚabspathÚdirnameÚ__file__ÚnpÚloadÚdictÚitems)ÚnameÚfilenameÚfs      ú]/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/scipy/linalg/tests/test_solvers.pyÚ
_load_datar       s¾   € õ
 Œw�|Š|�BœGŸOšO­B¬G¯OªO½HÑ,EÔ,EÑFÔFØ" Dñ*ô *€Hå	Œ�Ñ	Ô	ð ˜aÝ�A—G’G‘I”I‰Œðð ð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ð s   Á5!B#Â#B'Â*B'c                   óZ  — e Zd Z ej        d¦  «         ej        d¦  «        f ej        ddgddgg¦  «         ej        ddgdd	gg¦  «        f ej        d
dgddgg¦  «         ej        ddgddgg¦  «        f ej        ddgddgg¦  «         ej        ddgddgg¦  «        f ej        d
dgddgg¦  «         ej        ddgddgg¦  «        f ej        g d¢g d¢g d¢g d¢g d¢g¦  «         ej        g d¢g d¢g d¢g d¢g d¢g¦  «        f ej        g d¢g d¢g d ¢g d!¢g d"¢g d#¢g d$¢g d%¢g d&¢g d'¢g d(¢g¦  «         ej        d¦  «        f ed)dgd*d+gg¦  «         ed)dg¦  «        j         ed)dg¦  «        j        j        z  f ed)dgd*d+gg¦  «         ej         ed)dg¦  «        j         ed)dg¦  «        j        j        z  ¦  «        fg	Z	d,„ Z
d-„ Zd4d/„Zed0„ ¦   «         Zej                             d1e¦  «        ej                             d2e¦  «        d3„ ¦   «         ¦   «         Zd.S )5ÚTestSolveLyapunov©r   r   é   é   é   é   é	   é
   é   é   ù      ð?      ð?ç       @ù      @      Àç      @ù       @       Àù       @       @ù      ð¿      ð¿ç      ð?ç      @ç      ð¿)r&   r(   é   r$   r'   )r$   r%   r&   é   r'   )r'   é   r8   r8   r&   )r$   r6   r%   r   é   )r6   r&   r&   r$   r6   )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'   )yš™™™™™¹?        y²�ï§ÆK·?        yË¡E¶óý´?        yã¥›Ä °²?        yü©ñÒMb°?        y)\�Âõ(¬?        yZd;ßO�§?        y‹lçû©ñ¢?        yyé&1¬œ?        yÛù~j¼t“?        y{®Gáz„?        )ù      ð?        ù                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;   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;   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;   r   g      à¿éÿÿÿÿc                 ó"  — t          j        d¦  «        }t          j        d¦  «        }t          t          t
          ||¦  «         t          t          t
          ||¦  «         t          t          t
          |t          j        d¦  «        ¦  «         d S )N©r&   r%   r&   r%   )r   ÚonesÚeyeÚassert_raisesÚ
ValueErrorr   )ÚselfÚnsqÚsqs      r   Ú$test_continuous_squareness_and_shapez6TestSolveLyapunov.test_continuous_squareness_and_shape`   si   € ÝŒg�f‰oŒoˆÝŒV�A‰YŒYˆÝ•jÕ";¸SÀ"ÑEÔEÐEÝ•jÕ";¸RÀÑEÔEÐEÝ•jÕ";¸RÅÄÈÁÄÑKÔKÐKÐKÐKó    c                 óà   — t          ||¦  «        }t          t          j        ||¦  «        t          j        ||                     ¦   «                              ¦   «         ¦  «        z   |¦  «         d S ©N)r   r   r   ÚdotÚconjÚ	transpose)rC   ÚaÚqÚxs       r   Úcheck_continuous_casez'TestSolveLyapunov.check_continuous_caseg   sf   € Ý% a¨Ñ+Ô+ˆÝ!Ýœ&  A™,œ,­¬°°1·6²6±8´8×3EÒ3EÑ3GÔ3GÑ)HÔ)HÑHÈ!ñ	Mô 	Mð 	Mð 	Mð 	MrG   Nc                 óê   — t          |||¬¦  «        }t          t          j        t          j        ||¦  «        |                     ¦   «                              ¦   «         ¦  «        |z
  d|z  ¦  «         d S )N©Úmethodr5   )r   r   r   rJ   rK   rL   )rC   rM   rN   rS   rO   s        r   Úcheck_discrete_casez%TestSolveLyapunov.check_discrete_casel   so   € Ý# A q°Ð8Ñ8Ô8ˆÝ!Ý”f�RœV A q™\œ\¨1¯6ª6©8¬8×+=Ò+=Ñ+?Ô+?Ñ@Ô@À1ÑDÀdÈ1Áfñ	Nô 	Nð 	Nð 	Nð 	NrG   c                 ó2  — | j         D ]Ž}|                      |d         |d         ¦  «         |                      |d         |d         ¦  «         |                      |d         |d         d¬¦  «         |                      |d         |d         d¬¦  «         Œ�d S )Nr   r$   ÚdirectrR   Úbilinear)ÚcasesrP   rT   ©rC   Úcases     r   Ú
test_caseszTestSolveLyapunov.test_casesq   s¦   € à”Jð 	Jð 	JˆDØ×&Ò& t¨A¤w°°Q´Ñ8Ô8Ð8Ø×$Ò$ T¨!¤W¨d°1¬gÑ6Ô6Ð6Ø×$Ò$ T¨!¤W¨d°1¬g¸hÐ$ÑGÔGÐGØ×$Ò$ T¨!¤W¨d°1¬g¸jÐ$ÑIÔIÐIÐIð		Jð 	JrG   Údtype_aÚdtype_qc                 óÆ  — t           j                             d¦  «        }t          j        d|¬¦  «        }t          j        d|¬¦  «        }t	          ||¦  «        }|                     d¦  «        dz                       |¦  «        }|                     d¦  «        dz                       |¦  «        }t	          ||¦  «        }|j        dk    sJ ‚|j        |j        k    sJ ‚d S )Ni[¯ûr#   ©Údtype©r6   r6   éd   )r   ÚrandomÚdefault_rngÚzerosr   ÚastypeÚshaper`   )rC   r\   r]   ÚrngrM   rN   ÚresÚrefs           r   Útest_size_0zTestSolveLyapunov.test_size_0y   sÕ   € õ Œi×#Ò# IÑ.Ô.ˆåŒH�V 7Ð+Ñ+Ô+ˆÝŒH�V 7Ð+Ñ+Ô+ˆÝ'¨¨1Ñ-Ô-ˆà�ZŠZ˜ÑÔ Ñ#×+Ò+¨GÑ4Ô4ˆØ�ZŠZ˜ÑÔ Ñ#×+Ò+¨GÑ4Ô4ˆÝ'¨¨1Ñ-Ô-ˆàŒy˜FÒ"Ð"Ð"Ð"ØŒy˜CœIÒ%Ð%Ð%Ð%Ð%Ð%rG   rI   )Ú__name__Ú
__module__Ú__qualname__r   ÚemptyÚarrayr@   r   ÚTrX   rF   rP   rT   r   r[   ÚpytestÚmarkÚparametrizeÚdtypesrk   © rG   r   r"   r"      sÉ  € € € € € ð 
ˆŒ�&Ñ	Ô	Ø	ˆŒ�&Ñ	Ô	ð	à	ˆŒ�A�q�6˜A˜q˜6Ð"Ñ	#Ô	#Ø	ˆŒ�A�r�7˜R ˜HÐ%Ñ	&Ô	&ð	(ð 
ˆŒ�F˜C�= 8¨S /Ð2Ñ	3Ô	3Ø	ˆŒ�F˜FÐ# g¨s ^Ð4Ñ	5Ô	5ð	7ð 
ˆŒ�C˜�:  S˜zÐ*Ñ	+Ô	+Ø	ˆŒ�F˜FÐ# g¨s ^Ð4Ñ	5Ô	5ð	7ð 
ˆŒ�F˜C�= 8¨S /Ð2Ñ	3Ô	3Ø	ˆŒ�C˜�:  c˜{Ð+Ñ	,Ô	,ð	.ð 
ˆŒ�?�?�? O O O°_°_°_Ø"�?�? O O Oð5ñ 
6ô 
6à	ˆŒ�?�?�? O O O°_°_°_Ø"�?�? O O Oð5ñ 
6ô 
6ð	7ð
 
ˆŒð ð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ð=  ñ  
!ô  
!ðB 
ˆŒ�‰ŒðC!	ðF 
ˆ�!�Q�˜$ ˜Ð$Ñ	%Ô	%Ø
ˆ&�!�Q�‰.Œ.Ô
˜V˜V Q¨ F™^œ^Ô-Ô/Ñ
/ð	2ð 
ˆ�!�Q�˜$ ˜Ð$Ñ	%Ô	%Ø
ˆ"Œ(�6�6˜1˜a˜&‘>”>Ô# f f¨a°¨V¡n¤nÔ&6Ô&8Ñ8Ñ
9Ô
9ð	<ðw=
€Eð~Lð Lð LðMð Mð Mð
Nð Nð Nð Nð
 ðJð Jñ ÔðJð „[×Ò˜Y¨Ñ/Ô/Ø„[×Ò˜Y¨Ñ/Ô/ð&ð &ñ 0Ô/ñ 0Ô/ð&ð &ð &rG   r"   c                   ól  — e Zd Z ed¦  «        Z ed¦  «        Z ed¦  «        Z ed¦  «        Z ed¦  «        Z e	j
        dgd¦  «         e	j        dgdgg¦  «         edd	¦  «        dd
f e	j        ddgddgg¦  «         e	j        dgdgg¦  «         e	j        ddgddgg¦  «        dd
f e	j        g d¢g d¢g d¢g d¢g¦  «         e	j        ddgddgddgddgg¦  «         e	j        g d¢g d¢g d¢g d¢g¦  «         e	j        d ¦  «        d
f e	j        g d!¢g d"¢g d#¢g d$¢g d%¢g d&¢g d'¢g d(¢g¦  «         e	j        g d)¢g d*¢g¦  «        j        d+z   e	j        g d,¢g d-¢g d.¢g d/¢g d0¢g d1¢g d2¢g d3¢g¦  «         e	j        d ¦  «        d
f e	j        g d4¢g d5¢g d6¢g d7¢g d8¢g d9¢g d:¢g d;¢g d<¢g	¦  «         e	j        g d=¢g d>¢g d?¢g d@¢g dA¢g dB¢g dB¢g dB¢g dB¢g	¦  «         e	j        d¦  «         e	j        d¦  «        d
fedC         edD         edE         edF         d
f e	j        ddgddGgg¦  «         e	j        dHgdgg¦  «         e	j        dI¦  «        ddJf edKdL¦  «         e	j        dMdNgd+dOgg¦  «         e	j        dPdQgdQdRgg¦  «         e	j        dI¦  «         edHd¦  «        z   d
f e	j        ddSgddgg¦  «         e	j        dgdgg¦  «         e	j        d ¦  «        dd
f e	j        dTdgddTgg¦  «         e	j        d ¦  «         e	j        d ¦  «         e	j        d ¦  «        d
f e	j        ddgdd gg¦  «         e	j        dgdgg¦  «         e	j        dUdVgdVdGgg¦  «        dd
f e	j        g dW¢g dX¢g dY¢g¦  «        dz   e	j        d¦  «         e	j        g dZ¢g d[¢g d\¢g¦  «                              e	j
        g d]¢¦  «        ¦  «                              e	j        g dZ¢g d[¢g d\¢g¦  «        ¦  «        dz   e	j        d¦  «        dSz  d^f e	j        g d_¢g d`¢g da¢g db¢g¦  «         e	j        g dc¢g¦  «        j         e	j
        g dd¢¦  «        dd
f e	j        g de¢g df¢g dg¢g dh¢g¦  «         e	j        di¦  «         e	j        dj¦  «        dd
fedC         edD         edE         edF         d
f e	j        dkdkd¬l¦  «         e	j        dkdk¦  «        dGz  z    e	j         ed e	j        dm¦  «        d¦  «        ¦  «        z    e	j        dkdkd¬l¦  «        z    e	j        dk¦  «         e	j        dk¦  «         e	j        dk¦  «        d
f e	j
         e	j        dn¦  «        d¦  «         e	j         e	j        dod¦  «        ¦  «         e	j        dod¦  «         e	j        dod¦  «        j        z  dd^fedC         edD         edE         edF         d
fedC         edD         edE         edF         d^fedC         edD         edE         edF         d^fgZdpZej                             dq ee¦  «        ¦  «        dr„ ¦   «         Zd
S )sÚTestSolveContinuousArezcarex_6_data.npzzcarex_15_data.npzzcarex_18_data.npzzcarex_19_data.npzzcarex_20_data.npzr3   r$   r   r-   Nr'   r&   ç      Àç      Àr<   r(   r8   ç      @©r   r$   r   r   )r   g=
×£p=þ¿gö(\�ÂõØ?g…ëQ¸À)r   gœÄ °rh¡¿g×£p=
×Àgq=
×£p@)gœÄ °rh¡?g/n£¼R¿g®Gáz®ï¿gáz®GáÊ¿g
×£p=
×?gš™™™™™ù¿gffffffî¿gü©ñÒMb ¿g¸…ëQ¸ž?)g/Ý$�@ç7‰A`åÐ@çj¼t“æ?çZd;ßO�—?)r}   g/Ý$�@ç‘í|?5^ò?çyé&1¬Ô?)r~   r€   gÕxé&1Ô?çé&1¬º?)r   r�   r‚   gsh‘í|?µ?r%   )gƒÀÊ¡E¶ï¿g!°rh‘íà?r   r   r   r   r   r   )çNbX9´à?g7‰A`åÐð¿çßO�—nã?r   r   r   r   r   )r   rƒ   gÙÎ÷Sãñ¿r„   r   r   r   r   )r   r   rƒ   gøSã¥›Äø¿g`åÐ"Ûùæ?r   r   r   )r   r   r   ç/Ý$�í?g=
×£p=ú¿gÅ °rh‘é?r   r   )r   r   r   r   r…   gð§ÆK7‰û¿g¢E¶óýÔì?r   )r   r   r   r   r   r…   g^ºI+ý¿g¼t“Vð?)r   r   r   r   r   r   r…   gJ+‡ÿ¿)g¸…ëQ¸@r{   gÍÌÌÌÌÌB@ç¤p=
×£@gáz®Gá@g
×£p=
@r†   r4   )g
×£p=
ÀgR¸…ëQÀgffffffÀg�Âõ(\�Àg�Âõ(\�
Àg�Âõ(\�Àg{®GázÀg®Gáz®Àçü©ñÒMbP?)r3   ç        rˆ   rˆ   ç      à?rˆ   rˆ   çš™™™™™¹?)rˆ   r3   rˆ   rˆ   rŠ   rˆ   rˆ   rˆ   )rˆ   rˆ   r3   rˆ   rˆ   r‰   rˆ   rˆ   )rˆ   rˆ   rˆ   r3   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Š   )	gú~j¼tÀg{®Gáz@rˆ   rˆ   g-²�ï§ Àrˆ   rˆ   rˆ   g×£p=
×ë?)	g¾Ÿ/Ý$Ö¿gZd;ßO�ï?rˆ   rˆ   g¸…ëQ¸Àrˆ   rˆ   rˆ   g
×£p=
ï?)	g‰A`åÐ¢ÀgªñÒMbÐ.@g-²�ï§FÀrˆ   gÍÌÌÌÌÌÀrˆ   rˆ   rˆ   gq=
×£p@)	g7‰A`åÐ5Àg!°rh‘ÍA@gV-²Õ¿gö(\�ÂõÀgÍÌÌÌÌÌ1Àrˆ   rˆ   rˆ   g�Âõ(\�@)	g+‡NÀgyé&1ŒX@gTã¥›Ä ÀgÃõ(\�ÂÕ?g/Ý$�JÀrˆ   rˆ   rˆ   gffffff4@)	r   r   r   r   ç     €W@çffffffbÀrˆ   gš™™™™™J@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ÍÌÌÌÌÌ2@rŽ   )ç{®Gáz„?gºI+‡†¿g‡ÙÎ÷SÃ¿)gú~j¼t“h?g/Ý$�•¿rˆ   )g;ßO�—n‚?gh‘í|?5®¿rˆ   )gú~j¼t“˜?g#Ûù~j¼Ä¿rˆ   )gœÄ °rh±?g{®GázÜ¿rˆ   )rˆ   rˆ   rˆ   ÚAÚBÚQÚRç       Àç�íµ ÷Æ°>©r%   r%   zBad residual accuracygš™™™™™¹¿g{®Gáz”¿rŠ   rˆ   r�   rb   iè  i'  ç    €„.Ag›ò×  ð?iõÿÿÿéûÿÿÿ)g    ð³ZAç    €„>Ag       €)r™   g    `ãVAç    €„>Á)rˆ   rš   g    ÐSA)r3   r”   r”   )r”   r3   r”   )r”   r”   r3   )r•   r$   r—   zBad Residual Accuracy)r   gš™™™™™Ù?r   r   )r   r   g®GázÖ?r   )r   g    €ûÁg     aÁg    €ûA)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'   é@   ©Úk)é>   rŸ   )é   é   )é   r+   é   r¢   r*   r8   Nr6   r9   r¢   r¢   Nr(   r¢   r£   r¢   Nr+   NNúj, casec                 óœ  — |\  }}}}}|rt          j        |¬¦  «         | j        |         }t          ||||¦  «        }	|	|z  |                     ¦   «         j        |	z  z   |z   }
|	|z  }|
|t          t          j        |¦  «        |                     ¦   «         j        ¦  «        z  z  }
t          |
t          j
        |
¦  «        |¬¦  «         dS )z3Checks if 0 = XA + A'X - XB(R)^{-1} B'X + Q is true©Úreason©ÚdecimalN)rr   ÚxfailÚmin_decimalr	   rK   rq   r   r   Ú
atleast_2dr   Ú
zeros_like)rC   ÚjrZ   rM   ÚbrN   ÚrÚknownfailureÚdecrO   ri   Úout_facts               r   Útest_solve_continuous_arez0TestSolveContinuousAre.test_solve_continuous_are?  sÌ   € ð $(Ñ ˆˆ1ˆa��LØð 	.ÝŒL Ð-Ñ-Ô-Ð-àÔ˜qÔ!ˆÝ   A q¨!Ñ,Ô,ˆØ�!‰e�a—f’f‘h”h”j 1‘nÑ$ qÑ(ˆØ�q‘5ˆØˆx�%¥¤¨aÑ 0Ô 0°(·-²-±/´/Ô2CÑDÔDÑDÑDˆÝ! #¥r¤}°SÑ'9Ô'9À3ÐGÑGÔGÐGÐGÐGrG   )rl   rm   rn   r    Úmat6Úmat15Úmat18Úmat19Úmat20r   Údiagrp   r   r@   rq   r?   rJ   Úrot90re   ÚflipudrX   r«   rr   rs   rt   Ú	enumerater´   rv   rG   r   rx   rx   Š   s&	  € € € € € Øˆ:Ð(Ñ)Ô)€DØˆJÐ*Ñ+Ô+€EØˆJÐ*Ñ+Ô+€EØˆJÐ*Ñ+Ô+€EØˆJÐ*Ñ+Ô+€Eð 
ˆŒ�"��qÑ	Ô	Ø	ˆŒ�A�3˜˜�*Ñ	Ô	Ø	ˆ�B˜Ñ	Ô	Ø	
Ø	ð		ð 
ˆŒ�A�q�6˜D $˜<Ð(Ñ	)Ô	)Ø	ˆŒ�A�3˜˜�+Ñ	Ô	Ø	ˆŒ�A�q�6˜A˜r˜7Ð#Ñ	$Ô	$Ø	
Ø	ð		ð 
ˆŒ�<�<�<Ø*Ð*Ð*Ø+Ð+Ð+Ø1Ð1Ð1ð3ñ 
4ô 
4ð 
ˆŒ�A�q�6˜D $˜<¨%°¨¸4À¸)ÐDÑ	EÔ	EØ	ˆŒÐ/Ð/Ð/Ø/Ð/Ð/Ø/Ð/Ð/Ø/Ð/Ð/ð1ñ 
2ô 
2ð 
ˆŒ�‰ŒØ	ð
	ð 
ˆŒÐ4Ð4Ð4Ø8Ð8Ð8Ø8Ð8Ð8Ø8Ð8Ð8Ø7Ð7Ð7Ø8Ð8Ð8Ø8Ð8Ð8Ø4Ð4Ð4ð6ñ 
7ô 
7ð 
ˆŒÐDÐDÐDØKÐKÐKðMñ 
ô 
ä˜ñ
ð 
ˆŒÐ;Ð;Ð;Ø;Ð;Ð;Ø;Ð;Ð;Ø;Ð;Ð;Ø;Ð;Ð;Ø;Ð;Ð;Ø;Ð;Ð;Ø;Ð;Ð;ð=ñ 
>ô 
>ð 
ˆŒ�‰ŒØ	ð)	ð, 
ˆŒØ=Ð=Ð=Ø=Ð=Ð=ØBÐBÐBØHÐHÐHØHÐHÐHØ9Ð9Ð9Ø2Ð2Ð2Ø5Ð5Ð5Ø>Ð>Ð>ð@ñ	
Aô 	
Að 
ˆŒÐ*Ð*Ð*Ø)Ð)Ð)Ø)Ð)Ð)Ø)Ð)Ð)Ø)Ð)Ð)Ø(Ð(Ð(Ø(Ð(Ð(Ø(Ð(Ð(Ø(Ð(Ð(ð*ñ 
+ô 
+ð 
ˆŒ�‰ŒØ	ˆŒ�‰ŒØ	ð+	ð. 
ˆcŒ�D˜”I˜t Cœy¨$¨s¬)°TÐ:à	ˆŒ�A�q�6˜A˜s˜8Ð$Ñ	%Ô	%Ø	ˆŒ�D�6˜A˜3�-Ñ	 Ô	 Ø	ˆŒ�‰ŒØ	Ø	 ð		"ð 
ˆ�D˜%Ñ	 Ô	 Ø	ˆŒ�E˜5�> E¨5 >Ð2Ñ	3Ô	3Ø	ˆŒ�C˜�;  u Ð.Ñ	/Ô	/Ø	ˆŒ�‰Œ˜:˜: d¨AÑ.Ô.Ñ	.Ø	ð		ð 
ˆŒ�A�s�8˜a ˜VÐ$Ñ	%Ô	%Ø	ˆŒ�A�3˜˜�+Ñ	Ô	Ø	ˆŒ�‰ŒØ	Ø	ð		ð 
ˆŒ�I˜q�> B¨	 ?Ð3Ñ	4Ô	4Ø	ˆŒ�‰ŒØ	ˆŒ�‰ŒØ	ˆŒ�‰ŒØ	ð		ð 
ˆŒ�A�r�7˜Q ˜FÐ#Ñ	$Ô	$Ø	ˆŒ�A�3˜˜�*Ñ	Ô	Ø	ˆŒ�C˜�9˜r 3˜iÐ(Ñ	)Ô	)Ø	Ø	ð		ð 
ˆŒÐ,Ð,Ð,Ø2Ð2Ð2Ø,Ð,Ð,ð.ñ 
/ô 
/à12ñ
3ð 
ˆŒ�‰ŒØ	ˆŒ�>�>�> > > >°>°>°>ÐBÑ	CÔ	C×	GÒ	GØ�”˜˜˜Ñ'Ô'ñ
)ô 
)ß),ªØˆBŒH�n�n�n n n n°n°n°nÐEÑFÔFñ*Hô *HØJKñ
Lð 
ˆŒ�‰Œ�S‰Ø	 ð	"ð 
ˆŒ�>�>�>Ø#Ð#Ð#Ø3Ð3Ð3Ø"�?�?ð$ñ 
%ô 
%ð 
ˆŒ�>�>�>Ð"Ñ	#Ô	#Ô	%Ø	ˆŒ���Ñ	Ô	Ø	Ø	ð	ð 
ˆŒÐ#Ð#Ð#Ø$Ð$Ð$Ø"�?�?Ø#Ð#Ð#ð%ñ 
&ô 
&ð 
ˆŒ�‰ŒØ	ˆŒ�‰ŒØ	Ø	ð	ð 
ˆsŒ�U˜3”Z  s¤¨U°3¬Z¸Ð>à	ˆŒ��B˜"Ð	Ñ	Ô	  ¤ r¨2¡¤°Ñ 4Ñ	4°x°r´xØ�˜A˜x˜rœx¨Ñ1Ô1°1Ñ5Ô5ñ87ô 87ñ 
7Ø9?¸¼ÀÀBÈ!Ð9LÑ9LÔ9Lñ
Mà	ˆŒ�‰ŒØ	ˆŒ�‰ŒØ	ˆŒ�‰ŒØ	ð	ð 
ˆŒ��”˜‘” !Ñ	$Ô	$Ø	ˆŒ�6�2”6˜"˜a‘=”=Ñ	!Ô	!Ø	ˆŒ��A‰Œ˜˜œ  A™œœÑ	(Ø	
Ø	 ð		"ð 
ˆsŒ�U˜3”Z  s¤¨U°3¬Z¸Ð>à	ˆsŒ�U˜3”Z  s¤¨U°3¬ZØ	 ð	"ð 
ˆsŒ�U˜3”Z  s¤¨U°3¬ZØ	 ð	"ðCc
€EðX>€Kð „[×Ò˜Y¨	¨	°%Ñ(8Ô(8Ñ9Ô9ðHð Hñ :Ô9ðHð Hð HrG   rx   c                   ó  — e Zd Z ej        ddgddgg¦  «         ej        dgdgg¦  «         ej        ddgddgg¦  «         ej        dgg¦  «        df ej        ddgddgg¦  «         ej        dgd	gg¦  «         ej        ddgddgg¦  «         ej        dgg¦  «        df ej        d
dgddgg¦  «         ej        ddgdd
gg¦  «         ej        ddgddgg¦  «         ej        ddgdd
gg¦  «        df ej        g d¢g d¢g d¢g¦  «         ej        dgdgdgg¦  «         ej        d
¦  «         ej        d¦  «        df ej        dd
gddgg¦  «         ej        dgdgg¦  «         ej        ddgddgg¦  «         ej        dgg¦  «        df ej        ddgddgg¦  «         ej        ddgddgg¦  «         ej        ddgddgg¦  «         ej        d dgdd
gg¦  «        df ej        ddgddgg¦  «         ej        dgdgg¦  «         ej        ddgddgg¦  «         ej        dgg¦  «        df ej        ddgddgg¦  «         ej        ddgddgg¦  «         ej        d!d!gd!d"gg¦  «        d#z   ej        dd
gd
dgg¦  «        df ej        ddgddgg¦  «         ej        dgdgg¦  «         ej        ddgddgg¦  «         ej        dgg¦  «        df ej        g d$¢g d%¢g d&¢g d'¢g¦  «         ej        d(dgd)d*gd+d,gd-d)gg¦  «         ej        g d.¢g d/¢g d0¢g d1¢g¦  «         ej        d¦  «        df ej        g d2¢g d3¢g d4¢g d5¢g¦  «         ej        d6d7gd8d9gd:d;gd<d=gg¦  «         ej        d¦  «        d>z   ej        d¦  «        df ej        g d?¢g d@¢g dA¢g dB¢g¦  «         ej        g dC¢g dD¢g dE¢g dF¢g¦  «         ej        g dG¢g dH¢g dI¢g dJ¢g¦  «         ej        d¦  «        df ej        g dK¢g dL¢g dM¢g dN¢g dO¢g¦  «        d>z   ej        dPdQgdRdSgdTdUgdVdWgdXdYgg¦  «        d>z   ej        dZ¦  «         ej        d¦  «        df ej         ej        d¦  «         ej        ddgd¬[¦  «        ¦  «         ej         ej        d¦  «         ej        dgdgdgg¦  «        ¦  «         ej        g d\¢g d\¢g d]¢g d^¢g d_¢g d]¢g¦  «         ej        d
dgddgg¦  «        dfd` ej        g da¢g db¢g dc¢g dd¢g de¢g df¢g dg¢g dh¢g di¢g	¦  «        z   ej        g dj¢g dk¢g dl¢g dm¢g dn¢g do¢g dp¢g dq¢g dr¢g	¦  «        d`z   ej        g ds¢¦  «         ej        d
¦  «        df ej        ddtgddgg¦  «         ej        dgdgg¦  «         ej        d¦  «         ej        dgg¦  «        df ej        g du¢g dv¢g dw¢g¦  «        dxz   ej        d
¦  «        dt ej        d
¦  «        z  dt ej        d
¦  «        z  df ej        g dy¢g dz¢g d{¢g d|¢g¦  «         ej        d}gdgdgdgg¦  «         ej        g d~¢¦  «         ej        dgg¦  «        df ej        d€d¬[¦  «         ej         ej        d€d¦  «        ¦  «         ej        d€¦  «         ej        dgg¦  «        dfgZ	d�Z
d‚„ e
D ¦   «         Zdƒed„<   ded…<   d†ed‡<   ej                             dˆ ee	¦  «        ¦  «        d‰„ ¦   «         ZdŠ„ ZdS )‹ÚTestSolveDiscreteArer%   y      ð?       Àr   y       €      Àr$   Nr<   y       €       Àù              ð?r&   r,   y      ð?      ð¿ù               @)gÑX=X­Iä?gPÂŽ÷‘á?g¿'9Ô­fè?)gú»Ò�Ká?gõèhÚ2á?g¸N¯Ö�Z¶?)gSÒŠ�Ñ?gè½s Ò,ë?g^LŽ–^öÝ?g•=Sùèþî?gÃþ>%ßS¬?gˆåòFBé?r'   ry   rz   r(   r8   g ‘~û:pî?g2w-!ôì?g5^ºI‚@gÕxé&1ó¿gZd;ßO�@g{®Gázt?g{®Gáz”?gUUUUUUÕ?éüÿÿÿr9   gF]tÑE·?)çV-²�ïï?gôýÔxé&±?r   r   )gôýÔxé&±¿rÃ   r   r   )r   r   rÃ   g/Ý$�•Ã?)r   r   g/Ý$�•Ã¿rÃ   gF%ušk?rŠ   gÇº¸�ðF¿g{®Gáz¤?gŸ<,Ôšæ}?gÇº¸�ðf¿)gìQ¸…ëý?r   r   ç¬Zd;Ï¿)r   g+‡ÙÎç?ç=
×£p=Ê?r   )r   rÅ   g+‡Ùâ?r   )rÄ   r   r   gøSã¥›Äð?)gP�—nƒï?gŒ/Úã…t´¿gúéä±«M?g[AÓ+£Q¿)g†åÏ·K¥?gHþ`à¹÷ï?g$ÑË(–[¢¿g°¯u©ú‰?)gYÝê9é}á¿g¦_"Þ:ÿ¦?g!å'Õ>Õ¿gCâKºÈ?)g”ö_˜L@geâX·¹¿g ‰°áé•í¿g+‡ÙÐ¿gÅ Tófn?g`[š¶ÚH?gQ‡nùH¶¿g	v÷–ã>gé}ãkÏ,ó¿gÒUW‘;¿g{ƒ/L¦Š	ÀgOšaþeRN?r�   )g333333ã¿gš™™™™™ÀgÍÌÌÌÌÌÀgÍ>�Qž™À)r3   g333333ã?gš™™™™™é?gÍèGÃ)3@)rˆ   r3   gÍÌÌÌÌÌü?g {ö\f@)rˆ   rˆ   rˆ   ggÖR@Úÿï¿)r3   r5   r5   r5   )rˆ   r3   r5   r5   )rˆ   rˆ   r3   r5   )rˆ   rˆ   rˆ   r3   )r%   r$   r&   r8   )r$   r%   r%   r6   )r&   r%   r8   r*   )r8   r6   r*   é   )g5^ºIÚW@gY†8ÖÅmÿ?g¾Á&S×?g&S£’:±?gÛù~j¼t“?)gé&1¬lD@gj¼t“¨D@g/Ý$�0@g�1w-!ß@geª`TR'ó?)gÉv¾Ÿo(@gú~j¼tS:@gP�—nB@g\�Âõ(Ü/@gj¼t“Ä(@)gmÅþ²{r@gžï§ÆK·)@g/Ý$�5;@gþÔxé&q5@g°rh‘í|D@)gNbX9´À?g ‰°áé•â?g      þ?g’\þCúí@gR¸…ë‘W@gñôJY†8¦?gðHPüˆ¿g›æ§èH@g$(~Œ¹ð¿g /Ý$@g
×£p=
Àg•eˆc]Ü@gffffffÀgx$(~ŒÝ?gƒ/L¦
Fí¿r6   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ÍÌÌÌÌ0‹@g     à`@g®Gáz.'@g]ÜFxà?g\�Âõ(œBÀg#J{ƒ/LÖ?r   g+‡ÙÎ÷@gåÐ"Ûùþ@)	g33333#S@g33333Œ@gq=
×£p)@g"ýöuàœá?g®GázDÀg£#¹ü‡ô×?r   g…ëQ¸@gåÐ"Ûùþ@)	gÍÌÌÌÌÌ_Àg     Xv@i1  gHáz®G÷?g33333³YÀg/Ý$�•ï?r   g33333³'@g¸…ëQ¸2@)	g     ¸vÀg33333Ïƒ@g
×£p=ºR@gÍÌÌÌÌäˆ@g     qÀgÓMbX9@r   g¸…ëQ¸?@g)\�ÂõhH@)	i@üÿÿgš™™™™·™@gÍÌÌÌÌ`ÀgÙÎ÷ScÀg{®GáÚQ@g;ßO�—n@r   gáz®G!U@gš™™™™y_@)	g33333Ã„Àg=
×£p=\@g)\�Âõ8VÀg¢E¶óýÔÀg®GázU@g333333+@r   gš™™™™	b@gffffffY@)	g33333£yÀiµ  g{®GáZKÀg+‡ÙÎ÷Àg�Âõ(\ŸP@g{®Gáú(@g¼–�z6»?g®GázþX@g{®GájQ@)	gÍÌÌÌÌ|fÀg33333Ûr@g®Gázî7Àg�Âõ(\�ð¿gìQ¸…KN@g)\�Âõ(6@r   gÍÌÌÌÌ¼j@g…ëQ¸ÅA@)	gš™™™™‘uÀg33333#‚@g{®GáúFÀgmçû©ñÒÿ¿gffffffZ@g\�Âõ(Ü3@r   g33333ck@gfffffæj@)g
×£p=
@g cîZB>â¿gìQ¸…ëTÀ)gTã¥›Ä ì?gd;ßO�Àg×£p=
×À)gƒÀÊ¡E¶÷?g=
×£p=*Àg�—nƒÀ!@)g‰A`åÐ"@gq=
×£�AÀgÍÌÌÌÌÌ8@)g®Gáz®$@g     0WÀg33333³P@)gZd;ßÏ@gìQ¸…ËNÀgìQ¸…+C@)g7‰A`åÐ@g
×£p=jBÀg
×£p=J4@)gð§ÆK7‰ÿ?g®Gáz/Àgsh‘í|¿@)gÉv¾Ÿ/@gHáz®G>Àgáz®Ga-@)	é2   r   r   r   rÇ   r   r   r   r   r—   )é   r)   éþÿÿÿ)r)   r£   éøÿÿÿ)rÉ   rÊ   r9   gÇqÇq¼?)gGœ¡úÿÿï?r   r   r   )r$   r   r   r   r|   )r   r   r$   r   g:Œ0âŽyE>)r   r   r   r$   ç      Ð?rb   )r+   r¢   r£   r¢   r£   rÈ   é   r¢   r¢   r£   r¢   r£   r£   r¢   r+   r%   r'   r8   r)   c                 ó    — g | ]}d d| z  z  ‘ŒS )g      ø?r)   rv   )Ú.0Úinds     r   ú
<listcomp>zTestSolveDiscreteAre.<listcomp>  s"   € Ð5Ð5Ð5 #ˆs�R˜#˜‘X‰~Ð5Ð5Ð5rG   gê-�™—Q=r*   é   g-Cëâ6*?rÈ   r¤   c                 óÆ  — |\  }}}}}|rt          j        |¬¦  «         | j        |         }t          ||||¦  «        }	|                     ¦   «         j        }
|	|z  |	|z  }}|                     ¦   «         j        |z  |	z
  |z   }||                     ¦   «         j        |z  t          ||
|z  z   |
¦  «        |z  z  z  }t          |t          j	        |¦  «        |¬¦  «         dS )ú5Checks if X = A'XA-(A'XB)(R+B'XB)^-1(B'XA)+Q) is truer¦   ©ÚatolN)
rr   rª   Úmax_tolr
   rK   rq   r   r   r   r­   )rC   r®   rZ   rM   r¯   rN   r°   r±   rÕ   rO   ÚbHÚxaÚxbri   s                 r   Útest_solve_discrete_arez,TestSolveDiscreteAre.test_solve_discrete_are$  så   € ð $(Ñ ˆˆ1ˆa��LØð 	.ÝŒL Ð-Ñ-Ô-Ð-àŒ|˜AŒˆå˜q ! Q¨Ñ*Ô*ˆØ�VŠV‰XŒXŒZˆØ�Q‘˜˜A™ˆBˆà�fŠf‰hŒhŒj˜2‰o Ñ! AÑ%ˆØˆq�vŠv‰xŒxŒz˜B‰¥%¨¨B°©G©°RÑ"8Ô"8¸2Ñ"=Ñ>Ñ>ˆõ 	˜�Rœ]¨3Ñ/Ô/°dÐ;Ñ;Ô;Ð;Ð;Ð;rG   c                 óZ  — t          j        t          j        d¦  «        ¦  «        }d|d<   t          j        g d¢g d¢g¦  «        j        }t          j        |d¦  «        t          j        g d¢¦  «        z   }t          j        dd	g¦  «        }t          t          t          ||||¦  «         d S )
N©r&   r&   r<   )r   r$   )r$   r$   r   )r   r   r$   rÉ   )r7   r<   gffffffþ¿iöÿÿÿrŠ   )
r   Útriur?   rp   rq   Ú	full_likerº   rA   r   r	   )rC   r�   r‘   r’   r“   s        r   Útest_infeasiblez$TestSolveDiscreteAre.test_infeasible:  s—   € åŒG•B”G˜F‘O”OÑ$Ô$ˆØˆˆ$‰ÝŒH�i�i�i   Ð+Ñ,Ô,Ô.ˆÝŒL˜˜BÑÔ¥"¤'¨-¨-¨-Ñ"8Ô"8Ñ8ˆÝŒG�S˜#�JÑÔˆÝ•kÕ#7¸¸A¸qÀ!ÑDÔDÐDÐDÐDrG   )rl   rm   rn   r   rp   r@   Úkronrº   r¼   rX   r«   rÖ   rr   rs   rt   r½   rÚ   rß   rv   rG   r   r¿   r¿   N  s  € € € € € ð  
ˆŒ�A�t�9˜q #˜hÐ'Ñ	(Ô	(Ø	ˆŒ�A�3˜˜�*Ñ	Ô	Ø	ˆŒ�A�q�6˜A˜q˜6Ð"Ñ	#Ô	#Ø	ˆŒ�A�3�%‰ŒØ	ð		ð 
ˆŒ�A�q�6˜A˜r˜7Ð#Ñ	$Ô	$Ø	ˆŒ�C�5˜2˜$�-Ñ	 Ô	 Ø	ˆŒ�A�q�6˜A˜q˜6Ð"Ñ	#Ô	#Ø	ˆŒ�A�3�%‰ŒØ	ð		ð 
ˆŒ�A�q�6˜A˜r˜7Ð#Ñ	$Ô	$Ø	ˆŒ�A�q�6˜A˜q˜6Ð"Ñ	#Ô	#Ø	ˆŒ�A�t�9˜t Q˜iÐ(Ñ	)Ô	)Ø	ˆŒ�A�s�8˜b !˜WÐ%Ñ	&Ô	&Ø	ð		ð 
ˆŒÐ7Ð7Ð7Ø6Ð6Ð6Ø6Ð6Ð6ð8ñ 
9ô 
9ð 
ˆŒ�J�< * °
¨|Ð<Ñ	=Ô	=Ø	ˆŒ�‰ŒØ	ˆŒ�‰ŒØ	ð	ð 
ˆŒ�A�q�6˜D $˜<Ð(Ñ	)Ô	)Ø	ˆŒ�A�3˜˜�+Ñ	Ô	Ø	ˆŒ�A�q�6˜A˜q˜6Ð"Ñ	#Ô	#Ø	ˆŒ�A�3�%‰ŒØ	ð		ð 
ˆŒ�F˜A�;  F Ð,Ñ	-Ô	-Ø	ˆŒ�E˜5�> G¨UÐ#3Ð4Ñ	5Ô	5Ø	ˆŒ�E˜1�:  4˜yÐ)Ñ	*Ô	*Ø	ˆŒ�C˜�8˜a ˜VÐ$Ñ	%Ô	%Ø	ð		ð 
ˆŒ�A�r�7˜Q ˜FÐ#Ñ	$Ô	$Ø	ˆŒ�A�3˜˜�*Ñ	Ô	Ø	ˆŒ�A�q�6˜A˜q˜6Ð"Ñ	#Ô	#Ø	ˆŒ�A�3�%‰ŒØ	ð		ð 
ˆŒ�A�q�6˜A˜r˜7Ð#Ñ	$Ô	$Ø	ˆŒ�A�q�6˜A˜q˜6Ð"Ñ	#Ô	#Ø	ˆŒ�B˜�8˜b !˜WÐ%Ñ	&Ô	&¨$Ñ	/Ø	ˆŒ�A�q�6˜A˜q˜6Ð"Ñ	#Ô	#Ø	ð		ð 
ˆŒ�A�q�6˜A˜q˜6Ð"Ñ	#Ô	#Ø	ˆŒ�A�3˜˜�*Ñ	Ô	Ø	ˆŒ�A�q�6˜A˜q˜6Ð"Ñ	#Ô	#Ø	ˆŒ�A�3�%‰ŒØ	ð		ð 
ˆŒÐ'Ð'Ð'Ø'Ð'Ð'Ø'Ð'Ð'Ø'Ð'Ð'ð)ñ 
*ô 
*ð 
ˆŒ�F˜FÐ#Ø˜FÐ#Ø˜FÐ#Ø˜FÐ#ð%ñ 
&ô 
&ð 
ˆŒÐ'Ð'Ð'Ø'Ð'Ð'Ø'Ð'Ð'Ø(Ð(Ð(ð*ñ 
+ô 
+ð 
ˆŒ�‰ŒØ	ð	ð 
ˆŒÐ=Ð=Ð=Ø=Ð=Ð=Ø=Ð=Ð=Ø=Ð=Ð=ð?ñ 
@ô 
@ð 
ˆŒ�I˜yÐ)Ø˜yÐ)Ø˜zÐ*Ø˜yÐ)ð+ñ 
,ô 
,ð 
ˆŒ�‰Œ�4‰Ø	ˆŒ�‰ŒØ	ð
	ð 
ˆŒÐCÐCÐCØ?Ð?Ð?Ø?Ð?Ð?Ø@Ð@Ð@ðBñ 
Cô 
Cð 
ˆŒÐ*Ð*Ð*Ø)Ð)Ð)Ø(Ð(Ð(Ø'Ð'Ð'ð)ñ 
*ô 
*ð 
ˆŒ�<�<�<Ø�<�<Ø �=�=Ø!�>�>ð#ñ 
$ô 
$ð 
ˆŒ�‰ŒØ	ð	ð 
ˆŒÐ<Ð<Ð<Ø>Ð>Ð>Ø@Ð@Ð@Ø?Ð?Ð?Ø<Ð<Ð<ð	>ñ 
?ô 
?ð BFñ	
Fð
 
ˆŒ�F˜GÐ$Ø˜GÐ$Ø˜GÐ$Ø˜GÐ$Ø˜GÐ$ð	&ñ 
'ô 
'ð *.ñ	
.ð
 
ˆŒ�‰ŒØ	ˆŒ�‰ŒØ	ð	ð 
ˆŒ��”˜‘”˜G˜BœG Q¨ F¨aÐ0Ñ0Ô0Ñ	1Ô	1Ø	ˆŒ��”˜‘”˜H˜BœH q c¨A¨3°° _Ñ5Ô5Ñ	6Ô	6Ø	ˆŒÐ%Ð%Ð%Ø%Ð%Ð%Ø%Ð%Ð%Ø&Ð&Ð&Ø&Ð&Ð&Ø%Ð%Ð%ð'ñ 
(ô 
(ð 
ˆŒ�A�q�6˜A˜q˜6Ð"Ñ	#Ô	#Ø	ð		ð 
��”Ø
FÐ
FÐ
FØ
FÐ
FÐ
FØ
DÐ
DÐ
DØ
GÐ
GÐ
GØ
GÐ
GÐ
GØ
HÐ
HÐ
HØ
JÐ
JÐ
JØ
HÐ
HÐ
HØ
HÐ
HÐ
Hð
Jñ	Kô 	Kñ 	
Kð 
ˆŒÐ.Ð.Ð.Ø-Ð-Ð-Ø-Ð-Ð-Ø.Ð.Ð.Ø/Ð/Ð/Ø.Ð.Ð.Ø.Ð.Ð.Ø-Ð-Ð-Ø.Ð.Ð.ð0ñ 
1ô 
1ð 49ñ
9ð 
ˆŒÐ.Ð.Ð.Ñ	/Ô	/Ø	ˆŒ�‰ŒØ	ð+	ð. 
ˆŒ�A�s�8˜a ˜VÐ$Ñ	%Ô	%Ø	ˆŒ�A�3˜˜�*Ñ	Ô	Ø	ˆŒ�‰ŒØ	ˆŒ�A�3�%‰ŒØð		ð 
ˆŒ�<�<�<Ø�,�,Ø�+�+ðñ 
 ô 
 à#&ñ
(ð 
ˆŒ�‰ŒØ	ˆvˆrŒv�a‰yŒy‰Ø	ˆvˆrŒv�a‰yŒy‰Øð	ð 
ˆŒÐ'Ð'Ð'Ø�,�,Ø�,�,Ø�,�,ð ñ 
!ô 
!ð 
ˆŒ�E�7˜Q˜C !  q cÐ*Ñ	+Ô	+Ø	ˆŒ���Ñ	Ô	Ø	ˆŒ�D�6�(Ñ	Ô	Ø	ð	ð 
ˆŒ��qÐ	Ñ	Ô	Ø	ˆŒ�6�2”6˜#˜q‘>”>Ñ	"Ô	"Ø	ˆŒ�‰ŒØ	ˆŒ�A�3�%‰ŒØ	ð		ðq}
€EðN4€Kà5Ð5¨Ð5Ñ5Ô5€Gà€GˆB�Kð €GˆB�Kð €GˆB�Kà„[×Ò˜Y¨	¨	°%Ñ(8Ô(8Ñ9Ô9ð<ð <ñ :Ô9ð<ð*Eð Eð Eð Eð ErG   r¿   c                   óZ   — e Zd Zej                             deeg¦  «        d„ ¦   «         ZdS )ÚTestSolveCommonAreÚsolverc                 ó’  — t          j        ddgddgg¦  «        }t          j        dgdgg¦  «        }t          j        d¦  «        }t          j        d¦  «        }t          j        d¦  «        }t          j        dgd	gg¦  «        } ||||||¬
¦  «        } |||||||¦  «        }	t           j                             ||	¦  «         d S )NgÍÌÌÌÌÌì¿rË   r   gš™™™™™ñ¿gq=
×£pÍ?gÍÌÌÌÌÌÜ?r%   rŠ   gš™™™™™É?)Ús)r   rp   r@   r¬   Útestingr   )
rC   rã   r�   r‘   r’   r“   ÚEÚSri   rj   s
             r   Ú(test_with_skipped_array_argument_gh23336z;TestSolveCommonAre.test_with_skipped_array_argument_gh23336E  sÉ   € õ ŒH�t˜T�l Q¨ IÐ.Ñ/Ô/ˆÝŒH�t�f˜t˜fÐ%Ñ&Ô&ˆÝŒF�1‰IŒIˆÝŒM˜$ÑÔˆÝŒF�1‰IŒIˆÝŒH�s�e˜c˜U�^Ñ$Ô$ˆàˆf�Q˜˜1˜a 1Ð%Ñ%Ô%ˆØˆf�Q˜˜1˜a  AÑ&Ô&ˆÝ
Œ
×"Ò" 3¨Ñ,Ô,Ð,Ð,Ð,rG   N)	rl   rm   rn   rr   rs   rt   r	   r
   ré   rv   rG   r   râ   râ   D  sH   € € € € € Ø„[×Ò˜XÐ(<Ð>PÐ'QÑRÔRð-ð -ñ SÔRð-ð -ð -rG   râ   c                  óž  — t          j        g d¢g d¢g d¢g¦  «        t          j        ddgddgdd	gg¦  «        t          j        d
¦  «        t          j        d¦  «        t          j        g d¢g d¢g d¢g¦  «        t          j        d¦  «        d ft          j        g d¢g d¢g d¢g¦  «        t          j        ddgddgdd	gg¦  «        t          j        d
¦  «        t          j        d¦  «        t          j        g d¢g d¢g d¢g¦  «        t          j        d¦  «        d fg} d}d„ }t          | ¦  «        D ]\  }} ||||         ¦  «         Œd S )N©g?§ ?¹Ñ?g[,ÄYê?g¾÷7hî?©g;)ÄÆ£§?g7j*0	<æ?gÉš&¦ê¢¡?©g�”€Ú Ý¸?g*ý„³[KÔ?g¯fSdcÜ?ç6±ÀWtkØ?çÞ]ÂüpëÇ?çý;‘è?ç¯/ÈLXß?çÿ	‰Gré?çm!#û{„Ü?r&   r%   ©gGY¿™˜®ä?g X.eªÑ?g6¹ÎuÐÄ?©gåßÏ³æ?gÀpàÀå?g¡™Ì¢v¾?©g»<ç¸d&è?gª™µ�öä?gÂÀ‰2åß?r>   )r)   r)   c                 óÞ  — | \  }}}}}}}|rt          j        |¬¦  «         t          ||||||¦  «        }	|                     ¦   «         j                             |	                     |¦  «        ¦  «        |                     ¦   «         j                             |	                     |¦  «        ¦  «        z   |z   }
|                     ¦   «         j                             |	¦  «                             |¦  «        |z   }|
|                     t          t          j        |¦  «        |                     ¦   «         j        ¦  «        ¦  «        z  }
t          |
t          j
        |
¦  «        |¬¦  «         dS )rÓ   r¦   r¨   N)rr   rª   r	   rK   rq   rJ   r   r   r¬   r   r­   )rZ   r²   rM   r¯   rN   r°   Úerå   r±   rO   ri   r³   s               r   Ú_test_factoryz<test_solve_generalized_continuous_are.<locals>._test_factoryv  s  € à)-Ñ&ˆˆ1ˆa��A�q˜,Øð 	.ÝŒL Ð-Ñ-Ô-Ð-å   A q¨!¨Q°Ñ2Ô2ˆØ�fŠf‰hŒhŒj�nŠn˜QŸUšU 1™XœXÑ&Ô&¨¯ª©¬¬¯ª¸¿º¸a¹¼Ñ)AÔ)AÑAÀAÑEˆØ—6’6‘8”8”:—>’> !Ñ$Ô$×(Ò(¨Ñ+Ô+¨aÑ/ˆØˆx�|Š|�E¥"¤-°Ñ"2Ô"2°H·M²M±O´OÔ4EÑFÔFÑGÔGÑGˆÝ! #¥r¤}°SÑ'9Ô'9À3ÐGÑGÔGÐGÐGÐGrG   )r   rp   r@   re   r?   r½   )rX   r«   rù   rÏ   rZ   s        r   Ú%test_solve_generalized_continuous_arerú   T  sá  € õ 
ŒÐ=Ð=Ð=Ø=Ð=Ð=Ø=Ð=Ð=ð?ñ 
@ô 
@õ 
Œ�L ,Ð/Ø  ,Ð/Ø  ,Ð/ð1ñ 
2ô 
2õ 
Œ�‰ŒÝ	Œ�‰ŒÝ	ŒÐ=Ð=Ð=Ø=Ð=Ð=Ø=Ð=Ð=ð?ñ 
@ô 
@õ 
Œ�&Ñ	Ô	Ø	ð	õ 
ŒÐ=Ð=Ð=Ø=Ð=Ð=Ø=Ð=Ð=ð?ñ 
@ô 
@õ 
Œ�L ,Ð/Ø  ,Ð/Ø  ,Ð/ð1ñ 
2ô 
2õ 
Œ�‰ŒÝ	Œ�‰ŒÝ	ŒÐ=Ð=Ð=Ø=Ð=Ð=Ø=Ð=Ð=ð?ñ 
@ô 
@õ 
Œ�‰ŒØ	ð	ð!
€Eð> €Kð
Hð 
Hð 
Hõ ˜uÑ%Ô%ð .ð .‰	ˆˆTØˆ�d˜K¨Ô,Ñ-Ô-Ð-Ð-ð.ð .rG   c                  ó  — t          d¦  «        } t          j        g d¢g d¢g d¢g¦  «        t          j        ddgddgd	d
gg¦  «        t          j        d¦  «        t          j        d¦  «        t          j        g d¢g d¢g d¢g¦  «        t          j        d¦  «        d ft          j        g d¢g d¢g d¢g¦  «        t          j        ddgddgd	d
gg¦  «        t          j        d¦  «        t          j        d¦  «        t          j        g d¢g d¢g d¢g¦  «        t          j        d¦  «        d f| d         | d         | d         | d         d | d         d fg}d}d„ }t          |¦  «        D ]\  }} ||||         ¦  «         Œd S )Nzgendare_20170120_data.npzrë   rì   rí   rî   rï   rð   rñ   rò   ró   r&   r%   rô   rõ   rö   r>   r�   r‘   r’   r“   rè   )çpé~°=rü   g…xÝD\8¹<c                 ó$  — | \  }}}}}}}|rt          j        |¬¦  «         t          ||||||¦  «        }	|€t          j        |j        d         ¦  «        }|€t          j        |¦  «        }|                     ¦   «         j         	                    |	 	                    |¦  «        ¦  «        |                     ¦   «         j         	                    |	 	                    |¦  «        ¦  «        z
  |z   }
|
|                     ¦   «         j         	                    |	 	                    |¦  «        ¦  «        |z    	                    t          ||                     ¦   «         j         	                    |	 	                    |¦  «        ¦  «        z   |                     ¦   «         j         	                    |	 	                    |¦  «        ¦  «        |                     ¦   «         j        z   ¦  «        ¦  «        z  }
t          |
t          j        |
¦  «        |¬¦  «         dS )rÓ   r¦   Nr   rÔ   )rr   rª   r
   r   r@   rg   r­   rK   rq   rJ   r   r   )rZ   rÕ   rM   r¯   rN   r°   rø   rå   r±   rO   ri   s              r   rù   z:test_solve_generalized_discrete_are.<locals>._test_factory³  s“  € à)-Ñ&ˆˆ1ˆa��A�q˜,Øð 	.ÝŒL Ð-Ñ-Ô-Ð-å˜q ! Q¨¨1¨aÑ0Ô0ˆØˆ9Ý”�q”w˜q”zÑ"Ô"ˆAØˆ9Ý”˜aÑ Ô ˆAØ�fŠf‰hŒhŒj�nŠn˜QŸUšU 1™XœXÑ&Ô&¨¯ª©¬¬¯ª¸¿º¸a¹¼Ñ)AÔ)AÑAÀAÑEˆØ�—’‘””
—’˜qŸušu Q™xœxÑ(Ô(¨1Ñ,×1Ò1Ý˜!˜AŸFšF™HœHœJŸNšN¨1¯5ª5°©8¬8Ñ4Ô4Ñ4ØŸ6š6™8œ8œ:Ÿ>š>¨!¯%ª%°©(¬(Ñ3Ô3°a·f²f±h´h´jÑ@ñô ñô ñ 	ˆõ 	˜�Rœ]¨3Ñ/Ô/°dÐ;Ñ;Ô;Ð;Ð;Ð;rG   )r    r   rp   r@   re   r?   r½   )Úmat20170120rX   Úmax_atolrù   rÏ   rZ   s         r   Ú#test_solve_generalized_discrete_arer   †  s!  € ÝÐ8Ñ9Ô9€Kõ
 
ŒÐ=Ð=Ð=Ø=Ð=Ð=Ø=Ð=Ð=ð?ñ 
@ô 
@õ 
Œ�L ,Ð/Ø  ,Ð/Ø  ,Ð/ð1ñ 
2ô 
2õ 
Œ�‰ŒÝ	Œ�‰ŒÝ	ŒÐ=Ð=Ð=Ø=Ð=Ð=Ø=Ð=Ð=ð?ñ 
@ô 
@õ 
Œ�&Ñ	Ô	Ø	ð	õ 
ŒÐ=Ð=Ð=Ø=Ð=Ð=Ø=Ð=Ð=ð?ñ 
@ô 
@õ 
Œ�L ,Ð/Ø  ,Ð/Ø  ,Ð/ð1ñ 
2ô 
2õ 
Œ�‰ŒÝ	Œ�‰ŒÝ	ŒÐ=Ð=Ð=Ø=Ð=Ð=Ø=Ð=Ð=ð?ñ 
@ô 
@õ 
Œ�‰ŒØ	ð	ð 
�SÔ	Ø	�SÔ	Ø	�SÔ	Ø	�SÔ	Ø	Ø	�SÔ	Ø	ð	ð?&
€EðP +€Hð<ð <ð <õ, ˜uÑ%Ô%ð +ð +‰	ˆˆTØˆ�d˜H SœMÑ*Ô*Ð*Ð*ð+ð +rG   c                  ó$   — d„ } d„ }d„ }d„ }d„ }d S )Nc            
      óB  — t          j        d¦  «        } t          j        d¦  «        }t          t          fD ]g}t          t          || ddd¦  «         t          t          |||| d¦  «         t          t          ||||| ¦  «         t          t          |||||| ¦  «         Œhd S )Nr>   r&   r$   ©r   r?   r@   r	   r
   rA   rB   ©rD   rE   rO   s      r   Útest_square_shapez1test_are_validate_args.<locals>.test_square_shapeÏ  s    € ÝŒg�f‰oŒoˆÝŒV�A‰YŒYˆÝ&Õ(:Ð;ð 	>ð 	>ˆAÝ�* a¨¨a°°AÑ6Ô6Ð6Ý�* a¨¨R°°aÑ8Ô8Ð8Ý�* a¨¨R°°SÑ9Ô9Ð9Ý�* a¨¨R°°R¸Ñ=Ô=Ð=Ð=ð		>ð 	>rG   c                  óä  — t          j        d¦  «        } t          j        d¦  «        }t          t          fD ]¸}t          t          ||| dd¦  «         t          t          ||||||| ¦  «         t          t          |||t          j        d¦  «        |¦  «         t          t          ||||t          j        d¦  «        ¦  «         t          t          |||||t          j        d¦  «        ¦  «         Œ¹d S )Nr>   r'   r$   r&   r  r  s      r   Útest_compatible_sizesz5test_are_validate_args.<locals>.test_compatible_sizesØ  sØ   € ÝŒg�f‰oŒoˆÝŒV�A‰YŒYˆÝ&Õ(:Ð;ð 	Dð 	DˆAÝ�* a¨¨S°!°QÑ7Ô7Ð7Ý�* a¨¨R°°R¸¸SÑAÔAÐAÝ�* a¨¨Rµ´¸±´¸BÑ?Ô?Ð?Ý�* a¨¨R°µR´V¸A±Y´YÑ?Ô?Ð?Ý�* a¨¨R°°R½¼À¹¼ÑCÔCÐCÐCð	Dð 	DrG   c            	      ó  — t          j        d¦  «                             dd¦  «        } t          j        d¦  «        }t          t
          fD ]4}t          t          |||| |¦  «         t          t          ||||| ¦  «         Œ5d S )Nr(   r&   )r   ÚarangeÚreshaper@   r	   r
   rA   rB   )ÚnsymÚsymrO   s      r   Útest_symmetryz-test_are_validate_args.<locals>.test_symmetryâ  s~   € ÝŒy˜‰|Œ|×#Ò# A qÑ)Ô)ˆÝŒf�Q‰iŒiˆÝ&Õ(:Ð;ð 	>ð 	>ˆAÝ�* a¨¨c°4¸Ñ=Ô=Ð=Ý�* a¨¨c°3¸Ñ=Ô=Ð=Ð=ð	>ð 	>rG   c            
      ó
  — t          j        dd¦  «        } | dxx         dz  cc<   t          j        d¦  «        }t          t          fD ]}t          t          |||||| ¦  «         Œt          t          t          |||| ¦  «         d S )NrÜ   g   ¢”mBr–   r$   r&   )r   Úfullr@   r	   r
   rA   rB   )ÚsingrE   rO   s      r   Útest_singularityz0test_are_validate_args.<locals>.test_singularityé  s†   € ÝŒw�v˜tÑ$Ô$ˆØˆTˆ
ˆ
Œ
�a‰ˆ
ˆ
‰
ÝŒV�A‰YŒYˆÝ&Õ(:Ð;ð 	?ð 	?ˆAÝ�* a¨¨R°°R¸Ñ>Ô>Ð>Ð>å•jÕ"6¸¸BÀÀDÑIÔIÐIÐIÐIrG   c                  óÀ  — t          j        dt           j        ¦  «        } t          j        d¦  «        }t          t
          fD ]›}t          t          || |||¦  «         t          t          ||| ||¦  «         t          t          |||| |¦  «         t          t          ||||| ¦  «         t          t          |||||| ¦  «         t          t          ||||||| ¦  «         Œœd S )Nr–   r%   )r   r  Únanr@   r	   r
   rA   rB   )ÚnmrE   rO   s      r   Útest_finitenessz/test_are_validate_args.<locals>.test_finitenessò  sÞ   € ÝŒW�V�RœVÑ$Ô$ˆÝŒV�A‰YŒYˆÝ&Õ(:Ð;ð 	Að 	AˆAÝ�* a¨¨R°°RÑ8Ô8Ð8Ý�* a¨¨R°°RÑ8Ô8Ð8Ý�* a¨¨R°°RÑ8Ô8Ð8Ý�* a¨¨R°°RÑ8Ô8Ð8Ý�* a¨¨R°°R¸Ñ<Ô<Ð<Ý�* a¨¨R°°R¸¸RÑ@Ô@Ð@Ð@ð	Að 	ArG   rv   )r  r  r  r  r  s        r   Útest_are_validate_argsr  Í  sb   € ð>ð >ð >ðDð Dð Dð>ð >ð >ðJð Jð Jð	Að 	Að 	Að 	Að 	ArG   c                   óÌ  — e Zd Z ej        d¦  «         ej        d¦  «         ej        d¦  «        f ej        d¦  «         ej        d¦  «         ej        d¦  «        f ej        d¦  «         ej        d¦  «         ej        d¦  «        f ej        ddgddgg¦  «         ej        d	d
gddgg¦  «         ej        ddgddgg¦  «        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 d¢g d¢g d¢g¦  «        f ej        ddgddgg¦  «         ej        dd gd!d"gg¦  «         ej        d#d$gd%dgg¦  «        f ej        d&dgd!dgg¦  «         ej        ddgd!d"gg¦  «         ej        d#d$gd%dgg¦  «        f ej        ddgddgg¦  «         ej        ddgd!d"gg¦  «         ej        d#d$gd%dgg¦  «        f ej        ddgddgg¦  «         ej        ddgd!d"gg¦  «         ej        ddgddgg¦  «        f ej        g d'¢g d(¢g d)¢g¦  «         ej        dd*gdd	gg¦  «         ej        ddgd*dgd	d
gg¦  «        f ej        g d+¢g d(¢g d)¢g¦  «         ej        dd*gdd,gg¦  «         ej        dd gd*d-gd.d/gg¦  «        fgZd0„ Zd1„ Zd2„ Z	e
j                             d3e¦  «        e
j                             d4e¦  «        e
j                             d5e¦  «        e
j                             d6dd*g¦  «        e
j                             d7dd*g¦  «        d8„ ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         Zd9S ):ÚTestSolveSylvesterr#   r–   )r   r%   )r%   r   r$   r%   r   r'   r6   r8   r7   r(   r)   r*   r+   )r3   r   r   r   )r   r3   r-   rˆ   )r   r   r4   rÂ   )r   r   r%   r6   )r-   r   r   r3   )r   r3   rˆ   rˆ   )r   r   r3   r<   )r   r   r$   r$   )r   r3   r   r   )r   r   r3   r   )r   r   r   r3   r,   r-   r.   r/   r5   rÁ   r4   r{   r0   r1   r2   r3   )r7   r$   r8   )r&   r6   r9   )r'   r(   r%   r&   )r7   rÀ   y      @       @y      @      ð¿y              @y              @y      @      @c                 óš   — t          |||¦  «        }t          t          j        ||¦  «        t          j        ||¦  «        z   |¦  «         d S rI   )r   r   r   rJ   ©rC   rM   r¯   ÚcrO   s        r   Ú
check_casezTestSolveSylvester.check_case6  sB   € Ý˜A˜q !Ñ$Ô$ˆÝ!¥"¤&¨¨A¡,¤,µ´¸¸1±´Ñ"=¸qÑAÔAÐAÐAÐArG   c                 ól   — | j         D ]+}|                      |d         |d         |d         ¦  «         Œ,d S )Nr   r$   r%   )rX   r  rY   s     r   r[   zTestSolveSylvester.test_cases:  sB   € Ø”Jð 	7ð 	7ˆDØ�OŠO˜D œG T¨!¤W¨d°1¬gÑ6Ô6Ð6Ð6ð	7ð 	7rG   c                 óL  — t          j        ddgddgg¦  «        }t          j        dgg¦  «        }t          j        ddg¦  «                             dd¦  «        }t          |||¦  «        }t	          |t          j        ddg¦  «                             dd¦  «        ¦  «         d S )Nr3   rˆ   r-   r<   r$   )r   rp   r
  r   r   r  s        r   Útest_trivialzTestSolveSylvester.test_trivial>  s™   € ÝŒH�s˜C�j 3¨ *Ð-Ñ.Ô.ˆÝŒH�s�e�WÑÔˆÝŒH�c˜3�ZÑ Ô ×(Ò(¨¨QÑ/Ô/ˆÝ˜A˜q !Ñ$Ô$ˆÝ! !¥R¤X¨s°C¨jÑ%9Ô%9×%AÒ%AÀ"ÀaÑ%HÔ%HÑIÔIÐIÐIÐIrG   r\   Údtype_br]   ÚmÚnc                 ó¤  — ||cxk    rdk    rn nt          j        d¦  «         t          j                             d¦  «        }t          j        ||f|¬¦  «        }t          j        ||f|¬¦  «        }t          j        ||f|¬¦  «        }	t          |||	¦  «        }
|                     d¦  «        dz                       |¦  «        }|                     d¦  «        dz                       |¦  «        }|                     d¦  «        dz                       |¦  «        }	t          |||	¦  «        }|
j        ||fk    sJ ‚|
j	        |j	        k    sJ ‚d S )	Nr   z6m = n != 0 is not a case that needs to be tested here.l   >¿& r_   ra   rb   )r8   r8   )r6   r8   )
rr   Úskipr   rc   rd   re   r   rf   rg   r`   )rC   r!  r"  r\   r   r]   rh   rM   r¯   rN   ri   rj   s               r   rk   zTestSolveSylvester.test_size_0H  sK  € ð �ˆ;ˆ;Š;ˆ;�QŠ;ˆ;ˆ;ˆ;ˆ;ÝŒKÐPÑQÔQÐQåŒi×#Ò# OÑ4Ô4ˆåŒH�a˜�V 7Ð+Ñ+Ô+ˆÝŒH�a˜�V 7Ð+Ñ+Ô+ˆÝŒH�a˜�V 7Ð+Ñ+Ô+ˆÝ˜a  AÑ&Ô&ˆà�ZŠZ˜ÑÔ Ñ#×+Ò+¨GÑ4Ô4ˆØ�ZŠZ˜ÑÔ Ñ#×+Ò+¨GÑ4Ô4ˆØ�ZŠZ˜ÑÔ Ñ#×+Ò+¨GÑ4Ô4ˆÝ˜a  AÑ&Ô&ˆàŒy˜Q ˜FÒ"Ð"Ð"Ð"ØŒy˜CœIÒ%Ð%Ð%Ð%Ð%Ð%rG   N)rl   rm   rn   r   ro   rp   rX   r  r[   r  rr   rs   rt   ru   rk   rv   rG   r   r  r  þ  sÓ  € € € € € ð 
ˆŒ�&Ñ	Ô	Ø	ˆŒ�&Ñ	Ô	Ø	ˆŒ�&Ñ	Ô	ð	ð ˆ"Œ(�6Ñ
Ô
Ø	ˆŒ�&Ñ	Ô	Ø	ˆŒ�&Ñ	Ô	ð
ð ˆ"Œ(�6Ñ
Ô
Ø	ˆŒ�&Ñ	Ô	Ø	ˆŒ�&Ñ	Ô	ð
ð 
ˆŒ�A�q�6˜A˜q˜6Ð"Ñ	#Ô	#Ø	ˆŒ�A�q�6˜A˜q˜6Ð"Ñ	#Ô	#Ø	ˆŒ�A�r�7˜R ˜HÐ%Ñ	&Ô	&ð	(ð
 
ˆŒ�>�>�>Ø%Ð%Ð%Ø"�?�?Ø�<�<ð!ñ 
"ô 
"ð 
ˆŒÐ#Ð#Ð#Ø%Ð%Ð%Ø"�?�?Ø�<�<ð!ñ 
"ô 
"ð 
ˆŒ�>�>�>Ø!�>�>Ø!�>�>Ø!�>�>ð#ñ 
$ô 
$ð	%ð 
ˆŒ�F˜C�= 8¨S /Ð2Ñ	3Ô	3Ø	ˆŒ�D˜"�:  S˜zÐ*Ñ	+Ô	+Ø	ˆŒ�F˜FÐ# g¨s ^Ð4Ñ	5Ô	5ð	7ð 
ˆŒ�C˜�:  S˜zÐ*Ñ	+Ô	+Ø	ˆŒ�D˜!�9˜s C˜jÐ)Ñ	*Ô	*Ø	ˆŒ�F˜FÐ# g¨s ^Ð4Ñ	5Ô	5ð	7ð 
ˆŒ�F˜C�= 8¨S /Ð2Ñ	3Ô	3Ø	ˆŒ�D˜!�9˜s C˜jÐ)Ñ	*Ô	*Ø	ˆŒ�F˜FÐ# g¨s ^Ð4Ñ	5Ô	5ð	7ð 
ˆŒ�F˜C�= 8¨S /Ð2Ñ	3Ô	3Ø	ˆŒ�D˜!�9˜s C˜jÐ)Ñ	*Ô	*Ø	ˆŒ�C˜�:  c˜{Ð+Ñ	,Ô	,ð	.ð 
ˆŒ�9�9�9˜i˜i˜i¨¨¨Ð3Ñ	4Ô	4Ø	ˆŒ�A�q�6˜A˜q˜6Ð"Ñ	#Ô	#Ø	ˆŒ�A�q�6˜A˜q˜6 A q 6Ð*Ñ	+Ô	+ð	-ð 
ˆŒ�=�=�= ) ) )¨Y¨Y¨YÐ7Ñ	8Ô	8Ø	ˆŒ�A�q�6˜A˜t˜9Ð%Ñ	&Ô	&Ø	ˆŒ�A�r�7˜Q ˜G b¨$ ZÐ0Ñ	1Ô	1ð	3ðe5€EðnBð Bð Bð7ð 7ð 7ðJð Jð Jð „[×Ò˜Y¨Ñ/Ô/Ø„[×Ò˜Y¨Ñ/Ô/Ø„[×Ò˜Y¨Ñ/Ô/Ø„[×Ò˜S 1 a &Ñ)Ô)Ø„[×Ò˜S 1 a &Ñ)Ô)ð&ð &ñ *Ô)ñ *Ô)ñ 0Ô/ñ 0Ô/ñ 0Ô/ð
&ð &ð &rG   r  )%r   Únumpyr   Únumpy.testingr   r   rr   r   rA   Úscipy.linalgr   r   r   r	   r
   r   r   r   Úscipy.sparse._sputilsr   Úscipy.conftestr   ÚintÚfloatÚfloat32ÚcomplexÚ	complex64ru   r    r"   rx   r¿   râ   rú   r   r  r  rv   rG   r   ú<module>r/     s3  ðØ 	€	€	€	Ø Ð Ð Ð à DÐ DÐ DÐ DÐ DÐ DÐ DÐ DØ €€€Ø *Ð *Ð *Ð *Ð *Ð *à (Ð (Ð (Ð (Ð (Ð (Ø KÐ KÐ KÐ KÐ KÐ KÐ KÐ KØ AÐ AÐ AÐ AÐ AÐ AÐ AÐ AØ 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ø (Ð (Ð (Ð (Ð (Ð (Ø .Ð .Ð .Ð .Ð .Ð .ð ˆu�b”j '¨2¬<Ð	8€ðð ð ðh&ð h&ð h&ð h&ð h&ñ h&ô h&ð h&ðVAHð AHð AHð AHð AHñ AHô AHð AHðHsEð sEð sEð sEð sEñ sEô sEð sEðl-ð -ð -ð -ð -ñ -ô -ð -ð /.ð /.ð /.ðdD+ð D+ð D+ðN.Að .Að .Aðb`&ð `&ð `&ð `&ð `&ñ `&ô `&ð `&ð `&ð `&rG   