Ë
    7^(hVÃ  ã                   ó¬  — d dl mZ d dlmZmZmZmZmZmZ d dlm	Z	m
Z
mZmZmZ d dlmZmZmZ d dlmZmZmZmZmZmZmZ d dlmZ d dlmZ d dlmZ 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/d„ Z0d„ Z1d„ Z2d„ Z3d„ Z4d„ Z5d„ Z6d „ Z7d!„ Z8d"„ Z9d#„ Z:d$„ Z;d%„ Z<d&„ Z=d'„ Z>d(„ Z?d)„ Z@d*„ ZAd+„ ZBd,„ ZCd-„ ZDd.„ ZEd/„ ZFd0„ ZGd1„ ZHd2„ ZId3„ ZJd4„ ZKd5„ ZLd6„ ZMd7„ ZNd8„ ZOd9„ ZPd:„ ZQd;„ ZRd<„ ZSd=„ ZTd>„ ZUd?„ ZVd@„ ZWdA„ ZXdB„ ZYdC„ ZZdD„ Z[dE„ Z\dF„ Z]dG„ Z^dH„ Z_dI„ Z`dJ„ ZadK„ ZbdL„ ZcdM„ ZddN„ ZedO„ ZfdP„ ZgdQ„ ZhdR„ ZidS„ ZjdT„ ZkdU„ ZldV„ ZmdW„ ZndX„ ZodY„ ZpdZ„ Zqd[„ Zrd\„ Zsd]„ Ztd^„ Zuy_)`é    )ÚGROUND_TYPES)ÚIntegerÚRationalÚSÚsqrtÚMatrixÚsymbols)ÚFFÚZZÚQQÚQQ_IÚEXRAW)ÚDomainMatrixÚDomainScalarÚDM)ÚDMBadInputErrorÚDMDomainErrorÚDMShapeErrorÚDMFormatErrorÚDMNotAFieldÚDMNonSquareMatrixErrorÚDMNonInvertibleMatrixError)ÚDDM)ÚSDM)Úraisesc                  ód  — t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      } t        ddgddggt        «      }t        dk7  r|j                  | k(  s!J ‚|j                  | j                  «       k(  sJ ‚|j                  dk(  sJ ‚|j                  t        k(  sJ ‚y )Né   é   é   é   ©r   r   Úflint)r   r   r   r   ÚrepÚto_dfmÚshapeÚdomain)ÚddmÚAs     új/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sympy/polys/matrices/tests/test_domainmatrix.pyÚtest_DMr*      s˜   € Ü
”�1“”r˜!“uˆ~¤ 1£¤r¨!£u˜~Ð.°¼Ó
;€CÜ
ˆQ�ˆF�Q˜�FÐœRÓ €AÜ�wÒØ�u‰u˜Š|Ðˆ|à�u‰u˜Ÿ
™
›Ò$Ð$Ð$Ø�7‰7�fÒÐÐØ�8‰8”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k7  r|j
                  ‰k(  s!J ‚|j
                  ‰j                  «       k(  sJ ‚|j                  dk(  sJ ‚|j                  t         k(  sJ ‚t        | dt         «      }|j
                  ‰k(  sJ ‚|j                  dk(  sJ ‚|j                  t         k(  sJ ‚t        t        ˆfd„«       t        t        ˆfd	„«       t        t        d
„ «       d‰fd‰ffD ]k  \  }}|dk(  rt        dk(  r|j                  «       }t        ‰dt         |¬«      }|j
                  |k(  sJ ‚t        | dt         |¬«      }|j
                  |k(  rŒkJ ‚ t        t        ˆfd„«       t        t        d„ «       ‰D �cg c]  }|j                  «       ‘Œ }}t        d«      |d<   |‰k(  sJ ‚y c c}w )Nr   r   r   r    ©r   r   r!   r"   c                  ó&   •— t        ‰ dt        «      S ©Nr!   ©r   r   )r'   s   €r)   ú<lambda>z(test_DomainMatrix_init.<locals>.<lambda>/   ó   ø€ œl¨3°¼Ó;€ r+   c                  ó&   •— t        ‰ dt        «      S r/   r0   )Úsdms   €r)   r1   z(test_DomainMatrix_init.<locals>.<lambda>0   r2   r+   c                  ó:   — t        t        dgg«      dt        «      S )Nr   ©r   r   )r   r   r   © r+   r)   r1   z(test_DomainMatrix_init.<locals>.<lambda>1   s   € œl¬6°A°3°%«=¸&Ä"ÓE€ r+   ÚsparseÚdense©Úfmtc                  ó*   •— t        ‰ dt        d¬«      S )Nr!   Úinvalidr:   r0   )Úlols   €r)   r1   z(test_DomainMatrix_init.<locals>.<lambda>;   s   ø€ œ|¨C°¼ÀÔK€ r+   c                  óN   — t        t        d«      t        d«      ggdt        «      S )Nr   r   r!   r0   r7   r+   r)   r1   z(test_DomainMatrix_init.<locals>.<lambda>=   s   € ¤L´2°a³5¼"¸Q»%°.Ð1AÀ6Ì2Ó$N€ r+   é*   ©r   r   )r   r   r   r   r   r#   r$   r%   r&   r   Ú	TypeErrorÚ
ValueErrorr   Úcopy)	Údodr(   r;   r#   ÚiÚwasr'   r>   r4   s	         @@@r)   Útest_DomainMatrix_initrH      sð  ú€ Üˆq‹E”2�a“5ˆ>œB˜q›E¤2 a£5˜>Ð
*€CÜ�Q“%œ2˜a›5Ñ!¬¨A«´"°Q³%Ñ&8Ñ
9€CÜ
ˆc�6œ2Ó
€CÜ
ˆc�6œ2Ó
€Cä�S˜&¤"Ó%€AÜ�wÒØ�u‰u˜Š|Ðˆ|à�u‰u˜Ÿ
™
›Ò$Ð$Ð$Ø�7‰7�fÒÐÐØ�8‰8”rŠ>Ðˆ>ä�S˜&¤"Ó%€AØ�5‰5�CŠ<Ðˆ<Ø�7‰7�fÒÐÐØ�8‰8”rŠ>Ðˆ>ä
Œ9Ó;Ô<Ü
Œ9Ó;Ô<Ü
Œ9ÑEÔFà �_ w° nÐ5ò ‰ˆˆSØ�'Š>œl¨gÒ5Ø—*‘*“,ˆCÜ˜˜f¤b¨cÔ2ˆØ�u‰u˜Š|Ðˆ|Ü˜˜f¤b¨cÔ2ˆØ�u‰u˜‹|Ðˆ|ðô Œ:ÓKÔLä
Œ?ÑNÔOð !Ö
!˜ˆ1�6‰6�8Ð
!€CÐ
!Ü�‹V€A€c�FØ�#Š:Ð‰:ùò "s   ÈH=c                  ó†  ‡— t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      } t        j                  | «      Š‰j                  | k(  sJ ‚‰j
                  dk(  sJ ‚‰j                  t        k(  sJ ‚t        t        d«      t        d«      dœt        d«      t        d«      dœdœdt        «      }t        j                  |«      Š‰j                  |k(  sJ ‚‰j
                  dk(  sJ ‚‰j                  t        k(  sJ ‚t        t        d«      ggdt        «      Št        t        ˆfd„«       y )	Nr   r   r   r    r!   r-   r6   c                  ó.   •— t        j                  ‰ «      S ©N)r   Úfrom_rep©r(   s   €r)   r1   z,test_DomainMatrix_from_rep.<locals>.<lambda>T   s   ø€ œl×3Ñ3°AÓ6€ r+   )
r   r   r   rL   r#   r%   r&   r   r   rB   )r'   r4   r(   s     @r)   Útest_DomainMatrix_from_reprN   E   s   ø€ Ü
”�1“”r˜!“uˆ~¤ 1£¤r¨!£u˜~Ð.°¼Ó
;€CÜ×Ñ˜cÓ"€Aà�5‰5�CŠ<Ðˆ<Ø�7‰7�fÒÐÐØ�8‰8”rŠ>Ðˆ>ä
”b˜“eœr !›uÑ%¬R°«U´b¸³eÑ*<Ñ=¸vÄrÓ
J€CÜ×Ñ˜cÓ"€AØ�5‰5�CŠ<Ðˆ<Ø�7‰7�fÒÐÐØ�8‰8”rŠ>Ðˆ>ä”r˜!“u�g�Y ¬Ó+€AÜ
Œ9Ó6Õ7r+   c                  ó´  — t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      } t        j                  ddgddggt        «      }t        dk7  r|j
                  | k(  s!J ‚|j
                  | j                  «       k(  sJ ‚|j                  dk(  sJ ‚|j                  t        k(  sJ ‚t        d«      }t         |d«       |d«      g |d«       |d«      ggd|«      } t        j                  ddgddgg|«      }t        dk7  r|j
                  | k(  s!J ‚|j
                  | j                  «       k(  sJ ‚|j                  dk(  sJ ‚|j                  |k(  sJ ‚t        ddz  dz
  «      }t         |d«       |d«      g |d«       |d«      ggd|«      } t        j                  ddgddgg|«      }t        dk7  r|j
                  | k(  s!J ‚|j
                  | j                  «       k(  sJ ‚|j                  dk(  sJ ‚|j                  |k(  sJ ‚t        t        dd«      t        dd«      gt        dd«      t        d	d«      ggdt        «      } t        j                  d
dgddggt        «      }t        dk7  r|j
                  | k(  s!J ‚|j
                  | j                  «       k(  sJ ‚|j                  dk(  sJ ‚|j                  t        k(  sJ ‚y )Nr   r   r   r    r!   r"   é   é   é   ©r   r   ©r   r   ©r   r    )rR   r   )r   r   r   Ú	from_listr   r#   r$   r%   r&   r
   r   )r'   r(   Údoms      r)   Útest_DomainMatrix_from_listrX   W   sœ  € Ü
”�1“”r˜!“uˆ~¤ 1£¤r¨!£u˜~Ð.°¼Ó
;€CÜ×Ñ  A ¨¨A¨Ð/´Ó4€AÜ�wÒØ�u‰u˜Š|Ðˆ|à�u‰u˜Ÿ
™
›Ò$Ð$Ð$Ø�7‰7�fÒÐÐØ�8‰8”rŠ>Ðˆ>ä
ˆQ‹%€CÜ
‘�A“™˜A›Ð¡# a£&©#¨a«&Ð!1Ð2°F¸CÓ
@€CÜ×Ñ  A ¨¨A¨Ð/°Ó5€AÜ�wÒØ�u‰u˜Š|Ðˆ|à�u‰u˜Ÿ
™
›Ò$Ð$Ð$Ø�7‰7�fÒÐÐØ�8‰8�sŠ?Ðˆ?ä
ˆQ�‰V�A‰X‹,€CÜ
‘�A“™˜A›Ð¡# a£&©#¨a«&Ð!1Ð2°F¸CÓ
@€CÜ×Ñ  A ¨¨A¨Ð/°Ó5€AÜ�wÒØ�u‰u˜Š|Ðˆ|à�u‰u˜Ÿ
™
›Ò$Ð$Ð$Ø�7‰7�fÒÐÐØ�8‰8�sŠ?Ðˆ?ä
”�1�a“œ"˜Q ›(Ð#¤b¨¨A£h´°1°a³Ð%9Ð:¸FÄBÓ
G€CÜ×Ñ ¨Ð 0°6¸6Ð2BÐCÄRÓH€AÜ�wÒØ�u‰u˜Š|Ðˆ|à�u‰u˜Ÿ
™
›Ò$Ð$Ð$Ø�7‰7�fÒÐÐØ�8‰8”rŠ>Ð‰>r+   c            
      ó°  — t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      } t        j                  ddddgddgg«      }t        dk7  r|j
                  | k(  s!J ‚|j
                  | j                  «       k(  sJ ‚|j                  dk(  sJ ‚|j                  t        k(  sJ ‚t        j                  t        d«      «      }t        |j                  dt        d«      z   «      |j                  dt        d«      z   «      g|j                  dt        d«      z   «      |j                  dt        d«      z   «      ggd|«      } t        j                  dddt        d«      z   dt        d«      z   gdt        d«      z   dt        d«      z   ggd¬«      }|j
                  | k(  sJ ‚|j                  dk(  sJ ‚|j                  |k(  sJ ‚y )	Nr   r   r   r    r!   r"   T©Ú	extension)r   r   r   Úfrom_list_sympyr   r#   r$   r%   r&   r   Úalgebraic_fieldr   Úconvert)r'   r(   ÚKs      r)   Ú!test_DomainMatrix_from_list_sympyr`      sœ  € Ü
”�1“”r˜!“uˆ~¤ 1£¤r¨!£u˜~Ð.°¼Ó
;€CÜ×$Ñ$ Q¨¨Q°¨F°Q¸°FÐ+;Ó<€AÜ�wÒØ�u‰u˜Š|Ðˆ|à�u‰u˜Ÿ
™
›Ò$Ð$Ð$Ø�7‰7�fÒÐÐØ�8‰8”rŠ>Ðˆ>ä
×Ñœ4 ›7Ó#€AÜ
Ø
�)‰)�Aœ˜Q›‘KÓ
  !§)¡)¨A´°Q³©KÓ"8Ð	9Ø
�)‰)�Aœ˜Q›‘KÓ
  !§)¡)¨A´°Q³©KÓ"8Ð	9ð	;àØ	ó	€Cô 	×$Ñ$Ø	ˆ1�”D˜“G‘˜Q¤ a£™[Ð)¨A´°Q³©K¸¼TÀ!»W¹Ð+EÐFØô	€Að �5‰5�CŠ<Ðˆ<Ø�7‰7�fÒÐÐØ�8‰8�qŠ=Ð‰=r+   c                  ó   ‡— t        dt        dd«      idt        dd«      idœdt        «      } dt        dd«      idt        dd«      idœ}t        j                  dd|«      }|j
                  | k(  sJ ‚|j                  dk(  sJ ‚|j                  t        k(  sJ ‚t        j                  Št        t        ˆfd„«       t        t        ˆfd„«       y )	Nr   r   r   r   r-   r!   c            
      ó4   •—  ‰ ddddt        dd«      ii«      S )Nr   r   r   r   ©r   ©Úfdss   €r)   r1   z3test_DomainMatrix_from_dict_sympy.<locals>.<lambda>¡   ó    ø€ ¡C¨¨1¨q°1´h¸qÀ!³nÐ2EÐ.FÓ$G€ r+   c            
      ó4   •—  ‰ ddddt        dd«      ii«      S )Nr   r   r   r   rc   rd   s   €r)   r1   z3test_DomainMatrix_from_dict_sympy.<locals>.<lambda>¢   rf   r+   )
r   r   r   r   Úfrom_dict_sympyr#   r%   r&   r   r   )r4   Ú
sympy_dictr(   re   s      @r)   Ú!test_DomainMatrix_from_dict_sympyrj   ˜   s±   ø€ Ü
�1”b˜˜A“h�- Q¬¨1¨a« MÑ2°F¼BÓ
?€CØœ ! Q›Ð(¨a´¸!¸Q³Ð-@ÑA€JÜ×$Ñ$ Q¨¨:Ó6€AØ�5‰5�CŠ<Ðˆ<Ø�7‰7�fÒÐÐØ�8‰8”rŠ>Ðˆ>ä
×
&Ñ
&€CÜ
Œ?ÓGÔHÜ
Œ?ÓGÕHr+   c            
      ó`  — t        t        d«      t        d«      dœt        d«      t        d«      dœdœdt        «      } t        j                  t	        ddgddgg«      «      }|j
                  | k(  sJ ‚|j                  dk(  sJ ‚|j                  t        k(  sJ ‚t        j                  t        d«      «      }t        |j                  dt        d«      z   «      |j                  dt        d«      z   «      dœ|j                  dt        d«      z   «      |j                  dt        d«      z   «      dœdœd|«      } t        j                  t	        dt        d«      z   dt        d«      z   gdt        d«      z   dt        d«      z   gg«      d¬«      }|j
                  | k(  sJ ‚|j                  dk(  sJ ‚|j                  |k(  sJ ‚t        j                  t	        t        dd«      t        dd«      gt        d	d«      t        d	d«      gg«      d
¬«      }t        t        dd«      t        dd«      gt        d	d«      t        d	d«      ggdt        «      }t        dk7  r|j
                  |k(  s!J ‚|j
                  |j                  «       k(  sJ ‚|j                  dk(  sJ ‚|j                  t        k(  sJ ‚y )Nr   r   r-   r   r    r!   TrZ   r   r9   r:   r"   )r   r   r   Úfrom_Matrixr   r#   r%   r&   r   r]   r   r^   r   r   r$   )r4   r(   r_   r'   s       r)   Útest_DomainMatrix_from_Matrixrm   ¥   sH  € Ü
”b˜“e¤ 1£Ñ&¬r°!«u¼¸A»Ñ+?Ñ@À&Ì"Ó
M€CÜ× Ñ ¤¨!¨Q¨°!°Q°Ð(8Ó!9Ó:€AØ�5‰5�CŠ<Ðˆ<Ø�7‰7�fÒÐÐØ�8‰8”rŠ>Ðˆ>ä
×Ñœ4 ›7Ó#€AÜ
Ø—	‘	˜!œd 1›g™+Ó&¨1¯9©9°Q¼¸a»±[Ó+AÑBØ—	‘	˜!œd 1›g™+Ó&¨1¯9©9°Q¼¸a»±[Ó+AÑBñ	DàØ	ó	€Cô 	× Ñ Ü�”T˜!“W‘˜a¤$ q£'™kÐ*¨Q´°a³©[¸!¼dÀ1»g¹+Ð,FÐGÓHØô	€Að �5‰5�CŠ<Ðˆ<Ø�7‰7�fÒÐÐØ�8‰8�qŠ=Ðˆ=ä× Ñ ¤¬"¨Q°«(´B°q¸!³HÐ)=ÄÀ1ÀaÃÌ"ÈQÐPQË(Ð?SÐ(TÓ!UÐ[bÔc€AÜ
”�1�a“œ"˜Q ›(Ð#¤b¨¨A£h´°1°a³Ð%9Ð:¸FÄBÓ
G€Cä�wÒØ�u‰u˜Š|Ðˆ|à�u‰u˜Ÿ
™
›Ò$Ð$Ð$Ø�7‰7�fÒÐÐØ�8‰8”rŠ>Ð‰>r+   c                  ór  — t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      } | | k(  sJ ‚t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      }| |k7  sJ ‚t        d«      t        d«      gt        d«      t        d«      gg}| |k7  sJ ‚y ©Nr   r   r   r    r!   r0   ©r(   ÚBÚCs      r)   Útest_DomainMatrix_eqrs   Å   s›   € Ü”r˜!“uœb ›e�n¤r¨!£u¬b°«e nÐ5°v¼rÓB€AØ�Š6€Mˆ6Ü”r˜!“uœb ›e�n¤r¨!£u¬b°«e nÐ5°v¼rÓB€AØ�Š6€Mˆ6Ü
ˆQ‹%”�A“ˆœ"˜Q›%¤ A£˜Ð(€AØ�Š6€M‰6r+   c                  ó  — t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      } t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      }t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      }t        t        d«      ggdt        «      }| j                  |«      du sJ ‚| j                  |«      du sJ ‚| j                  |«      du sJ ‚y )	Nr   r   r   r    r!   r6   TF)r   r   r   Úunify_eq)r(   ÚB1ÚB2ÚB3s       r)   Útest_DomainMatrix_unify_eqry   Î   sÛ   € Ü”r˜!“uœb ›e�n¤r¨!£u¬b°«e nÐ5°v¼rÓB€AÜ	œ˜1›œr !›u�~¬¨1«¬r°!«u ~Ð6¸ÄÓ	C€BÜ	œ˜1›œr !›u�~¬¨1«¬r°!«u ~Ð6¸ÄÓ	C€BÜ	œ˜1›�w�i ¬Ó	,€BØ�:‰:�b‹>˜TÑ!Ð!Ð!Ø�:‰:�b‹>˜UÑ"Ð"Ð"Ø�:‰:�b‹>˜UÑ"Ð"Ñ"r+   c            	      ón  — t        j                  g d¢«      \  } }|t        d«      t        d«      t        d«      t        d«      gk(  sJ ‚| t        k(  sJ ‚t        j                  dddt        dd«      g«      \  } }|t	        d«      t	        d«      t	        d«      t	        dd«      gk(  sJ ‚| t        k(  sJ ‚y )N)r   r   r   r    r   r   r   r    )r   Ú
get_domainr   r   r   )r_   Úitemss     r)   Útest_DomainMatrix_get_domainr}   Ø   sŸ   € Ü×&Ñ&¢|Ó4�H€A€uØ”R˜“UœB˜q›E¤2 a£5¬"¨Q«%Ð0Ò0Ð0Ð0Ø”Š7€Nˆ7ä×&Ñ&¨¨1¨a´¸!¸Q³Ð'@ÓA�H€A€uØ”R˜“UœB˜q›E¤2 a£5¬"¨Q°«(Ð3Ò3Ð3Ð3Ø”Š7€N‰7r+   c                  ó$  — t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      } | j                  t        «      }|t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      k(  sJ ‚y ro   )r   r   Ú
convert_tor   ©r(   ÚAqs     r)   Útest_DomainMatrix_convert_tor‚   â   so   € Ü”r˜!“uœb ›e�n¤r¨!£u¬b°«e nÐ5°v¼rÓB€AØ	
�‰”bÓ	€BØ”¤ 1£¤r¨!£u˜~´°1³´r¸!³u¨~Ð>ÀÌÓKÒKÐKÑKr+   c                  óþ  — ddgddgg} t        | t        «      j                  «       t        | t        «      k(  sJ ‚t        | t        «      j                  d¬«      t        | t        «      k(  sJ ‚t        | t        «      j                  d¬«      t        | t        «      k(  sJ ‚t	        d«      }d|g|dz  |dz  gg}t        |t        |   «      j                  d¬«      t        |t        j
                  |«      «      k(  sJ ‚y )Nr   r   r   r   T)ÚfieldÚx)r   r   Úchoose_domainr   r	   Ú
frac_field)r(   r…   rq   s      r)   Útest_DomainMatrix_choose_domainrˆ   è   sà   € Ø
ˆQˆ�!�Q�Ð€AÜˆa”‹9×"Ñ"Ó$¬¨1¬b«	Ò1Ð1Ð1Üˆa”‹9×"Ñ"¨Ð"Ó.´"°Q¼³)Ò;Ð;Ð;Üˆa”‹9×"Ñ"¨Ð"Ó.´"°Q¼³)Ò;Ð;Ð;ä�‹€AØ
ˆQˆ�!�Q‘$˜˜1™�Ð€AÜˆa”�A‘‹<×%Ñ%¨DÐ%Ó1´R¸¼2¿=¹=ÈÓ;KÓ5LÒLÐLÑLr+   c                  ó&  — t        ddgddggt        «      } | j                  j                  «       }| j                  j	                  «       }| ||fD ]µ  }|j                  «       \  }}|j                  |||j                  «      |k(  sJ ‚|D �cg c]  }t        |«      ‘Œ }}|j                  ||t        «      |j                  t        «      k(  sJ ‚|D �cg c]  }d|z  ‘Œ	 }}|j                  |||j                  «      d|z  k(  rŒµJ ‚ y c c}w c c}w )Nr   r   r   r   )
r   r   r#   Úto_ddmÚto_sdmÚ
to_flat_nzÚfrom_flat_nzr&   r   r   )	ÚAdmÚAddmÚAsdmr(   ÚelemsÚdataÚeÚelemsqÚelems2s	            r)   Útest_DomainMatrix_to_flat_nzr–   ó   sü   € Ü
ˆq�!ˆf�q˜!�fÐœrÓ
"€CØ�7‰7�>‰>Ó€DØ�7‰7�>‰>Ó€DØ�4˜Ðò =ˆØ—l‘l“n‰ˆˆtØ�~‰~˜e T¨1¯8©8Ó4¸Ò9Ð9Ð9Ø!&Ö'˜A”"�Q•%Ð'ˆÐ'Ø�~‰~˜f d¬BÓ/°1·<±<ÄÓ3CÒCÐCÐCØ$Ö%˜!�!�A“#Ð%ˆÐ%Ø�~‰~˜f d¨A¯H©HÓ5¸¸1¹Ó<Ð<Ð<ñ=ùò (ùâ%s   ÂD	ÃDc                  óÊ   — t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      } | j                  «       | j                  t        «      k(  sJ ‚y ro   )r   r   Úto_sympyr   r   rM   s    r)   Útest_DomainMatrix_to_sympyr™      sJ   € Ü”r˜!“uœb ›e�n¤r¨!£u¬b°«e nÐ5°v¼rÓB€AØ�:‰:‹<˜1Ÿ<™<¬Ó.Ò.Ð.Ñ.r+   c                  ó  — t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      } | j                  «       }|t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      k(  sJ ‚y ro   )r   r   Úto_fieldr   r€   s     r)   Útest_DomainMatrix_to_fieldrœ     sl   € Ü”r˜!“uœb ›e�n¤r¨!£u¬b°«e nÐ5°v¼rÓB€AØ	
�‰‹€BØ”¤ 1£¤r¨!£u˜~´°1³´r¸!³u¨~Ð>ÀÌÓKÒKÐKÑKr+   c                  óÎ   — t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      } | j                  «       }|j                  dddœdddœdœk(  sJ ‚y )Nr   r   r   r    r!   r-   )r   r   Ú	to_sparser#   )r(   ÚA_sparses     r)   Útest_DomainMatrix_to_sparser      sW   € Ü”r˜!“uœb ›e�n¤r¨!£u¬b°«e nÐ5°v¼rÓB€AØ�{‰{‹}€HØ�<‰< 1¨™|°A¸!±Ñ=Ò=Ð=Ñ=r+   c                  óú   — t        dddœdddœdœdt        «      } | j                  «       }t        ddgddggdt        «      }t        dk7  r|j
                  |k(  sJ ‚y |j
                  |j                  «       k(  sJ ‚y )Nr   r   r-   r   r    r!   r"   )r   r   Úto_denser   r   r#   r$   )r(   ÚA_denser'   s      r)   Útest_DomainMatrix_to_denser¤     su   € Ü˜Q 1™¨a°A©,Ñ7¸ÄÓD€AØ�j‰j‹l€GÜ
��1ˆv˜˜1�vÐ ¬Ó
+€CÜ�wÒØ�{‰{˜cÒ!Ð!Ñ!à�{‰{˜cŸj™j›lÒ*Ð*Ñ*r+   c                  óÎ  ‡‡— t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      } t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      }| j                  | «      | | fk(  sJ ‚| j                  |«      ||fk(  sJ ‚|j                  | «      ||fk(  sJ ‚|j                  |«      ||fk(  sJ ‚t        dt        d«      idt        d«      idœdt        «      Št        t        d«      t        d«      gt        d«      t        d«      ggdt        «      Š‰j                  ‰«      ‰‰fk(  sJ ‚‰j                  ‰«      ‰‰fk(  sJ ‚‰j                  ‰d¬	«      \  }}|j                  t        ddgddggdt        «      j                  «       k(  sJ ‚|j                  t        ddgddggdt        «      j                  «       k(  sJ ‚‰j                  ‰d
¬	«      \  }}|j                  t        ddiddidœdt        «      k(  sJ ‚|j                  t        dddœdddœdœdt        «      k(  sJ ‚t        t        ˆˆfd„«       y )Nr   r   r   r    r!   r   r-   r9   r:   r8   c                  ó*   •— ‰j                  ‰ d¬«      S )Nr=   r:   )Úunify©ÚAdÚAss   €€r)   r1   z)test_DomainMatrix_unify.<locals>.<lambda>1  s   ø€ ˜rŸx™x¨°	˜xÓ:€ r+   )
r   r   r   r§   r#   r   Úto_dfm_or_ddmr   r   rC   )ÚAzr�   ÚBsÚBdr©   rª   s       @@r)   Útest_DomainMatrix_unifyr¯     s+  ù€ Ü	œ˜1›œr !›u�~¬¨1«¬r°!«u ~Ð6¸ÄÓ	C€BÜ	œ˜1›œr !›u�~¬¨1«¬r°!«u ~Ð6¸ÄÓ	C€BØ�8‰8�B‹<˜B ˜8Ò#Ð#Ð#Ø�8‰8�B‹<˜B ˜8Ò#Ð#Ð#Ø�8‰8�B‹<˜B ˜8Ò#Ð#Ð#Ø�8‰8�B‹<˜B ˜8Ò#Ð#Ð#ä	˜1œb ›e˜*¨¬2¨a«5¨	Ñ2°F¼BÓ	?€BÜ	œ˜1›œr !›u�~¬¨1«¬r°!«u ~Ð6¸ÄÓ	C€Bà�8‰8�B‹<˜B ˜8Ò#Ð#Ð#Ø�8‰8�B‹<˜B ˜8Ò#Ð#Ð#à�X‰X�b˜gˆXÓ&�F€BˆØ�6‰6”S˜1˜a˜& 1 a &Ð)¨6´2Ó6×DÑDÓFÒFÐFÐFØ�6‰6”S˜1˜a˜& ! Q ˜¨&´"Ó5×CÑCÓEÒEÐEÐEà�X‰X�b˜hˆXÓ'�F€BˆØ�6‰6”S˜a ˜V¨¨A¨Ñ/°¼Ó<Ò<Ð<Ð<Ø�6‰6”S  q™\°!¸©lÑ;¸VÄRÓHÒHÐHÐHä
Œ:Ô:Õ;r+   c                  óÜ  — t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      } t        ddgddgg«      }| j                  «       |k(  sJ ‚| j	                  «       j                  «       |k(  sJ ‚| j                  t        «      j                  «       |k(  sJ ‚| j                  t        j                  t        d«      «      «      j                  «       |k(  sJ ‚y ro   )	r   r   r   Ú	to_Matrixrž   r   r   r]   r   )r(   ÚA_Matrixs     r)   Útest_DomainMatrix_to_Matrixr³   4  sÄ   € Ü”r˜!“uœb ›e�n¤r¨!£u¬b°«e nÐ5°v¼rÓB€AÜ˜˜1�v  1˜vÐ&Ó'€HØ�;‰;‹=˜HÒ$Ð$Ð$Ø�;‰;‹=×"Ñ"Ó$¨Ò0Ð0Ð0Ø�<‰<œÓ×%Ñ%Ó'¨8Ò3Ð3Ð3Ø�<‰<œ×*Ñ*¬4°«7Ó3Ó4×>Ñ>Ó@ÀHÒLÐLÑLr+   c                  óø   — t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      } | j                  «       t        d«      t        d«      gt        d«      t        d«      ggk(  sJ ‚y ro   )r   r   Úto_listrM   s    r)   Útest_DomainMatrix_to_listr¶   =  s^   € Ü”r˜!“uœb ›e�n¤r¨!£u¬b°«e nÐ5°v¼rÓB€AØ�9‰9‹;œB˜q›E¤2 a£5˜>¬B¨q«E´2°a³5¨>Ð:Ò:Ð:Ñ:r+   c                  óô   — t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      } | j                  «       t        d«      t        d«      t        d«      t        d«      gk(  sJ ‚y ro   )r   r   Úto_list_flatrM   s    r)   Útest_DomainMatrix_to_list_flatr¹   B  s[   € Ü”r˜!“uœb ›e�n¤r¨!£u¬b°«e nÐ5°v¼rÓB€AØ�>‰>Ó¤ 1£¤r¨!£u¬b°«e´R¸³UÐ;Ò;Ð;Ñ;r+   c                  óô   — t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      } | j                  «       t        d«      t        d«      t        d«      t        d«      gk(  sJ ‚y ro   )r   r   ÚflatrM   s    r)   Útest_DomainMatrix_flatr¼   G  sZ   € Ü”r˜!“uœb ›e�n¤r¨!£u¬b°«e nÐ5°v¼rÓB€AØ�6‰6‹8œ˜1›œr !›u¤b¨£e¬R°«UÐ3Ò3Ð3Ñ3r+   c                  ó@  — t        d«      t        d«      t        d«      t        d«      g} t        t        d«      t        d«      gt        d«      t        d«      ggdt         «      }t        j                  | dt         «      |k(  sJ ‚t        j                  | dt         «      |j                  j                  «       k(  sJ ‚t        j                  | dt         «      |j                  j                  «       k(  sJ ‚||j                  |j                  «       |j                  |j                  «      k(  sJ ‚t        t        t        j                  | dt         «       t        t        t        j                  | dt         «       t        t        t        j                  | dt         «       y )Nr   r   r   r    r!   ©r   r   )r   r   Úfrom_list_flatr   r#   rŠ   r   r‹   r¸   r%   r&   r   r   )Únumsr(   s     r)   Ú test_DomainMatrix_from_list_flatrÁ   L  s$  € Üˆq‹E”2�a“5œ"˜Q›%¤ A£Ð'€DÜ”r˜!“uœb ›e�n¤r¨!£u¬b°«e nÐ5°v¼rÓB€Aä×&Ñ& t¨V´RÓ8¸AÒ=Ð=Ð=Ü×Ñ˜d F¬BÓ/°1·5±5·<±<³>ÒAÐAÐAÜ×Ñ˜d F¬BÓ/°1·5±5·<±<³>ÒAÐAÐAà�× Ñ  §¡Ó!1°1·7±7¸A¿H¹HÓEÒEÐEÐEä
Œ?œL×7Ñ7¸¸vÄrÔJÜ
Œ?œC×.Ñ.°°f¼bÔAÜ
Œ?œC×.Ñ.°°f¼bÕAr+   c                  óÐ  — t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      } | j                  «       t        d«      t        d«      dœt        d«      t        d«      dœdœk(  sJ ‚t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      } | j                  «       dt        d«      idt        d«      idœk(  sJ ‚y )Nr   r   r   r    r!   r-   r   )r   r   Úto_dodrM   s    r)   Útest_DomainMatrix_to_dodrÄ   [  s´   € Ü”r˜!“uœb ›e�n¤r¨!£u¬b°«e nÐ5°v¼rÓB€AØ�8‰8‹:¤ A£¬"¨Q«%Ñ0¼¸1»ÄÀAÃÑ5GÑHÒHÐHÐHÜ”r˜!“uœb ›e�n¤r¨!£u¬b°«e nÐ5°v¼rÓB€AØ�8‰8‹:˜a¤ A£˜Z¨Q´°1³¨JÑ7Ò7Ð7Ñ7r+   c                  ór  — t        d«      t        d«      dœt        d«      t        d«      dœdœ} t        ddgddggt         «      }t        j                  | dt         «      |j	                  «       k(  sJ ‚|j                  | «      |k(  sJ ‚|j                  | t        «      |j                  t        «      k(  sJ ‚y )Nr   r   r-   r   r    r!   )r   r   r   Úfrom_dodrž   Úfrom_dod_liker   r   ©r|   r(   s     r)   Útest_DomainMatrix_from_dodrÉ   b  s›   € Ü�q“EœR ›UÑ#¬2¨a«5´B°q³EÑ(:Ñ;€EÜ
ˆQ�ˆF�Q˜�FÐœRÓ €AÜ× Ñ  ¨´Ó3°q·{±{³}ÒDÐDÐDØ�?‰?˜5Ó! QÒ&Ð&Ð&Ø�?‰?˜5¤"Ó%¨¯©´bÓ)9Ò9Ð9Ñ9r+   c                  ó  — t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      } | j                  «       t        d«      t        d«      t        d«      t        d«      dœk(  sJ ‚t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      } t        d«      t        d«      dœ}| j                  «       |k(  sJ ‚| j                  «       j                  «       |k(  sJ ‚| j	                  «       j                  «       |k(  sJ ‚| j
                  j                  «       j                  «       |k(  sJ ‚| j
                  j                  «       j                  «       |k(  sJ ‚y )	Nr   r   r   r    r!   )rA   r-   ©r   r   r6   r   ©rA   r6   )r   r   Úto_dokr¢   rž   r#   rŠ   r‹   )r(   Údoks     r)   Útest_DomainMatrix_to_dokrÏ   j  s'  € Ü”r˜!“uœb ›e�n¤r¨!£u¬b°«e nÐ5°v¼rÓB€AØ�8‰8‹:¤ A£¬r°!«u¼RÀ»UÌ2ÈaË5ÑQÒQÐQÐQÜ”r˜!“uœb ›e�n¤r¨!£u¬b°«e nÐ5°v¼rÓB€AÜ�Q“%¤ 1£Ñ
&€CØ�8‰8‹:˜ÒÐÐØ�:‰:‹<×ÑÓ  CÒ'Ð'Ð'Ø�;‰;‹=×ÑÓ! SÒ(Ð(Ð(Ø�5‰5�<‰<‹>× Ñ Ó" cÒ)Ð)Ð)Ø�5‰5�<‰<‹>× Ñ Ó" cÒ)Ð)Ñ)r+   c                  óš  — t        d«      t        d«      dœ} t        ddgddggt         «      }t        j                  | dt         «      |j	                  «       k(  sJ ‚t        j                  | dt         «      |j                  j                  «       k(  sJ ‚t        j                  | dt         «      |j                  j                  «       k(  sJ ‚y )Nr   r   rÌ   r   r!   )
r   r   r   Úfrom_dokrž   r   r#   rŠ   r   r‹   rÈ   s     r)   Útest_DomainMatrix_from_dokrÒ   v  sš   € Ü˜“U¤B q£EÑ*€EÜ
ˆQ�ˆF�Q˜�FÐœRÓ €AÜ× Ñ  ¨´Ó3°q·{±{³}ÒDÐDÐDÜ�<‰<˜˜v¤rÓ*¨a¯e©e¯l©l«nÒ<Ð<Ð<Ü�<‰<˜˜v¤rÓ*¨a¯e©e¯l©l«nÒ<Ð<Ñ<r+   c                  óš   — t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      } t        | «      dk(  sJ ‚y )Nr   r   r   r    r!   z*DomainMatrix([[1, 2], [3, 4]], (2, 2), ZZ))r   r   ÚreprrM   s    r)   Útest_DomainMatrix_reprrÕ   ~  s@   € Ü”r˜!“uœb ›e�n¤r¨!£u¬b°«e nÐ5°v¼rÓB€AÜ�‹7ÐBÒBÐBÑBr+   c                  ó  — t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      } t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      }| j                  «       |k(  sJ ‚y ro   )r   r   Ú	transpose)r(   ÚATs     r)   Útest_DomainMatrix_transposerÙ   ƒ  sl   € Ü”r˜!“uœb ›e�n¤r¨!£u¬b°«e nÐ5°v¼rÓB€AÜ	œ˜1›œr !›u�~¬¨1«¬r°!«u ~Ð6¸ÄÓ	C€BØ�;‰;‹=˜BÒÐÑr+   c                  ó´   — t        t        d«      ggdt        «      } t        t        d«      ggdt        «      }| j                  du sJ ‚|j                  du sJ ‚y )Nr   r6   r   FT)r   r   Úis_zero_matrix©r(   rq   s     r)   Ú test_DomainMatrix_is_zero_matrixrÝ   ‰  sV   € Ü”r˜!“u�g�Y ¬Ó+€AÜ”r˜!“u�g�Y ¬Ó+€AØ×Ñ˜uÑ$Ð$Ð$Ø×Ñ˜tÑ#Ð#Ñ#r+   c                  ó0  — t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      } t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      }| j                  du sJ ‚|j                  du sJ ‚y )	Nr   r   r   r    r!   r   TF)r   r   Úis_upperrÜ   s     r)   Útest_DomainMatrix_is_upperrà   �  ó|   € Ü”r˜!“uœb ›e�n¤r¨!£u¬b°«e nÐ5°v¼rÓB€AÜ”r˜!“uœb ›e�n¤r¨!£u¬b°«e nÐ5°v¼rÓB€AØ�:‰:˜ÑÐÐØ�:‰:˜ÑÐÑr+   c                  ó0  — t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      } t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      }| j                  du sJ ‚|j                  du sJ ‚y )	Nr   r   r   r    r!   r   TF)r   r   Úis_lowerrÜ   s     r)   Útest_DomainMatrix_is_lowerrä   —  rá   r+   c                  ó  — t        ddgddggt        «      } t        ddgddggt        «      }| j                  | j                  «       j                  cxu rdu sJ ‚ J ‚|j                  |j                  «       j                  cxu rdu sJ ‚ J ‚y )Nr   r   r    r   r   TF)r   r   Úis_diagonalrž   rÜ   s     r)   Útest_DomainMatrix_is_diagonalrç   ž  s†   € Ü
ˆQ�ˆF�Q˜�FÐœRÓ €AÜ
ˆQ�ˆF�Q˜�FÐœRÓ €AØ�=‰=˜AŸK™K›M×5Ñ5Ó=¸Ñ=Ð=Ñ=Ð=Ð=Ø�=‰=˜AŸK™K›M×5Ñ5Ó>¸Ñ>Ð>Ñ>Ð>Ñ>r+   c                  óZ  — t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      } t        t        d«      t        d«      gt        d«      t        d«      gt        d«      t        d«      ggdt        «      }| j                  d	u sJ ‚|j                  d
u sJ ‚y )Nr   r   r   r    r!   rR   é   ©r   r   TF)r   r   Ú	is_squarerÜ   s     r)   Útest_DomainMatrix_is_squarerì   ¥  sŠ   € Ü”r˜!“uœb ›e�n¤r¨!£u¬b°«e nÐ5°v¼rÓB€AÜ”r˜!“uœb ›e�n¤r¨!£u¬b°«e n´r¸!³u¼bÀ»e°nÐEÀvÌrÓR€AØ�;‰;˜$ÑÐÐØ�;‰;˜%ÑÐÑr+   c                  ób  — t        ddgddggt        «      } | j                  «       | j                  «       j                  «       cxk(  rt        d«      t        d«      gk(  sJ ‚ J ‚t        ddgddgddggt        «      } | j                  «       | j                  «       j                  «       cxk(  rt        d«      t        d«      gk(  sJ ‚ J ‚t        g d¢g d¢gt        «      } | j                  «       | j                  «       j                  «       cxk(  rt        d«      t        d«      gk(  sJ ‚ J ‚y )	Nr   r   r   r    rR   ré   )r   r   r   )r    rR   ré   )r   r   Údiagonalrž   rM   s    r)   Útest_DomainMatrix_diagonalrï   ¬  sù   € Ü
ˆQ�ˆF�Q˜�FÐœRÓ €AØ�:‰:‹<˜1Ÿ;™;›=×1Ñ1Ó3ÔE¼¸1»¼rÀ!»u°~ÒEÐEÑEÐEÐEÜ
ˆQ�ˆF�Q˜�F˜Q ˜FÐ#¤RÓ(€AØ�:‰:‹<˜1Ÿ;™;›=×1Ñ1Ó3ÔE¼¸1»¼rÀ!»u°~ÒEÐEÑEÐEÐEÜ
ŠI’yÐ!¤2Ó&€AØ�:‰:‹<˜1Ÿ;™;›=×1Ñ1Ó3ÔE¼¸1»¼rÀ!»u°~ÒEÐEÑEÐEÑEr+   c                  óÎ   — t        t        d«      t        d«      gt        d«      t        d«      gt        d«      t        d«      ggdt        «      } | j                  «       dk(  sJ ‚y )Nr   r   r   r    ré   é   rê   )r   r   ÚrankrM   s    r)   Útest_DomainMatrix_rankró   µ  sM   € Ü”r˜!“uœb ›e�n¤r¨!£u¬b°«e n´r¸!³u¼bÀ»e°nÐEÀvÌrÓR€AØ�6‰6‹8�qŠ=Ð‰=r+   c                  óœ  ‡‡‡‡‡‡	‡
‡— t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      Št        t        d«      t        d«      gt        d«      t        d«      ggdt        «      } ‰‰z   ‰j                  ‰«      cxk(  r| k(  sJ ‚ J ‚t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      ŠddgddggŠt        t        ˆˆfd„«       t        t        ˆˆfd	„«       t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      Št        t        d«      t        d«      ggd
t        «      Št        t
        ˆˆfd„«       t        t
        ˆˆfd„«       t        t
        ˆˆfd„«       t        t
        ˆˆfd„«       t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      Š
t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      Št        t        d«      t        d«      gt        d«      t        d«      ggdt        «      }‰
‰z   |k(  sJ ‚‰‰
z   |k(  sJ ‚t        t        ˆˆ
fd„«       t        t        ˆˆ
fd„«       t        dt        d«      idt        d«      idœdt        «      Š	t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      Š‰	‰z   }‰‰	z   }|t        ddgddggdt        «      k(  sJ ‚|j                  t        ddgddggdt        «      j                  «       k(  sJ ‚|t        ddgddggdt        «      k(  sJ ‚|j                  t        ddgddggdt        «      j                  «       k(  sJ ‚t        t        ˆˆ	fd„«       y )Nr   r   r   r    r!   ré   rñ   c                  ó   •— ‰ ‰z   S rK   r7   ©r(   ÚLs   €€r)   r1   z'test_DomainMatrix_add.<locals>.<lambda>Á  ó   ø€ ˜a !™e€ r+   c                  ó   •— ‰‰ z   S rK   r7   rö   s   €€r)   r1   z'test_DomainMatrix_add.<locals>.<lambda>Â  rø   r+   rS   c                  ó   •— ‰ ‰z   S rK   r7   ©ÚA1ÚA2s   €€r)   r1   z'test_DomainMatrix_add.<locals>.<lambda>Æ  ó   ø€   b¡€ r+   c                  ó   •— ‰‰ z   S rK   r7   rû   s   €€r)   r1   z'test_DomainMatrix_add.<locals>.<lambda>Ç  rþ   r+   c                  ó&   •— ‰ j                  ‰«      S rK   ©Úaddrû   s   €€r)   r1   z'test_DomainMatrix_add.<locals>.<lambda>È  ó   ø€  §¡¨£€ r+   c                  ó&   •— ‰j                  ‰ «      S rK   r  rû   s   €€r)   r1   z'test_DomainMatrix_add.<locals>.<lambda>É  r  r+   c                  ó&   •— ‰j                  ‰ «      S rK   r  ©r�   r¬   s   €€r)   r1   z'test_DomainMatrix_add.<locals>.<lambda>Ð  ó   ø€  "§&¡&¨£*€ r+   c                  ó&   •— ‰ j                  ‰«      S rK   r  r  s   €€r)   r1   z'test_DomainMatrix_add.<locals>.<lambda>Ñ  r  r+   r   r-   rR   c                  ó&   •— ‰j                  ‰ «      S rK   r  r¨   s   €€r)   r1   z'test_DomainMatrix_add.<locals>.<lambda>Ü  r  r+   )r   r   r  r   rB   r   r   r   r#   r   r«   r   )rq   ÚAsumÚAsdÚAdsr(   rü   rý   r©   r�   rª   r¬   r÷   s       @@@@@@@@r)   Útest_DomainMatrix_addr  º  s  ÿ€ Ü”r˜!“uœb ›e�n¤r¨!£u¬b°«e nÐ5°v¼rÓB€AÜ”r˜!“uœb ›e�n¤r¨!£u¬b°«e nÐ5°v¼rÓB€AØˆq‰5�A—E‘E˜!“HÔ! Ò!Ð!Ñ!Ð!Ð!ä”r˜!“uœb ›e�n¤r¨!£u¬b°«e nÐ5°v¼rÓB€AØ
ˆQˆ�!�Q�Ð€AÜ
Œ9”mÔ$Ü
Œ9”mÔ$ä	œ˜1›œr !›u�~¬¨1«¬r°!«u ~Ð6¸ÄÓ	C€BÜ	œ˜1›œr !›u�~Ð&¨´Ó	3€BÜ
Œ<œÔ)Ü
Œ<œÔ)Ü
Œ<Ô+Ô,Ü
Œ<Ô+Ô,ä	œ˜1›œr !›u�~¬¨1«¬r°!«u ~Ð6¸ÄÓ	C€BÜ	œ˜1›œr !›u�~¬¨1«¬r°!«u ~Ð6¸ÄÓ	C€BÜœ"˜Q›%¤ A£˜¬"¨Q«%´°A³¨Ð8¸&Ä"ÓE€DØ�‰7�dŠ?Ðˆ?Ø�‰7�dŠ?Ðˆ?Ü
Œ=Ô,Ô-Ü
Œ=Ô,Ô-ä	˜1œb ›e˜*¨!¬R°«U¨Ñ4°f¼bÓ	A€BÜ	œ˜1›œr !›u�~¬¨1«¬r°!«u ~Ð6¸ÄÓ	C€Bà
ˆr‰'€CØ
ˆr‰'€CØ”,  A ¨¨A¨Ð/°¼Ó<Ò<Ð<Ð<Ø�7‰7”c˜A˜q˜6 A q 6Ð*¨F´BÓ7×EÑEÓGÒGÐGÐGØ”,  A ¨¨A¨Ð/°¼Ó<Ò<Ð<Ð<Ø�7‰7”c˜A˜q˜6 A q 6Ð*¨F´BÓ7×EÑEÓGÒGÐGÐGÜ
Œ=Ô,Õ-r+   c                  ó  ‡‡‡‡	‡
‡— t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      Št        t        d«      t        d«      gt        d«      t        d«      ggdt        «      } ‰‰z
  ‰j                  ‰«      cxk(  r| k(  sJ ‚ J ‚t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      ŠddgddggŠt        t        ˆˆfd„«       t        t        ˆˆfd„«       t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      Št        t        d«      t        d«      ggd	t        «      Št        t
        ˆˆfd
„«       t        t
        ˆˆfd„«       t        t
        ˆˆfd„«       t        t
        ˆˆfd„«       t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      Š
t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      Š	t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      }‰
‰	z
  |k(  sJ ‚‰	‰
z
  |k(  sJ ‚t        t        ˆ	ˆ
fd„«       t        t        ˆ	ˆ
fd„«       t        dt        d«      idt        d«      idœdt        «      }t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      }||z
  }||z
  }|t        ddgddggdt        «      k(  sJ ‚|j                  t        ddgddggdt        «      j                  «       k(  sJ ‚|| k(  sJ ‚|j                  |j                   k(  sJ ‚y )Nr   r   r   r    r!   r   c                  ó   •— ‰ ‰z
  S rK   r7   rö   s   €€r)   r1   z'test_DomainMatrix_sub.<locals>.<lambda>æ  rø   r+   c                  ó   •— ‰‰ z
  S rK   r7   rö   s   €€r)   r1   z'test_DomainMatrix_sub.<locals>.<lambda>ç  rø   r+   rS   c                  ó   •— ‰ ‰z
  S rK   r7   rû   s   €€r)   r1   z'test_DomainMatrix_sub.<locals>.<lambda>ë  rþ   r+   c                  ó   •— ‰‰ z
  S rK   r7   rû   s   €€r)   r1   z'test_DomainMatrix_sub.<locals>.<lambda>ì  rþ   r+   c                  ó&   •— ‰ j                  ‰«      S rK   ©Úsubrû   s   €€r)   r1   z'test_DomainMatrix_sub.<locals>.<lambda>í  r  r+   c                  ó&   •— ‰j                  ‰ «      S rK   r  rû   s   €€r)   r1   z'test_DomainMatrix_sub.<locals>.<lambda>î  r  r+   c                  ó&   •— ‰j                  ‰ «      S rK   r  r  s   €€r)   r1   z'test_DomainMatrix_sub.<locals>.<lambda>õ  r  r+   c                  ó&   •— ‰ j                  ‰«      S rK   r  r  s   €€r)   r1   z'test_DomainMatrix_sub.<locals>.<lambda>ö  r  r+   r-   éÿÿÿÿéüÿÿÿ)r   r   r  r   rB   r   r   r   r#   r   r«   )rq   ÚAdiffrª   r©   r  r  r(   rü   rý   r�   r¬   r÷   s         @@@@@@r)   Útest_DomainMatrix_subr  ß  s×  ý€ Ü”r˜!“uœb ›e�n¤r¨!£u¬b°«e nÐ5°v¼rÓB€AÜ”r˜!“uœb ›e�n¤r¨!£u¬b°«e nÐ5°v¼rÓB€AØˆq‰5�A—E‘E˜!“HÔ! Ò!Ð!Ñ!Ð!Ð!ä”r˜!“uœb ›e�n¤r¨!£u¬b°«e nÐ5°v¼rÓB€AØ
ˆQˆ�!�Q�Ð€AÜ
Œ9”mÔ$Ü
Œ9”mÔ$ä	œ˜1›œr !›u�~¬¨1«¬r°!«u ~Ð6¸ÄÓ	C€BÜ	œ˜1›œr !›u�~Ð&¨´Ó	3€BÜ
Œ<œÔ)Ü
Œ<œÔ)Ü
Œ<Ô+Ô,Ü
Œ<Ô+Ô,ä	œ˜1›œr !›u�~¬¨1«¬r°!«u ~Ð6¸ÄÓ	C€BÜ	œ˜1›œr !›u�~¬¨1«¬r°!«u ~Ð6¸ÄÓ	C€BÜœ2˜a›5¤" Q£%˜.¬2¨a«5´"°Q³%¨.Ð9¸6Ä2ÓF€EØ�‰7�eÒÐÐØ�‰7�eÒÐÐÜ
Œ=Ô,Ô-Ü
Œ=Ô,Ô-ä	˜1œb ›e˜*¨!¬R°«U¨Ñ4°f¼bÓ	A€BÜ	œ˜1›œr !›u�~¬¨1«¬r°!«u ~Ð6¸ÄÓ	C€Bà
ˆr‰'€CØ
ˆr‰'€CØ”,  R ¨2¨r¨(Ð3°V¼RÓ@Ò@Ð@Ð@Ø�7‰7”c˜B ˜8 b¨" XÐ.°¼Ó;×IÑIÓKÒKÐKÐKØ�3�$Š;Ðˆ;Ø�7‰7�s—w‘w�hÒÐÑr+   c                  ó.  — t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      } t        t        d«      t        d«      gt        d«      t        d	«      ggdt        «      }|  | j                  «       cxk(  r|k(  sJ ‚ J ‚y )
Nr   r   r   r    r!   r  éþÿÿÿéýÿÿÿr  )r   r   Úneg)r(   ÚAnegs     r)   Útest_DomainMatrix_negr"    s{   € Ü”r˜!“uœb ›e�n¤r¨!£u¬b°«e nÐ5°v¼rÓB€AÜœ"˜R›&¤" R£&Ð)¬B¨r«F´B°r³FÐ+;Ð<¸fÄbÓI€DØˆ2�—‘“Ô ˜DÒ Ð Ñ Ð Ñ r+   c                  ó”  ‡‡	‡
‡— t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      Št        t        d«      t        d«      gt        d«      t        d	«      ggdt        «      } ‰‰z  ‰j                  ‰«      cxk(  r| k(  sJ ‚ J ‚t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      ŠddgddggŠt        t        ˆˆfd
„«       t        t        ˆˆfd„«       t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      Š
t        t        d«      t        d«      gt        d«      t        d«      ggdt
        «      Š	t        t        d«      t        d«      gt        d«      t        d	«      ggdt
        «      }‰
‰	z  |k(  sJ ‚‰	‰
z  |k(  sJ ‚t        t        ˆ	ˆ
fd„«       t        t        ˆ	ˆ
fd„«       t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      Št        t        d«      t        d«      gt        d«      t        d«      ggdt        «      }t        d«      }‰|z  |‰z  cxk(  r‰j                  |«      cxk(  r|k(  sJ ‚ J ‚t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      Št        j                  dt        «      }t        d«      }‰|z  |‰z  cxk(  r)‰j                  |«      j                  «       cxk(  r|k(  sJ ‚ J ‚t        dt        d«      idt        d«      idœdt        «      }t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      }||z  }||z  }|t        ddgddggdt        «      k(  sJ ‚|j                  t        ddgddggdt        «      j                  «       k(  sJ ‚|t        ddgddggdt        «      k(  sJ ‚|j                  t        ddgddggdt        «      j                  «       k(  sJ ‚y )Nr   r   r   r    r!   rP   é
   é   é   c                  ó   •— ‰ ‰z  S rK   r7   rö   s   €€r)   r1   z'test_DomainMatrix_mul.<locals>.<lambda>  rø   r+   c                  ó   •— ‰‰ z  S rK   r7   rö   s   €€r)   r1   z'test_DomainMatrix_mul.<locals>.<lambda>  rø   r+   c                  ó&   •— ‰j                  ‰ «      S rK   ©Úmatmulr  s   €€r)   r1   z'test_DomainMatrix_mul.<locals>.<lambda>  ó   ø€  "§)¡)¨B£-€ r+   c                  ó&   •— ‰ j                  ‰«      S rK   r*  r  s   €€r)   r1   z'test_DomainMatrix_mul.<locals>.<lambda>  r,  r+   ré   rñ   r   r-   )r   r   r+  r   rB   r   r   ÚmulÚzerosrž   r#   r   r«   )rý   ÚAprodÚAAr…   rª   r©   r  r  r(   r�   r¬   r÷   s           @@@@r)   Útest_DomainMatrix_mulr2  	  s   û€ Ü”r˜!“uœb ›e�n¤r¨!£u¬b°«e nÐ5°v¼rÓB€AÜ	œ˜1›œr "›v�¬¨B«´°B³Ð(8Ð9¸6Ä2Ó	F€BØˆQ‰3�!—(‘(˜1“+Ô# Ò#Ð#Ñ#Ð#Ð#ä”r˜!“uœb ›e�n¤r¨!£u¬b°«e nÐ5°v¼rÓB€AØ
ˆQˆ�!�Q�Ð€AÜ
Œ9”mÔ$Ü
Œ9”mÔ$ä	œ˜1›œr !›u�~¬¨1«¬r°!«u ~Ð6¸ÄÓ	C€BÜ	œ˜1›œr !›u�~¬¨1«¬r°!«u ~Ð6¸ÄÓ	C€BÜœ2˜a›5¤" R£&˜/¬B¨r«F´B°r³FÐ+;Ð<¸fÄbÓI€EØ�‰7�eÒÐÐØ�‰7�eÒÐÐÜ
Œ=Ô/Ô0Ü
Œ=Ô/Ô0ä”r˜!“uœb ›e�n¤r¨!£u¬b°«e nÐ5°v¼rÓB€AÜ	œ˜1›œr !›u�~¬¨1«¬r°!«u ~Ð6¸ÄÓ	C€BÜ
ˆ1‹€AØˆq‰5�A˜‘EÔ+˜QŸU™U 1›XÔ+¨Ò+Ð+Ñ+Ð+Ð+ä”r˜!“uœb ›e�n¤r¨!£u¬b°«e nÐ5°v¼rÓB€AÜ	×	Ñ	˜F¤BÓ	'€BÜ
ˆ1‹€AØˆq‰5�A˜‘EÔ7˜QŸU™U 1›X×/Ñ/Ó1Ô7°RÒ7Ð7Ñ7Ð7Ð7ä	˜1œb ›e˜*¨!¬R°«U¨Ñ4°f¼bÓ	A€BÜ	œ˜1›œr !›u�~¬¨1«¬r°!«u ~Ð6¸ÄÓ	C€Bà
ˆr‰'€CØ
ˆr‰'€CØ”,  A ¨¨A¨Ð/°¼Ó<Ò<Ð<Ð<Ø�7‰7”c˜A˜q˜6 A q 6Ð*¨F´BÓ7×EÑEÓGÒGÐGÐGØ”,  A ¨¨A¨Ð/°¼Ó<Ò<Ð<Ð<Ø�7‰7”c˜A˜q˜6 A q 6Ð*¨F´BÓ7×EÑEÓGÒGÐGÑGr+   c                  ó¾  — t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      } t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      }t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      }| j                  |«      |k(  sJ ‚|j                  | «      |k(  sJ ‚y )Nr   r   r!   r    r   rñ   )r   r   Úmul_elementwiserp   s      r)   Ú!test_DomainMatrix_mul_elementwiser5  0  sµ   € Ü”r˜!“uœb ›e�n¤r¨!£u¬b°«e nÐ5°v¼rÓB€AÜ”r˜!“uœb ›e�n¤r¨!£u¬b°«e nÐ5°v¼rÓB€AÜ”r˜!“uœb ›e�n¤r¨!£u¬b°«e nÐ5°v¼rÓB€AØ×Ñ˜QÓ 1Ò$Ð$Ð$Ø×Ñ˜QÓ 1Ò$Ð$Ñ$r+   c                  óx  ‡— t        j                  dt        «      } t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      Št        t        d«      t        d«      gt        d«      t        d	«      ggdt        «      }t        t        d
«      t        d«      gt        d«      t        d«      ggdt        «      }‰dz  ‰j                  d«      cxk(  r| k(  sJ ‚ J ‚‰dz  ‰j                  d«      cxk(  r‰k(  sJ ‚ J ‚‰dz  ‰j                  d«      cxk(  r|k(  sJ ‚ J ‚‰dz  ‰j                  d«      cxk(  r|k(  sJ ‚ J ‚t	        t
        ˆfd„«       t	        t        ˆfd„«       t	        t        ˆfd„«       t        j                  dt        «      Št	        t        ˆfd„«       y )Nr   r   r   r    r!   rP   r$  r%  r&  é%   é6   éQ   év   r   c                  ó"   •— ‰ t        dd«      z  S ©Nr   r   rc   rM   s   €r)   r1   z'test_DomainMatrix_pow.<locals>.<lambda>B  s   ø€ ˜a¤8¨A¨q£>Ñ1€ r+   c                  ó   •— ‰ dz  S ©Nr  r7   rM   s   €r)   r1   z'test_DomainMatrix_pow.<locals>.<lambda>C  s   ø€ ¨¨R©€ r+   c                  ó&   •— ‰ j                  d«      S r>  )ÚpowrM   s   €r)   r1   z'test_DomainMatrix_pow.<locals>.<lambda>D  s   ø€ ¨¯©¨b«	€ r+   ©r   r   c                  ó   •— ‰ dz  S ©Nr   r7   rM   s   €r)   r1   z'test_DomainMatrix_pow.<locals>.<lambda>G  s   ø€ ¨1°©6€ r+   )	r   Úeyer   r@  r   rB   ÚNotImplementedErrorr/  r   )rD  rý   ÚA3r(   s      @r)   Útest_DomainMatrix_powrG  8  sl  ø€ Ü
×
Ñ
˜1œbÓ
!€CÜ”r˜!“uœb ›e�n¤r¨!£u¬b°«e nÐ5°v¼rÓB€AÜ	œ˜1›œr "›v�¬¨B«´°B³Ð(8Ð9¸6Ä2Ó	F€BÜ	œ˜2›¤ 2£Ð'¬"¨R«&´"°S³'Ð):Ð;¸VÄRÓ	H€BØˆa‰4�1—5‘5˜“8Ô"˜sÒ"Ð"Ñ"Ð"Ð"Øˆa‰4�1—5‘5˜“8Ô ˜qÒ Ð Ñ Ð Ð Øˆa‰4�1—5‘5˜“8Ô!˜rÒ!Ð!Ñ!Ð!Ð!Øˆa‰4�1—5‘5˜“8Ô!˜rÒ!Ð!Ñ!Ð!Ð!ä
Œ9Ó1Ô2Ü
Ô£Ô0Ü
ÔÓ 1Ô2ä×Ñ˜6¤2Ó&€AÜ
Ô!£>Õ2r+   c                  ó@  — t        ddgddggt        «      } t        t        d«      t        «      }t        ddgdd	ggt        «      }|j	                  t        «      }| j                  «       ||fk(  sJ ‚| j                  d
¬«      ||fk(  sJ ‚| |z  |k(  sJ ‚| ||z  k(  sJ ‚y )NrS   ©r   r   rU   ©r   rR   é<   é   é   r%  é   T©r^   )r   r   r   r   r   Úclear_denoms©r(   Úden_ZÚAnum_ZÚAnum_Qs       r)   Útest_DomainMatrix_clear_denomsrU  J  s®   € Ü
ˆU�5ˆM˜5 ˜-Ð(¬"Ó-€Aäœ˜B›¤Ó$€EÜ�"�b�˜B ˜8Ð$¤bÓ)€FØ×ÑœrÓ"€Fà�>‰>Ó  v˜Ò.Ð.Ð.Ø�>‰> $ˆ>Ó'¨E°6¨?Ò:Ð:Ð:Øˆu‰9˜ÒÐÐØ�˜‘ÒÐÑr+   c                  ó,  — t        ddgddggt        «      } t        ddgddggt        «      j                  «       }t        dd	gd
dggt        «      }t        dd	gd
dggt        «      }| j	                  «       ||fk(  sJ ‚| j	                  d¬«      ||fk(  sJ ‚|| z  |k(  sJ ‚| |j                  «       j                  «       |z  k(  sJ ‚t        g d¢g d¢g d¢gt        «      } t        g d¢g d¢g d¢gt        «      j                  «       }t        g d¢g d¢g d¢gt        «      }|j                  t        «      }| j	                  «       ||fk(  sJ ‚| j	                  d¬«      ||fk(  sJ ‚|| z  |k(  sJ ‚| |j                  «       j                  «       |z  k(  sJ ‚y )NrS   rI  rU   rJ  ré   r   rM  r   r   rR   r    TrO  )rS   rI  r   r   ©r   r   r   r   )rU   rJ  )r   ré   )r   rP   )ré   r   r   )r   r   r   )r   r   i¤  )r   r   r   r   )éi   éT   éF   rK  )r   r   r   rž   Úclear_denoms_rowwiser›   Úinvr   rQ  s       r)   Ú&test_DomainMatrix_clear_denoms_rowwiser]  W  s¤  € Ü
ˆU�5ˆM˜5 ˜-Ð(¬"Ó-€Aä��A�˜˜B˜Ð ¤"Ó%×/Ñ/Ó1€EÜ�!�Q�˜!˜Q˜Ð ¤"Ó%€FÜ�!�Q�˜!˜Q˜Ð ¤"Ó%€Fà×!Ñ!Ó#¨¨v Ò6Ð6Ð6Ø×!Ñ!¨$Ð!Ó/°E¸6°?ÒBÐBÐBØ�1‰9˜ÒÐÐØ�—‘Ó ×$Ñ$Ó&¨Ñ/Ò/Ð/Ð/ä
ÒšiÒ)BÐCÄRÓH€AÜ’	š9¢kÐ2´BÓ7×AÑAÓC€EÜ’š|Ò->Ð?ÄÓD€FØ×ÑœrÓ"€Fà×!Ñ!Ó#¨¨v Ò6Ð6Ð6Ø×!Ñ!¨$Ð!Ó/°E¸6°?ÒBÐBÐBØ�1‰9˜ÒÐÐØ�—‘Ó ×$Ñ$Ó&¨Ñ/Ò/Ð/Ñ/r+   c                  ó>  ‡ — t        ddgddggt        «      Š ‰ j                  t        d«      «      t        ddgddggt        «      t        d«      fk(  sJ ‚‰ j                  t        d«      «      t        ddgddggt        «      t        d«      fk(  sJ ‚‰ j                  t        d«      «      t        ddgddggt        «      t        d«      fk(  sJ ‚t        ddgddggt        «      Š ‰ j                  t        d«      «      ‰ t        d«      fk(  sJ ‚‰ j                  t        d«      «      ‰  t        d«      fk(  sJ ‚t        ddgddggt        «      Š ‰ j                  t        dd«      «      t        dd	«      ‰ z  t        d«      fk(  sJ ‚t	        t
        ˆ fd
„«       y )Nr   r    ré   rñ   r   r   r  r   r  c                  ó8   •— ‰ j                  t        d«      «      S ©Nr   )Úcancel_denomr   rM   s   €r)   r1   z0test_DomainMatrix_cancel_denom.<locals>.<lambda>|  s   ø€  a§n¡n´R¸³UÓ&;€ r+   )r   r   ra  r   r   ÚZeroDivisionErrorrM   s   @r)   Útest_DomainMatrix_cancel_denomrc  n  s|  ø€ Ü
ˆQ�ˆF�Q˜�FÐœRÓ €AØ�>‰>œ"˜Q›%Ó ¤R¨!¨Q¨°!°Q°Ð(8¼"Ó%=¼rÀ!»uÐ$EÒEÐEÐEØ�>‰>œ"˜Q›%Ó ¤R¨!¨Q¨°!°Q°Ð(8¼"Ó%=¼rÀ!»uÐ$EÒEÐEÐEØ�>‰>œ"˜Q›%Ó ¤R¨!¨Q¨°!°Q°Ð(8¼"Ó%=¼rÀ!»uÐ$EÒEÐEÐEä
ˆQ�ˆF�Q˜�FÐœRÓ €AØ�>‰>œ"˜Q›%Ó  Q¬¨1« JÒ.Ð.Ð.Ø�>‰>œ"˜R›&Ó! q b¬"¨Q«% [Ò0Ð0Ð0ô 	ˆQ�ˆF�Q˜�FÐœTÓ"€AØ�>‰>œ$˜q ›)Ó$¬¨a°«°A©´t¸A³wÐ(?Ò?Ð?Ð?ä
ÔÓ;Õ<r+   c                  ó¤  ‡— t        ddgddggt        «      Š‰j                  t        d«      «      \  } }| t        ddgddggt        «      k(  sJ ‚|t        ddgddggt        «      k(  sJ ‚‰j                  t        d«      «      \  } }| t        ddgddggt        «      k(  sJ ‚|t        ddgddggt        «      k(  sJ ‚t        t        ˆfd„«       y )Nr   r    ré   rñ   r   r   c                  ó8   •— ‰ j                  t        d«      «      S r`  )Úcancel_denom_elementwiser   rM   s   €r)   r1   z<test_DomainMatrix_cancel_denom_elementwise.<locals>.<lambda>ˆ  s   ø€  a×&@Ñ&@ÄÀAÃÓ&G€ r+   )r   r   rf  r   rb  )ÚnumersÚdenomsr(   s     @r)   Ú*test_DomainMatrix_cancel_denom_elementwiseri    sà   ø€ Ü
ˆQ�ˆF�Q˜�FÐœRÓ €AØ×/Ñ/´°1³Ó6�N€FˆFØ”R˜!˜Q˜ ! Q Ð(¬"Ó-Ò-Ð-Ð-Ø”R˜!˜Q˜ ! Q Ð(¬"Ó-Ò-Ð-Ð-Ø×/Ñ/´°1³Ó6�N€FˆFØ”R˜!˜Q˜ ! Q Ð(¬"Ó-Ò-Ð-Ð-Ø”R˜!˜Q˜ ! Q Ð(¬"Ó-Ò-Ð-Ð-ä
ÔÓGÕHr+   c                  óÊ   — t        ddgddggt        «      } t        ddgddggt        «      }t        d«      }| j                  «       |k(  sJ ‚| j                  «       ||fk(  sJ ‚y )Nr   r    ré   rñ   r   r   )r   r   ÚcontentÚ	primitive)r(   ÚA_primitiveÚ	A_contents      r)   Ú#test_DomainMatrix_content_primitivero  ‹  sj   € Ü
ˆQ�ˆF�Q˜�FÐœRÓ €AÜ�q˜!�f˜q !˜fÐ%¤rÓ*€KÜ�1“€IØ�9‰9‹;˜)Ò#Ð#Ð#Ø�;‰;‹=˜Y¨Ð4Ò4Ð4Ñ4r+   c            	      ó   ‡— t        t        d«      t        d«      t        d«      gt        d«      t        d«      t        d«      gt        d«      t        d«      t        d«      ggdt        «      } | j                  «       }| j                  }|j                  }| |||fD ]  Š| j	                  «       dgddggk(  rŒJ ‚ t        t        d«      t        d«      t        d«      ggt        «      Št        t        ˆfd„«       y )Nr   r   r   r   r    ©r   r   c                  ó$   •— ‰ j                  «       S rK   )ÚsccrM   s   €r)   r1   z'test_DomainMatrix_scc.<locals>.<lambda>ž  s   ø€ ¨1¯5©5«7€ r+   )r   r   rž   r#   rs  r   r   r   )r©   rª   r�   r�   r(   s       @r)   Útest_DomainMatrix_sccrt  “  sÜ   ø€ Ü	œ˜1›œr !›u¤b¨£eÐ,Ü˜1›œr !›u¤b¨£eÐ,Ü˜1›œr !›u¤b¨£eÐ,ð.à/5´ró
;€Bð 
�‰‹€BØ�6‰6€DØ�6‰6€DØ�"�d˜DÐ!ò )ˆØ�v‰v‹x˜Q˜C ! Q ˜=Ó(Ð(Ð(ð)ô 	ŒR�‹U”B�q“Eœ2˜a›5Ð!Ð"¤BÓ'€AÜ
Ô!£?Õ3r+   c            	      óV  ‡— t        g dt        «      } | j                  «       | dfk(  sJ ‚t        t        d«      ggdt        «      } | j                  «       | dfk(  sJ ‚t        t        d«      ggdt        «      } | j                  «       | dfk(  sJ ‚t        t        d«      t        d«      gt        d«      t        d	«      ggd
t        «      } | j                  «       \  }}|t        t        d«      t        d«      gt        d«      t        d«      ggd
t        «      k(  sJ ‚|dk(  sJ ‚t        t        d«      t        d«      gt        d«      t        d	«      ggd
t        «      } | j                  «       \  }}|t        t        d«      t        d«      gt        d«      t        d«      ggd
t        «      k(  sJ ‚|dk(  sJ ‚t        t        d«      t        d«      gt        d«      t        d	«      ggd
t        «      } | j                  «       \  }}|t        t        d«      t        d«      gt        d«      t        d«      ggd
t        «      k(  sJ ‚|dk(  sJ ‚t        t        d«      t        d«      gt        d«      t        d	«      ggd
t        «      Š‰j                  «       \  }}|t        t        d«      t        d«      gt        d«      t        d«      ggd
t        «      k(  sJ ‚|dk(  sJ ‚d}t        t        d«      t        d«      gt        d«      t        d	«      ggd
t        «      Š|D ]^  }‰j                  |¬«      \  }}|t        t        d«      t        d«      gt        d«      t        d«      ggd
t        «      k(  sJ ‚|dk(  rŒ^J ‚ t	        t
        ˆfd„«       t	        t
        ˆfd„«       y )Nr-   r7   r   r6   )r   r   r   r   r    r!   )r   )ÚautoÚGJr
   ÚCDÚGJ_denseÚFF_denseÚCD_dense©Úmethodc                  ó(   •— ‰ j                  d¬«      S ©NÚfoor|  )Úrref©r¬   s   €r)   r1   z(test_DomainMatrix_rref.<locals>.<lambda>Ç  s   ø€ ˜rŸw™w¨e˜wÓ4€ r+   c                  ó(   •— ‰ j                  d¬«      S r  )Úrref_denr‚  s   €r)   r1   z(test_DomainMatrix_rref.<locals>.<lambda>È  s   ø€ ˜rŸ{™{°%˜{Ó8€ r+   )r   r   r�  r   r   rC   )r(   ÚArÚpivotsÚmethodsr}  r¬   s        @r)   Útest_DomainMatrix_rrefrˆ  ¡  s   ø€ ä�R˜¤Ó$€AØ�6‰6‹8˜˜2�wÒÐÐä”r˜!“u�g�Y ¬Ó+€AØ�6‰6‹8˜˜4�yÒ Ð Ð ä”r˜!“u�g�Y ¬Ó+€AØ�6‰6‹8˜˜2�wÒÐÐä”r˜!“uœb ›e�n¤r¨!£u¬b°«e nÐ5°v¼rÓB€AØ—‘“�J€BˆØ”¤ 1£¤r¨!£u˜~´°1³´r¸!³u¨~Ð>ÀÌÓKÒKÐKÐKØ�VÒÐÐä”r˜!“uœb ›e�n¤r¨!£u¬b°«e nÐ5°v¼rÓB€AØ—‘“�J€BˆØ”¤ 1£¤r¨!£u˜~´°1³´r¸!³u¨~Ð>ÀÌÓKÒKÐKÐKØ�VÒÐÐä”r˜!“uœb ›e�n¤r¨!£u¬b°«e nÐ5°v¼rÓB€AØ—‘“�J€BˆØ”¤ 1£¤r¨!£u˜~´°1³´r¸!³u¨~Ð>ÀÌÓKÒKÐKÐKØ�TŠ>Ðˆ>ä	œ˜1›œr !›u�~¬¨1«¬r°!«u ~Ð6¸ÄÓ	C€BØ—‘“�J€BˆØ”¤ 1£¤r¨!£u˜~´°1³´r¸!³u¨~Ð>ÀÌÓKÒKÐKÐKØ�VÒÐÐàL€GÜ	œ˜1›œr !›u�~¬¨1«¬r°!«u ~Ð6¸ÄÓ	C€BØò  ˆØ—W‘W F�WÓ+‰
ˆˆFØ”\¤B q£E¬2¨a«5 >´B°q³E¼2¸a»5°>Ð"BÀFÌBÓOÒOÐOÐOØ˜ÓÐÐð ô
 Œ:Ó4Ô5Ü
Œ:Ó8Õ9r+   c                  óP  ‡— t        t        d«      t        d«      t        d«      gt        d«      t        d«      t        d«      ggdt        «      } t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      }| j                  «       |k(  sJ ‚t        t        d«      t        d«      t        d«      gt        d«      t        d«      t        d«      ggdt        «      Št	        t
        ˆfd„«       t        t        d«      t        d«      t        d«      gt        d«      t        d«      t        d«      ggdt        d	¬
«      } t        t        d«      t        d«      dœt        d«      t        d«      dœdœdt        «      }| j                  «       |k(  sJ ‚y )Nr   r  r   r  r   r¾   r!   c                  ó$   •— ‰ j                  «       S rK   )Úcolumnspacer‚  s   €r)   r1   z/test_DomainMatrix_columnspace.<locals>.<lambda>Ñ  s   ø€  §¡Ó 0€ r+   r8   r:   r-   )r   r   r‹  r   r   r   )r(   ÚAcolr¬   s     @r)   Útest_DomainMatrix_columnspacer�  Ë  s>  ø€ Ü”r˜!“uœb ›f¤b¨£eÐ,¬r°!«u´b¸³f¼bÀ»eÐ.DÐEÀvÌrÓR€AÜœ"˜Q›%¤ A£˜¬"¨Q«%´°A³¨Ð8¸&Ä"ÓE€DØ�=‰=‹?˜dÒ"Ð"Ð"ä	œ˜1›œr "›v¤r¨!£uÐ-´°1³´r¸"³v¼rÀ!»uÐ/EÐFÈÔPRÓ	S€BÜ
Œ;Ó0Ô1ä”r˜!“uœb ›f¤b¨£eÐ,¬r°!«u´b¸³f¼bÀ»eÐ.DÐEÀvÌrÐW_Ô`€AÜ¤ 1£¬"¨Q«%Ñ0¼¸A»Ä2ÀaÃ5Ñ5IÑJÈFÔTVÓW€DØ�=‰=‹?˜dÒ"Ð"Ñ"r+   c                  ó^  ‡— t        t        d«      t        d«      t        d«      gt        d«      t        d«      t        d«      ggdt        «      } | j                  «       | k(  sJ ‚t        t        d«      t        d«      t        d«      gt        d«      t        d«      t        d«      ggdt        «      Št	        t
        ˆfd„«       t        t        d«      t        d«      t        d«      gt        d«      t        d«      t        d«      ggdt        d¬	«      } | j                  «       | k(  sJ ‚y )
Nr   r  r   r  r   r¾   c                  ó$   •— ‰ j                  «       S rK   )Úrowspacer‚  s   €r)   r1   z,test_DomainMatrix_rowspace.<locals>.<lambda>Ý  s   ø€  §¡£€ r+   r8   r:   )r   r   r�  r   r   r   )r(   r¬   s    @r)   Útest_DomainMatrix_rowspacer‘  Ø  så   ø€ Ü”r˜!“uœb ›f¤b¨£eÐ,¬r°!«u´b¸³f¼bÀ»eÐ.DÐEÀvÌrÓR€AØ�:‰:‹<˜1ÒÐÐä	œ˜1›œr "›v¤r¨!£uÐ-´°1³´r¸"³v¼rÀ!»uÐ/EÐFÈÔPRÓ	S€BÜ
Œ;Ó-Ô.ä”r˜!“uœb ›f¤b¨£eÐ,¬r°!«u´b¸³f¼bÀ»eÐ.DÐEÀvÌrÐW_Ô`€AØ�:‰:‹<˜1ÒÐÑr+   c                  ó*  ‡— t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      Št        t        d«      t        d«      ggdt        «      } ‰j                  «       | k(  sJ ‚t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      Št        t        d«      t        d«      ggdt        «      } ‰j                  «       | k(  sJ ‚t	        t
        ˆfd„«       t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      Št        t        d«      t        d«      ggdt        «      } ‰j                  «       \  }}}|t        d«      k(  sJ ‚|j                  «       | k(  sJ ‚|j                  |«      | k(  sJ ‚|j                  «       j                  «       | j                  «       k(  sJ ‚|j                  «       j                  |«      | j                  «       k(  sJ ‚y )Nr   r!   r  rS   c                  ó(   •— ‰ j                  d¬«      S )NT)Údivide_last)Ú	nullspacerM   s   €r)   r1   z-test_DomainMatrix_nullspace.<locals>.<lambda>ì  s   ø€  §¡¸ Ó =€ r+   r   r  )	r   r   r•  r   r   r   r„  Únullspace_from_rrefrž   )ÚAnullÚArrefÚdenr†  r(   s       @r)   Útest_DomainMatrix_nullspacerš  ã  s¬  ø€ Ü”r˜!“uœb ›e�n¤r¨!£u¬b°«e nÐ5°v¼rÓB€AÜœ2˜b›6¤2 a£5˜/Ð*¨F´BÓ7€EØ�;‰;‹=˜EÒ!Ð!Ð!ä”r˜!“uœb ›e�n¤r¨!£u¬b°«e nÐ5°v¼rÓB€AÜœ2˜b›6¤2 a£5˜/Ð*¨F´BÓ7€EØ�;‰;‹=˜EÒ!Ð!Ð!ä
Œ;Ó=Ô>ä”r˜!“uœb ›e�n¤r¨!£u¬b°«e nÐ5°v¼rÓB€AÜœ2˜b›6¤2 a£5˜/Ð*¨F´BÓ7€EàŸ™›Ñ€Eˆ3�Ø”"�Q“%Š<Ðˆ<Ø×$Ñ$Ó&¨%Ò/Ð/Ð/Ø×$Ñ$ VÓ,°Ò5Ð5Ð5Ø�?‰?Ó×0Ñ0Ó2°e·o±oÓ6GÒGÐGÐGØ�?‰?Ó×0Ñ0°Ó8¸E¿O¹OÓ<MÒMÐMÑMr+   c                  óP  ‡‡‡— t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      Št        t        d«      gt        d«      ggdt        «      } t        ddggdt        «      }t        ddggdt        «      }‰j                  | «      ||fk(  sJ ‚t        t        d«      gt        d«      gt        d«      ggd	t        «      Št        t        ˆˆfd
„«       t        t        d«      gt        d«      ggdt
        «      Št        t        ˆˆfd„«       y )Nr   r   r    r!   rA  r   rS   r  rT   c                  ó&   •— ‰ j                  ‰«      S rK   ©Ú_solve)r(   Úb3s   €€r)   r1   z)test_DomainMatrix_solve.<locals>.<lambda>  s   ø€  §¡¨"£€ r+   c                  ó&   •— ‰ j                  ‰«      S rK   r�  )r(   Úbzs   €€r)   r1   z)test_DomainMatrix_solve.<locals>.<lambda>  s   ø€  §¡¨£€ r+   )r   r   rž  r   r   r   r   )ÚbÚ
particularr•  r(   rŸ  r¡  s      @@@r)   Útest_DomainMatrix_solver¤  ù  sì   ú€ ä”r˜!“uœb ›e�n¤r¨!£u¬b°«e nÐ5°v¼rÓB€AÜ”r˜!“u�g¤ 1£˜wÐ'¨´Ó4€AÜ  1˜v˜h¨´Ó3€JÜ˜r 1˜g˜Y¨´Ó3€IØ�8‰8�A‹;˜: yÐ1Ò1Ð1Ð1ä	œ˜1›�w¤ A£ ¬"¨Q«%¨Ð1°6¼2Ó	>€BÜ
Œ<Ô-Ô.ä	œ˜1›�w¤ A£ Ð(¨&´"Ó	5€BÜ
Œ;Ô,Õ-r+   c                  óØ  ‡‡‡‡— t        g dt        «      } | j                  «       | k(  sJ ‚t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      } t        t        d«      t        d«      gt        dd«      t        dd«      ggdt        «      }| j                  «       |k(  sJ ‚t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      Št	        t
        ˆfd	„«       t        t        d«      t        d«      ggd
t        «      Št	        t        ˆfd„«       t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      Št	        t        ˆfd„«       t        d«      }t        ddgddgg|«      j                  «       t        ddgddgg|«      k(  sJ ‚t        d«      Št	        t
        ˆfd„«       y )NrA   r   r   r   r    r!   r  r  c                  ó$   •— ‰ j                  «       S rK   ©r\  r‚  s   €r)   r1   z'test_DomainMatrix_inv.<locals>.<lambda>  s   ø€  §¡£€ r+   rS   c                  ó$   •— ‰ j                  «       S rK   r§  ©ÚAnss   €r)   r1   z'test_DomainMatrix_inv.<locals>.<lambda>  ó   ø€ ¨3¯7©7«9€ r+   ré   c                  ó$   •— ‰ j                  «       S rK   r§  )ÚAninvs   €r)   r1   z'test_DomainMatrix_inv.<locals>.<lambda>  s   ø€ ¨u¯y©y«{€ r+   r   c                  óD   •— t        ddgddgg‰ «      j                  «       S )Nr   r   r   r    )r   r\  )ÚZ6s   €r)   r1   z'test_DomainMatrix_inv.<locals>.<lambda>  s$   ø€ ¤ Q¨ F¨Q°¨FÐ#3°RÓ 8× <Ñ <Ó >€ r+   )
r   r   r\  r   r   r   r   r   r
   r   )r(   ÚAinvÚZ3r­  rª  r¬   r¯  s      @@@@r)   Útest_DomainMatrix_invr²    s‚  û€ Ü�R˜¤Ó$€AØ�5‰5‹7�aŠ<Ðˆ<ä”r˜!“uœb ›e�n¤r¨!£u¬b°«e nÐ5°v¼rÓB€AÜœ"˜R›&¤" Q£%˜¬2¨a°«8´R¸¸A³YÐ*?Ð@À&Ì"ÓM€DØ�5‰5‹7�dŠ?Ðˆ?ä	œ˜1›œr !›u�~¬¨1«¬r°!«u ~Ð6¸ÄÓ	C€BÜ
Œ;Ó(Ô)ä
œ˜A›¤ 1£˜Ð'¨´Ó
4€CÜ
Ô!Ó#4Ô5äœ2˜a›5¤" Q£%˜.¬2¨a«5´"°Q³%¨.Ð9¸6Ä2ÓF€EÜ
Ô%Ó':Ô;ä	ˆA‹€BÜ��1ˆv˜˜1�vÐ Ó#×'Ñ'Ó)¬R°!°Q°¸!¸Q¸Ð0@À"Ó-EÒEÐEÐEä	ˆA‹€BÜ
Œ;Ó>Õ?r+   c            	      ó¨  ‡— t        g dt        «      } | j                  «       dk(  sJ ‚t        dggdt        «      } | j                  «       dk(  sJ ‚t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      } | j                  «       t        d«      k(  sJ ‚t        t        d«      t        d«      t        d«      gt        d«      t        d«      t        d«      gt        d«      t        d«      t        d	«      ggd
t        «      } | j                  «       t        d«      k(  sJ ‚t        t        d«      t        d«      t        d«      gt        d«      t        d«      t        d«      gt        d«      t        d«      t        d	«      ggd
t        «      } | j                  «       t        d«      k(  sJ ‚t        t        d«      t        d«      ggdt        «      Št	        t
        ˆfd„«       t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      } | j                  «       t        d«      k(  sJ ‚y )NrA   r   r6   r   r   r    r!   r  rR   rq  r  r   rS   c                  ó$   •— ‰ j                  «       S rK   )Údetr©  s   €r)   r1   z'test_DomainMatrix_det.<locals>.<lambda>1  r«  r+   )r   r   rµ  r   r   r   )r(   rª  s    @r)   Útest_DomainMatrix_detr¶     sÌ  ø€ Ü�R˜¤Ó$€AØ�5‰5‹7�aŠ<Ðˆ<ä�q�c�U˜F¤BÓ'€AØ�5‰5‹7�aŠ<Ðˆ<ä”r˜!“uœb ›e�n¤r¨!£u¬b°«e nÐ5°v¼rÓB€AØ�5‰5‹7”b˜“fÒÐÐä”r˜!“uœb ›e¤R¨£UÐ+¬b°«e´R¸³U¼B¸q»EÐ-BÄRÈÃUÌBÈqËEÔSUÐVWÓSXÐDYÐZÐ\bÔdfÓg€AØ�5‰5‹7”b˜“fÒÐÐä”r˜!“uœb ›e¤R¨£UÐ+¬b°«e´R¸³U¼B¸q»EÐ-BÄRÈÃUÌBÈqËEÔSUÐVWÓSXÐDYÐZÐ\bÔdfÓg€AØ�5‰5‹7”b˜“eÒÐÐä
œ˜A›¤ 1£˜Ð'¨´Ó
4€CÜ
Ô!Ó#4Ô5ä”r˜!“uœb ›e�n¤r¨!£u¬b°«e nÐ5°v¼rÓB€AØ�5‰5‹7”b˜“fÒÐÑr+   c                  ó  ‡— t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      } t        d«      t        d«      t        d«      g}t        t        d«      t        d«      gt        d«      t        d	«      ggdt        «      }| j                  |«      |cxk(  r$|d
   | dz  z  |d   | z  z   |d   | d
z  z  z   k(  sJ ‚ J ‚| j                  g «      | j                  | j                  | j
                  «      k(  sJ ‚| j                  t        d«      g«      d| j                  d| j
                  «      z  k(  sJ ‚t        t        d«      t        d«      ggdt        «      Št        t        ˆfd„«       y )Nr   r   r   r    r!   rN  é   é   é!   r   rS   c                  ó:   •— ‰ j                  t        d«      g«      S rC  )Ú	eval_polyr   )ÚdM2s   €r)   r1   z-test_DomainMatrix_eval_poly.<locals>.<lambda>@  s   ø€ ¨3¯=©=¼"¸Q»%¸Ó+A€ r+   )	r   r   r¼  r/  r%   r&   rD  r   r   )ÚdMÚpÚresultr½  s      @r)   Útest_DomainMatrix_eval_polyrÁ  7  sB  ø€ Ü	œ˜1›œr !›u�~¬¨1«¬r°!«u ~Ð6¸ÄÓ	C€BÜ	ˆA‹”�1“”r˜!“uÐ€AÜœB˜r›F¤B r£FÐ+¬b°«f´b¸³fÐ-=Ð>ÀÌÓK€FØ�<‰<˜‹?˜fÔI¨¨!©¨R°©U©
°Q°q±T¸"±WÑ(<¸qÀ¹tÀBÈÁE¹zÑ(IÒIÐIÑIÐIÐIØ�<‰<˜Ó˜rŸx™x¨¯©°"·)±)Ó<Ò<Ð<Ð<Ø�<‰<œ˜A›˜Ó  A b§f¡f¨Q°·	±	Ó&:Ñ$:Ò:Ð:Ð:ä
œ˜A›¤ 1£˜Ð'¨´Ó
4€CÜ
Ô!Ó#AÕBr+   c                  ó¸  ‡‡‡‡‡— t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      } t        t        d«      gt        d«      ggdt        «      Št        d«      t        d«      t        d«      g}t        t        d«      gt        d«      ggdt        «      }| j                  |‰«      |cxk(  r'|d	   | dz  z  ‰z  |d   | z  ‰z  z   |d   ‰z  z   k(  sJ ‚ J ‚t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      Št        t        d«      gt        d«      ggdt        «      Št        t        ˆˆfd
„«       t        t        d«      t        d«      ggdt        «      Št        t
        ˆˆfd„«       t        t        d«      gt        d«      ggdt        «      Št        t        ˆˆfd„«       y )Nr   r   r   r    r!   rA  é(   éW   r   c                  ó<   •— ‰j                  t        d«      g‰ «      S rC  ©Úeval_poly_mulr   )r¢  ÚdM1s   €€r)   r1   z1test_DomainMatrix_eval_poly_mul.<locals>.<lambda>L  s   ø€ ¨3×+<Ñ+<¼bÀ»e¸WÀaÓ+H€ r+   rS   c                  ó<   •— ‰j                  t        d«      g‰ «      S rC  rÆ  )Úb1r¾  s   €€r)   r1   z1test_DomainMatrix_eval_poly_mul.<locals>.<lambda>N  s   ø€  ×!1Ñ!1´2°a³5°'¸2Ó!>€ r+   c                  ó<   •— ‰j                  t        d«      g‰ «      S rC  rÆ  )Úbqr¾  s   €€r)   r1   z1test_DomainMatrix_eval_poly_mul.<locals>.<lambda>P  s   ø€  "×"2Ñ"2´B°q³E°7¸BÓ"?€ r+   )r   r   rÇ  r   r   r   r   r   )r(   r¿  rÀ  r¢  rÊ  rÌ  r¾  rÈ  s      @@@@@r)   Útest_DomainMatrix_eval_poly_mulrÍ  C  s~  ü€ Ü”r˜!“uœb ›e�n¤r¨!£u¬b°«e nÐ5°v¼rÓB€AÜ”r˜!“u�g¤ 1£˜wÐ'¨´Ó4€AÜ	ˆA‹”�1“”r˜!“uÐ€AÜœB˜r›F˜8¤b¨£f XÐ.°¼Ó;€FØ�?‰?˜1˜aÓ  FÔM¨a°©d°1°a±4©i¸©k¸A¸a¹DÀ¹FÀ1¹HÑ.DÀqÈÁtÈAÁvÑ.MÒMÐMÑMÐMÐMä	œ˜1›œr !›u�~¬¨1«¬r°!«u ~Ð6¸ÄÓ	C€BÜ
œ˜A›˜¤" Q£% Ð)¨6´2Ó
6€CÜ
Ô!Ô#HÔIÜ	œ˜1›œr !›u�~Ð&¨´Ó	3€BÜ
Œ<Ô>Ô?Ü	œ˜1›�w¤ A£ Ð(¨&´"Ó	5€BÜ
Œ=Ô?Õ@r+   c                 ó  ‡‡— | |‰f}| j                  «       |j                  «       ‰j                  «       f}||fD ]Í  \  Š}}‰|z  ||z  k(  sJ ‚||f| | fg}‰j                  ‰«      |v sJ ‚‰j                  ‰d¬«      |v sJ ‚‰j                  ‰«      |v sJ ‚‰j                  \  }	}
|	|
k(  r3‰j                  |d¬«      ||fk(  sJ ‚‰j	                  |«      ||fk(  rŒ¤J ‚t        t        ˆˆfd„«       t        t        ˆˆfd„«       ŒÏ y )Nr�  r|  Úcharpolyc                  ó&   •— ‰ j                  ‰«      S rK   ©Úsolve_den_charpoly©ÚAir¢  s   €€r)   r1   z"_check_solve_den.<locals>.<lambda>k  s   ø€ °2×3HÑ3HÈÓ3K€ r+   c                  ó*   •— ‰ j                  ‰d¬«      S )NrÏ  r|  ©Ú	solve_denrÓ  s   €€r)   r1   z"_check_solve_den.<locals>.<lambda>l  s   ø€ °2·<±<ÀÈ*°<Ó3U€ r+   )rž   r×  Úsolve_den_rrefr%   rÒ  r   r   )r(   r¢  ÚxnumÚxdenÚcase1Úcase2Úxnum_iÚb_iÚanswersÚmÚnrÔ  s    `         @r)   Ú_check_solve_denrâ  S  s-  ù€ ð ��aˆL€EØ�[‰[‹]˜DŸN™NÓ,¨a¯k©k«mÐ<€Eà! 5˜>ò W‰ˆˆF�Cà�&‰y˜D ™HÒ$Ð$Ð$ð ˜D�> V G¨d¨UÐ#3Ð4ˆØ�|‰|˜A‹ 'Ñ)Ð)Ð)Ø�|‰|˜A fˆ|Ó-°Ñ8Ð8Ð8Ø× Ñ  Ó# wÑ.Ð.Ð.ð �x‰x‰ˆˆ1Ø�Š6Ø—<‘< ¨J�<Ó7¸FÀD¸>ÒIÐIÐIØ×(Ñ(¨Ó-°&¸$°Ó?Ð?Ð?äÔ)Ô+KÔLÜÔ)Ô+UÕVñ%Wr+   c            	      ó$  — t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      } t        t        d«      gt        d«      ggdt        «      }t        t        d«      gt        d«      ggdt        «      }t        d	«      }t        | |||«       t        t        d«      t        d«      t        d«      gt        d«      t        d«      t        d«      gt        d«      t        d«      t        d
«      ggdt        «      } t        t        d«      gt        d«      gt        d«      ggdt        «      }t        t        d«      gt        d«      gt        d«      ggdt        «      }t        d«      }t        | |||«       t        t        d«      gt        d«      ggdt        «      } t        t        d«      gt        d«      ggdt        «      }t        t        d«      ggdt        «      }t        d«      }t        | |||«       y )Nr   r   r   r    r!   rA  r   r  r  rR   rq  rT   r6   )r   r   râ  )r(   r¢  rÀ  r™  s       r)   Útest_DomainMatrix_solve_denrä  o  s¬  € Ü”r˜!“uœb ›e�n¤r¨!£u¬b°«e nÐ5°v¼rÓB€AÜ”r˜!“u�g¤ 1£˜wÐ'¨´Ó4€AÜœB˜q›E˜7¤R¨£V HÐ-¨v´rÓ:€FÜ
ˆR‹&€CÜ�Q˜˜6 3Ô'äÜ	ˆA‹”�1“”r˜!“uÐÜ	ˆA‹”�1“”r˜!“uÐÜ	ˆA‹”�1“”r˜!“uÐðð !'¬ó	,€Aô 	”r˜!“u�g¤ 1£˜w¬¨A«¨Ð0°&¼"Ó=€AÜœB˜q›E˜7¤R¨£U G¬b°«f¨XÐ6¸ÄÓC€FÜ
ˆR‹&€CÜ�Q˜˜6 3Ô'ä”r˜!“u�g¤ 1£˜wÐ'¨´Ó4€AÜ”r˜!“u�g¤ 1£˜wÐ'¨´Ó4€AÜœB˜q›E˜7˜) V¬RÓ0€FÜ
ˆQ‹%€CÜ�Q˜˜6 3Õ'r+   c                  ó0  ‡ ‡‡‡‡— t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      Š t        t        d«      gt        d«      ggdt        «      Št        t        d«      t        d«      ggdt        «      Št        t        ˆˆfd„«       t        t        d«      t        d«      ggdt        «      Št        t        ˆ ˆfd	„«       t        t        d«      gt        d«      ggdt
        «      Št        t        ˆ ˆfd
„«       y )Nr   r   r   r    r!   rA  rS   c                  ó&   •— ‰ j                  ‰«      S rK   rÑ  )rü   r¢  s   €€r)   r1   z6test_DomainMatrix_solve_den_charpoly.<locals>.<lambda>Š  s   ø€ ¨2×+@Ñ+@ÀÓ+C€ r+   c                  ó&   •— ‰ j                  ‰«      S rK   rÑ  ©r(   rÊ  s   €€r)   r1   z6test_DomainMatrix_solve_den_charpoly.<locals>.<lambda>Œ  s   ø€  ×!5Ñ!5°bÓ!9€ r+   c                  ó&   •— ‰ j                  ‰«      S rK   rÑ  )r(   rÌ  s   €€r)   r1   z6test_DomainMatrix_solve_den_charpoly.<locals>.<lambda>Ž  s   ø€  !×"6Ñ"6°rÓ":€ r+   )r   r   r   r   r   r   r   )r(   rü   r¢  rÊ  rÌ  s   @@@@@r)   Ú$test_DomainMatrix_solve_den_charpolyrê  †  sÈ   ü€ Ü”r˜!“uœb ›e�n¤r¨!£u¬b°«e nÐ5°v¼rÓB€AÜ”r˜!“u�g¤ 1£˜wÐ'¨´Ó4€AÜ	œ˜1›œr !›u�~Ð&¨´Ó	3€BÜ
Ô!Ô#CÔDÜ	œ˜1›œr !›u�~Ð&¨´Ó	3€BÜ
Œ<Ô9Ô:Ü	œ˜1›�w¤ A£ Ð(¨&´"Ó	5€BÜ
Œ=Ô:Õ;r+   c                  ó¸  ‡‡— t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      Št        t        d«      gt        d«      ggdt        «      Št        t        ˆˆfd„«       t        t        d«      gt        d«      ggdt        «      } ‰j	                  «       ‰z  | k(  sJ ‚‰j                  ‰d	¬
«      | t        d«      fk(  sJ ‚y )Nr   r   r    r!   r   rA  c                  ó&   •— ‰ j                  ‰«      S rK   rÑ  ©r(   r¢  s   €€r)   r1   z<test_DomainMatrix_solve_den_charpoly_check.<locals>.<lambda>•  s   ø€ ¨q×/CÑ/CÀAÓ/F€ r+   r  F)Úcheckr   )r   r   r   r   ÚadjugaterÒ  )ÚadjAbr(   r¢  s    @@r)   Ú*test_DomainMatrix_solve_den_charpoly_checkrñ  ‘  s·   ù€ ä”r˜!“uœb ›e�n¤r¨!£u¬b°«e nÐ5°v¼rÓB€AÜ”r˜!“u�g¤ 1£˜wÐ'¨´Ó4€AÜ
Ô%Ô'FÔGÜœ2˜b›6˜(¤R¨£U GÐ,¨f´bÓ9€EØ�:‰:‹<˜!Ñ˜uÒ$Ð$Ð$Ø×Ñ ¨ÐÓ/°E¼2¸a»5°>ÒAÐAÑAr+   c                  ó"  ‡ ‡‡— t        t        d«      t        d«      ggdt        «      Š t        t        d«      gt        d«      ggdt        «      Št        t        ˆ ˆfd„«       t        t        ˆ ˆfd„«       t        t        d«      t        d«      ggdt        «      Š t        t        d«      t        d«      ggdt        «      Št        t        ˆ ˆfd„«       t        t        ˆ ˆfd„«       t        t        d«      t        d«      gt        d	«      t        d
«      ggdt        «      Š t        t        d«      t        d«      ggdt        «      Št        t        ˆ ˆfd„«       t        t        d«      ggdt        «      Š t        t        d«      ggdt        «      Št        t        ˆ ˆfd„«       t        t        d«      gt        d«      ggdt        «      Š t        t        d«      gt        d«      ggdt        «      Št        t
        ˆ ˆfd„«       y )Nr   r   rS   rA  c                  ó&   •— ‰ j                  ‰«      S rK   rÖ  rí  s   €€r)   r1   z4test_DomainMatrix_solve_den_errors.<locals>.<lambda>ž  ó   ø€  §¡¨Q£€ r+   c                  ó&   •— ‰ j                  ‰«      S rK   ©rØ  rí  s   €€r)   r1   z4test_DomainMatrix_solve_den_errors.<locals>.<lambda>Ÿ  ó   ø€  ×!1Ñ!1°!Ó!4€ r+   c                  ó&   •— ‰ j                  ‰«      S rK   rÖ  rí  s   €€r)   r1   z4test_DomainMatrix_solve_den_errors.<locals>.<lambda>£  rô  r+   c                  ó&   •— ‰ j                  ‰«      S rK   rö  rí  s   €€r)   r1   z4test_DomainMatrix_solve_den_errors.<locals>.<lambda>¤  r÷  r+   r   r    r!   c                  ó&   •— ‰ j                  ‰«      S rK   rÖ  rè  s   €€r)   r1   z4test_DomainMatrix_solve_den_errors.<locals>.<lambda>¨  s   ø€  §¡¨R£€ r+   r6   c                  ó*   •— ‰ j                  ‰d¬«      S )Nr=   r|  rÖ  rè  s   €€r)   r1   z4test_DomainMatrix_solve_den_errors.<locals>.<lambda>¬  s   ø€  A§K¡K°¸9 KÓ$E€ r+   c                  ó&   •— ‰ j                  ‰«      S rK   rÑ  rí  s   €€r)   r1   z4test_DomainMatrix_solve_den_errors.<locals>.<lambda>°  s   ø€ ¨1×+?Ñ+?ÀÓ+B€ r+   )r   r   r   r   r   r   )r(   r¢  rÊ  s   @@@r)   Ú"test_DomainMatrix_solve_den_errorsrý  ›  sy  ú€ Ü”r˜!“uœb ›e�nÐ% v¬rÓ2€AÜ”r˜!“u�g¤ 1£˜wÐ'¨´Ó4€AÜ
Œ<Ô/Ô0Ü
Œ<Ô4Ô5ä”r˜!“uœb ›e�nÐ% v¬rÓ2€AÜ”r˜!“uœb ›e�nÐ% v¬rÓ2€AÜ
Œ<Ô/Ô0Ü
Œ<Ô4Ô5ä”r˜!“uœb ›e�n¤r¨!£u¬b°«e nÐ5°v¼rÓB€AÜ	œ˜1›œr !›u�~Ð&¨´Ó	3€BÜ
Œ<Ô0Ô1ä”r˜!“u�g�Y ¬Ó+€AÜ”r˜!“u�g�Y ¬Ó+€AÜ
Œ?ÔEÔFä”r˜!“u�g¤ 1£˜wÐ'¨´Ó4€AÜ”r˜!“u�g¤ 1£˜wÐ'¨´Ó4€AÜ
Ô!Ô#BÕCr+   c                  ó  ‡ ‡— t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      Š t        t        d«      gt        d«      ggdt        «      Št        t        ˆ ˆfd„«       t        t        ˆ ˆfd„«       y )Nr   r   r!   rA  c                  ó&   •— ‰ j                  ‰«      S rK   rÖ  rí  s   €€r)   r1   zBtest_DomainMatrix_solve_den_rref_underdetermined.<locals>.<lambda>¶  s   ø€ ¨q¯{©{¸1«~€ r+   c                  ó&   •— ‰ j                  ‰«      S rK   rö  rí  s   €€r)   r1   zBtest_DomainMatrix_solve_den_rref_underdetermined.<locals>.<lambda>·  s   ø€ ¨q×/?Ñ/?ÀÓ/B€ r+   )r   r   r   r   rí  s   @@r)   Ú0test_DomainMatrix_solve_den_rref_underdeterminedr  ³  se   ù€ Ü”r˜!“uœb ›e�n¤r¨!£u¬b°«e nÐ5°v¼rÓB€AÜ”r˜!“u�g¤ 1£˜wÐ'¨´Ó4€AÜ
Ô%Ô'=Ô>Ü
Ô%Ô'BÕCr+   c            	      óØ  ‡— t        t        d«      t        d«      t        d«      gt        d«      t        d«      t        d«      gt        d«      t        d«      t        d	«      ggt        «      Š‰j                  «       \  } }| t        d«      t        d
«      t        d«      gk(  sJ ‚‰j                  «       | d   ‰dz  z  | d   ‰dz  z  z   | d   ‰dz  z  z   cxk(  r‰j	                  | «      k(  sJ ‚ J ‚‰j                  «       |k(  sJ ‚t        t        d«      t        d«      t        d«      gt        d«      t        d«      t        d	«      ggt        «      Št        t        ˆfd„«       y )Nr   r   r   r    rR   ré   rP   rñ   é	   éñÿÿÿéîÿÿÿr   c                  ó$   •— ‰ j                  «       S rK   )Úadj_poly_detrM   s   €r)   r1   z0test_DomainMatrix_adj_poly_det.<locals>.<lambda>Å  s   ø€ ¨1¯>©>Ó+;€ r+   )r   r   r  rï  r¼  rµ  r   r   )r¿  ÚdetAr(   s     @r)   Útest_DomainMatrix_adj_poly_detr	  º  s9  ø€ Ü
ŒR�‹U”B�q“Eœ2˜a›5Ð!Ü�‹U”B�q“Eœ2˜a›5Ð!Ü�‹U”B�q“Eœ2˜a›5Ð!ð#ä$&ó	(€Að �n‰nÓ�G€A€tØ”�A“œ˜3›¤ C£Ð)Ò)Ð)Ð)Ø�:‰:‹<˜1˜Q™4  1¡™9 q¨¡t¨A¨q©D¡yÑ0°1°Q±4¸¸1¹±9Ñ<ÔNÀÇÁÈAÃÒNÐNÑNÐNÐNØ�5‰5‹7�dŠ?Ðˆ?ä
ŒR�‹U”B�q“Eœ2˜a›5Ð!Ü�‹U”B�q“Eœ2˜a›5Ð!ð#Ü$&ó	(€Aä
Ô!Ó#;Õ<r+   c                  ó4  — t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      } t        d«      }t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      }| j                  «       ||fk(  sJ ‚y ©Nr   r   r   r    r!   r  r  )r   r   Úinv_den)r(   r™  rÀ  s      r)   Útest_DomainMatrix_inv_denr  È  sy   € Ü”r˜!“uœb ›e�n¤r¨!£u¬b°«e nÐ5°v¼rÓB€AÜ
ˆR‹&€CÜœB˜q›E¤2 b£6˜?¬R°«V´R¸³U¨OÐ<¸fÄbÓI€FØ�9‰9‹;˜6 3˜-Ò'Ð'Ñ'r+   c                  ó  — t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      } t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      }| j                  «       |k(  sJ ‚y r  )r   r   rï  )r(   rÀ  s     r)   Útest_DomainMatrix_adjugater  Ï  sl   € Ü”r˜!“uœb ›e�n¤r¨!£u¬b°«e nÐ5°v¼rÓB€AÜœB˜q›E¤2 b£6˜?¬R°«V´R¸³U¨OÐ<¸fÄbÓI€FØ�:‰:‹<˜6Ò!Ð!Ñ!r+   c                  ó0  — t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      } t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      }| j                  «       |t        d«      fk(  sJ ‚y r  )r   r   Úadj_det)r(   ÚadjAs     r)   Útest_DomainMatrix_adj_detr  Õ  st   € Ü”r˜!“uœb ›e�n¤r¨!£u¬b°«e nÐ5°v¼rÓB€AÜœ"˜Q›%¤ B£˜¬2¨b«6´2°a³5¨/Ð:¸FÄBÓG€DØ�9‰9‹;˜4¤ B£˜.Ò(Ð(Ñ(r+   c            	      ó¶  ‡— t        g dt        «      Š‰j                  «       ‰‰g fk(  sJ ‚t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      Št        t        d«      t        d«      gt        d«      t        d«      ggdt        «      } t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      }g }‰j                  «       | ||fk(  sJ ‚t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      Št        t        d«      t        d«      gt        d«      t        d«      ggdt        «      } t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      }d	g}‰j                  «       | ||fk(  sJ ‚t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      Št        t        d«      t        d«      gt        d«      t        d«      ggdt        «      } t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      }g }‰j                  «       | ||fk(  sJ ‚t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      Št        t        d«      t        d«      gt        d«      t        d«      ggdt        «      } t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      }g }‰j                  «       | ||fk(  sJ ‚t        t        d«      t        d«      t        d«      gt        d«      t        d
«      t        d«      ggdt        «      Št        t        d«      t        d«      gt        d«      t        d«      ggdt        «      } t        t        d«      t        d«      t        d«      gt        d«      t        d«      t        d«      ggdt        «      }g }‰j                  «       | ||fk(  sJ ‚t        t        d«      t        d«      gt        d«      t        d«      gt        d
«      t        d«      ggdt        «      Št        t        d«      t        d«      t        d«      gt        d«      t        d«      t        d«      gt        d
«      t        d«      t        d«      ggdt        «      } t        t        d«      t        d«      gt        d«      t        d«      gt        d«      t        d«      ggdt        «      }g }‰j                  «       | ||fk(  sJ ‚g d¢g d¢g d¢g d¢gŠg d¢g d¢g d¢g d¢g} g d¢g d¢g d¢g d¢g}d„ }t         |‰t        «      dt        «      Št         || t        «      dt        «      } t         ||t        «      dt        «      }‰j                  «       | |g fk(  sJ ‚t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      Št	        t
        ˆfd„«       y )NrA   r   r   r   r    r!   r   r  r-   rR   ré   r¾   r  iúÿÿÿrê   rq  )r   r   r   r   rW  )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   c           
      ód   — | D ��cg c]  }|D �cg c]
  } ||«      ‘Œ c}‘Œ c}}S c c}w c c}}w rK   r7   )ÚrowsrW   Úrowr“   s       r)   r1   z&test_DomainMatrix_lu.<locals>.<lambda>	  s&   € À×F¸#°Ö 5¨A¡ Q¥Ô 5ÓF€ ùÒ 5ùÓFs   †	,�'ž,§,)r    r    c                  ó$   •— ‰ j                  «       S rK   )ÚlurM   s   €r)   r1   z&test_DomainMatrix_lu.<locals>.<lambda>  s   ø€  §¡£€ r+   )r   r   r  r   r   r   )r÷   ÚUÚswapsÚto_domr(   s       @r)   Útest_DomainMatrix_lur  Û  s  ø€ Ü�R˜¤Ó$€AØ�4‰4‹6�a˜˜B�ZÒÐÐä”r˜!“uœb ›e�n¤r¨!£u¬b°«e nÐ5°v¼rÓB€AÜ”r˜!“uœb ›e�n¤r¨!£u¬b°«e nÐ5°v¼rÓB€AÜ”r˜!“uœb ›e�n¤r¨!£u¬b°«f oÐ6¸ÄÓC€AØ€EØ�4‰4‹6�a˜˜E�]Ò"Ð"Ð"ä”r˜!“uœb ›e�n¤r¨!£u¬b°«e nÐ5°v¼rÓB€AÜ”r˜!“uœb ›e�n¤r¨!£u¬b°«e nÐ5°v¼rÓB€AÜ”r˜!“uœb ›e�n¤r¨!£u¬b°«e nÐ5°v¼rÓB€AØˆH€EØ�4‰4‹6�a˜˜E�]Ò"Ð"Ð"ä”r˜!“uœb ›e�n¤r¨!£u¬b°«e nÐ5°v¼rÓB€AÜ”r˜!“uœb ›e�n¤r¨!£u¬b°«e nÐ5°v¼rÓB€AÜ”r˜!“uœb ›e�n¤r¨!£u¬b°«e nÐ5°v¼rÓB€AØ€EØ�4‰4‹6�a˜˜E�]Ò"Ð"Ð"ä”r˜!“uœb ›e�n¤r¨!£u¬b°«e nÐ5°v¼rÓB€AÜ”r˜!“uœb ›e�n¤r¨!£u¬b°«e nÐ5°v¼rÓB€AÜ”r˜!“uœb ›e�n¤r¨!£u¬b°«e nÐ5°v¼rÓB€AØ€EØ�4‰4‹6�a˜˜E�]Ò"Ð"Ð"ä”r˜!“uœb ›e¤R¨£UÐ+¬b°«e´R¸³U¼B¸q»EÐ-BÐCÀVÌRÓP€AÜ”r˜!“uœb ›e�n¤r¨!£u¬b°«e nÐ5°v¼rÓB€AÜ”r˜!“uœb ›e¤R¨£UÐ+¬b°«e´R¸³V¼RÀ»VÐ-DÐEÀvÌrÓR€AØ€EØ�4‰4‹6�a˜˜E�]Ò"Ð"Ð"ä”r˜!“uœb ›e�n¤r¨!£u¬b°«e n´r¸!³u¼bÀ»e°nÐEÀvÌrÓR€AÜÜ	ˆA‹”�1“”r˜!“uÐÜ	ˆA‹”�1“”r˜!“uÐÜ	ˆA‹”�1“”r˜!“uÐðð !'¬ó	,€Aô 	”r˜!“uœb ›e�n¤r¨!£u¬b°«f o¼¸1»¼rÀ!»u°~ÐFÈÔPRÓS€AØ€EØ�4‰4‹6�a˜˜E�]Ò"Ð"Ð"â	’|¢\²<Ð@€AÚ	’|¢\²<Ð@€AÚ	’|¢\²<Ð@€AÙF€FÜ‘V˜Aœr“] F¬BÓ/€AÜ‘V˜Aœr“] F¬BÓ/€AÜ‘V˜Aœr“] F¬BÓ/€AØ�4‰4‹6�a˜˜B�ZÒÐÐä”r˜!“uœb ›e�n¤r¨!£u¬b°«e nÐ5°v¼rÓB€AÜ
Œ;›Õ'r+   c                  óø  ‡‡— t        g dt        «      xŠxŠ} ‰j                  ‰«      | k(  sJ ‚t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      Št        t        d«      gt        d«      ggdt        «      Št        t        d«      gt        dd«      ggdt        «      } ‰j                  ‰«      | k(  sJ ‚t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      Št        t        d«      gt        d«      ggdt        «      Št        t        d«      gt        dd«      ggdt        «      } ‰j                  ‰«      | k(  sJ ‚t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      Št        t        d«      gt        d«      ggdt        «      Št        t        ˆˆfd	„«       t        t        d«      t        d«      gt        d«      t        d«      gt        d
«      t        d«      ggdt        «      Št        t        d«      gt        d«      gt        d«      ggdt        «      Št        t        d«      gt        dd«      ggdt        «      } ‰j                  ‰«      | k(  sJ ‚t        t        d«      t        d«      gt        d«      t        d«      gt        d
«      t        d«      ggdt        «      Št        t        d«      gt        d«      gt        d«      ggdt        «      Št        t        ˆˆfd„«       t        t        d«      t        d«      ggdt        «      Št        t        d«      ggdt        «      Št        t
        ˆˆfd„«       t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      Št        t        d«      gt        d«      ggdt        «      Št        t        ˆˆfd„«       t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      Št        t        d«      t        d«      ggdt        «      Št        t        ˆˆfd„«       y )NrA   r   r   r   r    r!   rA  r   c                  ó&   •— ‰ j                  ‰«      S rK   ©Úlu_solverí  s   €€r)   r1   z,test_DomainMatrix_lu_solve.<locals>.<lambda>'  ó   ø€ ¨q¯z©z¸!«}€ r+   rR   ré   rê   rT   c                  ó&   •— ‰ j                  ‰«      S rK   r   rí  s   €€r)   r1   z,test_DomainMatrix_lu_solve.<locals>.<lambda>2  r"  r+   rS   r6   c                  ó&   •— ‰ j                  ‰«      S rK   r   rí  s   €€r)   r1   z,test_DomainMatrix_lu_solve.<locals>.<lambda>7  s   ø€ ¨¯
©
°1«€ r+   c                  ó&   •— ‰ j                  ‰«      S rK   r   rí  s   €€r)   r1   z,test_DomainMatrix_lu_solve.<locals>.<lambda><  s   ø€  §
¡
¨1£€ r+   c                  ó&   •— ‰ j                  ‰«      S rK   r   rí  s   €€r)   r1   z,test_DomainMatrix_lu_solve.<locals>.<lambda>A  s   ø€  §¡¨A£€ r+   )	r   r   r!  r   r   rE  r   r   r   )r…   r(   r¢  s    @@r)   Útest_DomainMatrix_lu_solver'    sƒ  ù€ ä˜R ¬Ó,Ð,€AÐ,ˆˆAØ�:‰:�a‹=˜AÒÐÐô 	”r˜!“uœb ›e�n¤r¨!£u¬b°«e nÐ5°v¼rÓB€AÜ”r˜!“u�g¤ 1£˜wÐ'¨´Ó4€AÜ”r˜!“u�g¤ 1 a£˜zÐ*¨F´BÓ7€AØ�:‰:�a‹=˜AÒÐÐô 	”r˜!“uœb ›e�n¤r¨!£u¬b°«e nÐ5°v¼rÓB€AÜ”r˜!“u�g¤ 1£˜wÐ'¨´Ó4€AÜ”r˜!“u�g¤ 1 a£˜zÐ*¨F´BÓ7€AØ�:‰:�a‹=˜AÒÐÐô 	”r˜!“uœb ›e�n¤r¨!£u¬b°«e nÐ5°v¼rÓB€AÜ”r˜!“u�g¤ 1£˜wÐ'¨´Ó4€AÜ
Ô%Ô'<Ô=ô 	”r˜!“uœb ›e�n¤r¨!£u¬b°«e n´r¸!³u¼bÀ»e°nÐEÀvÌrÓR€AÜ”r˜!“u�g¤ 1£˜w¬¨A«¨Ð0°&¼"Ó=€AÜ”r˜!“u�g¤ 1 a£˜zÐ*¨F´BÓ7€AØ�:‰:�a‹=˜AÒÐÐô 	”r˜!“uœb ›e�n¤r¨!£u¬b°«e n´r¸!³u¼bÀ»e°nÐEÀvÌrÓR€AÜ”r˜!“u�g¤ 1£˜w¬¨A«¨Ð0°&¼"Ó=€AÜ
Ô%Ô'<Ô=ô 	”r˜!“uœb ›e�nÐ% v¬rÓ2€AÜ”r˜!“u�g�Y ¬Ó+€AÜ
ÔÔ 5Ô6ô 	”r˜!“uœb ›e�n¤r¨!£u¬b°«e nÐ5°v¼rÓB€AÜ”r˜!“u�g¤ 1£˜wÐ'¨´Ó4€AÜ
Œ;Ô-Ô.ô 	”r˜!“uœb ›e�n¤r¨!£u¬b°«e nÐ5°v¼rÓB€AÜ”r˜!“uœb ›e�nÐ% v¬rÓ2€AÜ
Œ<Ô.Õ/r+   c                  óD  ‡— t        g dt        «      } t        d«      g}| j                  «       |k(  sJ ‚| j                  «       j                  «       |k(  sJ ‚t        dggdt        «      } t        d«      t        d«      g}| j                  «       |k(  sJ ‚| j                  «       j                  «       |k(  sJ ‚t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      } t        d«      t        d	«      t        d
«      g}| j                  «       |k(  sJ ‚| j                  «       j                  «       |k(  sJ ‚t        t        d«      t        d«      t        d«      gt        d«      t        d«      t        d«      gt        d«      t        d«      t        d«      ggdt        «      } t        d«      t        d«      t        d«      t        d«      g}| j                  «       |k(  sJ ‚| j                  «       j                  «       |k(  sJ ‚t        t        d«      t        d«      t        d«      gt        d«      t        d«      t        d«      gt        d«      t        d«      t        d«      ggdt        «      } t        d«      t        d«      t        d
«      t        d«      g}| j                  «       |k(  sJ ‚| j                  «       j                  «       |k(  sJ ‚t	        g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g
t        «      } t        j
                  g d¢«      }| j                  «       |k(  sJ ‚| j                  «       j                  «       |k(  sJ ‚t        t        d«      t        d«      ggdt        «      Št        t        ˆfd„«       y )NrA   r   r6   r  r   r   r    r!   éûÿÿÿr  rR   ré   rP   rñ   r  rq  r  r  r   )
é   r   rL  r   r   r   r   r   r   r   )
r   r   r   r   r   r   r   r   r   r   )
éE   r   r   r   r   éV   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   r7  éC   r   r   r   r   )r   iïÿÿÿiê÷ÿÿr   i¤:ôÿr   r   r   r   r   r   rS   c                  ó$   •— ‰ j                  «       S rK   )rÏ  r©  s   €r)   r1   z,test_DomainMatrix_charpoly.<locals>.<lambda>o  s   ø€ ¨3¯<©<«>€ r+   )	r   r   rÏ  rž   r   Úmapr   r   r   )r(   r¿  rª  s     @r)   Útest_DomainMatrix_charpolyr3  D  sú  ø€ Ü�R˜¤Ó$€AÜ	ˆA‹ˆ€AØ�:‰:‹<˜1ÒÐÐØ�;‰;‹=×!Ñ!Ó# qÒ(Ð(Ð(ä�q�c�U˜F¤BÓ'€AÜ	ˆA‹”�2“ˆ€AØ�:‰:‹<˜1ÒÐÐØ�;‰;‹=×!Ñ!Ó# qÒ(Ð(Ð(ä”r˜!“uœb ›e�n¤r¨!£u¬b°«e nÐ5°v¼rÓB€AÜ	ˆA‹”�2“œ˜2›Ð€AØ�:‰:‹<˜1ÒÐÐØ�;‰;‹=×!Ñ!Ó# qÒ(Ð(Ð(ä”r˜!“uœb ›e¤R¨£UÐ+¬b°«e´R¸³U¼B¸q»EÐ-BÄRÈÃUÌBÈqËEÔSUÐVWÓSXÐDYÐZÐ\bÔdfÓg€AÜ	ˆA‹”�3“œ˜C›¤" Q£%Ð(€AØ�:‰:‹<˜1ÒÐÐØ�;‰;‹=×!Ñ!Ó# qÒ(Ð(Ð(ä”r˜!“uœb ›e¤R¨£UÐ+Ü˜!“uœb ›e¤R¨£UÐ+Ü˜!“uœb ›e¤R¨£UÐ+ð-à.4´bó	:€Aô 
ˆA‹”�1“”r˜"“vœr !›uÐ%€AØ�:‰:‹<˜1ÒÐÐØ�;‰;‹=×!Ñ!Ó# qÒ(Ð(Ð(ä
Ò0Ú0Ú0Ú0Ú0Ú0Ú0Ú0Ú0Ú0ð	2ô 46ó		7€Aô 	�‰Ò<Ó=€AØ�:‰:‹<˜1ÒÐÐØ�;‰;‹=×!Ñ!Ó# qÒ(Ð(Ð(ä
œ˜A›¤ 1£˜Ð'¨´Ó
4€CÜ
Ô!Ó#9Õ:r+   c                  ó0  — t        g dt        «      } | j                  «       g k(  sJ ‚t        dggt        «      } | j                  «       t        d«      t        d«      gdfgk(  sJ ‚t        ddgddggt        «      } | j                  «       t        d«      t        d«      t        d«      gdfgk(  sJ ‚t        g d	¢g d
¢g d¢gt        «      } | j                  «       t        d«      t        d«      gdft        d«      t        d«      t        d«      gdfgk(  sJ ‚y )NrA   r   r  r   r   r    r)  r  )r   r   r   )r   r    r   )r   r   r   )r   r   Úcharpoly_factor_listr   rM   s    r)   Ú&test_DomainMatrix_charpoly_factor_listr6  r  s$  € Ü�R˜¤Ó$€AØ×!Ñ!Ó# rÒ)Ð)Ð)ä
ˆQˆCˆ5”"‹€AØ×!Ñ!Ó#Ü
ˆQ‹%”�B“ˆ˜!Ðð(ò ð ð ô 	ˆQ�ˆF�Q˜�FÐœRÓ €AØ×!Ñ!Ó#Ü
ˆQ‹%”�B“œ˜B›Ð	  !Ð$ð(ò ð ð ô 	ŠI’y¢)Ð,¬bÓ1€AØ×!Ñ!Ó#Ü
ˆQ‹%”�B“ˆ˜!ÐÜ
ˆQ‹%”�B“œ˜B›Ð	  !Ð$ð(ò ð ñ r+   c                  óÖ   — t        j                  dt        «      } | j                  t	        j                  dt        «      k(  sJ ‚| j
                  dk(  sJ ‚| j                  t        k(  sJ ‚y )Nr   rq  )r   rD  r   r#   r   r%   r&   rM   s    r)   Útest_DomainMatrix_eyer8  ‡  sS   € Ü×Ñ˜œBÓ€AØ�5‰5”C—G‘G˜F¤BÓ'Ò'Ð'Ð'Ø�7‰7�fÒÐÐØ�8‰8”rŠ>Ð‰>r+   c                  óÖ   — t        j                  dt        «      } | j                  t	        j                  dt        «      k(  sJ ‚| j
                  dk(  sJ ‚| j                  t        k(  sJ ‚y )NrS   )r   r/  r   r#   r   r%   r&   rM   s    r)   Útest_DomainMatrix_zerosr:  Ž  sS   € Ü×Ñ˜6¤2Ó&€AØ�5‰5”C—I‘I˜f¤bÓ)Ò)Ð)Ð)Ø�7‰7�fÒÐÐØ�8‰8”rŠ>Ð‰>r+   c                  óV  — t        j                  dt        «      } t        dk7  r)| j                  t        j                  dt        «      k(  s9J ‚| j                  t        j                  dt        «      j                  «       k(  sJ ‚| j                  dk(  sJ ‚| j                  t        k(  sJ ‚y )Nr¾   r"   )
r   Úonesr   r   r#   r   r   r$   r%   r&   rM   s    r)   Útest_DomainMatrix_onesr=  •  s�   € Ü×Ñ˜&¤"Ó%€AÜ�wÒØ�u‰uœŸ™ ¬Ó,Ò,Ð,Ð,à�u‰uœŸ™ ¬Ó,×3Ñ3Ó5Ò5Ð5Ð5Ø�7‰7�fÒÐÐØ�8‰8”rŠ>Ð‰>r+   c                  óz  — t        dt        d«      idt        d«      idœdt        «      } t        j                  t        d«      t        d«      gt        «      | k(  sJ ‚t        dt        d«      idt        d«      idœdt        «      } t        j                  t        d«      t        d«      gt        d«      | k(  sJ ‚y )Nr   r   r   r   r-   r!   )r   r    )r   r   ÚdiagrM   s    r)   Útest_DomainMatrix_diagr@  Ÿ  s˜   € Ü˜œ2˜a›5˜	 a¬¨1« YÑ/°¼Ó<€AÜ×Ñœb ›e¤R¨£U˜^¬RÓ0°AÒ5Ð5Ð5ä˜œ2˜a›5˜	 a¬¨1« YÑ/°¼Ó<€AÜ×Ñœb ›e¤R¨£U˜^¬R°Ó8¸AÒ=Ð=Ñ=r+   c                  óœ  — t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      } t        t        d«      t        d«      gt        d«      t        d	«      ggdt        «      }t        t        d
«      t        d«      gt        d«      t        d«      ggdt        «      }t        t        d«      t        d«      t        d«      t        d«      gt        d«      t        d«      t        d«      t        d	«      ggdt        «      }t        t        d«      t        d«      t        d«      t        d«      t        d
«      t        d«      gt        d«      t        d«      t        d«      t        d	«      t        d«      t        d«      ggdt        «      }| j                  |«      |k(  sJ ‚| j                  ||«      |k(  sJ ‚y )Nr   r   r   r    r!   rR   ré   rP   rñ   r  r$  é   rN  ©r   r    )r   ré   )r   r   Úhstack©r(   rq   rr   ÚABÚABCs        r)   Útest_DomainMatrix_hstackrH  §  sg  € Ü”r˜!“uœb ›e�n¤r¨!£u¬b°«e nÐ5°v¼rÓB€AÜ”r˜!“uœb ›e�n¤r¨!£u¬b°«e nÐ5°v¼rÓB€AÜ”r˜!“uœb ›f�o¬¨2«´°2³Ð'7Ð8¸&Ä"ÓE€Aä	Ü	ˆA‹”�1“”r˜!“uœb ›eÐ$Ü	ˆA‹”�1“”r˜!“uœb ›eÐ$ð&à'-¬ró
3€Bô Ü	ˆA‹”�1“”r˜!“uœb ›e¤R¨£U¬B¨r«FÐ3Ü	ˆA‹”�1“”r˜!“uœb ›e¤R¨£V¬R°«VÐ4ð6à7=¼róC€Cð �8‰8�A‹;˜"ÒÐÐØ�8‰8�A�q‹>˜SÒ Ð Ñ r+   c                  ó¨  — t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      } t        t        d«      t        d«      gt        d«      t        d	«      ggdt        «      }t        t        d
«      t        d«      gt        d«      t        d«      ggdt        «      }t        t        d«      t        d«      gt        d«      t        d«      gt        d«      t        d«      gt        d«      t        d	«      ggdt        «      }t        t        d«      t        d«      gt        d«      t        d«      gt        d«      t        d«      gt        d«      t        d	«      gt        d
«      t        d«      gt        d«      t        d«      ggdt        «      }| j                  |«      |k(  sJ ‚| j                  ||«      |k(  sJ ‚y )Nr   r   r   r    r!   rR   ré   rP   rñ   r  r$  rB  rN  )r    r   )ré   r   )r   r   ÚvstackrE  s        r)   Útest_DomainMatrix_vstackrK  ¶  sy  € Ü”r˜!“uœb ›e�n¤r¨!£u¬b°«e nÐ5°v¼rÓB€AÜ”r˜!“uœb ›e�n¤r¨!£u¬b°«e nÐ5°v¼rÓB€AÜ”r˜!“uœb ›f�o¬¨2«´°2³Ð'7Ð8¸&Ä"ÓE€Aä	Ü	ˆA‹”�1“ˆÜ	ˆA‹”�1“ˆÜ	ˆA‹”�1“ˆÜ	ˆA‹”�1“ˆð	ð  ¤ó	
%€Bô
 Ü	ˆA‹”�1“ˆÜ	ˆA‹”�1“ˆÜ	ˆA‹”�1“ˆÜ	ˆA‹”�1“ˆÜ	ˆA‹”�2“ˆÜ	ˆB‹”�B“Ððð "¤2ó'€Cð �8‰8�A‹;˜"ÒÐÐØ�8‰8�A�q‹>˜SÒ Ð Ñ r+   c                  óÊ   — t        t        d«      t        d«      ggdt        «      } t        t        d«      t        d«      ggdt        «      }| j                  d„ «      |k(  sJ ‚y )Nr   r   rS   r    c                 ó   — d| z  S )Nr   r7   )r…   s    r)   r1   z-test_DomainMatrix_applyfunc.<locals>.<lambda>Î  s
   €   1¡€ r+   )r   r   Ú	applyfuncrÜ   s     r)   Útest_DomainMatrix_applyfuncrO  Ë  sS   € Ü”r˜!“uœb ›e�nÐ% v¬rÓ2€AÜ”r˜!“uœb ›e�nÐ% v¬rÓ2€AØ�;‰;‘}Ó%¨Ò*Ð*Ñ*r+   c                  ó$  ‡— t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      Št        t        d«      t        d«      z  t        «      } ‰| z  t        t        dd«      t        d«      gt        dd«      t        d«      ggdt        «      k(  sJ ‚‰dz  t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      k(  sJ ‚d‰z  t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      k(  sJ ‚‰t        t        d	«      t        «      z  t        i dt        «      k(  sJ ‚‰t        t        d«      t        «      z  ‰k(  sJ ‚t	        t
        ˆfd
„«       y )Nr   r   r   r    r!   r  ré   rñ   r   c                  ó   •— ‰ dz  S ©Ng      ø?r7   rM   s   €r)   r1   z-test_DomainMatrix_scalarmul.<locals>.<lambda>Ú  ó   ø€ ˜a #™g€ r+   )r   r   r   r   r   rB   )Úlamdar(   s    @r)   Útest_DomainMatrix_scalarmulrU  Ñ  sD  ø€ Ü”r˜!“uœb ›e�n¤r¨!£u¬b°«e nÐ5°v¼rÓB€AÜœ˜A›œr !›u™¤bÓ)€EØˆu‰9œ¤r¨!¨Q£x´°A³Ð&7¼"¸QÀ»(ÄBÀqÃEÐ9JÐ%KÈVÔUWÓXÒXÐXÐXØˆq‰5”L¤2 a£5¬"¨Q«% .´2°a³5¼"¸Q»%°.Ð!AÀ6Ì2ÓNÒNÐNÐNØˆq‰5”L¤2 a£5¬"¨Q«% .´2°a³5¼"¸Q»%°.Ð!AÀ6Ì2ÓNÒNÐNÐNØŒ|œB˜q›E¤2Ó&Ñ&¬,°r¸6Ä2Ó*FÒFÐFÐFØŒ|œB˜q›E¤2Ó&Ñ&¨!Ò+Ð+Ð+ä
Œ9“oÕ&r+   c            	      óÖ  ‡— t        j                  t        ddgddgg«      «      Št        t	        d«      t	        d«      z  t        «      } ‰| z  t        t	        dd«      t	        dd«      dœt	        d«      t	        dd«      dœdœdt        «      k(  sJ ‚t        t        d«      t
        «      }‰|z  t        t	        d«      t	        d«      dœt	        d«      t	        d«      dœdœdt        «      k(  sJ ‚‰dz  t        t	        d«      t	        d«      dœt	        d«      t	        d«      dœdœdt        «      k(  sJ ‚‰dz  t        t	        dd«      t	        d«      dœt	        dd«      t	        d«      dœdœdt        «      k(  sJ ‚t        t        ˆfd„«       t        t        ˆfd	„«       t        t        ˆfd
„«       t        t        d«      t        d«      gt        d«      t        d«      ggdt
        «      Š‰j                  «       dz  t        t	        dd«      t	        d«      gt	        dd«      t	        d«      ggdt        «      k(  sJ ‚‰dz  t        t	        dd«      t	        d«      gt	        dd«      t	        d«      ggdt        «      k(  sJ ‚‰j                  «       t	        dd«      z  t        t	        dd«      t	        d«      gt	        dd«      t	        d«      ggdt        «      k(  sJ ‚y )Nr   r   r   r    r-   rñ   r!   c                  ó   •— ‰ dz  S r`  r7   rM   s   €r)   r1   z+test_DomainMatrix_truediv.<locals>.<lambda>ç  s   ø€  a¨!¡e€ r+   c                  ó   •— ‰ dz  S rR  r7   rM   s   €r)   r1   z+test_DomainMatrix_truediv.<locals>.<lambda>è  rS  r+   c                  ó<   •— ‰ t        t        d«      t        «      z  S r`  )r   r   rM   s   €r)   r1   z+test_DomainMatrix_truediv.<locals>.<lambda>é  s   ø€  a¬,´r¸!³u¼bÓ*AÑ&A€ r+   r  ré   )
r   rl   r   r   r   r   r   rb  rB   r›   )rT  r¢  r(   s     @r)   Útest_DomainMatrix_truedivrZ  Ý  sp  ø€ Ü× Ñ ¤¨!¨Q¨°!°Q°Ð(8Ó!9Ó:€AÜœ˜A›œr !›u™¤bÓ)€EØˆu‰9œ¬R°°1«X¼"¸QÀ»(Ñ)CÌBÈqËEÔVXÐYZÐ\]ÓV^ÑH_Ñ%`ÐbhÔjlÓmÒmÐmÐmÜ”R˜“UœBÓ€AØˆq‰5”L¬¨A«´2°a³5Ñ%9Ä"ÀQÃ%ÌBÈqËEÑ>RÑ!SÐU[Ô]_Ó`Ò`Ð`Ð`àˆq‰5”L¬¨A«´2°a³5Ñ%9Ä"ÀQÃ%ÌBÈqËEÑ>RÑ!SÐU[Ô]_Ó`Ò`Ð`Ð`Øˆq‰5”L¬¨A¨q«´b¸³eÑ%<ÄRÈÈ1ÃXÔRTÐUVÓRWÑAXÑ!YÐ[aÔceÓfÒfÐfÐfä
Ô›mÔ,Ü
Œ9“oÔ&Ü
ÔÓAÔBä”r˜!“uœb ›e�n¤r¨!£u¬b°«e nÐ5°v¼rÓB€AØ�:‰:‹<˜!Ñœ|¬b°°A«h¼¸1»Ð->ÄÀAÀqÃÌ2ÈaË5Ð@QÐ,RÐTZÔ\^Ó_Ò_Ð_Ð_Øˆq‰5”L¤2 a¨£8¬R°«UÐ"3´b¸¸A³hÄÀ1ÃÐ5FÐ!GÈÔQSÓTÒTÐTÐTØ�:‰:‹<œ"˜Q˜q›'Ñ!¤\´B°q¸!³H¼bÀ»eÐ3DÄrÈ!ÈQÃxÔQSÐTUÓQVÐFWÐ2XÐZ`ÔbdÓ%eÒeÐeÑer+   c            
      óê  ‡ — t        t        d«      t        d«      t        d«      gt        d«      t        d«      t        d«      gt        d«      t        d«      t        d	«      ggd
t        «      Š ‰ dd …d d…f   t        t        d«      gt        d«      ggdt        «      k(  sJ ‚‰ dd d…f   t        t        d«      ggdt        «      k(  sJ ‚‰ d d…d d…f   t        t        d«      ggdt        «      k(  sJ ‚‰ d d…dd…f   t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      k(  sJ ‚‰ d d …df   t        t        d«      gt        d«      gt        d	«      ggdt        «      k(  sJ ‚‰ dd d …f   t        t        d«      t        d«      t        d	«      ggdt        «      k(  sJ ‚‰ d d d…d d …f   t        t        d«      t        d«      t        d	«      gt        d«      t        d«      t        d«      gt        d«      t        d«      t        d«      ggd
t        «      k(  sJ ‚t        t        ˆ fd„«       t        t        ˆ fd„«       ‰ d   t	        t        d«      t        «      k(  sJ ‚‰ d   t	        t        d«      t        «      k(  sJ ‚‰ d   t	        t        d«      t        «      k(  sJ ‚‰ d   t	        t        d«      t        «      k(  sJ ‚t        t        ˆ fd„«       t        t        ˆ fd„«       t        t        ˆ fd„«       t        ddt        d«      iidt        «      Š ‰ d   t	        t        d«      t        «      k(  sJ ‚‰ d   t	        t        d«      t        «      k(  sJ ‚t        dddiidt        «      Š ‰ dd …df   t        dddiidt        «      k(  sJ ‚t        t        ˆ fd„«       t        dt        d«      idt        d«      id œdt        «      Š ‰ d d…d d…f   t        i dt        «      k(  sJ ‚‰ dd …dd …f   t        ddiddid!œd
t        «      k(  sJ ‚‰ dd …dd …f   t        dddiidt        «      k(  sJ ‚‰ dd …dd …f   t        i d"t        «      k(  sJ ‚y )#Nr   r   r   r    rR   ré   rP   rñ   r  rq  r  rA  r6   r  r   r!   rT   rI  c                  ó   •— ‰ dd d…f   S )Nr    r  r7   ©r¾  s   €r)   r1   z+test_DomainMatrix_getitem.<locals>.<lambda>  s   ø€ ˜r ! S b S &™z€ r+   c                  ó   •— ‰ d d…df   S )Nr  r    r7   r]  s   €r)   r1   z+test_DomainMatrix_getitem.<locals>.<lambda>  s   ø€ ˜r # 2 # q &™z€ r+   rS   )r  r   )r   r  )r  r  c                  ó   •— ‰ d   S )Nrq  r7   r]  s   €r)   r1   z+test_DomainMatrix_getitem.<locals>.<lambda>
  ó   ø€ ˜r $™x€ r+   c                  ó   •— ‰ d   S )NrU   r7   r]  s   €r)   r1   z+test_DomainMatrix_getitem.<locals>.<lambda>  r`  r+   c                  ó   •— ‰ d   S )N)r  r  r7   r]  s   €r)   r1   z+test_DomainMatrix_getitem.<locals>.<lambda>  s   ø€ ˜r &™z€ r+   )r$  r$  ©rR   rR   rA   c                  ó   •— ‰ d   S )N©r   r   r7   r]  s   €r)   r1   z+test_DomainMatrix_getitem.<locals>.<lambda>  r`  r+   rC  )r   r   re  )r   r   r   Ú
IndexErrorr   r]  s   @r)   Útest_DomainMatrix_getitemrg  ñ  s)  ø€ Ü	Ü	ˆA‹”�1“”r˜!“uÐÜ	ˆA‹”�1“”r˜!“uÐÜ	ˆA‹”�1“”r˜!“uÐðð !'¬ó
,€Bð
 ˆa‰b��"�ˆf‰:œ¬¨1« w´°A³°Ð&8¸&Ä"ÓEÒEÐEÐEØˆa���ˆe‰9œ¤r¨!£u g Y°¼Ó;Ò;Ð;Ð;Øˆcˆrˆc�#�2�#ˆg‰;œ,¬¨A«¨ y°&¼"Ó=Ò=Ð=Ð=Øˆcˆrˆc�!�A�#ˆg‰;œ,¬¨A«´°1³¨¼¸A»ÄÀ1Ã¸Ð'GÈÔQSÓTÒTÐTÐTØŠa�ˆe‰9œ¤r¨!£u g´°1³¨w¼¸A»¸Ð%@À&Ì"ÓMÒMÐMÐMØˆb’!ˆe‰9œ¤r¨!£u¬b°«e´R¸³UÐ&;Ð%<¸fÄbÓIÒIÐIÐIØ‰d�ˆd’Aˆg‰;œ,Ü ›U¤B q£E¬2¨a«5Ð1Ü ›U¤B q£E¬2¨a«5Ð1Ü ›U¤B q£E¬2¨a«5Ð1ð(3ð 5;¼Bó@ò @ð @ð @ô
 Œ:Ó)Ô*Ü
Œ:Ó)Ô*àˆd‰8”|¤B q£E¬2Ó.Ò.Ð.Ð.Øˆe‰9œ¤R¨£U¬BÓ/Ò/Ð/Ð/Øˆe‰9œ¤R¨£U¬BÓ/Ò/Ð/Ð/Øˆf‰:œ¤b¨£e¬RÓ0Ò0Ð0Ð0ä
Œ:Ó'Ô(Ü
Œ:Ó'Ô(Ü
Œ:Ó)Ô*ä	�q˜1œb ›e˜*�o x´Ó	4€BØˆd‰8”|¤B q£E¬2Ó.Ò.Ð.Ð.Øˆd‰8”|¤B q£E¬2Ó.Ò.Ð.Ð.ä	�q˜1˜a˜&�k 5¬"Ó	-€BØˆa‰b�!ˆe‰9œ a¨!¨Q¨ [°&¼"Ó=Ò=Ð=Ð=Ü
Œ:Ó'Ô(ä	˜1œb ›e˜*¨!¬R°«U¨Ñ4°f¼bÓ	A€BØˆbˆqˆb��!�ˆe‰9œ R¨´Ó4Ò4Ð4Ð4Øˆa‰b�‘ˆe‰9œ¨!¨Q¨°Q¸°FÑ%;¸VÄRÓHÒHÐHÐHØˆa‰b�‘ˆe‰9œ a¨!¨Q¨ [°&¼"Ó=Ò=Ð=Ð=Øˆa‰b�!‘"ˆf‰:œ b¨&´"Ó5Ò5Ð5Ñ5r+   c                  óö   — t        dt        d«      idt        d«      idœdt        «      } | j                  dd«      }|t        j                  u sJ ‚| j                  dd«      }|dk(  rt        |t        «      sJ ‚y )Nr   r    r   rC  rc  r   )r   r   Úgetitem_sympyr   ÚZeroÚ
isinstancer   )r¾  Úval1Úval2s      r)   Útest_DomainMatrix_getitem_sympyrn    sr   € Ü	˜1œb ›e˜*¨!¬R°«U¨Ñ4°f¼bÓ	A€BØ×Ñ˜A˜qÓ!€DØ”1—6‘6‰>Ðˆ>Ø×Ñ˜A˜qÓ!€DØ�1Š9œ D¬'Ô2Ð2Ð2Ð2r+   c            	      óX  ‡‡‡— t        t        d«      t        d«      t        d«      gt        d«      t        d«      t        d«      gt        d«      t        d«      t        d	«      ggd
t        «      } t        t        d«      t        d«      gt        d«      t        d	«      ggdt        «      }| j                  ddgddg«      |k(  sJ ‚| j                  «       j                  ddgddg«      |j                  «       k(  sJ ‚| j                  ddgddg«      |k(  sJ ‚| j                  «       j                  ddgddg«      |j                  «       k(  sJ ‚t        t        d«      t        d«      t        d«      gt        d«      t        d«      t        d«      gt        d«      t        d«      t        d«      ggd
t        «      }| j                  g d¢g d¢«      |k(  sJ ‚| j                  «       j                  g d¢g d¢«      |j                  «       k(  sJ ‚g g dfdgg dfg dgdfg}|D ]€  \  ŠŠ}| j                  ‰‰«      t        j                  |t        «      j                  «       k(  sJ ‚| j                  «       j                  ‰‰«      t        j                  |t        «      k(  rŒ€J ‚ t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      Šdgdgfdgdgfdgdgfdgdgfg}|D ]/  \  ŠŠt        t        ˆˆˆfd„«       t        t        ˆˆˆfd„«       Œ1 y )Nr   r   r   r    rR   ré   rP   rñ   r  rq  r!   r   r  )r   r   r   rA   rË   r-   r  c                  ó(   •— ‰j                  ‰‰ «      S rK   )Úextract©Úcolsr¾  r  s   €€€r)   r1   z+test_DomainMatrix_extract.<locals>.<lambda>E  s   ø€  2§:¡:¨d°DÓ#9€ r+   c                  óD   •— ‰j                  «       j                  ‰‰ «      S rK   )rž   rq  rr  s   €€€r)   r1   z+test_DomainMatrix_extract.<locals>.<lambda>F  s   ø€  2§<¡<£>×#9Ñ#9¸$ÀÓ#E€ r+   )r   r   rq  rž   r/  r¢   r   rf  )	rÈ  r½  ÚdM3ÚemptyÚsizeÚbad_indicesrs  r¾  r  s	         @@@r)   Útest_DomainMatrix_extractry  %  só  ú€ Ü
Ü	ˆA‹”�1“”r˜!“uÐÜ	ˆA‹”�1“”r˜!“uÐÜ	ˆA‹”�1“”r˜!“uÐðð !'¬ó,€Cô Ü	ˆA‹”�1“ˆÜ	ˆA‹”�1“ˆðà¤ó%€Cð �;‰;˜˜1�v  1˜vÓ&¨#Ò-Ð-Ð-Ø�=‰=‹?×"Ñ" A q 6¨A¨q¨6Ó2°c·m±m³oÒEÐEÐEØ�;‰;˜˜2�w  B Ó(¨CÒ/Ð/Ð/Ø�=‰=‹?×"Ñ" A r 7¨Q°¨GÓ4¸¿¹»ÒGÐGÐGä
Ü	ˆA‹”�1“”r˜!“uÐÜ	ˆA‹”�1“”r˜!“uÐÜ	ˆA‹”�1“”r˜!“uÐðð !'¬ó,€Cð �;‰;’y¢)Ó,°Ò3Ð3Ð3Ø�=‰=‹?×"Ñ"¢9ªiÓ8¸C¿M¹M»OÒKÐKÐKð 
ˆR�ÐØ
ˆˆb�&ÐØ	ˆaˆS�&Ðð€Eð
 "ò SÑˆˆd�DØ�{‰{˜4 Ó&¬,×*<Ñ*<¸TÄ2Ó*F×*OÑ*OÓ*QÒQÐQÐQØ�}‰}‹×&Ñ& t¨TÓ2´l×6HÑ6HÈÌrÓ6RÓRÐRÐRðSô 
œ˜1›œr !›u�~¬¨1«¬r°!«u ~Ð6¸ÄÓ	C€BØ�C˜!˜�:   a S˜z¨R¨D°1°#¨;¸!¸¸r¸d¸ÐD€KØ!ò G‰
ˆˆdÜŒzÕ9Ô:ÜŒzÕEÕFñGr+   c                  ó,  ‡ ‡— t        dt        d«      idt        d«      idœdt        «      Š t        d«      ‰ d<   ‰ t        dt        d«      idt        d«      idœdt        «      k(  sJ ‚ˆ fd„Št        t        ˆfd„«       t        t        ˆfd	„«       y )
Nr   r   r    rC  rc  r!   c                 ó   •— |‰| |f<   y rK   r7   )rF   ÚjÚvalr¾  s      €r)   Úsetitemz*test_DomainMatrix_setitem.<locals>.setitemM  s   ø€ Øˆˆ1ˆaˆ4Šr+   c                  ó,   •—  ‰ ddt        dd«      «      S )Nr   r   )r   ©r~  s   €r)   r1   z+test_DomainMatrix_setitem.<locals>.<lambda>O  s   ø€ ™g a¨¬B¨q°!«HÓ5€ r+   c                  ó>   •—  ‰ t        dd«      dt        d«      «      S r<  )Úslicer   r€  s   €r)   r1   z+test_DomainMatrix_setitem.<locals>.<lambda>P  s   ø€ ©´°a¸³¸QÄÀ1ÃÓ(F€ r+   )r   r   r   rB   rE  )r¾  r~  s   @@r)   Útest_DomainMatrix_setitemrƒ  I  s{   ù€ Ü	˜1œb ›e˜*¨!¬R°«U¨Ñ4°f¼bÓ	A€BÜ�!‹u€B€t�HØ” 1¤b¨£e *°!´R¸³U°Ñ<¸fÄbÓIÒIÐIÐIôä
Œ9Ó5Ô6Ü
ÔÓ FÕGr+   c                  ój  — dd l } t        dt        d«      idt        d«      idœdt        «      }| j                  | j	                  |«      «      |k(  sJ ‚t        t        d«      t        d«      gt        d«      t        d«      ggdt        «      }| j                  | j	                  |«      «      |k(  sJ ‚y )	Nr   r   r   r    rC  rc  r   r!   )Úpickler   r   ÚloadsÚdumps)r…  r¾  s     r)   Útest_DomainMatrix_picklingrˆ  S  s“   € ÛÜ	˜1œb ›e˜*¨!¬R°«U¨Ñ4°f¼bÓ	A€BØ�<‰<˜Ÿ™ RÓ(Ó)¨RÒ/Ð/Ð/Ü	œ˜1›œr !›u�~¬¨1«¬r°!«u ~Ð6¸ÄÓ	C€BØ�<‰<˜Ÿ™ RÓ(Ó)¨RÒ/Ð/Ñ/r+   c                  ó¶  — t        ddgddggt        «      } | j                  «       \  }}}}|j                  | j                  k(  sJ ‚|j                  | j                  k(  sJ ‚|j                  | j                  k(  sJ ‚|j                  | j                  k(  sJ ‚|t        ddgddggt        «      k(  sJ ‚|t        ddgddggt        «      k(  sJ ‚|t        ddgddggt        «      k(  sJ ‚|t        ddgddggt        «      k(  sJ ‚|j	                  «       \  }}|j                  | «      j                  |«      |j                  |«      j                  |«      k(  sJ ‚y )Nr   r   r   r    r   r  )r   r   Úfflur%   r  r+  Úrmul)r(   ÚPr÷   ÚDr  ÚdiÚds          r)   Útest_DomainMatrix_fflur�  [  sQ  € Ü
ˆQ�ˆF�Q˜�FÐœRÓ €AØ—‘“�J€A€qˆ!ˆQØ�7‰7�a—g‘gÒÐÐØ�7‰7�a—g‘gÒÐÐØ�7‰7�a—g‘gÒÐÐØ�7‰7�a—g‘gÒÐÐØ”�Q˜�F˜Q ˜FÐ#¤RÓ(Ò(Ð(Ð(Ø”�Q˜�F˜Q ˜GÐ$¤bÓ)Ò)Ð)Ð)Ø”�Q˜�F˜Q ˜GÐ$¤bÓ)Ò)Ð)Ð)Ø”�Q˜�F˜Q ˜GÐ$¤bÓ)Ò)Ð)Ð)Ø�I‰I‹K�E€BˆØ�8‰8�A‹;×Ñ˜AÓ !§(¡(¨2£,×"5Ñ"5°aÓ"8Ò8Ð8Ñ8r+   N)vÚsympy.external.gmpyr   Úsympyr   r   r   r   r   r	   r
   r   r   r   r   Ú!sympy.polys.matrices.domainmatrixr   r   r   Úsympy.polys.matrices.exceptionsr   r   r   r   r   r   r   Úsympy.polys.matrices.ddmr   Úsympy.polys.matrices.sdmr   Úsympy.testing.pytestr   r*   rH   rN   rX   r`   rj   rm   rs   ry   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"  r2  r5  rG  rU  r]  rc  ri  ro  rt  rˆ  r�  r‘  rš  r¤  r²  r¶  rÁ  rÍ  râ  rä  rê  rñ  rý  r  r	  r  r  r  r  r'  r3  r6  r8  r:  r=  r@  rH  rK  rO  rU  rZ  rg  rn  ry  rƒ  rˆ  r�  r7   r+   r)   ú<module>r˜     s  ðÝ ,ç =× =ß )Õ )ç LÑ L÷÷ ñ õ )Ý (å 'òò&òR8ò$%òPò2
Iòò@ò#òòLòMò
=ò/ò
Lò>ò+ò<ò2Mò;ò
<ò
4ò
Bò8ò:ò	*ò=òCò
ò$òòò?ò òFòò
".òJ!òH!ò$HòN%ò3ò$
ò0ò.=ò"	Iò5ò4ò':òT
#òòNò,.ò@ò0ò.	CòAò Wò8(ò.<òBòDò0Dò=ò(ò"ò)ò5(òp.0òb+;ò\ò*òòò>ò!ò!ò*+ò	'òfò()6òX3ò!GòHHò0ó9r+   