Ë
    7^(hRt  ã                   óš  — d dl mZ d dlmZmZmZmZmZ d dlm	Z	m
Z
mZmZmZ d dlmZmZmZmZmZ d dlmZmZ d dlZd„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Z d„ Z!d„ Z"d„ Z#d„ Z$d„ Z%d„ Z&d„ Z'ee e!gZ(e"e#e$gZ)e%e&e'gZ*ejV                  jY                  de)«      d„ «       Z-ejV                  jY                  de)«      d„ «       Z. G d„ d«      Z/ e/«       Z0ejV                  jY                  de)«      d„ «       Z1ejV                  jY                  de)«      d„ «       Z2d„ Z3ejV                  jY                  de)«      d„ «       Z4ejV                  jY                  de)«      d „ «       Z5ejV                  jY                  de)«      d!„ «       Z6ejV                  jY                  de)«      d"„ «       Z7ejV                  jY                  de)«      d#„ «       Z8ejV                  jY                  de)«      d$„ «       Z9ejV                  jY                  de)«      d%„ «       Z:ejV                  jY                  de)«      d&„ «       Z;ejV                  jY                  de)«      d'„ «       Z<ejV                  jY                  de)«      d(„ «       Z=ejV                  jY                  de)«      d)„ «       Z>ejV                  jY                  de)«      d*„ «       Z?ejV                  jY                  de)«      d+„ «       Z@ejV                  jY                  de)«      d,„ «       ZAejV                  jY                  de)«      d-„ «       ZBejV                  jY                  de)«      d.„ «       ZCejV                  jY                  de)«      d/„ «       ZDejV                  jY                  de)«      d0„ «       ZEejV                  jY                  de)«      d1„ «       ZFejV                  jY                  de)«      d2„ «       ZGejV                  jY                  de)«      d3„ «       ZHejV                  jY                  de)«      d4„ «       ZIejV                  jY                  de)«      d5„ «       ZJejV                  jY                  de)«      d6„ «       ZKejV                  jY                  de(«      d7„ «       ZLejV                  jY                  de)«      d8„ «       ZMejV                  jY                  de)«      d9„ «       ZNejV                  jY                  de)«      d:„ «       ZOejV                  jY                  de)«      d;„ «       ZPejV                  jY                  de)«      d<„ «       ZQejV                  jY                  de)«      d=„ «       ZRejV                  jY                  de)«      d>„ «       ZSejV                  jY                  de)«      d?„ «       ZTejV                  jY                  de)«      d@„ «       ZUejV                  jY                  de)«      dA„ «       ZVejV                  jY                  de*«      dB„ «       ZWejV                  jY                  de*«      dC„ «       ZXejV                  jY                  de)«      dD„ «       ZYejV                  jY                  de)«      dE„ «       ZZejV                  jY                  de*«      dF„ «       Z[ejV                  jY                  de)«      dG„ «       Z\ejV                  jY                  de*«      dH„ «       Z]ejV                  jY                  de*«      dI„ «       Z^ejV                  jY                  de)«      dJ„ «       Z_ejV                  jY                  de*«      dK„ «       Z`ejV                  jY                  de*«      dL„ «       ZaejV                  jY                  de*«      dM„ «       ZbejV                  jY                  de*«      dN„ «       ZcejV                  jY                  de*«      dO„ «       ZdejV                  jY                  de*«      dP„ «       ZeejV                  jY                  de)«      dQ„ «       ZfejV                  jY                  de*«      dR„ «       ZgejV                  jY                  de*«      dS„ «       ZhejV                  jY                  de*«      dT„ «       ZiejV                  jY                  de*«      dU„ «       ZjejV                  jY                  de*«      dV„ «       ZkejV                  jY                  de*«      dW„ «       ZlejV                  jY                  de)«      dX„ «       Zmy)Yé    )ÚGROUND_TYPES)ÚZZÚQQÚGFÚZZ_IÚsymbols)ÚDMBadInputErrorÚDMDomainErrorÚDMNonSquareMatrixErrorÚDMNonInvertibleMatrixErrorÚDMShapeError)ÚDMÚDomainMatrixÚDDMÚSDMÚDFM)ÚraisesÚskipNc                  óx	  ‡
‡‡‡‡— t        d«      t        d«      gt        d«      t        d«      gt        d«      t        d«      ggŠt        d«      t        d«      dœt        d«      t        d«      dœt        d«      t        d«      dœdœŠg } g }g g g}i }i }i }t        d«      t        d«      gt        d«      t        d«      gt        d«      t        d«      t        d	«      ggŠt        d«      t        d«      dœt        d«      t        d«      dœt        d«      t        d«      t        d	«      dœdœŠt        g}t        g}t        d
k(  r|j	                  t
        «       |D �]ë  Š
 ‰
‰dt         «      }|j                  dk(  sJ ‚|j                  dk(  sJ ‚|j                  t         k(  sJ ‚|j                  dk(  sJ ‚‰
t
        urt        j                  |d   d   «      du s(J ‚t        j                  |j                  d   «      du sJ ‚t        ‰dt         «      }	‰
t
        u r0|	j                  |k(  sJ ‚|	j                  j                  «       |k7  skJ ‚t        d
k(  r0|	j                  j                  «       |k(  sJ ‚|	j                  |k7  s2J ‚|	j                  |k(  sJ ‚|	j                  j                  «       |k(  sJ ‚ ‰
| dt         «      j                  dk(  sJ ‚ ‰
|dt         «      j                  dk(  sJ ‚ ‰
|dt         «      j                  dk(  sJ ‚t        t        ˆ
ˆfd„«       t        t        ˆ
ˆfd„«       t        t        ˆ
ˆfd„«       �Œî |D �]+  Š
 ‰
‰dt         «      }|j                  dk(  sJ ‚|j                  dk(  sJ ‚|j                  t         k(  sJ ‚|j                  dk(  sJ ‚t        j                  |d   d   «      du sJ ‚t        ‰dt         «      j                  |k(  sJ ‚ ‰
|dt         «      j                  dk(  sJ ‚ ‰
|dt         «      j                  dk(  sJ ‚ ‰
|dt         «      j                  dk(  sJ ‚t        t        ˆ
ˆfd„«       t        t        ˆ
ˆfd„«       t        t        ˆ
ˆfd„«       �Œ. t        t        ˆfd„«       t        t        ˆfd„«       t        t        ˆfd„«       y)zTest the DDM, etc constructors.é   é   é   é   é   é   ©r   r   ©r   r   r   é   Úflint©r   r   r   T©r   r   ©r   r   ©r   r   c                  ó    •—  ‰ ‰dt         «      S ©N©r   r   ©r   ©ÚXDMÚlols   €€úa/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sympy/polys/matrices/tests/test_xxm.pyú<lambda>z'test_XXM_constructors.<locals>.<lambda>c   ó   ø€ ©¨C°¼Ó(<€ ó    c                  ó    •—  ‰ ‰dt         «      S ©Nr    r'   )r)   Úlol_bads   €€r+   r,   z'test_XXM_constructors.<locals>.<lambda>d   ó   ø€ ©¨G°V¼RÓ(@€ r.   c                  ó    •—  ‰ ‰dt         «      S r0   r'   ©r)   Údods   €€r+   r,   z'test_XXM_constructors.<locals>.<lambda>e   r-   r.   c                  ó    •—  ‰ ‰dt         «      S r%   r'   r4   s   €€r+   r,   z'test_XXM_constructors.<locals>.<lambda>u   r-   r.   c                  ó    •—  ‰ ‰dt         «      S r0   r'   r(   s   €€r+   r,   z'test_XXM_constructors.<locals>.<lambda>v   r-   r.   c                  ó    •—  ‰ ‰dt         «      S r0   r'   )r)   Údod_bads   €€r+   r,   z'test_XXM_constructors.<locals>.<lambda>w   r2   r.   c                  ó&   •— t        ‰ dt        «      S r%   ©r   r   ©r*   s   €r+   r,   z'test_XXM_constructors.<locals>.<lambda>y   s   ø€ ¤L°°f¼bÓ$A€ r.   c                  ó&   •— t        ‰ dt        «      S r0   r;   )r1   s   €r+   r,   z'test_XXM_constructors.<locals>.<lambda>z   ó   ø€ ¤L°¸&Ä"Ó$E€ r.   c                  ó&   •— t        ‰ dt        «      S r0   r;   )r9   s   €r+   r,   z'test_XXM_constructors.<locals>.<lambda>{   r>   r.   N)r   r   r   r   Úappendr   ÚrowsÚcolsÚdomainÚshapeÚof_typeÚrepr   Úto_ddmr   r	   )Úlol_0x0Úlol_0x2Úlol_2x0Údod_0x0Údod_0x2Údod_2x0Ú	XDM_denseÚ
XDM_sparseÚAÚAdmr)   r5   r9   r*   r1   s             @@@@@r+   Útest_XXM_constructorsrR   #   s&  ü€ ô 
ˆA‹”�1“ˆÜ	ˆA‹”�1“ˆÜ	ˆA‹”�1“ˆð€Cô �!‹uœ˜A›ÑÜ�!‹uœ˜A›ÑÜ�!‹uœ˜A›Ññ€Cð €GØ€GØ�2ˆh€GØ€GØ€GØ€Gô 
ˆA‹”�1“ˆÜ	ˆA‹”�1“ˆÜ	ˆA‹”�1“”r˜!“uÐð€Gô �!‹uœ˜A›ÑÜ�!‹uœ˜A›ÑÜ�!‹uœ˜A›¤2 a£5Ñ)ñ€Gô �€IÜ�€Jä�wÒØ×ÑœÔàó >ˆá��VœRÓ ˆØ�v‰v˜Š{Ðˆ{Ø�v‰v˜Š{Ðˆ{Ø�x‰xœ2Š~Ðˆ~Ø�w‰w˜&Ò Ð Ð Ø”c‰>Ü—:‘:˜a ™d 1™gÓ&¨$Ñ.Ð.Ð.ä—:‘:˜aŸe™e D™kÓ*¨dÑ2Ð2Ð2ä˜3 ¬Ó+ˆØ”#‰:Ø—7‘7˜a’<Ð�<Ø—7‘7—>‘>Ó# qÒ(Ð(Ð(Ü˜WÒ$Ø—7‘7—>‘>Ó# qÒ(Ð(Ð(Ø—7‘7˜a’<Ð�<à—7‘7˜a’<Ð�<Ø—7‘7—>‘>Ó# qÒ(Ð(Ð(á�7˜F¤BÓ'×-Ñ-°Ò7Ð7Ð7Ù�7˜F¤BÓ'×-Ñ-°Ò7Ð7Ð7Ù�7˜F¤BÓ'×-Ñ-°Ò7Ð7Ð7ÜŒÔ <Ô=ÜŒÔ @ÔAÜŒÔ <Ö=ð9>ð< ó Bˆá��VœRÓ ˆØ�v‰v˜Š{Ðˆ{Ø�v‰v˜Š{Ðˆ{Ø�x‰xœ2Š~Ðˆ~Ø�w‰w˜&Ò Ð Ð Ü�z‰z˜!˜A™$˜q™'Ó" dÑ*Ð*Ð*ä˜C ¬Ó,×0Ñ0°AÒ5Ð5Ð5á�7˜F¤BÓ'×-Ñ-°Ò7Ð7Ð7Ù�7˜F¤BÓ'×-Ñ-°Ò7Ð7Ð7Ù�7˜F¤BÓ'×-Ñ-°Ò7Ð7Ð7ÜŒÔ <Ô=ÜŒÔ <Ô=ÜŒÔ @ÖAð!Bô$ Œ?ÓAÔBÜ
Œ?ÓEÔFÜ
Œ?ÓEÕFr.   c                  óú  — t        d«      t        d«      gt        d«      t        d«      gg} t        d«      t        d«      dœt        d«      t        d«      dœdœ}t        d«      t        d«      gt        d«      t        d«      gg}t        d«      t        d«      dœt        d«      t        d«      dœdœ}t        | dt         «      }t        |dt         «      }t        | dt         «      }t        |dt         «      }t        |dt         «      }t        |dt         «      }	t        |dt         «      }
t        |dt         «      }||||g}||	|
|g}t        dk(  rPt        ddgddggdt         «      }t        ddgddggdt         «      }|j                  |«       |j                  |«       t        |«      D ]B  \  }}t        |«      D ]/  \  }}||k(  r||k(  d	u sJ ‚||k7  d
u rŒJ ‚||k(  d
u sJ ‚||k7  d	u rŒ/J ‚ ŒD t        |«      D ]B  \  }}t        |«      D ]/  \  }}||k(  r||k(  d	u sJ ‚||k7  d
u rŒJ ‚||k(  d
u sJ ‚||k7  d	u rŒ/J ‚ ŒD t        |«      D ]*  \  }}t        |«      D ]  \  }}||k(  d
u sJ ‚||k7  d	u rŒJ ‚ Œ, y)z1Test equality for DDM, SDM, DFM and DomainMatrix.r   r   r   r   r   r   ©r   r   r   TFN)r   r   r   r   r   r   r@   Ú	enumerate)Úlol1Údod1Úlol2Údod2ÚA1_ddmÚA1_sdmÚA1_dm_dÚA1_dm_sÚA2_ddmÚA2_sdmÚA2_dm_dÚA2_dm_sÚA1_allÚA2_allÚA1_dfmÚA2_dfmÚnÚAnÚmÚAmÚA1ÚA2s                         r+   Útest_XXM_eqrl   ~   sÈ  € ô �‹U”B�q“EˆNœR ›U¤B q£E˜NÐ+€DÜ�a“5œR ›UÑ#¬B¨q«E´b¸³eÑ(<Ñ=€Dä�‹U”B�q“EˆNœR ›U¤B q£E˜NÐ+€DÜ�a“5œR ›UÑ#¬B¨q«E´b¸³eÑ(<Ñ=€Dä��vœrÓ"€FÜ��vœrÓ"€FÜ˜4 ¬Ó,€GÜ˜4 ¬Ó,€Gä��vœrÓ"€FÜ��vœrÓ"€FÜ˜4 ¬Ó,€GÜ˜4 ¬Ó,€Gà�f˜g wÐ/€FØ�f˜g wÐ/€Fä�wÒä�q˜!�f˜q !˜fÐ% v¬rÓ2ˆÜ�q˜!�f˜q !˜fÐ% v¬rÓ2ˆà�‰�fÔØ�‰�fÔä˜6Ó"ò *‰ˆˆ2Ü˜vÓ&ò 	*‰EˆAˆrØ�AŠvØ˜b™ TÑ)Ð)Ð)Ø˜b™ UÒ*Ð*Ð*à˜b™ UÑ*Ð*Ð*Ø˜b™ TÒ)Ð)Ð)ñ	*ð*ô ˜6Ó"ò *‰ˆˆ2Ü˜vÓ&ò 	*‰EˆAˆrØ�AŠvØ˜b™ TÑ)Ð)Ð)Ø˜b™ UÒ*Ð*Ð*à˜b™ UÑ*Ð*Ð*Ø˜b™ TÒ)Ð)Ð)ñ	*ð*ô ˜6Ó"ò &‰ˆˆ2Ü˜vÓ&ò 	&‰EˆAˆrØ˜"‘H Ñ&Ð&Ð&Ø˜"‘H Ò%Ð%Ð%ñ	&ñ&r.   c                  ó¨  ‡	‡
‡— t        d«      t        d«      gt        d«      t        d«      gg} t        d«      t        d«      dœt        d«      t        d«      dœdœ}t        | dt         «      }t        |dt         «      }t        | dt         «      }t        |dt         «      }||||g}t        dk(  r"t        | dt         «      }|j                  |«       |D ]^  Š	‰	j                  «       |k(  sJ ‚‰	j                  «       |k(  sJ ‚t        dk7  sŒ7t        t        ˆ	fd„«       ‰	j                  «       |k(  rŒ^J ‚ t        dk(  �r|D �]  Š	‰	j                  «       k(  sJ ‚t         t        t        d	«      t        fD ]Õ  Št!        ‰	t
        «      r*t        j"                  ‰«      st        t        ˆ	ˆfd
„«       Œ=‰	j%                  ‰«      Š
t        j"                  ‰«      r<|j%                  ‰«      }‰
j                  «       |k(  sJ ‚‰
j                  «       |k(  rŒ�J ‚t        t        ˆ
fd„«       ‰
j                  «       |j%                  ‰«      k(  rŒÕJ ‚ �Œ yy)z4Test to_ddm etc. for DDM, SDM, DFM and DomainMatrix.r   r   r   r   r   rT   r   c                  ó$   •— ‰ j                  «       S ©N©Úto_dfm©rP   s   €r+   r,   ztest_to_XXM.<locals>.<lambda>É   s   ø€ °·±³
€ r.   r   c                  ó&   •— ‰ j                  ‰«      S ro   )Ú
convert_to)rP   ÚKs   €€r+   r,   ztest_to_XXM.<locals>.<lambda>Ô   s   ø€ ¸¿¹ÀQ»€ r.   c                  ó$   •— ‰ j                  «       S ro   rp   )ÚA_Ks   €r+   r,   ztest_to_XXM.<locals>.<lambda>Ü   s   ø€ ¸C¿J¹J»L€ r.   N)r   r   r   r   r   r   r@   rG   Úto_sdmr   ÚNotImplementedErrorÚto_dfm_or_ddmrq   r   r   r   Ú
isinstanceÚ_supports_domainrt   )r*   r5   ÚA_ddmÚA_sdmÚA_dm_dÚA_dm_sÚA_allÚA_dfmÚA_dfm_KrP   rw   ru   s            @@@r+   Útest_to_XXMr„   ´   s  ú€ ô ˆq‹E”2�a“5ˆ>œB˜q›E¤2 a£5˜>Ð
*€CÜ�Q“%œB˜q›EÑ"¬2¨a«5´R¸³UÑ';Ñ
<€Cä��VœRÓ €EÜ��VœRÓ €EÜ˜#˜v¤rÓ*€FÜ˜#˜v¤rÓ*€Fà�E˜6 6Ð*€Eä�wÒÜ�C˜¤Ó$ˆØ�‰�UÔàò .ˆØ�x‰x‹z˜UÒ"Ð"Ð"Ø�x‰x‹z˜UÒ"Ð"Ð"Ü˜7Ó"ÜÔ&Ó(:Ô;Ø—?‘?Ó$¨Ó-Ð-Ð-ð.ô �wÓØó 	JˆAØ—8‘8“: Ò&Ð&Ð&Üœ"œb ›e¤TÐ*ò J�Ü˜a¤Ô%¬c×.BÑ.BÀ1Ô.EÜÔ.Ô0GÕHàŸ,™, q›/�CÜ×+Ñ+¨AÔ.Ø"'×"2Ñ"2°1Ó"5˜Ø"Ÿz™z›|¨wÒ6Ð6Ð6Ø"×0Ñ0Ó2°gÓ=Ð=Ð=äÔ2Ó4HÔIØ"×0Ñ0Ó2°e×6FÑ6FÀqÓ6IÓIÐIÐIòJñ	Jð r.   c                  ó~  ‡— t        d«      \  } }t        dv r-g }i }t        t        t	        d«      t        |    t        | |f   g}nƒt        dk(  rlddl}t        t        g}t        |j                  t        |j                  t	        d«      di}t        |    t        | |f   t        j                  | |«      t        g}nJ dt        z  «       ‚|D ]>  Št        j                  ‰«      d	u sJ ‚|‰   €Œ"t        j                  ‰«      |‰   k(  rŒ>J ‚ |D ].  Št        j                  ‰«      du sJ ‚t        t        ˆfd
„«       Œ0 y)z(Test which domains are supported by DFM.zx, y)ÚpythonÚgmpyr   r   r   NFzUnknown GROUND_TYPES: %sTc                  ó.   •— t        j                  ‰ «      S ro   )r   Ú_get_flint_func)rC   s   €r+   r,   z"test_DFM_domains.<locals>.<lambda>  s   ø€ ¬C×,?Ñ,?ÀÓ,G€ r.   )r   r   r   r   r   r   Úfmpz_matÚfmpq_matÚ
frac_fieldr   r   r|   r‰   r   ry   )ÚxÚyÚ	supportedÚflint_funcsÚnot_supportedr   rC   s         @r+   Útest_DFM_domainsr’   à   sE  ø€ ô �6‹?�D€A€qäÐ)Ñ)àˆ	ØˆÜœR¤ A£¬¨1©¬r°!°A°#©wÐ7‰ä	˜Ò	 ãÜœ�Hˆ	ä�—‘Ü�—‘Üˆq‹E�4ð
ˆô ˆq‰EÜˆq�ˆs‰GÜ�M‰M˜!˜AÓäð
‰ð 	@Ð0´<Ñ?Ó?ˆuàò FˆÜ×#Ñ# FÓ+¨tÑ3Ð3Ð3Ø�vÑÑ*Ü×&Ñ& vÓ.°+¸fÑ2EÓEÐEÐEðFð  ò IˆÜ×#Ñ# FÓ+¨uÑ4Ð4Ð4ÜÔ"Ó$GÕHñIr.   c                 óÔ   — t        | |«      }|dk(  r|j                  «       S |dk(  r|j                  «       S |dk(  r$t        dk7  rt	        d«       |j                  «       S J d|z  «       ‚)z&Make a DM of type typ over K from lol.r   r   r   r   z%DFM not supported in this ground typezUnknown type %s)r   rG   rx   r   r   rq   )r*   Útypru   rP   s       r+   Ú_DMr•   
  sg   € ä
ˆ3�‹
€Aà
ˆe‚|Ø�x‰x‹zÐØ	�ŠØ�x‰x‹zÐØ	�ŠÜ˜7Ò"ÜÐ8Ô9Ø�x‰x‹zÐà-Ð'¨#Ñ-Ó-ˆur.   c                 ó$   — t        | |t        «      S )z'Make a DM of type typ over ZZ from lol.)r•   r   ©r*   r”   s     r+   Ú_DMZr˜     ó   € äˆs�CœÓÐr.   c                 ó$   — t        | |t        «      S )z'Make a DM of type typ over QQ from lol.)r•   r   r—   s     r+   Ú_DMQr›     r™   r.   c                 ó   — t        | d|«      S )zMake a DDM over K from lol.r   ©r•   ©r*   ru   s     r+   ÚDM_ddmrŸ   $  ó   € äˆs�E˜1ÓÐr.   c                 ó   — t        | d|«      S )zMake a SDM over K from lol.r   r�   rž   s     r+   ÚDM_sdmr¢   )  r    r.   c                 ó   — t        | d|«      S )zMake a DFM over K from lol.r   r�   rž   s     r+   ÚDM_dfmr¤   .  r    r.   c                 ó   — t        | d«      S ©zMake a DDM from lol.r   ©r˜   r<   s    r+   ÚDMZ_ddmr¨   3  ó   € ä��UÓÐr.   c                 ó   — t        | d«      S ©zMake a SDM from lol.r   r§   r<   s    r+   ÚDMZ_sdmr¬   8  r©   r.   c                 ó   — t        | d«      S ©zMake a DFM from lol.r   r§   r<   s    r+   ÚDMZ_dfmr¯   =  r©   r.   c                 ó   — t        | d«      S r¦   ©r›   r<   s    r+   ÚDMQ_ddmr²   B  r©   r.   c                 ó   — t        | d«      S r«   r±   r<   s    r+   ÚDMQ_sdmr´   G  r©   r.   c                 ó   — t        | d«      S r®   r±   r<   s    r+   ÚDMQ_dfmr¶   L  r©   r.   r   c                 ó  ‡‡‡— ddgddgg} | |«      Š‰j                   \  }}g d¢}|D ]a  Š|D ]Z  Šd‰cxk  r|k  r8n n5d‰cxk  r|k  r*n n'‰j                  ‰‰«      t        |‰   ‰   «      k(  rŒDJ ‚t        t        ˆˆˆfd„«       Œ\ Œc y)zTest getitem for DDM, etc.r   r   r   )éýÿÿÿéþÿÿÿéÿÿÿÿr   r   r   r¹   c                  ó(   •— ‰ j                  ‰‰«      S ro   )Úgetitem)rP   ÚiÚjs   €€€r+   r,   z"test_XDM_getitem.<locals>.<lambda>e  s   ø€ ¨1¯9©9°Q¸«?€ r.   N)rD   r¼   r   r   Ú
IndexError)r   r*   rh   rf   ÚindicesrP   r½   r¾   s        @@@r+   Útest_XDM_getitemrÁ   V  s”   ú€ ð ˆqˆ6�A�q�6Ð
€CÙ
ˆ3‹€AØ�7‰7�D€A€qâ#€Gàò <ˆØò 	<ˆAØ�QŒ{˜�{˜r Qœ{¨�{Ø—y‘y  A“¬"¨S°©V°A©Y«-Ó7Ð7Ð7ä”zÕ#:Õ;ñ		<ñ<r.   c                 óV  ‡—  | g d¢g d¢g«      Š‰j                  ddt        d«      «       ‰ | g d¢g d¢g«      k(  sJ ‚‰j                  ddt        d«      «       ‰ | g d¢g d¢g«      k(  sJ ‚‰j                  dd	t        d
«      «       ‰ | g d¢g d¢g«      k(  sJ ‚‰j                  ddt        d«      «       ‰ | g d¢g d¢g«      k(  sJ ‚‰j                  ddt        d«      «       ‰ | g d¢g d¢g«      k(  sJ ‚‰j                  ddt        d«      «       ‰ | g d¢g d¢g«      k(  sJ ‚t        t        ˆfd„«       t        t        ˆfd„«       ‰j                  ddt        d«      «       ‰ | g d¢g d¢g«      k(  sJ ‚‰j                  ddt        d«      «       ‰ | g d¢g d¢g«      k(  sJ ‚‰j                  ddt        d«      «       ‰ | g d¢g d¢g«      k(  sJ ‚‰j                  ddt        d«      «       ‰ | g d¢g d¢g«      k(  sJ ‚t        t        ˆfd„«       t        t        ˆfd „«       ‰j                  dd	t        d«      «       ‰ | g d¢g d!¢g«      k(  sJ ‚‰j                  ddt        d«      «       ‰ | g d¢g d"¢g«      k(  sJ ‚‰j                  ddt        d«      «       ‰ | g d¢g d#¢g«      k(  sJ ‚‰j                  ddt        d«      «       ‰ | g d$¢g d#¢g«      k(  sJ ‚‰j                  ddt        d«      «       ‰ | g d%¢g d#¢g«      k(  sJ ‚‰j                  ddt        d«      «       ‰ | g d%¢g d#¢g«      k(  sJ ‚‰j                  ddt        d«      «       ‰ | g d#¢g d#¢g«      k(  sJ ‚‰j                  ddt        d«      «       ‰ | g d&¢g d#¢g«      k(  sJ ‚y')(zTest setitem for DDM, etc.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                  ó<   •— ‰ j                  ddt        d«      «      S )Nr   r   é   ©Úsetitemr   rr   s   €r+   r,   z"test_XDM_setitem.<locals>.<lambda>€  ó   ø€ ˜qŸy™y¨¨A¬r°"«vÓ6€ r.   c                  ó<   •— ‰ j                  ddt        d«      «      S )Nr   éüÿÿÿé   rÉ   rr   s   €r+   r,   z"test_XDM_setitem.<locals>.<lambda>�  s   ø€ ˜qŸy™y¨¨B´°2³Ó7€ r.   é   )rÏ   r   r   é   )rÏ   rÐ   r   é   )rÏ   rÑ   r   é   )rÆ   rÒ   rÄ   c                  ó<   •— ‰ j                  ddt        d«      «      S )Nr   r   é   rÉ   rr   s   €r+   r,   z"test_XDM_setitem.<locals>.<lambda>�  rË   r.   c                  ó<   •— ‰ j                  ddt        d«      «      S )Nr¸   r   é   rÉ   rr   s   €r+   r,   z"test_XDM_setitem.<locals>.<lambda>�  s   ø€ ˜qŸy™y¨¨Q´°2³Ó7€ r.   )rÏ   rÑ   r   )rÏ   r   r   ©r   r   r   )r   rÒ   rÄ   )r   rÒ   r   ©r   r   r   N)rÊ   r   r   r¿   ©r   rP   s    @r+   Útest_XDM_setitemrÚ   h  sX  ø€ ñ 	ŠI’yÐ!Ó"€Aà‡I�Iˆa�”B�q“EÔØ‘’IšyÐ)Ó*Ò*Ð*Ð*à‡I�Iˆa�”B�q“EÔØ‘’IšyÐ)Ó*Ò*Ð*Ð*à‡I�Iˆa�”B�q“EÔØ‘’IšyÐ)Ó*Ò*Ð*Ð*à‡I�Iˆa�”R˜“UÔØ‘’IšyÐ)Ó*Ò*Ð*Ð*à‡I�Iˆa�”R˜“VÔØ‘’J¢	Ð*Ó+Ò+Ð+Ð+à‡I�Iˆa�”R˜“VÔØ‘’K¢Ð+Ó,Ò,Ð,Ð,ä
Œ:Ó6Ô7Ü
Œ:Ó7Ô8à‡I�Iˆa�”B�r“FÔØ‘’K¢Ð,Ó-Ò-Ð-Ð-à‡I�Iˆa�”B�r“FÔØ‘’K¢Ð-Ó.Ò.Ð.Ð.à‡I�Iˆb�!”R˜“VÔØ‘’K¢Ð-Ó.Ò.Ð.Ð.à‡I�Iˆb�!”R˜“VÔØ‘’K¢Ð-Ó.Ò.Ð.Ð.ä
Œ:Ó6Ô7Ü
Œ:Ó7Ô8à‡I�Iˆa�”B�q“EÔØ‘’K¢Ð-Ó.Ò.Ð.Ð.à‡I�Iˆa�”R˜“UÔØ‘’K¢Ð,Ó-Ò-Ð-Ð-à‡I�Iˆa�”R˜“UÔØ‘’K¢Ð+Ó,Ò,Ð,Ð,à‡I�Iˆa�”B�q“EÔØ‘’J¢	Ð*Ó+Ò+Ð+Ð+à‡I�Iˆa�”R˜“UÔØ‘’J¢	Ð*Ó+Ò+Ð+Ð+à‡I�Iˆa�”B�q“EÔØ‘’J¢	Ð*Ó+Ò+Ð+Ð+à‡I�Iˆa�”R˜“UÔØ‘’IšyÐ)Ó*Ò*Ð*Ð*à‡I�Iˆa�”R˜“UÔØ‘’IšyÐ)Ó*Ò*Ð*Ñ*r.   c                   ó   — e Zd Zd„ Zy)Ú_Slicedc                 ó   — |S ro   © )ÚselfÚitems     r+   Ú__getitem__z_Sliced.__getitem__¬  s   € Øˆr.   N)Ú__name__Ú
__module__Ú__qualname__rá   rÞ   r.   r+   rÜ   rÜ   «  s   „ ór.   rÜ   c                 óÈ  —  | g d¢g d¢g d¢g«      } |j                   t        d d …d d …f   Ž |k(  sJ ‚ |j                   t        dd …d d …f   Ž  | g d¢g d¢g«      k(  sJ ‚ |j                   t        dd …dd …f   Ž  | ddgddgg«      k(  sJ ‚ |j                   t        dd …d d	…f   Ž  | d
dgddgg«      k(  sJ ‚ |j                   t        dd …d d	d…f   Ž  | d
gdgg«      k(  sJ ‚ |j                   t        d d …d d d…f   Ž  | ddgd
dgddgg«      k(  sJ ‚ |j                   t        d d d…d d …f   Ž  | g d¢g d¢g«      k(  sJ ‚ |j                   t        d d d…d d d…f   Ž  | ddgddgg«      k(  sJ ‚ |j                   t        d d d…d d d…f   Ž  | ddgddgg«      k(  sJ ‚ |j                   t        d d d…d d d…f   Ž  | ddgddgg«      k(  sJ ‚ |j                   t        d d d…d d d…f   Ž  | ddgddgg«      k(  sJ ‚ |j                   t        d d …d d d	…f   Ž  | g d¢g d¢g d¢g«      k(  sJ ‚ |j                   t        d d d	…d d …f   Ž  | g d¢g d¢g d¢g«      k(  sJ ‚y )N©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   )Úextract_sliceÚ_slicerÙ   s     r+   Útest_XXM_extract_slicerë   ³  sÄ  € á
ŠI’y¢)Ð,Ó-€AØˆ1�?‰?œF¢1¢Q 3™KÐ(¨AÒ-Ð-Ð-Øˆ1�?‰?œF 1¡2¢a 4™LÐ)©R²ºIÐ0FÓ-GÒGÐGÐGØˆ1�?‰?œF 1¡2 a¡b 5™MÐ*©b°1°a°&¸1¸a¸&Ð1AÓ.BÒBÐBÐBØˆ1�?‰?œF 1¡2 c r c 6™NÐ+©r°A°q°6¸A¸q¸6Ð2BÓ/CÒCÐCÐCØˆ1�?‰?œF 1¡2 e r¨! e 8Ñ,Ð-±°a°S¸1¸#°J³Ò?Ð?Ð?Øˆ1�?‰?œF¢1¡S q S 5™MÐ*©b°1°a°&¸1¸a¸&À1ÀaÀ&Ð1IÓ.JÒJÐJÐJØˆ1�?‰?œF¡3 Q 3¢q 5™MÐ*©b²)ºYÐ1GÓ.HÒHÐHÐHØˆ1�?‰?œF¡3 Q 3¡s¨ s 7™OÐ,±°Q¸°F¸QÀ¸FÐ3CÓ0DÒDÐDÐDØˆ1�?‰?œF¡3 Q 3¡t¨ t 8Ñ,Ð-±°a¸°V¸aÀ¸VÐ4DÓ1EÒEÐEÐEØˆ1�?‰?œF¡4 R 4©¨!¨ 8Ñ,Ð-±°a¸°V¸aÀ¸VÐ4DÓ1EÒEÐEÐEØˆ1�?‰?œF¡4 R 4©¨"¨ 9Ñ-Ð.±"°q¸!°f¸qÀ!¸fÐ5EÓ2FÒFÐFÐFØˆ1�?‰?œF¢1¡T r T 6™NÐ+©r²9ºiÊÐ2SÓ/TÒTÐTÐTØˆ1�?‰?œF¡4 R 4ª 6™NÐ+©r²9ºiÊÐ2SÓ/TÒTÐTÑTr.   c                 ól  ‡—  | g d¢g d¢g d¢g«      Š‰j                  g d¢g d¢«      ‰k(  sJ ‚‰j                  ddgddg«       | ddgd	d
gg«      k(  sJ ‚‰j                  ddgddg«       | ddgdd	gg«      k(  sJ ‚‰j                  ddgddg«       | ddgdd
gg«      k(  sJ ‚‰j                  ddgdg«       | dgdgg«      k(  sJ ‚‰j                  ddgg «       | dgg«      j                  dt        «      k(  sJ ‚‰j                  g g d¢«       | dgg«      j                  dt        «      k(  sJ ‚t        t        ˆfd„«       t        t        ˆfd„«       t        t        ˆfd„«       t        t        ˆfd„«        | g d¢g d¢g d¢g«      }|j                  ddgddg«       | ddgddgg«      k(  sJ ‚y )Nræ   rç   rè   r   r   r   r   r   rÃ   rÄ   r   r   r   r#   )r   r   c                  ó0   •— ‰ j                  ddgddg«      S )Nr   r   r   r   ©Úextractrr   s   €r+   r,   z"test_XXM_extract.<locals>.<lambda>Ò  ó   ø€ ˜qŸy™y¨!¨Q¨°!°Q°Ó8€ r.   c                  ó0   •— ‰ j                  ddgddg«      S )Nr   r   r   rÍ   rî   rr   s   €r+   r,   z"test_XXM_extract.<locals>.<lambda>Ó  s   ø€ ˜qŸy™y¨!¨Q¨°!°R°Ó9€ r.   c                  ó0   •— ‰ j                  ddgddg«      S )Nr   r   r   rî   rr   s   €r+   r,   z"test_XXM_extract.<locals>.<lambda>Ô  rð   r.   c                  ó0   •— ‰ j                  ddgddg«      S )NrÍ   r   r   r   rî   rr   s   €r+   r,   z"test_XXM_extract.<locals>.<lambda>Õ  s   ø€ ˜qŸy™y¨"¨a¨°1°a°&Ó9€ r.   r×   )rï   Úzerosr   r   r¿   )r   ÚBrP   s     @r+   Útest_XXM_extractrö   Å  s¿  ø€ ñ 	ŠI’y¢)Ð,Ó-€Aà�9‰9’Y¢	Ó*¨aÒ/Ð/Ð/Ø�9‰9�a˜�V˜a ˜VÓ$©¨Q°¨F°Q¸°FÐ+;Ó(<Ò<Ð<Ð<Ø�9‰9�a˜�V˜a ˜VÓ$©¨Q°¨F°Q¸°FÐ+;Ó(<Ò<Ð<Ð<Ø�9‰9�a˜�V˜a ˜VÓ$©¨Q°¨F°Q¸°FÐ+;Ó(<Ò<Ð<Ð<Ø�9‰9�a˜�V˜a˜SÓ!¡R¨!¨¨q¨c¨
£^Ò3Ð3Ð3Ø�9‰9�a˜�V˜RÓ ¡B¨¨ u£I§O¡O°F¼BÓ$?Ò?Ð?Ð?Ø�9‰9�RšÓ#¡r¨A¨3¨%£y§¡°v¼rÓ'BÒBÐBÐBä
Œ:Ó8Ô9Ü
Œ:Ó9Ô:Ü
Œ:Ó8Ô9Ü
Œ:Ó9Ô:á
ŠI’y¢)Ð,Ó-€AØ�9‰9�a˜�V˜a ˜VÓ$©¨Q°¨F°Q¸°FÐ+;Ó(<Ò<Ð<Ñ<r.   c                  óŽ  — t        g d¢g d¢g d¢gdt        «      } t        | «      dk(  sJ ‚t        | j                  «       «      dk(  sJ ‚t        | j	                  «       «      dk(  sJ ‚t        | «      dk(  sJ ‚t        | j                  «       «      dk(  sJ ‚t        | j	                  «       «      d	k(  sJ ‚t        t        d
«      t        d«      dœdt        d«      idœdt        «      }t        |«      dk(  sJ ‚t        |j                  «       «      dk(  sJ ‚t        |j	                  «       «      dk(  sJ ‚t        |«      dk(  sJ ‚t        dk7  r<t        |j                  «       «      dk(  sJ ‚t        |j	                  «       «      dk(  s>J ‚t        |j                  «       «      dk(  sJ ‚t        |j	                  «       «      dk(  sJ ‚t        dk(  ryt        | j                  «       «      dk(  sJ ‚t        |j                  «       «      dk(  sJ ‚t        | j                  «       «      dk(  sJ ‚t        |j                  «       «      dk(  sJ ‚y y )Nræ   rç   rè   ©r   r   z;DomainMatrix([[1, 2, 3], [4, 5, 6], [7, 8, 9]], (3, 3), ZZ)z![[1, 2, 3], [4, 5, 6], [7, 8, 9]]zE{0: {0: 1, 1: 2, 2: 3}, 1: {0: 4, 1: 5, 2: 6}, 2: {0: 7, 1: 8, 2: 9}}z2DDM([[1, 2, 3], [4, 5, 6], [7, 8, 9]], (3, 3), ZZ)zVSDM({0: {0: 1, 1: 2, 2: 3}, 1: {0: 4, 1: 5, 2: 6}, 2: {0: 7, 1: 8, 2: 9}}, (3, 3), ZZ)r   r   r   r   r   rT   z6DomainMatrix({0: {0: 1, 1: 2}, 1: {0: 3}}, (2, 2), ZZ)z[[1, 2], [3, 0]]z{0: {0: 1, 1: 2}, 1: {0: 3}}r‡   z!DDM([[1, 2], [3, 0]], (2, 2), ZZ)z-SDM({0: {0: 1, 1: 2}, 1: {0: 3}}, (2, 2), ZZ)z5DDM([[mpz(1), mpz(2)], [mpz(3), mpz(0)]], (2, 2), ZZ)z<SDM({0: {0: mpz(1), 1: mpz(2)}, 1: {0: mpz(3)}}, (2, 2), ZZ)r   z2DFM([[1, 2, 3], [4, 5, 6], [7, 8, 9]], (3, 3), ZZ)z!DFM([[1, 2], [3, 0]], (2, 2), ZZ))r   r   ÚstrrG   rx   Úreprr   rq   )rP   rõ   s     r+   Útest_XXM_strrû   Û  s›  € ä’i¢ªIÐ6¸ÄÓC€Aäˆq‹6ØEòFð Fð Fäˆq�x‰x‹z‹?Ø+ò,ð ,ð ,äˆq�x‰x‹z‹?ØOòPð Pð Pô �‹7ØEòFð Fð Fä�—‘“
ÓØ<ò=ð =ð =ä�—‘“
ÓØ`òað að aô 	œR ›U¤r¨!£uÑ-°1´b¸³e°*Ñ=¸vÄrÓJ€Aäˆq‹6Ø@òAð Að Aäˆq�x‰x‹z‹?Øòð ð äˆq�x‰x‹z‹?Ø&ò'ð 'ð 'ô �‹7Ø@òAð Að Aô �vÒÜ�A—H‘H“JÓØ/ò0ð 	0ð 0ä�A—H‘H“JÓØ;ò<ð 	<ð <ô �A—H‘H“JÓØCòDð 	Dð Dä�A—H‘H“JÓØJòKð 	Kð Kô �wÒä�1—8‘8“:‹Ø/ò0ð 	0ð 0ä�1—8‘8“:‹Øòð 	ð ô �A—H‘H“JÓØ@òAð 	Að Aä�A—H‘H“JÓØ/ò0ð 	0ñ 0ð r.   c                 ó¾  ‡‡— t         | dgg«      «      Šg d¢g d¢g}t        d«      t        d«      t        d«      gt        d«      t        d«      t        d«      gg}t        d«      t        d«      t        d«      gt        d«      t        d«      t        d«      t        d	«      ggŠ‰j                  |d
t        «       | |«      k(  sJ ‚t        t        ˆˆfd„«       y )Nr   ©r   r   r   rç   r   r   r   r   r   r   r&   c                  ó2   •— ‰ j                  ‰dt        «      S r0   )Ú	from_listr   )ÚTÚ
lol_ZZ_bads   €€r+   r,   z$test_XXM_from_list.<locals>.<lambda>  s   ø€  A§K¡K°
¸FÄBÓ$G€ r.   )Útyper   rÿ   r   r	   )r   r*   Úlol_ZZr   r  s      @@r+   Útest_XXM_from_listr    s®   ù€ ä‰R�!��‹Y‹€Aâ’iÐ
 €CÜ�!‹u”b˜“eœR ›UÐ#¤b¨£e¬R°«U´B°q³EÐ%:Ð;€FÜ�a“5œ"˜Q›%¤ A£Ð'¬"¨Q«%´°A³¼¸1»¼rÀ!»uÐ)EÐF€Jà�;‰;�v˜v¤rÓ*©b°«gÒ5Ð5Ð5Ü
Œ?ÔGÕHr.   c                 óÆ   — g d¢g d¢g} | |«      j                  «       t        d«      t        d«      t        d«      gt        d«      t        d«      t        d«      ggk(  sJ ‚y ©Nrý   rç   r   r   r   r   r   )Úto_listr   ©r   r*   s     r+   Útest_XXM_to_listr	    sP   € â’iÐ
 €CÙˆc‹7�?‰?Ó¤" Q£%¬¨A«´°1³Ð!6¼¸A»ÄÀ1ÃÄrÈ!ÃuÐ8MÐ NÒNÐNÑNr.   c           	      óÂ   — g d¢g d¢g} | |«      j                  «       t        d«      t        d«      t        d«      t        d«      t        d«      t        d«      gk(  sJ ‚y r  )Úto_list_flatr   r  s     r+   Útest_XXM_to_list_flatr  #  sL   € â’iÐ
 €CÙˆc‹7×ÑÓ!¤b¨£e¬R°«U´B°q³E¼2¸a»5Ä"ÀQÃ%ÌÈAËÐ%OÒOÐOÑOr.   c                 ó"  ‡‡— t         | dgg«      «      Št        d«      t        d«      t        d«      t        d«      t        d«      t        d«      gŠ‰j                  ‰dt        «       | g d¢g d	¢g«      k(  sJ ‚t        t        ˆˆfd
„«       y )Nr   r   r   r   r   r   r&   rý   rç   c                  ó2   •— ‰ j                  ‰dt        «      S )Nrø   )Úfrom_list_flatr   )r   Úflats   €€r+   r,   z)test_XXM_from_list_flat.<locals>.<lambda>.  s   ø€  A×$4Ñ$4°T¸6Ä2Ó$F€ r.   )r  r   r  r   r	   )r   r   r  s    @@r+   Útest_XXM_from_list_flatr  )  sp   ù€ ä‰R�!��‹Y‹€AÜˆq‹E”2�a“5œ"˜Q›%¤ A£¬¨1«¬r°!«uÐ5€DØ×Ñ˜D &¬"Ó-±²YÂ	Ð4JÓ1KÒKÐKÐKÜ
Œ?ÔFÕGr.   c                 ó°   —  | g d¢g d¢g d¢g«      }t        d«      t        d«      t        d«      g}d}|j                  «       |||j                  ffk(  sJ ‚y )N©r   r   r   r×   ©r   r   r   r   r   r   ©r!   r   rT   )r   Ú
to_flat_nzrD   )r   ÚMÚelementsrÀ   s       r+   Útest_XXM_to_flat_nzr  1  sR   € á
ŠI’y¢)Ð,Ó-€AÜ�1“”r˜!“uœb ›eÐ$€HØ&€GØ�<‰<‹>˜h¨°!·'±'Ð(:Ð;Ò;Ð;Ñ;r.   c                 ó   ‡‡‡— t         | dgg«      «      Št        d«      t        d«      t        d«      gŠdŠ‰df} | g d¢g d¢g d	¢g«      }‰j                  ‰|t        «      |k(  sJ ‚t        t        ˆˆˆfd
„«       y )Nr   r   r   r   r  rø   r  r×   r  c                  ó6   •— ‰ j                  ‰‰dft        «      S r%   )Úfrom_flat_nzr   )r   r  rÀ   s   €€€r+   r,   z'test_XXM_from_flat_nz.<locals>.<lambda>A  s   ø€  A§N¡N°8¸gÀvÐ=NÔPRÓ$S€ r.   )r  r   r  r   r	   )r   ÚdataÚresultr   r  rÀ   s      @@@r+   Útest_XXM_from_flat_nzr  9  sr   ú€ ä‰R�!��‹Y‹€AÜ�1“”r˜!“uœb ›eÐ$€HØ&€GØ�VÐ€DÙ’šI¢yÐ1Ó2€FØ�>‰>˜( D¬"Ó-°Ò7Ð7Ð7Ü
Œ?ÕSÕTr.   c                 ó¸   — t        d«      t        d«      dœt        d«      t        d«      t        d«      dœdœ} | g d¢g d	¢g«      j                  «       |k(  sJ ‚y )
Nr   r   r"   r   r   r   r   ©r   r   r   rç   )r   Úto_dod©r   r5   s     r+   Útest_XXM_to_dodr$  D  sM   € ä�Q“%œB˜q›EÑ"¬2¨a«5´R¸³U¼rÀ!»uÑ'EÑ
F€CÙŠyš)Ð$Ó%×,Ñ,Ó.°#Ò5Ð5Ñ5r.   c                 óì   — t         | dgg«      «      }t        d«      t        d«      dœt        d«      t        d«      t        d«      dœdœ}|j                  |d	t        «       | g d
¢g d¢g«      k(  sJ ‚y )Nr   r   r   r"   r   r   r   r   r&   r!  rç   )r  r   Úfrom_dod©r   r   r5   s      r+   Útest_XXM_from_dodr(  J  sb   € ä‰R�!��‹Y‹€AÜ�Q“%œB˜q›EÑ"¬2¨a«5´R¸³U¼rÀ!»uÑ'EÑ
F€CØ�:‰:�c˜6¤2Ó&©"ªiºÐ-CÓ*DÒDÐDÑDr.   c                 ó°   — t        d«      t        d«      t        d«      t        d«      t        d«      dœ} | g d¢g d¢g«      j                  «       |k(  sJ ‚y )Nr   r   r   r   ©r!   r"   ©r   r   ©r   r   ©r   r   r!  rç   )r   Úto_dokr#  s     r+   Útest_XXM_to_dokr/  Q  sJ   € ä�a“5¤" Q£%Ü�a“5¤" Q£%´°A³ñ8€CáŠyš)Ð$Ó%×,Ñ,Ó.°#Ò5Ð5Ñ5r.   c                 óä   — t         | dgg«      «      }t        d«      t        d«      t        d«      t        d«      t        d«      dœ}|j                  |dt        «       | g d¢g d	¢g«      k(  sJ ‚y )
Nr   r   r   r   r   r*  r&   r!  rç   )r  r   Úfrom_dokr'  s      r+   Útest_XXM_from_dokr2  X  s_   € ä‰R�!��‹Y‹€AÜ�a“5¤" Q£%Ü�a“5¤" Q£%´°A³ñ8€Cà�:‰:�c˜6¤2Ó&©"ªiºÐ-CÓ*DÒDÐDÑDr.   c                 óÀ   — t        d«      t        d«      t        d«      t        d«      t        d«      g}t         | g d¢g d¢g«      j                  «       «      |k(  sJ ‚y )Nr   r   r   r   r!  rç   )r   ÚsortedÚiter_values)r   Úvaluess     r+   Útest_XXM_iter_valuesr7  `  sL   € ä�‹e”R˜“UœB˜q›E¤2 a£5¬"¨Q«%Ð0€FÜ‘"’i¢Ð+Ó,×8Ñ8Ó:Ó;¸vÒEÐEÑEr.   c                 óÔ   — dt        d«      fdt        d«      fdt        d«      fdt        d«      fdt        d	«      fg}t         | g d
¢g d¢g«      j                  «       «      |k(  sJ ‚y )Nr!   r   r"   r   r+  r,  r   r-  r   r!  rç   )r   r4  Ú
iter_items)r   Úitemss     r+   Útest_XXM_iter_itemsr;  f  sd   € à”b˜“eˆ_˜v¤r¨!£u˜oØ”b˜“eˆ_˜v¤r¨!£u˜o°¼¸1»¨ð@€Eä‘"’i¢Ð+Ó,×7Ñ7Ó9Ó:¸eÒCÐCÑCr.   c                 óœ   — t         | dgg«      «      }t        g d¢g d¢gdt        «      }|j                  |«       | g d¢g d¢g«      k(  sJ ‚y )Nr   rý   rç   r&   )r  r   r   Úfrom_ddm)r   r   Úddms      r+   Útest_XXM_from_ddmr?  m  sF   € ä‰R�!��‹Y‹€AÜ
Šyš)Ð$ f¬bÓ
1€CØ�:‰:�c‹?™b¢)ªYÐ!7Ó8Ò8Ð8Ñ8r.   c                 óx   — t         | dgg«      «      }|j                  dt        «       | g d¢g d¢g«      k(  sJ ‚y )Nr   r&   r×   )r  rô   r   ©r   r   s     r+   Útest_XXM_zerosrB  t  s6   € ä‰R�!��‹Y‹€AØ�7‰7�6œ2Ó¡"¢i²Ð%;Ó"<Ò<Ð<Ñ<r.   c                 óx   — t         | dgg«      «      }|j                  dt        «       | g d¢g d¢g«      k(  sJ ‚y )Nr   r&   )r   r   r   )r  Úonesr   rA  s     r+   Útest_XXM_onesrE  z  s6   € ä‰R�!��‹Y‹€AØ�6‰6�&œ"Ó¡¢Y²	Ð$:Ó!;Ò;Ð;Ñ;r.   c                 óÒ   — t         | dgg«      «      }|j                  dt        «       | g d¢g d¢g d¢g«      k(  sJ ‚|j                  dt        «       | ddgddgddgg«      k(  sJ ‚y )Nr   r   rØ   ©r   r   r   ©r   r   r   r    r   )r  Úeyer   rA  s     r+   Útest_XXM_eyerJ  €  sh   € ä‰R�!��‹Y‹€AØ�5‰5�”B‹<™2šyª)²YÐ?Ó@Ò@Ð@Ð@Ø�5‰5�œÓ¡ Q¨ F¨Q°¨F°Q¸°FÐ#;Ó <Ò<Ð<Ñ<r.   c                 ó‚   — t         | dgg«      «      }|j                  g d¢t        «       | g d¢g d¢g d¢g«      k(  sJ ‚y )Nr   ræ   rØ   )r   r   r   r  )r  Údiagr   rA  s     r+   Útest_XXM_diagrM  ‡  s8   € ä‰R�!��‹Y‹€AØ�6‰6’)œRÓ ¡Bª	²9ºiÐ'HÓ$IÒIÐIÑIr.   c                 óh   —  | g d¢g d¢g«      }|j                  «        | ddgddgddgg«      k(  sJ ‚y )	Nræ   rç   r   r   r   r   r   r   )Ú	transposerÙ   s     r+   Útest_XXM_transposerP  �  s=   € á
ŠI’yÐ!Ó"€AØ�;‰;‹=™B  A ¨¨A¨°°A°Ð7Ó8Ò8Ð8Ñ8r.   c                 ó„   —  | g d¢g d¢g«      } | g d¢g d¢g«      } | g d¢g d¢g«      }|j                  |«      |k(  sJ ‚y )Nræ   rç   ©r   r   r   ©rÃ   rÅ   rÈ   )Úadd©r   rP   rõ   ÚCs       r+   Útest_XXM_addrW  “  sC   € á
ŠI’yÐ!Ó"€AÙ
ŠI’yÐ!Ó"€AÙ
ŠI’{Ð#Ó$€AØ�5‰5�‹8�qŠ=Ð‰=r.   c                 ó„   —  | g d¢g d¢g«      } | g d¢g d¢g«      } | g d¢g d¢g«      }|j                  |«      |k(  sJ ‚y )Nræ   rç   r×   )ÚsubrU  s       r+   Útest_XXM_subrZ  ›  sC   € á
ŠI’yÐ!Ó"€AÙ
ŠI’yÐ!Ó"€AÙ
ŠI’yÐ!Ó"€AØ�5‰5�‹8�qŠ=Ð‰=r.   c                 ó¾   —  | g d¢g d¢g«      }t        d«      }|j                  |«       | g d¢g d¢g«      k(  sJ ‚|j                  |«       | g d¢g d¢g«      k(  sJ ‚y )Nræ   rç   r   rR  rS  )r   ÚmulÚrmul)r   rP   Úbs      r+   Útest_XXM_mulr_  £  sZ   € á
ŠI’yÐ!Ó"€AÜ
ˆ1‹€AØ�5‰5�‹8‘rš9¢kÐ2Ó3Ò3Ð3Ð3Ø�6‰6�!‹9™šI¢{Ð3Ó4Ò4Ð4Ñ4r.   c                 óŠ   —  | g d¢g d¢g«      } | ddgddgddgg«      } | d	d
gddgg«      }|j                  |«      |k(  sJ ‚y )Nræ   rç   r   r   r   r   r   r   é   é   é1   é@   )ÚmatmulrU  s       r+   Útest_XXM_matmulrf  «  s[   € á
ŠI’yÐ!Ó"€AÙ
ˆQ�ˆF�Q˜�F˜Q ˜FÐ#Ó$€AÙ
ˆR�ˆH�r˜2�hÐÓ €AØ�8‰8�A‹;˜!ÒÐÑr.   c                 ó„   —  | g d¢g d¢g«      } | g d¢g d¢g«      } | g d¢g d¢g«      }|j                  |«      |k(  sJ ‚y )Nræ   rç   )r   r   rÄ   )rÑ   é   é$   )Úmul_elementwiserU  s       r+   Útest_XXM_mul_elementwiserk  ³  sH   € á
ŠI’yÐ!Ó"€AÙ
ŠI’yÐ!Ó"€AÙ
ŠI’|Ð$Ó%€AØ×Ñ˜QÓ 1Ò$Ð$Ñ$r.   c                 óf   —  | g d¢g d¢g«      } | g d¢g d¢g«      }|j                  «       |k(  sJ ‚y )Nræ   rç   )rº   r¹   r¸   )rÍ   éûÿÿÿiúÿÿÿ)Úneg)r   rP   rV  s      r+   Útest_XXM_negro  »  s2   € á
ŠI’yÐ!Ó"€AÙ
ŠLš,Ð'Ó(€AØ�5‰5‹7�aŠ<Ð‰<r.   c                 ó¸   —  | g d¢g d¢gt         «      } | g d¢g d¢gt        «      }|j                  t        «      |k(  sJ ‚|j                  t         «      |k(  sJ ‚y )Nræ   rç   )r   r   rt   ©r   rP   rõ   s      r+   Útest_XXM_convert_torr  Â  sR   € á
ŠI’yÐ!¤2Ó&€AÙ
ŠI’yÐ!¤2Ó&€AØ�<‰<œÓ˜qÒ Ð Ð Ø�<‰<œÓ˜qÒ Ð Ñ r.   c           	      óv   —  | g d¢g d¢g d¢g d¢g d¢g d¢g«      }|j                  «       ddgdgd	d
gdggk(  sJ ‚y )N)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   )ÚsccrÙ   s     r+   Útest_XXM_sccru  Ê  sN   € á
ÚÚÚÚÚÚðó 	€Að �5‰5‹7˜˜1�v ˜s Q¨ F¨Q¨CÐ0Ò0Ð0Ñ0r.   c                 óÎ   —  | g d¢g d¢g«      } | ddgddgg«      } | g d¢g d¢g«      } | g d	¢g d
¢g«      }|j                  |«      |k(  sJ ‚|j                  ||«      |k(  sJ ‚y )Nræ   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Å   )Úhstack©r   rP   rõ   rV  ÚABCs        r+   Útest_XXM_hstackrz  Ö  s{   € á
ŠI’yÐ!Ó"€AÙ
ˆQ�ˆF�Q˜�GÐÓ€AÙ
ŠOÒ-Ð.Ó/€AÙ
Ò,Ú.ð0ó 1€Cà�8‰8�A‹;˜!ÒÐÐØ�8‰8�A�q‹>˜SÒ Ð Ñ r.   c           	      óæ   —  | g d¢g d¢g«      } | g d¢g«      } | g d¢g d¢g d¢g«      } | g d¢g d¢g d¢g d¢g d¢g d¢g«      }|j                  |«      |k(  sJ ‚|j                  ||«      |k(  sJ ‚y )Nræ   rç   rè   )Úvstackrx  s        r+   Útest_XXM_vstackr}  á  sr   € á
ŠI’yÐ!Ó"€AÙ
ŠIˆ;‹€AÙ
ŠI’y¢)Ð,Ó-€AÙ
Šiš¢Iªyº)ÂYÐOÓ
P€CØ�8‰8�A‹;˜!ÒÐÐØ�8‰8�A�q‹>˜SÒ Ð Ñ r.   c                 ót   —  | g d¢g d¢g«      } | g d¢g d¢g«      }|j                  d„ t        «      |k(  sJ ‚y )Nræ   rç   rR  rS  c                 ó   — d| z  S )Nr   rÞ   )r�   s    r+   r,   z$test_XXM_applyfunc.<locals>.<lambda>ï  s
   €   1¡€ r.   )Ú	applyfuncr   rq  s      r+   Útest_XXM_applyfuncr�  ë  s9   € á
ŠI’yÐ!Ó"€AÙ
ŠI’{Ð#Ó$€AØ�;‰;‘}¤bÓ)¨QÒ.Ð.Ñ.r.   c                 óð   —  | g d¢g d¢g«      j                  «       du sJ ‚ | g d¢g d¢g«      j                  «       du sJ ‚ | g «      j                  «       du sJ ‚ | g g g«      j                  «       du sJ ‚y )Nræ   )r   r   r   Trç   F)Úis_upper©r   s    r+   Útest_XXM_is_upperr…  ò  s|   € áŠyš)Ð$Ó%×.Ñ.Ó0°DÑ8Ð8Ð8ÙŠyš)Ð$Ó%×.Ñ.Ó0°EÑ9Ð9Ð9Ùˆb‹6�?‰?Ó Ñ$Ð$Ð$Ùˆr�2ˆh‹<× Ñ Ó" dÑ*Ð*Ñ*r.   c                 ó„   —  | g d¢g d¢g«      j                  «       du sJ ‚ | g d¢g d¢g«      j                  «       du sJ ‚y )NrØ   )r   r   r   Træ   rç   F)Úis_lowerr„  s    r+   Útest_XXM_is_lowerrˆ  ú  sD   € áŠyš)Ð$Ó%×.Ñ.Ó0°DÑ8Ð8Ð8ÙŠyš)Ð$Ó%×.Ñ.Ó0°EÑ9Ð9Ñ9r.   c                 ó„   —  | g d¢g d¢g«      j                  «       du sJ ‚ | g d¢g d¢g«      j                  «       du sJ ‚y )NrØ   ©r   r   r   Træ   rç   F)Úis_diagonalr„  s    r+   Útest_XXM_is_diagonalrŒ     sD   € áŠyš)Ð$Ó%×1Ñ1Ó3°tÑ;Ð;Ð;ÙŠyš)Ð$Ó%×1Ñ1Ó3°uÑ<Ð<Ñ<r.   c                 óJ   —  | g d¢g d¢g«      j                  «       ddgk(  sJ ‚y )NrØ   rŠ  r   r   )Údiagonalr„  s    r+   Útest_XXM_diagonalr�    s'   € áŠyš)Ð$Ó%×.Ñ.Ó0°Q¸°FÒ:Ð:Ñ:r.   c                 ó„   —  | g d¢g d¢g«      j                  «       du sJ ‚ | g d¢g d¢g«      j                  «       du sJ ‚y )Nr×   TrØ   F)Úis_zero_matrixr„  s    r+   Útest_XXM_is_zero_matrixr’    sD   € áŠyš)Ð$Ó%×4Ñ4Ó6¸$Ñ>Ð>Ð>ÙŠyš)Ð$Ó%×4Ñ4Ó6¸%Ñ?Ð?Ñ?r.   c                 ó”   —  | g d¢g d¢g d¢g«      j                  «       dk(  sJ ‚ | g d¢g d¢g d¢g«      j                  «       dk(  sJ ‚y )Nræ   rç   rè   r   ©r   rÃ   rÅ   r¸   )Údetr„  s    r+   Útest_XXM_det_ZZr–    sH   € áŠyš)¢YÐ/Ó0×4Ñ4Ó6¸!Ò;Ð;Ð;ÙŠyš)¢ZÐ0Ó1×5Ñ5Ó7¸2Ò=Ð=Ñ=r.   c                 ó^   —  | ddgddgg«      }|j                  «       t        dd«      k(  sJ ‚y )Nr-  r&   ©r   r   ©r   r   rº   rÅ   )r•  r   ©r   ÚdM1s     r+   Útest_XXM_det_QQrœ    s3   € á
ˆu�eˆn˜u e˜nÐ-Ó
.€CØ�7‰7‹9œ˜2˜b›	Ò!Ð!Ñ!r.   c                 ó2  ‡‡—  | ddgddgg«      } | ddgddgg«      }|j                  «       |k(  sJ ‚|j                  |«       | d	d
gd
d	gg«      k(  sJ ‚ | ddgddgg«      Št        t        ˆfd„«        | g d¢g d¢g«      Št        t        ˆfd„«       y )Nr-  r&   r˜  r™  )iøÿÿÿr   )é   r   )rÐ   r   )rm  r   r   r   ©r   r   ©r   r   c                  ó$   •— ‰ j                  «       S ro   ©Úinv)ÚdM3s   €r+   r,   z!test_XXM_inv_QQ.<locals>.<lambda>%  s   ø€ ¨s¯w©w«y€ r.   )r-  r&   r˜  )rŸ  r   r-  c                  ó$   •— ‰ j                  «       S ro   r¢  )ÚdM4s   €r+   r,   z!test_XXM_inv_QQ.<locals>.<lambda>(  s   ø€ ¨3¯7©7«9€ r.   )r£  re  r   r   r   )r   r›  ÚdM2r¤  r¦  s      @@r+   Útest_XXM_inv_QQr¨    s¯   ù€ á
ˆu�eˆn˜u e˜nÐ-Ó
.€CÙ
ˆv�vÐ ¨Ð 0Ð1Ó
2€CØ�7‰7‹9˜ÒÐÐØ�:‰:�c‹?™b 1 a &¨1¨a¨&Ð!1Ó2Ò2Ð2Ð2á
ˆu�eˆn˜u e˜nÐ-Ó
.€CÜ
Ô%Ó'8Ô9á
Ò#Ò%:Ð;Ó
<€CÜ
Ô!Ó#4Õ5r.   c                 óN   ‡—  | g d¢g d¢g d¢g«      Št        t        ˆfd„«       y )Nræ   rç   r”  c                  ó$   •— ‰ j                  «       S ro   r¢  )r›  s   €r+   r,   z!test_XXM_inv_ZZ.<locals>.<lambda>0  s   ø€  #§'¡'£)€ r.   ©r   r
   rš  s    @r+   Útest_XXM_inv_ZZr¬  +  s!   ø€ á
Šiš¢JÐ/Ó
0€Cô Œ=Ó+Õ,r.   c                 óT   —  | g d¢g d¢g d¢g«      }|j                  «       g d¢k(  sJ ‚y )Nræ   rç   r”  )r   iðÿÿÿiôÿÿÿr   )Úcharpolyrš  s     r+   Útest_XXM_charpoly_ZZr¯  3  s(   € á
Šiš¢JÐ/Ó
0€CØ�<‰<‹>Ò-Ò-Ð-Ñ-r.   c                 óŒ   —  | ddgddgg«      }|j                  «       t        dd«      t        dd«      t        dd«      gk(  sJ ‚y )	Nr-  r&   r˜  r™  r   ióÿÿÿrÅ   rº   )r®  r   rš  s     r+   Útest_XXM_charpoly_QQr±  9  sF   € á
ˆu�eˆn˜u e˜nÐ-Ó
.€CØ�<‰<‹>œb  1›g¤r¨#¨b£z´2°b¸³9Ð=Ò=Ð=Ñ=r.   c                 ót   ‡‡—  | g d¢g d¢g d¢g«      Š | g d¢g d¢g d¢g«      Št        t        ˆˆfd„«       y )Nræ   rç   r”  rØ   rG  rH  c                  ó&   •— ‰ j                  ‰«      S ro   ©Úlu_solve)r›  r§  s   €€r+   r,   z&test_XXM_lu_solve_ZZ.<locals>.<lambda>C  s   ø€  #§,¡,¨sÓ"3€ r.   r«  )r   r›  r§  s    @@r+   Útest_XXM_lu_solve_ZZr¶  ?  s0   ù€ á
Šiš¢JÐ/Ó
0€CÙ
Šiš¢IÐ.Ó
/€CÜ
Œ=Ô3Õ4r.   c                 ó.  ‡‡—  | g d¢g d¢g d¢g«      } | g d¢g d¢g d¢g«      } | g d¢g d¢g d	¢g«      }|j                  |«      |cxk(  r|j                  «       k(  sJ ‚ J ‚ | g d¢g d¢g«      Š | d
dgdd
gddgg«      Št        t        ˆˆfd„«       y )Nræ   rç   r”  rØ   rG  rH  )©r¹   r   )rÍ   r   r,  )r¸  )rÆ   r   ©r¹   r   )r,  r¹  r,  r   r   c                  ó&   •— ‰ j                  ‰«      S ro   r´  )r¦  ÚdM5s   €€r+   r,   z&test_XXM_lu_solve_QQ.<locals>.<lambda>O  s   ø€  §¡¨cÓ!2€ r.   )rµ  r£  r   r   )r   r›  r§  r¤  r¦  r»  s       @@r+   Útest_XXM_lu_solve_QQr¼  F  s˜   ù€ á
Šiš¢JÐ/Ó
0€CÙ
Šiš¢IÐ.Ó
/€CÙ
Ò#Ò$:Ò;OÐPÓ
Q€CØ�<‰<˜Ó Ô0 s§w¡w£yÒ0Ð0Ñ0Ð0Ð0á
ŠišÐ#Ó
$€CÙ
ˆq�!ˆf�q˜!�f˜q !˜fÐ%Ó
&€CÜ
Œ<Ô2Õ3r.   c                 óh   —  | g d¢g d¢g d¢g«      }|j                  «        | g d¢g«      dgfk(  sJ ‚y )Nræ   rç   rè   )r   r¹   r   r   )Ú	nullspacerš  s     r+   Útest_XXM_nullspace_QQr¿  R  s7   € á
Šiš¢IÐ.Ó
/€Cð �=‰=‹?™r¢: ,Ó/°!°Ð5Ò5Ð5Ñ5r.   c                 óÜ   —  | g d¢g d¢g«      } | g d¢g d¢g«      } | ddgddgg«      }|j                  «       |k(  sJ ‚|j                  «       ||fk(  sJ ‚|j                  |«      |k(  sJ ‚y )Nræ   )r   r   rž  )rº   rm  r   r   r   rm  )ÚlllÚlll_transformre  )r   r  ÚM_lllr   s       r+   Útest_XXM_lllrÄ  [  sz   € á
ŠI’zÐ"Ó#€AÙ’	š;Ð'Ó(€EÙ
ˆQ�ˆF�R˜�GÐÓ€AØ�5‰5‹7�eÒÐÐØ�?‰?Ó ¨ 
Ò*Ð*Ð*Ø�8‰8�A‹;˜%ÒÐÑr.   c                 ó0  — t        d«      t        d«      gt        d«      t        d«      gg} | |«      }|j                  «       \  }}|j                  |«      |k(  sJ ‚|j                  «       j                  |«      j                  sJ ‚|j
                  sJ ‚y )Nr   r¹   r¸   r   ©r   Úqrre  rO  r‹  rƒ  ©r   r*   rP   ÚQÚRs        r+   Útest_XXM_qr_mixed_signsrË  e  s~   € äˆq‹E”2�b“6ˆ?œR ›V¤R¨£U˜OÐ
,€CÙ
ˆ3‹€AØ�4‰4‹6�D€A€qØ�8‰8�A‹;˜!ÒÐÐØ�K‰K‹M× Ñ  Ó#×0Ò0Ð0Ð0Ø�:Š:Ð‰:r.   c                 óh  — t        d«      D ��cg c]'  }t        d«      D �cg c]  }t        ||z   «      ‘Œ c}‘Œ) }}} | |«      }|j                  «       \  }}|j                  |«      |k(  sJ ‚|j	                  «       j                  |«      j
                  sJ ‚|j                  sJ ‚y c c}w c c}}w )NrÅ   )Úranger   rÇ  re  rO  r‹  rƒ  )r   r½   r¾   r*   rP   rÉ  rÊ  s          r+   Útest_XXM_qr_large_matrixrÎ  o  s’   € ä38¸³9×
=¨aœu R›yÖ)˜!ŒBˆq�1‰u�IÔ)Ð
=€CÑ
=Ù
ˆ3‹€AØ�4‰4‹6�D€A€qØ�8‰8�A‹;˜!ÒÐÐØ�K‰K‹M× Ñ  Ó#×0Ò0Ð0Ð0Ø�:Š:Ð‰:ùò *ùÓ
=s   �B.¡B)¶B.Â)B.c                 óN  — t         | dgg«      «      }|j                  dt        «      }|j                  «       \  }}||k(  sJ ‚||k(  sJ ‚|j	                  «       j                  |«      j                  sJ ‚|j                  sJ ‚|j                  dk(  sJ ‚|j                  dk(  sJ ‚y )Nr   r   rø   )	r  rI  r   rÇ  rO  re  r‹  rƒ  rD   ©r   r   rP   rÉ  rÊ  s        r+   Útest_XXM_qr_identity_matrixrÑ  y  s—   € ä‰R�!��‹Y‹€AØ	�‰ˆa”‹€AØ�4‰4‹6�D€A€qØ�Š6€Mˆ6Ø�Š6€Mˆ6Ø�K‰K‹M× Ñ  Ó#×0Ò0Ð0Ð0Ø�:Š:Ðˆ:Ø�7‰7�fÒÐÐØ�7‰7�fÒÐÑr.   c                 ó0  — t        d«      t        d«      gt        d«      t        d«      gg} | |«      }|j                  «       \  }}|j                  |«      |k(  sJ ‚|j                  «       j                  |«      j                  sJ ‚|j
                  sJ ‚y ©Nr   r   r   rÆ  rÈ  s        r+   Útest_XXM_qr_square_matrixrÔ  †  ó~   € äˆq‹E”2�a“5ˆ>œB˜q›E¤2 a£5˜>Ð
*€CÙ
ˆ3‹€AØ�4‰4‹6�D€A€qØ�8‰8�A‹;˜!ÒÐÐØ�K‰K‹M× Ñ  Ó#×0Ò0Ð0Ð0Ø�:Š:Ð‰:r.   c                 ó0  — t        d«      t        d«      gt        d«      t        d«      gg} | |«      }|j                  «       \  }}|j                  |«      |k(  sJ ‚|j                  «       j                  |«      j                  sJ ‚|j
                  sJ ‚y )Nr   r   r   rÆ  rÈ  s        r+   Ú$test_XXM_qr_matrix_with_zero_columnsr×  �  rÕ  r.   c                 ó0  — t        d«      t        d«      gt        d«      t        d«      gg} | |«      }|j                  «       \  }}|j                  |«      |k(  sJ ‚|j                  «       j                  |«      j                  sJ ‚|j
                  sJ ‚y )Nr   r   r   rÆ  rÈ  s        r+   Ú&test_XXM_qr_linearly_dependent_columnsrÙ  š  rÕ  r.   c                 óè   — t        d«      t        d«      gt        d«      t        d«      gg} | |«      }t        j                  t        «      5  |j	                  «        d d d «       y # 1 sw Y   y xY wrÓ  )r   Úpytestr   r
   rÇ  )r   r*   rP   s      r+   Útest_XXM_qr_non_fieldrÜ  ¤  sW   € äˆq‹E”2�a“5ˆ>œB˜q›E¤2 a£5˜>Ð
*€CÙ
ˆ3‹€AÜ	�‰”}Ó	%ñ Ø	�‰Œ÷÷ ñ ús   ÁA(Á(A1c                 ó0  — t        d«      t        d«      gt        d«      t        d«      gg} | |«      }|j                  «       \  }}|j                  |«      |k(  sJ ‚|j                  «       j                  |«      j                  sJ ‚|j
                  sJ ‚y rÓ  rÆ  rÈ  s        r+   Útest_XXM_qr_fieldrÞ  ¬  rÕ  r.   c                 óZ  — t        d«      t        d«      gt        d«      t        d«      gt        d«      t        d«      gg} | |«      }|j                  «       \  }}|j                  |«      |k(  sJ ‚|j                  «       j                  |«      j                  sJ ‚|j
                  sJ ‚y ©Nr   r   r   r   r   r   rÆ  rÈ  s        r+   Útest_XXM_qr_tall_matrixrá  ¶  sŒ   € äˆq‹E”2�a“5ˆ>œB˜q›E¤2 a£5˜>¬B¨q«E´2°a³5¨>Ð
:€CÙ
ˆ3‹€AØ�4‰4‹6�D€A€qØ�8‰8�A‹;˜!ÒÐÐØ�K‰K‹M× Ñ  Ó#×0Ò0Ð0Ð0Ø�:Š:Ð‰:r.   c                 óX  — t        d«      t        d«      t        d«      gt        d«      t        d«      t        d«      gg} | |«      }|j                  «       \  }}|j                  |«      |k(  sJ ‚|j                  «       j                  |«      j                  sJ ‚|j
                  sJ ‚y rà  rÆ  rÈ  s        r+   Útest_XXM_qr_wide_matrixrã  À  sŒ   € äˆq‹E”2�a“5œ"˜Q›%Ð ¤2 a£5¬"¨Q«%´°A³Ð"7Ð
8€CÙ
ˆ3‹€AØ�4‰4‹6�D€A€qØ�8‰8�A‹;˜!ÒÐÐØ�K‰K‹M× Ñ  Ó#×0Ò0Ð0Ð0Ø�:Š:Ð‰:r.   c                 ó†  — t         | dgg«      «      }|j                  dt        «      }|j                  «       \  }}|j	                  |«      j
                  |j
                  k(  sJ ‚|j                  «       j	                  |«      j                  sJ ‚|j                  sJ ‚|j
                  dk(  sJ ‚|j
                  dk(  sJ ‚y )Nr   r!   ©	r  rô   r   rÇ  re  rD   rO  r‹  rƒ  rÐ  s        r+   Útest_XXM_qr_empty_matrix_0x0ræ  Ê  ó¢   € ä‰R�!��‹Y‹€AØ	�‰�œÓ€AØ�4‰4‹6�D€A€qØ�8‰8�A‹;×Ñ §¡Ò'Ð'Ð'Ø�K‰K‹M× Ñ  Ó#×0Ò0Ð0Ð0Ø�:Š:Ðˆ:Ø�7‰7�fÒÐÐØ�7‰7�fÒÐÑr.   c                 ó†  — t         | dgg«      «      }|j                  dt        «      }|j                  «       \  }}|j	                  |«      j
                  |j
                  k(  sJ ‚|j                  «       j	                  |«      j                  sJ ‚|j                  sJ ‚|j
                  dk(  sJ ‚|j
                  dk(  sJ ‚y )Nr   r#   r!   rå  rÐ  s        r+   Útest_XXM_qr_empty_matrix_2x0ré  Ö  rç  r.   c                 ó†  — t         | dgg«      «      }|j                  dt        «      }|j                  «       \  }}|j	                  |«      j
                  |j
                  k(  sJ ‚|j                  «       j	                  |«      j                  sJ ‚|j                  sJ ‚|j
                  dk(  sJ ‚|j
                  dk(  sJ ‚y )Nr   r"   r!   rå  rÐ  s        r+   Útest_XXM_qr_empty_matrix_0x2rë  â  rç  r.   c                 ó  —  | ddgddgg«      }|j                  «       \  }}}}|j                  t        «      }|j                  t        «      }|j                  t        «      }|j                  t        «      }	|j                  t        «      }
|j                  |j                  k(  sJ ‚|j                  |j                  k(  sJ ‚|j                  |j                  k(  sJ ‚|j                  |j                  k(  sJ ‚| | ddgddgg«      k(  sJ ‚| | ddgddgg«      k(  sJ ‚| | ddgddgg«      k(  sJ ‚| | ddgddgg«      k(  sJ ‚|j	                  |	j                  «       «      j	                  |
«      |j	                  |«      k(  sJ ‚y )Nr   r   r   r   r   r¹   )Úfflurt   r   rD   re  r£  )r   rP   ÚPÚLÚDÚUÚA_fieldÚP_fieldÚL_fieldÚD_fieldÚU_fields              r+   Útest_XXM_fflur÷  î  s{  € á
ˆQ�ˆF�Q˜�FÐÓ€AØ—‘“�J€A€qˆ!ˆQØ�l‰lœ2Ó€GØ�l‰lœ2Ó€GØ�l‰lœ2Ó€GØ�l‰lœ2Ó€GØ�l‰lœ2Ó€GØ�7‰7�a—g‘gÒÐÐØ�7‰7�a—g‘gÒÐÐØ�7‰7�a—g‘gÒÐÐØ�7‰7�a—g‘gÒÐÐØ‘�Q˜�F˜Q ˜FÐ#Ó$Ò$Ð$Ð$Ø‘�Q˜�F˜Q ˜GÐ$Ó%Ò%Ð%Ð%Ø‘�Q˜�F˜Q ˜GÐ$Ó%Ò%Ð%Ð%Ø‘�Q˜�F˜Q ˜GÐ$Ó%Ò%Ð%Ð%Ø�>‰>˜'Ÿ+™+›-Ó(×/Ñ/°Ó8¸G¿N¹NÈ7Ó<SÒSÐSÑSr.   )nÚsympy.external.gmpyr   Úsympyr   r   r   r   r   Úsympy.polys.matrices.exceptionsr	   r
   r   r   r   Ú!sympy.polys.matrices.domainmatrixr   r   r   r   r   Úsympy.testing.pytestr   r   rÛ  rR   rl   r„   r’   r•   r˜   r›   rŸ   r¢   r¤   r¨   r¬   r¯   r²   r´   r¶   ÚDM_allÚDMZ_allÚDMQ_allÚmarkÚparametrizerÁ   rÚ   rÜ   rê   rë   rö   rû   r  r	  r  r  r  r  r$  r(  r/  r2  r7  r;  r?  rB  rE  rJ  rM  rP  rW  rZ  r_  rf  rk  ro  rr  ru  rz  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+   ú<module>r     sÑ	  ðõ" -ç +Õ +÷õ ÷ NÕ Mç -Û òXGòv3&òl)JòX'IòT.ò ò
ò
ò
ò
ò
ò
ò
ò
ò
ò
ð
 �&˜&Ð	!€Ø�G˜WÐ
%€Ø�G˜WÐ
%€ð ‡�×Ñ˜˜wÓ'ñ<ó (ð<ð" ‡�×Ñ˜˜wÓ'ñ?+ó (ð?+÷Dñ ñ
 
‹€ð ‡�×Ñ˜˜wÓ'ñUó (ðUð" ‡�×Ñ˜˜wÓ'ñ=ó (ð=ò*30ðl ‡�×Ñ˜˜wÓ'ñIó (ðIð ‡�×Ñ˜˜wÓ'ñOó (ðOð
 ‡�×Ñ˜˜wÓ'ñPó (ðPð
 ‡�×Ñ˜˜wÓ'ñHó (ðHð ‡�×Ñ˜˜wÓ'ñ<ó (ð<ð ‡�×Ñ˜˜wÓ'ñUó (ðUð ‡�×Ñ˜˜wÓ'ñ6ó (ð6ð
 ‡�×Ñ˜˜wÓ'ñEó (ðEð ‡�×Ñ˜˜wÓ'ñ6ó (ð6ð ‡�×Ñ˜˜wÓ'ñEó (ðEð ‡�×Ñ˜˜wÓ'ñFó (ðFð
 ‡�×Ñ˜˜wÓ'ñDó (ðDð ‡�×Ñ˜˜wÓ'ñ9ó (ð9ð ‡�×Ñ˜˜wÓ'ñ=ó (ð=ð
 ‡�×Ñ˜˜wÓ'ñ<ó (ð<ð
 ‡�×Ñ˜˜wÓ'ñ=ó (ð=ð ‡�×Ñ˜˜wÓ'ñJó (ðJð
 ‡�×Ñ˜˜wÓ'ñ9ó (ð9ð
 ‡�×Ñ˜˜wÓ'ñó (ðð ‡�×Ñ˜˜wÓ'ñó (ðð ‡�×Ñ˜˜wÓ'ñ5ó (ð5ð ‡�×Ñ˜˜wÓ'ñó (ðð ‡�×Ñ˜˜wÓ'ñ%ó (ð%ð ‡�×Ñ˜˜wÓ'ñó (ðð ‡�×Ñ˜˜vÓ&ñ!ó 'ð!ð ‡�×Ñ˜˜wÓ'ñ1ó (ð1ð ‡�×Ñ˜˜wÓ'ñ!ó (ð!ð ‡�×Ñ˜˜wÓ'ñ!ó (ð!ð ‡�×Ñ˜˜wÓ'ñ/ó (ð/ð ‡�×Ñ˜˜wÓ'ñ+ó (ð+ð ‡�×Ñ˜˜wÓ'ñ:ó (ð:ð
 ‡�×Ñ˜˜wÓ'ñ=ó (ð=ð
 ‡�×Ñ˜˜wÓ'ñ;ó (ð;ð ‡�×Ñ˜˜wÓ'ñ@ó (ð@ð
 ‡�×Ñ˜˜wÓ'ñ>ó (ð>ð
 ‡�×Ñ˜˜wÓ'ñ"ó (ð"ð
 ‡�×Ñ˜˜wÓ'ñ
6ó (ð
6ð ‡�×Ñ˜˜wÓ'ñ-ó (ð-ð ‡�×Ñ˜˜wÓ'ñ.ó (ð.ð
 ‡�×Ñ˜˜wÓ'ñ>ó (ð>ð
 ‡�×Ñ˜˜wÓ'ñ5ó (ð5ð ‡�×Ñ˜˜wÓ'ñ4ó (ð4ð ‡�×Ñ˜˜wÓ'ñ6ó (ð6ð ‡�×Ñ˜˜wÓ'ñ ó (ð ð ‡�×Ñ˜˜wÓ'ñó (ðð ‡�×Ñ˜˜wÓ'ñó (ðð ‡�×Ñ˜˜wÓ'ñ	ó (ð	ð ‡�×Ñ˜˜wÓ'ñó (ðð ‡�×Ñ˜˜wÓ'ñó (ðð ‡�×Ñ˜˜wÓ'ñó (ðð ‡�×Ñ˜˜wÓ'ñó (ðð ‡�×Ñ˜˜wÓ'ñó (ðð ‡�×Ñ˜˜wÓ'ñó (ðð ‡�×Ñ˜˜wÓ'ñó (ðð ‡�×Ñ˜˜wÓ'ñó (ðð ‡�×Ñ˜˜wÓ'ñó (ðð ‡�×Ñ˜˜wÓ'ñó (ðð ‡�×Ñ˜˜wÓ'ñTó (ñTr.   