+
    iV                        ^ RI Ht ^ RIHtHtHtHtHtHt ^ RIH	t	H
t
HtHtHt ^ RIHtHtHt ^ RIHtHtHtHtHtHtHt ^ RIHt ^ RIHt ^ RIHt R	 t R
 t!R t"R t#R t$R t%R t&R t'R t(R t)R t*R t+R t,R t-R t.R t/R t0R t1R t2R t3R t4R t5R t6R  t7R! t8R" t9R# t:R$ t;R% t<R& t=R' t>R( t?R) t@R* tAR+ tBR, tCR- tDR. tER/ tFR0 tGR1 tHR2 tIR3 tJR4 tKR5 tLR6 tMR7 tNR8 tOR9 tPR: tQR; tRR< tSR= tTR> tUR? tVR@ tWRA tXRB tYRC tZRD t[RE t\RF t]RG t^RH t_RI t`RJ taRK tbRL tcRM tdRN teRO tfRP tgRQ thRR tiRS tjRT tkRU tlRV tmRW tnRX toRY tpRZ tqR[ trR\ tsR] ttR^ tuR_# )`    )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                  |   \        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      p \        ^^.^^..\        4      p\        R8w  d   VP                  V 8X  g   Q hM!VP                  V P                  4       8X  g   Q hVP                  R8X  g   Q hVP                  \        8X  g   Q hR# )   flintN   r    )r   r   r   r   repto_dfmshapedomain)ddmAs     j/var/www/html/photoedit/myenv/lib/python3.14/site-packages/sympy/polys/matrices/tests/test_domainmatrix.pytest_DMr(      s    
1r!u~1r!u~.
;C
QFQFR Awuu||uu

$$$77f88r>>    c            	        aaa \        ^4      \        ^4      .\        ^4      \        ^4      ..o^ ^ \        ^4      ^\        ^4      /^^ \        ^4      ^\        ^4      //p \        SR\         4      o\        V R\         4      o\        SR\         4      p\        R8w  d   VP
                  S8X  g   Q hM!VP
                  SP                  4       8X  g   Q hVP                  R8X  g   Q hVP                  \         8X  g   Q h\        V R\         4      pVP
                  S8X  g   Q hVP                  R8X  g   Q hVP                  \         8X  g   Q h\        \        V3R l4       \        \        V3R l4       \        \        R 4       RS3RS33 Fs  w  r#VR8X  d   \        R8X  d   VP                  4       p\        SR\         VR7      pVP
                  V8X  g   Q h\        V R\         VR7      pVP
                  V8X  d   Ks  Q h	  \        \        V3R l4       \        \        R	 4       S Uu. uF  qDP                  4       NK  	  pp\        ^*4      VR&   VS8X  g   Q hR
# u upi )r   r   c                  &   < \        S R\        4      # r    r   r   r   )r%   s   r'   <lambda>(test_DomainMatrix_init.<locals>.<lambda>/       l3;r)   c                  &   < \        S R\        4      # r,   r-   )sdms   r'   r.   r/   0   r0   r)   c                  :    \        \        ^..4      R\        4      # )r   r   r   )r   r   r    r)   r'   r.   r/   1   s    l6A3%=&"Er)   sparsedensefmtc                  *   < \        S R\        RR7      # )r    invalidr8   r   r-   )lols   r'   r.   r/   ;   s    |CKr)   c                  N    \        \        ^4      \        ^4      ..R\        4      # )r   r   r-   r5   r)   r'   r.   r/   =   s    L2a5"Q%.1A62$Nr)   Nr   r   r   )r   r   r   r   r   r!   r"   r#   r$   r   	TypeError
ValueErrorr   copy)	dodr&   r9   r!   iwasr%   r<   r2   s	         @@@r'   test_DomainMatrix_initrE      s   qE2a5>BqE2a5>
*Cq"Q%2a5!1qA"Q%&8
9C
c62
C
c62
CS&"%Awuu||uu

$$$77f88r>>S&"%A55C<<77f88r>>
9;<
9;<
9EF_wn5'>lg5**,Cfbc2uu||fbc2uu|| 6 :KL
?NO !
!S668SC
!VAcF#:: "s   .I!c                    a \        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      p \        P                  ! V 4      oSP                  V 8X  g   Q hSP
                  R8X  g   Q hSP                  \        8X  g   Q h\        ^ ^ \        ^4      ^\        ^4      /^^ \        ^4      ^\        ^4      //R\        4      p\        P                  ! V4      oSP                  V8X  g   Q hSP
                  R8X  g   Q hSP                  \        8X  g   Q h\        \        ^4      ..R\        4      o\        \        V3R l4       R# )r   c                  0   < \         P                  ! S 4      # N)r   from_repr&   s   r'   r.   ,test_DomainMatrix_from_rep.<locals>.<lambda>T   s    l33A6r)   Nr   r4   )
r   r   r   rI   r!   r#   r$   r   r   r?   )r%   r2   r&   s     @r'   test_DomainMatrix_from_reprL   E   s   
1r!u~1r!u~.
;Cc"A55C<<77f88r>>
q1beQr!u%q1RUAbe*<=vr
JCc"A55C<<77f88r>>r!ugY+A
967r)   c                  &   \        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      p \        P                  ! ^^.^^..\        4      p\        R8w  d   VP
                  V 8X  g   Q hM!VP
                  V P                  4       8X  g   Q hVP                  R8X  g   Q hVP                  \        8X  g   Q h\        ^4      p\        V! ^4      V! ^4      .V! ^4      V! ^4      ..RV4      p \        P                  ! ^^.^^..V4      p\        R8w  d   VP
                  V 8X  g   Q hM!VP
                  V P                  4       8X  g   Q hVP                  R8X  g   Q hVP                  V8X  g   Q h\        ^^,          ^,
          4      p\        V! ^4      V! ^4      .V! ^4      V! ^4      ..RV4      p \        P                  ! ^^.^^..V4      p\        R8w  d   VP
                  V 8X  g   Q hM!VP
                  V P                  4       8X  g   Q hVP                  R8X  g   Q hVP                  V8X  g   Q h\        \        ^^4      \        ^^4      .\        ^^4      \        ^^4      ..R\        4      p \        P                  ! RR.RR..\        4      p\        R8w  d   VP
                  V 8X  g   Q hM!VP
                  V P                  4       8X  g   Q hVP                  R8X  g   Q hVP                  \        8X  g   Q hR# )r   r   Nr   r   r       r   r      )   r   )r   r   r   	from_listr   r!   r"   r#   r$   r
   r   )r%   r&   doms      r'   test_DomainMatrix_from_listrV   W   s   
1r!u~1r!u~.
;CAA/4Awuu||uu

$$$77f88r>>
Q%C
AA#a&#a&!12FC
@CAA/5Awuu||uu

$$$77f88s??
QVAX,C
AA#a&#a&!12FC
@CAA/5Awuu||uu

$$$77f88s??
1a"Q(#bAh1a%9:FB
GC 0662BCRHAwuu||uu

$$$77f88r>>r)   c            
         \        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      p \        P                  ! ^^^^.^^..4      p\        R8w  d   VP
                  V 8X  g   Q hM!VP
                  V P                  4       8X  g   Q hVP                  R8X  g   Q hVP                  \        8X  g   Q h\        P                  ! \        ^4      4      p\        VP                  ^\        ^4      ,           4      VP                  ^\        ^4      ,           4      .VP                  ^\        ^4      ,           4      VP                  ^\        ^4      ,           4      ..RV4      p \        P                  ! ^^^\        ^4      ,           ^\        ^4      ,           .^\        ^4      ,           ^\        ^4      ,           ..RR7      pVP
                  V 8X  g   Q hVP                  R8X  g   Q hVP                  V8X  g   Q hR# )r   r   T	extensionNr   )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FQF+;<Awuu||uu

$$$77f88r>>
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 55C<<77f88q==r)   c            
        a \        ^ ^ \        ^^4      /^^\        ^^4      //R\        4      p ^ ^ \        ^^4      /^^\        ^^4      //p\        P                  ! ^^V4      pVP
                  V 8X  g   Q hVP                  R8X  g   Q hVP                  \        8X  g   Q h\        P                  o\        \        V3R l4       \        \        V3R l4       R# )r   c            
      4   < S ! ^^^^ \        ^^4      //4      # r    r   fdss   r'   r.   3test_DomainMatrix_from_dict_sympy.<locals>.<lambda>       C1q1hq!n2E.F$Gr)   c            
      4   < S ! ^^^ ^\        ^^4      //4      # ra   rb   rc   s   r'   r.   re      rf   r)   Nr   )
r   r   r   r   from_dict_sympyr!   r#   r$   r   r   )r2   
sympy_dictr&   rd   s      @r'   !test_DomainMatrix_from_dict_sympyrj      s    
q1bAh-Q1aM2FB
?Ca!Q(!a!Q-@AJ$$Q:6A55C<<77f88r>>

&
&C
?GH
?GHr)   c                     \        ^ ^ \        ^4      ^\        ^4      /^^ \        ^4      ^\        ^4      //R\        4      p \        P                  ! \	        ^^.^^..4      4      pVP
                  V 8X  g   Q hVP                  R8X  g   Q hVP                  \        8X  g   Q h\        P                  ! \        ^4      4      p\        ^ ^ VP                  ^\        ^4      ,           4      ^VP                  ^\        ^4      ,           4      /^^ VP                  ^\        ^4      ,           4      ^VP                  ^\        ^4      ,           4      //RV4      p \        P                  ! \	        ^\        ^4      ,           ^\        ^4      ,           .^\        ^4      ,           ^\        ^4      ,           ..4      RR7      pVP
                  V 8X  g   Q hVP                  R8X  g   Q hVP                  V8X  g   Q h\        P                  ! \	        \        ^^4      \        ^^4      .\        ^ ^4      \        ^ ^4      ..4      RR7      p\        \        ^^4      \        ^^4      .\        ^ ^4      \        ^ ^4      ..R\        4      p\        R8w  d   VP
                  V8X  g   Q hM!VP
                  VP                  4       8X  g   Q hVP                  R8X  g   Q hVP                  \        8X  g   Q hR# )r   TrX   r7   r8   r   Nr   )r   r   r   from_Matrixr   r!   r#   r$   r   r[   r   r\   r   r   r"   )r2   r&   r]   r%   s       r'   test_DomainMatrix_from_Matrixrm      s`   
q1beQ1&Ar!uaA+?@&"
MC  !Q!Q(8!9:A55C<<77f88r>>
47#A
	
Q		!d1g+&199Qa[+AB	
Q		!d1g+&199Qa[+AB	D		C 	  T!Wa$q'k*Qa[!d1g+,FGH	A 55C<<77f88q==  "Q(Bq!H)=1a"QPQ(?S(T!U[bcA
1a"Q(#bAh1a%9:FB
GCwuu||uu

$$$77f88r>>r)   c                  z   \        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      p W 8X  g   Q h\        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      pW8w  g   Q h\        ^4      \        ^4      .\        ^4      \        ^4      ..pW8w  g   Q hR# r   Nr   r-   r&   BCs      r'   test_DomainMatrix_eqrs      s    r!ubenr!uben5vrBA6M6r!ubenr!uben5vrBA6M6
Q%A"Q%A(A6M6r)   c                  *   \        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      p \        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      p\        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      p\        \        ^4      ..R\        4      pV P                  V4      RJ g   Q hV P                  V4      RJ g   Q hV P                  V4      RJ g   Q hR# )r   TFNr   r4   )r   r   r   unify_eq)r&   B1B2B3s       r'   test_DomainMatrix_unify_eqry      s    r!ubenr!uben5vrBA	1r!u~1r!u~6	CB	1r!u~1r!u~6	CB	1wi	,B::b>T!!!::b>U"""::b>U"""r)   c            	         \         P                  ! . RO4      w  rV\        ^4      \        ^4      \        ^4      \        ^4      .8X  g   Q hV \        8X  g   Q h\         P                  ! ^^^\        ^^4      .4      w  rV\	        ^4      \	        ^4      \	        ^4      \	        ^^4      .8X  g   Q hV \        8X  g   Q hR# )r   N)r   r    rP   rR   )r   
get_domainr   r   r   )r]   itemss     r'   test_DomainMatrix_get_domainr}      s    &&|4HARUBqE2a5"Q%00007N7&&1a!Q'@AHARUBqE2a5"Q(33337N7r)   c                  *   \        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      p V P                  \        4      pV\        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      8X  g   Q hR# ro   )r   r   
convert_tor   r&   Aqs     r'   test_DomainMatrix_convert_tor      so    r!ubenr!uben5vrBA	
b	B1r!u~1r!u~>KKKKr)   c                  *   ^^.^^ ..p \        V \        4      P                  4       \        V \        4      8X  g   Q h\        V \        4      P                  RR7      \        V \        4      8X  g   Q h\        V \        4      P                  RR7      \        V \        4      8X  g   Q h\	        R4      p^V.V^,          V^,          ..p\        V\        V,          4      P                  RR7      \        V\        P
                  ! V4      4      8X  g   Q hR# )r   T)fieldxN)r   r   choose_domainr   r	   
frac_field)r&   r   rq   s      r'   test_DomainMatrix_choose_domainr      s    
Q!QAa9""$1b	111a9"""."Q);;;a9"""."Q);;;A
Q!Q$1AaA<%%D%1R2==;K5LLLLr)   c                  F   \        ^^.^^ ..\        4      p V P                  P                  4       pV P                  P	                  4       pWV3 F  pVP                  4       w  rEVP                  WEVP                  4      V8X  g   Q hV Uu. uF  p\        V4      NK  	  ppVP                  Wu\        4      VP                  \        4      8X  g   Q hV Uu. uF  p^V,          NK  	  ppVP                  WVP                  4      ^V,          8X  d   K  Q h	  R# u upi u upi )r   N)
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!fq!fr
"C77>>D77>>Dlln~~e1884999!&'A"Q%'~~fB/1<<3CCCC$%u!!A##u%~~fAHH51<<<  (%s   DDc                      \        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      p V P                  4       V P                  \        4      8X  g   Q hR# ro   )r   r   to_sympyr   r   rJ   s    r'   test_DomainMatrix_to_sympyr      sJ    r!ubenr!uben5vrBA::<1<<....r)   c                      \        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      p V P                  4       pV\        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      8X  g   Q hR# ro   )r   r   to_fieldr   r   s     r'   test_DomainMatrix_to_fieldr     sl    r!ubenr!uben5vrBA	
B1r!u~1r!u~>KKKKr)   c                      \        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      p V P                  4       pVP                  ^ ^ ^^^/^^ ^^^//8X  g   Q hR# ro   )r   r   	to_sparser!   )r&   A_sparses     r'   test_DomainMatrix_to_sparser     sc    r!ubenr!uben5vrBA{{}H<<A1a|QAq!====r)   c            	         \        ^ ^ ^^^/^^ ^^^//R\        4      p V P                  4       p\        ^^.^^..R\        4      p\        R8w  d   VP
                  V8X  g   Q hR# VP
                  VP                  4       8X  g   Q hR# )r   r   Nr   )r   r   to_denser   r   r!   r"   )r&   A_denser%   s      r'   test_DomainMatrix_to_denser     s    a!Q1q1aA,7DAjjlG
1v1v
+Cw{{c!!!{{cjjl***r)   c            
        aa \        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      p \        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      pV P                  V 4      W 38X  g   Q hV P                  V4      W38X  g   Q hVP                  V 4      W38X  g   Q hVP                  V4      W38X  g   Q h\        ^ ^\        ^4      /^^ \        ^4      //R\        4      o\        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      oSP                  S4      SS38X  g   Q hSP                  S4      SS38X  g   Q hSP                  SRR7      w  r#VP                  \        ^ ^.^^ ..R\        4      P                  4       8X  g   Q hVP                  \        ^^.^^..R\        4      P                  4       8X  g   Q hSP                  SRR7      w  r#VP                  \        ^ ^^/^^ ^//R\        4      8X  g   Q hVP                  \        ^ ^ ^^^/^^ ^^^//R\        4      8X  g   Q h\        \        VV3R l4       R# )r   r7   r8   r6   c                  *   < SP                  S R R7      # )r;   r8   )unifyAdAss   r'   r.   )test_DomainMatrix_unify.<locals>.<lambda>1  s    rxx	x:r)   Nr   )
r   r   r   r   r!   r   to_dfm_or_ddmr   r   r@   )Azr   BsBdr   r   s       @@r'   test_DomainMatrix_unifyr     s3   	1r!u~1r!u~6	CB	1r!u~1r!u~6	CB88B<B8###88B<B8###88B<B8###88B<B8###	q1be*a2a5	2FB	?B	1r!u~1r!u~6	CB88B<B8###88B<B8###XXbgX&FB66S1a&1a&)626DDFFFF66S1a&!Q&"5CCEEEEXXbhX'FB66S!aVQA/<<<<66S!aAq\1q!Ql;VRHHHH
::;r)   c                     \        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      p \        ^^.^^..4      pV P                  4       V8X  g   Q hV P	                  4       P                  4       V8X  g   Q hV P                  \        4      P                  4       V8X  g   Q hV P                  \        P                  ! \        ^4      4      4      P                  4       V8X  g   Q hR# ro   )	r   r   r   	to_Matrixr   r   r   r[   r   )r&   A_Matrixs     r'   test_DomainMatrix_to_Matrixr   4  s    r!ubenr!uben5vrBA1v1v&'H;;=H$$$;;=""$000<<%%'8333<<**4734>>@HLLLr)   c                      \        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      p V P                  4       \        ^4      \        ^4      .\        ^4      \        ^4      ..8X  g   Q hR# ro   )r   r   to_listrJ   s    r'   test_DomainMatrix_to_listr   =  s^    r!ubenr!uben5vrBA99;BqE2a5>BqE2a5>::::r)   c                      \        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      p V P                  4       \        ^4      \        ^4      \        ^4      \        ^4      .8X  g   Q hR# ro   )r   r   to_list_flatrJ   s    r'   test_DomainMatrix_to_list_flatr   B  s[    r!ubenr!uben5vrBA>>1r!ubeRU;;;;r)   c                      \        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      p V P                  4       \        ^4      \        ^4      \        ^4      \        ^4      .8X  g   Q hR# ro   )r   r   flatrJ   s    r'   test_DomainMatrix_flatr   G  sZ    r!ubenr!uben5vrBA6681r!ubeRU3333r)   c                  V   \        ^4      \        ^4      \        ^4      \        ^4      .p \        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\         4      p\        P                  ! V R\         4      V8X  g   Q h\        P                  ! V R\         4      VP                  P                  4       8X  g   Q h\        P                  ! V R\         4      VP                  P                  4       8X  g   Q hWP                  VP                  4       VP                  VP                  4      8X  g   Q h\        \        \        P                  V R\         4       \        \        \        P                  V R\         4       \        \        \        P                  V R\         4       R# )r   Nr   r    rP   )r   r   from_list_flatr   r!   r   r   r   r   r#   r$   r   r   )numsr&   s     r'    test_DomainMatrix_from_list_flatr   L  s"   qE2a5"Q%A'Dr!ubenr!uben5vrBA&&tVR8A===dFB/155<<>AAAdFB/155<<>AAA  !1177AHHEEEE
?L77vrJ
?C..fbA
?C..fbAr)   c            
         \        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      p V P                  4       ^ ^ \        ^4      ^\        ^4      /^^ \        ^4      ^\        ^4      //8X  g   Q h\        \        ^4      \        ^ 4      .\        ^ 4      \        ^4      ..R\        4      p V P                  4       ^ ^ \        ^4      /^^\        ^4      //8X  g   Q hR# ro   )r   r   to_dodrJ   s    r'   test_DomainMatrix_to_dodr   [  s    r!ubenr!uben5vrBA88:!aA"Q%0!a1qA5GHHHHr!ubenr!uben5vrBA88:!aAZQ1J7777r)   c            	         ^ ^ \        ^4      ^\        ^4      /^^ \        ^4      ^\        ^4      //p \        ^^.^^..\         4      p\        P                  ! V R\         4      VP	                  4       8X  g   Q hVP                  V 4      V8X  g   Q hVP                  V \        4      VP                  \        4      8X  g   Q hR# )r   Nr   )r   r   r   from_dodr   from_dod_liker   r   r|   r&   s     r'   test_DomainMatrix_from_dodr   b  s    BqE1RU#Q2a5!BqE(:;E
QFQFR A  3q{{}DDD??5!Q&&&??5"%b)9999r)   c                  &   \        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      p V P                  4       R\        ^4      R\        ^4      R\        ^4      R\        ^4      /8X  g   Q h\        \        ^4      \        ^ 4      .\        ^ 4      \        ^4      ..R\        4      p R\        ^4      R\        ^4      /pV P                  4       V8X  g   Q hV P                  4       P                  4       V8X  g   Q hV P	                  4       P                  4       V8X  g   Q hV P
                  P                  4       P                  4       V8X  g   Q hV P
                  P                  4       P                  4       V8X  g   Q hR# )r   Nr   r>   r   r   r   r   r4   )r   r   to_dokr   r   r!   r   r   )r&   doks     r'   test_DomainMatrix_to_dokr   j  s3   r!ubenr!uben5vrBA88:&Ar!ufRUF2a5QQQQr!ubenr!uben5vrBA"Q%1
&C88:::< C''';;=!S(((55<<>  "c)))55<<>  "c)))r)   c                     R\        ^4      R\        ^4      /p \        ^^ .^ ^..\         4      p\        P                  ! V R\         4      VP	                  4       8X  g   Q h\
        P                  ! V R\         4      VP                  P                  4       8X  g   Q h\        P                  ! V R\         4      VP                  P                  4       8X  g   Q hR# )r   Nr>   r4   r   )
r   r   r   from_dokr   r   r!   r   r   r   r   s     r'   test_DomainMatrix_from_dokr   v  s    RUFBqE*E
QFQFR A  3q{{}DDD<<vr*aeelln<<<<<vr*aeelln<<<r)   c                      \        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      p \        V 4      R8X  g   Q hR# )r   z*DomainMatrix([[1, 2], [3, 4]], (2, 2), ZZ)Nr   )r   r   reprrJ   s    r'   test_DomainMatrix_reprr   ~  s@    r!ubenr!uben5vrBA7BBBBr)   c                      \        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      p \        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      pV P                  4       V8X  g   Q hR# ro   )r   r   	transpose)r&   ATs     r'   test_DomainMatrix_transposer     sl    r!ubenr!uben5vrBA	1r!u~1r!u~6	CB;;=Br)   c                      \        \        ^4      ..R\        4      p \        \        ^ 4      ..R\        4      pV P                  RJ g   Q hVP                  RJ g   Q hR# )r   FTNr4   )r   r   is_zero_matrixr&   rq   s     r'    test_DomainMatrix_is_zero_matrixr     sV    r!ugY+Ar!ugY+Au$$$t###r)   c                  :   \        \        ^4      \        ^4      .\        ^ 4      \        ^4      ..R\        4      p \        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      pV P                  RJ g   Q hVP                  RJ g   Q hR# r   TFNr   )r   r   is_upperr   s     r'   test_DomainMatrix_is_upperr     |    r!ubenr!uben5vrBAr!ubenr!uben5vrBA::::r)   c                  :   \        \        ^4      \        ^ 4      .\        ^4      \        ^4      ..R\        4      p \        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      pV P                  RJ g   Q hVP                  RJ g   Q hR# r   )r   r   is_lowerr   s     r'   test_DomainMatrix_is_lowerr     r   r)   c                  .   \        ^^ .^ ^..\        4      p \        ^^.^^..\        4      pV P                  V P                  4       P                  u;J d   RJ g   Q h Q hVP                  VP                  4       P                  u;J d   RJ g   Q h Q hR# )r   TFN)r   r   is_diagonalr   r   s     r'   test_DomainMatrix_is_diagonalr     s    
QFQFR A
QFQFR A==AKKM55========AKKM55>>>>>>r)   c                  d   \        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      p \        \        ^4      \        ^4      .\        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      pV P                  RJ g   Q hVP                  RJ g   Q hR# )r   TFNr   rP   r    )r   r   	is_squarer   s     r'   test_DomainMatrix_is_squarer     s    r!ubenr!uben5vrBAr!ubenr!ubenr!ubenEvrRA;;$;;%r)   c                  |   \        ^^.^^..\        4      p V P                  4       V P                  4       P                  4       u;8X  d   \        ^4      \        ^4      .8X  g   Q h Q h\        ^^.^^.^^..\        4      p V P                  4       V P                  4       P                  4       u;8X  d   \        ^4      \        ^4      .8X  g   Q h Q h\        . RO. RO.\        4      p V P                  4       V P                  4       P                  4       u;8X  d   \        ^4      \        ^4      .8X  g   Q h Q hR# )r   N)r   r    rP   )rR   rS      )r   r   diagonalr   rJ   s    r'   test_DomainMatrix_diagonalr     s    
QFQFR A::<1;;=113E1r!u~EEEEE
QFQFQF#R(A::<1;;=113E1r!u~EEEEE
Iy!2&A::<1;;=113E1r!u~EEEEEr)   c                      \        \        ^4      \        ^4      .\        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      p V P                  4       ^8X  g   Q hR# )r   Nr   )r   r   rankrJ   s    r'   test_DomainMatrix_rankr     sM    r!ubenr!ubenr!ubenEvrRA668q==r)   c            	        aaaaaa	a
a \        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      o\        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      p SS,           SP                  S4      u;8X  d	   V 8X  g   Q h Q h\        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      o^^.^^..o\        \        VV3R l4       \        \        VV3R l4       \        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      o\        \        ^4      \        ^4      ..R\        4      o\        \
        VV3R l4       \        \
        VV3R l4       \        \
        VV3R l4       \        \
        VV3R l4       \        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      o
\        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      o\        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      pS
S,           V8X  g   Q hSS
,           V8X  g   Q h\        \        VV
3R l4       \        \        VV
3R l4       \        ^ ^\        ^4      /^^ \        ^4      //R\        4      o	\        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      oS	S,           pSS	,           pV\        ^^.^^..R\        4      8X  g   Q hVP                  \        ^^.^^..R\        4      P                  4       8X  g   Q hV\        ^^.^^..R\        4      8X  g   Q hVP                  \        ^^.^^..R\        4      P                  4       8X  g   Q h\        \        VV	3R	 l4       R
# )r   c                     < S S,           # rH   r5   r&   Ls   r'   r.   'test_DomainMatrix_add.<locals>.<lambda>  	    a!er)   c                     < SS ,           # rH   r5   r   s   r'   r.   r     r   r)   c                     < S S,           # rH   r5   A1A2s   r'   r.   r     	    br)   c                     < SS ,           # rH   r5   r   s   r'   r.   r     r   r)   c                  &   < S P                  S4      # rH   addr   s   r'   r.   r         r)   c                  &   < SP                  S 4      # rH   r  r   s   r'   r.   r     r  r)   c                  &   < SP                  S 4      # rH   r  r   r   s   r'   r.   r         "&&*r)   c                  &   < S P                  S4      # rH   r  r  s   r'   r.   r     r	  r)   c                  &   < SP                  S 4      # rH   r  r   s   r'   r.   r     r	  r)   Nr   rN   )r   r   r  r   r?   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!ubenr!uben5vrBAr!ubenr!uben5vrBAq5AEE!H!!!!!!r!ubenr!uben5vrBA
Q!QA
9m$
9m$	1r!u~1r!u~6	CB	1r!u~&	3B
<)
<)
<+,
<+,	1r!u~1r!u~6	CB	1r!u~1r!u~6	CB"Q%A"Q%A8&"ED7d??7d??
=,-
=,-	q1be*a!RU4fb	AB	1r!u~1r!u~6	CB
r'C
r'C,AA/<<<<77cAq6Aq6*FB7EEGGGG,AA/<<<<77cAq6Aq6*FB7EEGGGG
=,-r)   c            	      n  aaaa	a
a \        \        ^4      \        ^4      .\        ^4      \        ^4      ..R
\        4      o\        \        ^ 4      \        ^ 4      .\        ^ 4      \        ^ 4      ..R
\        4      p SS,
          SP                  S4      u;8X  d	   V 8X  g   Q h Q h\        \        ^4      \        ^4      .\        ^4      \        ^4      ..R
\        4      o^^.^^..o\        \        VV3R l4       \        \        VV3R l4       \        \        ^4      \        ^4      .\        ^4      \        ^4      ..R
\        4      o\        \        ^4      \        ^4      ..R\        4      o\        \
        VV3R l4       \        \
        VV3R l4       \        \
        VV3R l4       \        \
        VV3R l4       \        \        ^4      \        ^4      .\        ^4      \        ^4      ..R
\        4      o
\        \        ^4      \        ^4      .\        ^4      \        ^4      ..R
\        4      o	\        \        ^ 4      \        ^ 4      .\        ^ 4      \        ^ 4      ..R
\        4      pS
S	,
          V8X  g   Q hS	S
,
          V8X  g   Q h\        \        V	V
3R l4       \        \        V	V
3R l4       \        ^ ^\        ^4      /^^ \        ^4      //R
\        4      p\        \        ^4      \        ^4      .\        ^4      \        ^4      ..R
\        4      pW#,
          pW2,
          pV\        RR.RR..R
\        4      8X  g   Q hVP                  \        RR.RR..R
\        4      P                  4       8X  g   Q hWE) 8X  g   Q hVP                  VP                  ) 8X  g   Q hR	# )r   c                     < S S,
          # rH   r5   r   s   r'   r.   'test_DomainMatrix_sub.<locals>.<lambda>  r   r)   c                     < SS ,
          # rH   r5   r   s   r'   r.   r    r   r)   c                     < S S,
          # rH   r5   r   s   r'   r.   r    r   r)   c                     < SS ,
          # rH   r5   r   s   r'   r.   r    r   r)   c                  &   < S P                  S4      # rH   subr   s   r'   r.   r    r  r)   c                  &   < SP                  S 4      # rH   r  r   s   r'   r.   r    r  r)   c                  &   < SP                  S 4      # rH   r  r  s   r'   r.   r    r	  r)   c                  &   < S P                  S4      # rH   r  r  s   r'   r.   r    r	  r)   Nr   rN   )r   r   r  r   r?   r   r   r   r!   r   r   )rq   Adiffr   r   r  r  r&   r   r   r   r   r   s         @@@@@@r'   test_DomainMatrix_subr    s   r!ubenr!uben5vrBAr!ubenr!uben5vrBAq5AEE!H!!!!!!r!ubenr!uben5vrBA
Q!QA
9m$
9m$	1r!u~1r!u~6	CB	1r!u~&	3B
<)
<)
<+,
<+,	1r!u~1r!u~6	CB	1r!u~1r!u~6	CB2a5"Q%.2a5"Q%.962FE7e7e
=,-
=,-	q1be*a!RU4fb	AB	1r!u~1r!u~6	CB
'C
'C,R2r(3VR@@@@77cB8b"X.;IIKKKK$;;77swwhr)   c                  8   \        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      p \        \        R4      \        R4      .\        R4      \        R4      ..R\        4      pV ) V P                  4       u;8X  d	   V8X  g   Q h Q hR# )r   Nr   r  r  )r   r   neg)r&   Anegs     r'   test_DomainMatrix_negr%    s{    r!ubenr!uben5vrBA"R&"R&)BrFBrF+;<fbID2 D     r)   c            	      	  aa	a
a \        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      o\        \        ^4      \        ^
4      .\        ^4      \        ^4      ..R\        4      p SS,          SP                  S4      u;8X  d	   V 8X  g   Q h Q h\        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      o^^.^^..o\        \        VV3R l4       \        \        VV3R l4       \        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      o
\        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\
        4      o	\        \        ^4      \        ^
4      .\        ^4      \        ^4      ..R\
        4      pS
S	,          V8X  g   Q hS	S
,          V8X  g   Q h\        \        V	V
3R l4       \        \        V	V
3R l4       \        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      o\        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      p\        ^4      pSV,          VS,          u;8X  d    SP                  V4      u;8X  d	   V8X  g   Q h Q h\        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      o\         P                  ! R\        4      p\        ^ 4      pSV,          VS,          u;8X  d.   SP                  V4      P                  4       u;8X  d	   V8X  g   Q h Q h\        ^ ^\        ^4      /^^ \        ^4      //R\        4      p\        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      pWE,          pWT,          pV\        ^^.^^..R\        4      8X  g   Q hVP                  \        ^^.^^..R\        4      P                  4       8X  g   Q hV\        ^^.^^..R\        4      8X  g   Q hVP                  \        ^^.^^..R\        4      P                  4       8X  g   Q hR# )r   c                     < S S,          # rH   r5   r   s   r'   r.   'test_DomainMatrix_mul.<locals>.<lambda>  r   r)   c                     < SS ,          # rH   r5   r   s   r'   r.   r(    r   r)   c                  &   < SP                  S 4      # rH   matmulr  s   r'   r.   r(        "))B-r)   c                  &   < S P                  S4      # rH   r+  r  s   r'   r.   r(    r-  r)   Nr   )r   r   r,  r   r?   r   r   mulzerosr   r!   r   r   )r   AprodAAr   r   r   r  r  r&   r   r   r   s           @@@@r'   test_DomainMatrix_mulr3  	  s   r!ubenr!uben5vrBA	1r"vBB(8962	FBQ3!((1+######r!ubenr!uben5vrBA
Q!QA
9m$
9m$	1r!u~1r!u~6	CB	1r!u~1r!u~6	CB2a5"R&/BrFBrF+;<fbIE7e7e
=/0
=/0r!ubenr!uben5vrBA	1r!u~1r!u~6	CB
1Aq5AE+QUU1X++++++r!ubenr!uben5vrBA			FB	'B
1Aq5AE7QUU1X//17R77777	q1be*a!RU4fb	AB	1r!u~1r!u~6	CB
'C
'C,AA/<<<<77cAq6Aq6*FB7EEGGGG,AA/<<<<77cAq6Aq6*FB7EEGGGGr)   c                     \        \        ^4      \        ^4      .\        ^ 4      \        ^ 4      ..R\        4      p \        \        ^4      \        ^ 4      .\        ^4      \        ^ 4      ..R\        4      p\        \        ^4      \        ^ 4      .\        ^ 4      \        ^ 4      ..R\        4      pV P                  V4      V8X  g   Q hVP                  V 4      V8X  g   Q hR# )r    Nr   )r   r   mul_elementwiserp   s      r'   !test_DomainMatrix_mul_elementwiser6  0  s    r!ubenr!uben5vrBAr!ubenr!uben5vrBAr!ubenr!uben5vrBAQ1$$$Q1$$$r)   c                    a \         P                  ! ^\        4      p \        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      o\        \        ^4      \        ^
4      .\        ^4      \        ^4      ..R\        4      p\        \        ^%4      \        ^64      .\        ^Q4      \        ^v4      ..R\        4      pS^ ,          SP                  ^ 4      u;8X  d	   V 8X  g   Q h Q hS^,          SP                  ^4      u;8X  d	   S8X  g   Q h Q hS^,          SP                  ^4      u;8X  d	   V8X  g   Q h Q hS^,          SP                  ^4      u;8X  d	   V8X  g   Q h Q h\	        \
        V3R l4       \	        \        V3R l4       \	        \        V3R l4       \         P                  ! R\        4      o\	        \        V3R l4       R# )r    c                  *   < S \        ^^4      ,          # r   rb   rJ   s   r'   r.   'test_DomainMatrix_pow.<locals>.<lambda>B  s    a8Aq>1r)   c                     < S R,          # r   r  r5   rJ   s   r'   r.   r:  C  s	    Rr)   c                  &   < S P                  R4      # r<  )powrJ   s   r'   r.   r:  D  s    b	r)   c                     < S ^,          # r9  r5   rJ   s   r'   r.   r:  G  s	    16r)   Nr   r    r   )	r   eyer   r>  r   r?   NotImplementedErrorr0  r   )rA  r   A3r&   s      @r'   test_DomainMatrix_powrD  8  sl   


1b
!Cr!ubenr!uben5vrBA	1r"vBB(8962	FB	22'"R&"S'):;VR	HBa41558"s"""""a41558 q     a41558!r!!!!!a41558!r!!!!!
912
0
 1262&A
!>2r)   c                  Z   \        RR.RR..\        4      p \        \        ^<4      \        4      p\        ^^.^^..\        4      pVP	                  \        4      pV P                  4       W38X  g   Q hV P                  RR7      W38X  g   Q hW,          V8X  g   Q hWV,          8X  g   Q hR# )r   Tr\   NrN   r   rP   rQ   r   rS   )r   r   r   r   r   clear_denomsr&   den_ZAnum_ZAnum_Qs       r'   test_DomainMatrix_clear_denomsrN  J  s    
U5M5-("-AB$E"bB8$b)Fr"F>>...>>$>'E?:::9r)   c                  ^   \        RR.RR..\        4      p \        ^^ .^ ^..\        4      P                  4       p\        ^^.^^..\        4      p\        ^^.^^..\        4      pV P	                  4       W38X  g   Q hV P	                  RR7      W38X  g   Q hW,          V8X  g   Q hWP                  4       P                  4       V,          8X  g   Q h\        . RO. R	O. R
O.\        4      p \        . RO. RO. RO.\        4      P                  4       p\        . RO. R	O. RO.\        4      pVP                  \        4      pV P	                  4       W38X  g   Q hV P	                  RR7      W38X  g   Q hW,          V8X  g   Q hWP                  4       P                  4       V,          8X  g   Q hR# )r   TrF  NrN   rG  rQ   rH  )rN   rG  r   r   r   r   r   r   )rQ   rH  )r   r   )r      )r   r   r   )r   r   r   )r   r   i  )rP   r    r   r   )i   T   F   <   )r   r   r   r   clear_denoms_rowwiser   invr   rJ  s       r'   &test_DomainMatrix_clear_denoms_rowwiserX  W  s   
U5M5-("-AAB "%//1E!Q!Q "%F!Q!Q "%F!!#666!!$!/E?BBB9 $$&////
i)BCRHA	9k2B7AACE|->?DFr"F!!#666!!$!/E?BBB9 $$&////r)   c                  b  a  \        ^^.^^..\        4      o S P                  \        ^4      4      \        ^^.^^..\        4      \        ^4      38X  g   Q hS P                  \        ^4      4      \        ^^.^^..\        4      \        ^4      38X  g   Q hS P                  \        ^4      4      \        ^^.^^..\        4      \        ^4      38X  g   Q h\        ^^.^^..\        4      o S P                  \        ^4      4      S \        ^4      38X  g   Q hS P                  \        R4      4      S ) \        ^4      38X  g   Q h\        ^^.^^..\        4      o S P                  \        ^ ^4      4      \        ^ R4      S ,          \        ^4      38X  g   Q h\	        \
        V 3R l4       R# )r    c                  8   < S P                  \        ^ 4      4      # r   )cancel_denomr   rJ   s   r'   r.   0test_DomainMatrix_cancel_denom.<locals>.<lambda>|  s    annRU&;r)   Nr!  r  )r   r   r\  r   r   ZeroDivisionErrorrJ   s   @r'   test_DomainMatrix_cancel_denomr_  n  s|   
QFQ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FQFR A>>"Q% Q1J...>>"R&!qb"Q%[000 	QFQFT"A>>$q)$aAtAw(????
;<r)   c                    a \        ^^.^^..\        4      oSP                  \        ^4      4      w  rV \        ^^.^^..\        4      8X  g   Q hV\        ^^.^^..\        4      8X  g   Q hSP                  \        ^4      4      w  rV \        ^^.^^..\        4      8X  g   Q hV\        ^^.^^..\        4      8X  g   Q h\        \        V3R l4       R# )r    c                  8   < S P                  \        ^ 4      4      # r[  )cancel_denom_elementwiser   rJ   s   r'   r.   <test_DomainMatrix_cancel_denom_elementwise.<locals>.<lambda>  s    a&@&@A&Gr)   N)r   r   rb  r   r^  )numersdenomsr&   s     @r'   *test_DomainMatrix_cancel_denom_elementwiserf    s    
QFQFR A//16NFR!Q!Q("----R!Q!Q("----//16NFR!Q!Q("----R!Q!Q("----
GHr)   c                      \        ^^.^^..\        4      p \        ^^.^^..\        4      p\        ^4      pV P                  4       V8X  g   Q hV P                  4       W!38X  g   Q hR# )r    N)r   r   content	primitive)r&   A_primitive	A_contents      r'   #test_DomainMatrix_content_primitiverl    sh    
QFQFR Aq!fq!f%r*K1I99;)###;;=Y4444r)   c            	        a \        \        ^4      \        ^4      \        ^4      .\        ^ 4      \        ^4      \        ^ 4      .\        ^4      \        ^ 4      \        ^4      ..R\        4      p V P                  4       pV P                  pVP                  pWW#3 F  oV P	                  4       ^.^ ^..8X  d   K  Q h	  \        \        ^4      \        ^4      \        ^4      ..\        4      o\        \        V3R l4       R# )r   c                  $   < S P                  4       # rH   )sccrJ   s   r'   r.   'test_DomainMatrix_scc.<locals>.<lambda>  s    1557r)   NrP   rP   )r   r   r   r!   ro  r   r   r   )r   r   r   r   r&   s       @r'   test_DomainMatrix_sccrr    s    	1r!ube,1r!ube,1r!ube,./5r
;B 
B66D66Dd!vvxQC!Q=((( " 	RUBqE2a5!"B'A
!?3r)   c            	        a \        . R\        4      p V P                  4       V R38X  g   Q h\        \        ^4      ..R\        4      p V P                  4       V R38X  g   Q h\        \        ^ 4      ..R\        4      p V P                  4       V R38X  g   Q h\        \        ^4      \        ^4      .\        ^4      \        ^4      ..R	\        4      p V P                  4       w  rV\        \        ^4      \        ^ 4      .\        ^ 4      \        ^4      ..R	\        4      8X  g   Q hVR8X  g   Q h\        \        ^ 4      \        ^4      .\        ^4      \        ^4      ..R	\        4      p V P                  4       w  rV\        \        ^4      \        ^ 4      .\        ^ 4      \        ^4      ..R	\        4      8X  g   Q hVR8X  g   Q h\        \        ^ 4      \        ^4      .\        ^ 4      \        ^4      ..R	\        4      p V P                  4       w  rV\        \        ^ 4      \        ^4      .\        ^ 4      \        ^ 4      ..R	\        4      8X  g   Q hVR
8X  g   Q h\        \        ^4      \        ^4      .\        ^4      \        ^4      ..R	\        4      oSP                  4       w  rV\        \        ^4      \        ^ 4      .\        ^ 4      \        ^4      ..R	\        4      8X  g   Q hVR8X  g   Q hRp\        \        ^4      \        ^4      .\        ^4      \        ^4      ..R	\        4      oV Fb  pSP                  VR7      w  rV\        \        ^4      \        ^ 4      .\        ^ 4      \        ^4      ..R	\        4      8X  g   Q hVR8X  d   Kb  Q h	  \	        \
        V3R l4       \	        \
        V3R l4       R# )r   methodc                  (   < S P                  R R7      # foort  )rrefr   s   r'   r.   (test_DomainMatrix_rref.<locals>.<lambda>  s    rwwew4r)   c                  (   < S P                  R R7      # rw  )rref_denrz  s   r'   r.   r{    s    r{{%{8r)   Nr   r5   r4   r[  r   r9  )autoGJr
   CDGJ_denseFF_denseCD_dense)r   r   ry  r   r   r@   )r&   Arpivotsmethodsru  r   s        @r'   test_DomainMatrix_rrefr    s   R$A6682wr!ugY+A6684y   r!ugY+A6682wr!ubenr!uben5vrBAJB1r!u~1r!u~>KKKKVr!ubenr!uben5vrBAJB1r!u~1r!u~>KKKKVr!ubenr!uben5vrBAJB1r!u~1r!u~>KKKKT>>	1r!u~1r!u~6	CBJB1r!u~1r!u~>KKKKVLG	1r!u~1r!u~6	CBWWFW+
\BqE2a5>BqE2a5>"BFBOOOO 
 :45
:89r)   c                  b  a \        \        ^4      \        R4      \        ^4      .\        ^4      \        R4      \        ^4      ..R\        4      p \        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      pV P                  4       V8X  g   Q h\        \        ^4      \        R4      \        ^4      .\        ^4      \        R4      \        ^4      ..R\        4      o\	        \
        V3R l4       \        \        ^4      \        R4      \        ^4      .\        ^4      \        R4      \        ^4      ..R\        RR7      p \        ^ ^ \        ^4      ^\        ^4      /^^ \        ^4      ^\        ^4      //R\        4      pV P                  4       V8X  g   Q hR# )	r   c                  $   < S P                  4       # rH   )columnspacerz  s   r'   r.   /test_DomainMatrix_columnspace.<locals>.<lambda>  s     0r)   r6   r8   Nr  r!  r   r   )r   r   r  r   r   r   )r&   Acolr   s     @r'   test_DomainMatrix_columnspacer    sJ   r!ubfbe,r!ubfbe.DEvrRA"Q%A"Q%A8&"ED==?d"""	1r"vr!u-1r"vr!u/EFPR	SB
;01r!ubfbe,r!ubfbe.DEvrW_`AQ1q"Q%0!aA2a55IJFTVWD==?d"""r)   c                  j  a \        \        ^4      \        R4      \        ^4      .\        ^4      \        R4      \        ^4      ..R\        4      p V P                  4       V 8X  g   Q h\        \        ^4      \        R4      \        ^4      .\        ^4      \        R4      \        ^4      ..R\        4      o\	        \
        V3R l4       \        \        ^4      \        R4      \        ^4      .\        ^4      \        R4      \        ^4      ..R\        RR7      p V P                  4       V 8X  g   Q hR# )r   c                  $   < S P                  4       # rH   )rowspacerz  s   r'   r.   ,test_DomainMatrix_rowspace.<locals>.<lambda>  s    r)   r6   r8   Nr  r!  r   )r   r   r  r   r   r   )r&   r   s    @r'   test_DomainMatrix_rowspacer    s    r!ubfbe,r!ubfbe.DEvrRA::<1	1r"vr!u-1r"vr!u/EFPR	SB
;-.r!ubfbe,r!ubfbe.DEvrW_`A::<1r)   c                  H  a \        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      o\        \        R4      \        ^4      ..R\        4      p SP                  4       V 8X  g   Q h\        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      o\        \        R4      \        ^4      ..R\        4      p SP                  4       V 8X  g   Q h\	        \
        V3R l4       \        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      o\        \        R4      \        ^4      ..R\        4      p SP                  4       w  rpV\        ^4      8X  g   Q hVP                  4       V 8X  g   Q hVP                  V4      V 8X  g   Q hVP                  4       P                  4       V P                  4       8X  g   Q hVP                  4       P                  V4      V P                  4       8X  g   Q hR# )r   c                  (   < S P                  R R7      # )T)divide_last)	nullspacerJ   s   r'   r.   -test_DomainMatrix_nullspace.<locals>.<lambda>  s     =r)   Nr   r  rN   r!  )	r   r   r  r   r   r   r}  nullspace_from_rrefr   )AnullArrefdenr  r&   s       @r'   test_DomainMatrix_nullspacer    s   r!ubenr!uben5vrBA2b62a5/*FB7E;;=E!!!r!ubenr!uben5vrBA2b62a5/*FB7E;;=E!!!
;=>r!ubenr!uben5vrBA2b62a5/*FB7EE"Q%<<$$&%///$$V,555??002eoo6GGGG??008EOO<MMMMr)   c                  X  aaa \        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      o\        \        ^4      .\        ^4      ..R\        4      p \        ^^ ..R\        4      p\        R^..R\        4      pSP                  V 4      W38X  g   Q h\        \        ^4      .\        ^4      .\        ^4      ..R\        4      o\        \        VV3R l4       \        \        ^4      .\        ^4      ..R\
        4      o\        \        VV3R l4       R# )	r   c                  &   < S P                  S4      # rH   _solve)r&   b3s   r'   r.   )test_DomainMatrix_solve.<locals>.<lambda>  s    "r)   c                  &   < S P                  S4      # rH   r  )r&   bzs   r'   r.   r    s    r)   Nr   r@  rN   r!  rO   )r   r   r  r   r   r   r   )b
particularr  r&   r  r  s      @@@r'   test_DomainMatrix_solver    s    r!ubenr!uben5vrBAr!ug1w'4A1vh3Jr1gY3I88A;:1111	1wA"Q%162	>B
<-.	1wA(&"	5B
;,-r)   c                    aaaa \        . R\        4      p V P                  4       V 8X  g   Q h\        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      p \        \        R4      \        ^4      .\        ^^4      \        R	^4      ..R\        4      pV P                  4       V8X  g   Q h\        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      o\	        \
        V3R l4       \        \        ^4      \        ^4      ..R
\        4      o\	        \        V3R l4       \        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      o\	        \        V3R l4       \        ^4      p\        ^^.^^..V4      P                  4       \        ^^.^ ^..V4      8X  g   Q h\        ^4      o\	        \
        V3R l4       R# )r   c                  $   < S P                  4       # rH   rW  rz  s   r'   r.   'test_DomainMatrix_inv.<locals>.<lambda>  s    r)   c                  $   < S P                  4       # rH   r  Anss   r'   r.   r        3779r)   c                  $   < S P                  4       # rH   r  )Aninvs   r'   r.   r    s    uyy{r)   c                  D   < \        ^^.^^..S 4      P                  4       # r9  )r   rW  )Z6s   r'   r.   r    s"    QFQF#3R 8 < < >r)   Nr>   r   r!  r  rN   )
r   r   rW  r   r   r   r   r   r
   r   )r&   AinvZ3r  r  r   r  s      @@@@r'   test_DomainMatrix_invr    s   R$A557a<<r!ubenr!uben5vrBA"R&"Q%2a8RAY*?@&"MD557d??	1r!u~1r!u~6	CB
;()
A1'
4C
!#452a5"Q%.2a5"Q%.962FE
%':;	AB1v1v#'')R!Q!Q0@"-EEEE	AB
;>?r)   c            	        a \        . R\        4      p V P                  4       ^8X  g   Q h\        ^..R\        4      p V P                  4       ^8X  g   Q h\        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      p V P                  4       \        R4      8X  g   Q h\        \        ^4      \        ^4      \        ^4      .\        ^4      \        ^4      \        ^4      .\        ^4      \        ^4      \        ^4      ..R\        4      p V P                  4       \        R4      8X  g   Q h\        \        ^4      \        ^4      \        ^4      .\        ^4      \        ^4      \        ^4      .\        ^4      \        ^4      \        ^4      ..R\        4      p V P                  4       \        ^ 4      8X  g   Q h\        \        ^4      \        ^4      ..R	\        4      o\	        \
        V3R l4       \        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      p V P                  4       \        R4      8X  g   Q hR# )
r   c                  $   < S P                  4       # rH   )detr  s   r'   r.   'test_DomainMatrix_det.<locals>.<lambda>1  r  r)   Nr>   r4   r   r!  rq  r  rN   )r   r   r  r   r   r   )r&   r  s    @r'   test_DomainMatrix_detr     s   R$A557a<<qcUFB'A557a<<r!ubenr!uben5vrBA557bfr!ubeRU+beRUBqE-BRUBqESUVWSXDYZ\bdfgA557bfr!ubeRU+beRUBqE-BRUBqESUVWSXDYZ\bdfgA557be
A1'
4C
!#45r!ubenr!uben5vrBA557bfr)   c                  x  a \        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      p \        ^4      \        ^4      \        ^4      .p\        \        ^4      \        ^4      .\        ^4      \        ^!4      ..R\        4      pV P                  V4      Tu;8X  dO   V^ ,          V ^,          ,          V^,          V ,          ,           V^,          V ^ ,          ,          ,           8X  g   Q h Q hV P                  . 4      V P                  V P                  V P
                  4      8X  g   Q hV P                  \        ^4      .4      ^V P                  ^V P
                  4      ,          8X  g   Q h\        \        ^4      \        ^4      ..R\        4      o\        \        V3R l4       R# )r   c                  :   < S P                  \        ^4      .4      # r9  )	eval_polyr   )dM2s   r'   r.   -test_DomainMatrix_eval_poly.<locals>.<lambda>@  s    3=="Q%+Ar)   Nr   rN   )	r   r   r  r0  r#   r$   rA  r   r   )dMpresultr  s      @r'   test_DomainMatrix_eval_polyr  7  sB   	1r!u~1r!u~6	CB	A1r!uABrFBrF+bfbf-=>KF<<?fI!RU
QqT"W(<qtBEz(IIIIII<<rxx"))<<<<<<A AbffQ		&:$::::
A1'
4C
!#ABr)   c                     aaaaa \        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      p \        \        ^4      .\        ^4      ..R\        4      o\        ^4      \        ^4      \        ^4      .p\        \        ^(4      .\        ^W4      ..R\        4      pV P                  VS4      Tu;8X  dV   V^ ,          V ^,          ,          S,          V^,          V ,          S,          ,           V^,          S,          ,           8X  g   Q h Q h\        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      o\        \        ^4      .\        ^4      ..R\        4      o\        \        VV3R l4       \        \        ^4      \        ^4      ..R\        4      o\        \
        VV3R l4       \        \        ^4      .\        ^4      ..R\        4      o\        \        VV3R l4       R# )r   c                  <   < SP                  \        ^4      .S 4      # r9  eval_poly_mulr   )r  dM1s   r'   r.   1test_DomainMatrix_eval_poly_mul.<locals>.<lambda>L  s    3+<+<beWa+Hr)   c                  <   < SP                  \        ^4      .S 4      # r9  r  )b1r  s   r'   r.   r  N  s    !1!12a5'2!>r)   c                  <   < SP                  \        ^4      .S 4      # r9  r  )bqr  s   r'   r.   r  P  s    ""2"2BqE7B"?r)   Nr   r@  rN   )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!ubenr!uben5vrBAr!ug1w'4A	A1r!uABrF8bfX.;F??1a FMad1a4ikAaDF1H.DqtAv.MMMMMM	1r!u~1r!u~6	CB
A"Q%)62
6C
!#HI	1r!u~&	3B
<>?	1wA(&"	5B
=?@r)   c                 D  aa WS3pV P                  4       VP                  4       SP                  4       3pWE3 F  w  orgSV,          W7,          8X  g   Q hWc3V) V) 3.pSP                  S4      V9   g   Q hSP                  SR R7      V9   g   Q hSP                  S4      V9   g   Q hSP                  w  rW8X  d7   SP                  VRR7      Wc38X  g   Q hSP	                  V4      Wc38X  g   Q hK  \        \        VV3R l4       \        \        VV3R l4       K  	  R# )ry  rt  charpolyc                  &   < S P                  S4      # rH   solve_den_charpolyAir  s   r'   r.   "_check_solve_den.<locals>.<lambda>k  s    23H3H3Kr)   c                  *   < S P                  SR R7      # )r  rt  	solve_denr  s   r'   r.   r  l  s    2<<*<3Ur)   N)r   r  solve_den_rrefr#   r  r   r   )r&   r  xnumxdencase1case2xnum_ib_ianswersmnr  s   &f&&       @r'   _check_solve_denr  S  s    aLE[[]DNN,akkm<E!>F&yDH$$$ >VGdU#34||A')))||Af|-888  #w... xx6<<J<7F>III((-&???)+KL)+UV% *r)   c            	         \        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      p \        \        ^4      .\        ^4      ..R\        4      p\        \        ^ 4      .\        R4      ..R\        4      p\        R4      p\        WW#4       \        \        ^4      \        ^4      \        ^4      .\        ^4      \        ^4      \        ^4      .\        ^4      \        ^4      \        ^4      ..R\        4      p \        \        ^4      .\        ^4      .\        ^4      ..R\        4      p\        \        ^4      .\        ^ 4      .\        R4      ..R\        4      p\        R4      p\        WW#4       \        \        ^4      .\        ^4      ..R\        4      p \        \        ^4      .\        ^4      ..R\        4      p\        \        ^4      ..R\        4      p\        ^4      p\        WW#4       R# )	r   Nr   r@  r  r!  rq  rO   r4   )r   r   r  )r&   r  r  r  s       r'   test_DomainMatrix_solve_denr  o  s   r!ubenr!uben5vrBAr!ug1w'4ABqE7RVH-vr:F
R&CQ6'	A1r!u	A1r!u	A1r!u !'	,A 	r!ug1wA0&"=ABqE7RUGbfX6CF
R&CQ6'r!ug1w'4Ar!ug1w'4ABqE7)VR0F
Q%CQ6'r)   c                  8  a aaaa \        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      o \        \        ^4      .\        ^4      ..R\        4      o\        \        ^4      \        ^4      ..R\        4      o\        \        VV3R l4       \        \        ^4      \        ^4      ..R\        4      o\        \        V V3R l4       \        \        ^4      .\        ^4      ..R\
        4      o\        \        V V3R l4       R# )r   c                  &   < S P                  S4      # rH   r  )r   r  s   r'   r.   6test_DomainMatrix_solve_den_charpoly.<locals>.<lambda>  s    2+@+@+Cr)   c                  &   < S P                  S4      # rH   r  r&   r  s   r'   r.   r    s    !5!5b!9r)   c                  &   < S P                  S4      # rH   r  )r&   r  s   r'   r.   r    s    !"6"6r":r)   Nr   r@  rN   )r   r   r   r   r   r   r   )r&   r   r  r  r  s   @@@@@r'   $test_DomainMatrix_solve_den_charpolyr    s    r!ubenr!uben5vrBAr!ug1w'4A	1r!u~&	3B
!#CD	1r!u~&	3B
<9:	1wA(&"	5B
=:;r)   c                    aa \        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      o\        \        ^4      .\        ^4      ..R\        4      o\        \        VV3R l4       \        \        R4      .\        ^4      ..R\        4      p SP	                  4       S,          V 8X  g   Q hSP                  SRR7      V \        ^ 4      38X  g   Q hR# )r   c                  &   < S P                  S4      # rH   r  r&   r  s   r'   r.   <test_DomainMatrix_solve_den_charpoly_check.<locals>.<lambda>  s    q/C/CA/Fr)   F)checkNr   r@  r!  )r   r   r   r   adjugater  )adjAbr&   r  s    @@r'   *test_DomainMatrix_solve_den_charpoly_checkr    s    r!ubenr!uben5vrBAr!ug1w'4A
%'FG2b6(RUG,fb9E::<!u$$$/E2a5>AAAr)   c                  2  a aa \        \        ^4      \        ^4      ..R	\        4      o \        \        ^4      .\        ^4      ..R
\        4      o\        \        V V3R l4       \        \        V V3R l4       \        \        ^4      \        ^4      ..R	\        4      o \        \        ^4      \        ^4      ..R	\        4      o\        \        V V3R l4       \        \        V V3R l4       \        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      o \        \        ^4      \        ^4      ..R	\        4      o\        \        V V3R l4       \        \        ^4      ..R\        4      o \        \        ^4      ..R\        4      o\        \        V V3R l4       \        \        ^4      .\        ^4      ..R
\        4      o \        \        ^4      .\        ^4      ..R
\        4      o\        \
        V V3R l4       R# )r   c                  &   < S P                  S4      # rH   r  r  s   r'   r.   4test_DomainMatrix_solve_den_errors.<locals>.<lambda>      Qr)   c                  &   < S P                  S4      # rH   r  r  s   r'   r.   r        !1!1!!4r)   c                  &   < S P                  S4      # rH   r  r  s   r'   r.   r    r  r)   c                  &   < S P                  S4      # rH   r  r  s   r'   r.   r    r  r)   c                  &   < S P                  S4      # rH   r  r  s   r'   r.   r    s    Rr)   c                  *   < S P                  SR R7      # )r;   rt  r  r  s   r'   r.   r    s    AKK9K$Er)   c                  &   < S P                  S4      # rH   r  r  s   r'   r.   r    s    1+?+?+Br)   NrN   r@  r   r4   )r   r   r   r   r   r   )r&   r  r  s   @@@r'   "test_DomainMatrix_solve_den_errorsr    sy   r!uben%vr2Ar!ug1w'4A
</0
<45r!uben%vr2Ar!uben%vr2A
</0
<45r!ubenr!uben5vrBA	1r!u~&	3B
<01r!ugY+Ar!ugY+A
?EFr!ug1w'4Ar!ug1w'4A
!#BCr)   c                  "  a a \        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      o \        \        ^4      .\        ^4      ..R\        4      o\        \        V V3R l4       \        \        V V3R l4       R# )r   c                  &   < S P                  S4      # rH   r  r  s   r'   r.   Btest_DomainMatrix_solve_den_rref_underdetermined.<locals>.<lambda>  s    q{{1~r)   c                  &   < S P                  S4      # rH   r  r  s   r'   r.   r    s    q/?/?/Br)   Nr   r@  )r   r   r   r   r  s   @@r'   0test_DomainMatrix_solve_den_rref_underdeterminedr    se    r!ubenr!uben5vrBAr!ug1w'4A
%'=>
%'BCr)   c            	      B  a \        \        ^4      \        ^4      \        ^4      .\        ^4      \        ^4      \        ^4      .\        ^4      \        ^4      \        ^	4      ..\        4      oSP                  4       w  rV \        ^4      \        R4      \        R4      .8X  g   Q hSP                  4       V ^ ,          S^,          ,          V ^,          S^,          ,          ,           V ^,          S^ ,          ,          ,           u;8X  d   SP	                  V 4      8X  g   Q h Q hSP                  4       V8X  g   Q h\        \        ^4      \        ^4      \        ^4      .\        ^4      \        ^4      \        ^	4      ..\        4      o\        \        V3R l4       R# )r   c                  $   < S P                  4       # rH   )adj_poly_detrJ   s   r'   r.   0test_DomainMatrix_adj_poly_det.<locals>.<lambda>  s    1>>+;r)   N)r   r   r  r  r  r  r   r   )r  detAr&   s     @r'   test_DomainMatrix_adj_poly_detr    s7   
RUBqE2a5!UBqE2a5!UBqE2a5!#$&	(A nnGAA3C))))::<1Q419qtAqDy01Q419<NANNNNN557d??
RUBqE2a5!UBqE2a5!#$&	(A
!#;<r)   c                  8   \        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      p \        R4      p\        \        ^4      \        R4      .\        R4      \        ^4      ..R\        4      pV P                  4       W!38X  g   Q hR# r   Nr   r!  r"  )r   r   inv_den)r&   r  r  s      r'   test_DomainMatrix_inv_denr    sw    r!ubenr!uben5vrBA
R&CBqE2b6?RVRUO<fbIF99;6-'''r)   c                      \        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      p \        \        ^4      \        R4      .\        R4      \        ^4      ..R\        4      pV P                  4       V8X  g   Q hR# r  )r   r   r  )r&   r  s     r'   test_DomainMatrix_adjugater    sl    r!ubenr!uben5vrBABqE2b6?RVRUO<fbIF::<6!!!r)   c                  6   \        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      p \        \        ^4      \        R4      .\        R4      \        ^4      ..R\        4      pV P                  4       V\        R4      38X  g   Q hR# r  )r   r   adj_det)r&   adjAs     r'   test_DomainMatrix_adj_detr    st    r!ubenr!uben5vrBA"Q%B2b62a5/:FBGD99;4B.(((r)   c            	        a \        . R\        4      oSP                  4       SS. 38X  g   Q h\        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      o\        \        ^4      \        ^ 4      .\        ^4      \        ^4      ..R\        4      p \        \        ^4      \        ^4      .\        ^ 4      \        R4      ..R\        4      p. pSP                  4       WV38X  g   Q h\        \        ^ 4      \        ^4      .\        ^4      \        ^4      ..R\        4      o\        \        ^4      \        ^ 4      .\        ^ 4      \        ^4      ..R\        4      p \        \        ^4      \        ^4      .\        ^ 4      \        ^4      ..R\        4      pR.pSP                  4       WV38X  g   Q h\        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      o\        \        ^4      \        ^ 4      .\        ^4      \        ^4      ..R\        4      p \        \        ^4      \        ^4      .\        ^ 4      \        ^ 4      ..R\        4      p. pSP                  4       WV38X  g   Q h\        \        ^ 4      \        ^4      .\        ^ 4      \        ^4      ..R\        4      o\        \        ^4      \        ^ 4      .\        ^ 4      \        ^4      ..R\        4      p \        \        ^ 4      \        ^4      .\        ^ 4      \        ^4      ..R\        4      p. pSP                  4       WV38X  g   Q h\        \        ^4      \        ^4      \        ^4      .\        ^4      \        ^4      \        ^4      ..R\        4      o\        \        ^4      \        ^ 4      .\        ^4      \        ^4      ..R\        4      p \        \        ^4      \        ^4      \        ^4      .\        ^ 4      \        R	4      \        R
4      ..R\        4      p. pSP                  4       WV38X  g   Q h\        \        ^4      \        ^4      .\        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      o\        \        ^4      \        ^ 4      \        ^ 4      .\        ^4      \        ^4      \        ^ 4      .\        ^4      \        ^4      \        ^4      ..R\        4      p \        \        ^4      \        ^4      .\        ^ 4      \        R4      .\        ^ 4      \        ^ 4      ..R\        4      p. pSP                  4       WV38X  g   Q h. RO. RO. RO. RO.o. RO. RO. RO. RO.p . RO. RO. RO. RO.pR p\        V! S\        4      R\        4      o\        V! V \        4      R\        4      p \        V! V\        4      R\        4      pSP                  4       W. 38X  g   Q h\        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      o\	        \
        V3R l4       R# )r   c           
      h    V  UUu. uF  q" Uu. uF
  q1! V4      NK  	  upNK  	  upp# u upi u uppi rH   r5   )rowsrU   rowr   s   &&  r'   r.   &test_DomainMatrix_lu.<locals>.<lambda>	  s,    F# 5AQ 5F 5Fs   .)..c                  $   < S P                  4       # rH   )lurJ   s   r'   r.   r    s    r)   Nr>   r   r!  r   r   r"  ir   rq  )r   r   r   r   rP  )r   r   r   r   )r   r   r   r    )r   r   r   r   )r   r   r   r   )r   r   r   r   )rR   rR   )r   r   r!  r   r   r   )r   Uswapsto_domr&   s       @r'   test_DomainMatrix_lur%    s   R$A446aBZr!ubenr!uben5vrBAr!ubenr!uben5vrBAr!ubenr!ubfo6CAE446aE]"""r!ubenr!uben5vrBAr!ubenr!uben5vrBAr!ubenr!uben5vrBAHE446aE]"""r!ubenr!uben5vrBAr!ubenr!uben5vrBAr!ubenr!uben5vrBAE446aE]"""r!ubenr!uben5vrBAr!ubenr!uben5vrBAr!ubenr!uben5vrBAE446aE]"""r!ubeRU+beRUBqE-BCVRPAr!ubenr!uben5vrBAr!ubeRU+beRVRV-DEvrRAE446aE]"""r!ubenr!ubenr!ubenEvrRA	A1r!u	A1r!u	A1r!u !'	,A 	r!ubenr!ubfo1r!u~FPRSAE446aE]"""	|\<@A	|\<@A	|\<@AFFVAr]FB/AVAr]FB/AVAr]FB/A446aBZr!ubenr!uben5vrBA
;'r)   c                  	  aa \        . R\        4      ;o;op SP                  S4      V 8X  g   Q h\        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      o\        \        ^4      .\        ^4      ..R	\        4      o\        \        ^ 4      .\        ^^4      ..R	\        4      p SP                  S4      V 8X  g   Q h\        \        ^ 4      \        ^4      .\        ^4      \        ^4      ..R\        4      o\        \        ^4      .\        ^4      ..R	\        4      o\        \        ^ 4      .\        ^^4      ..R	\        4      p SP                  S4      V 8X  g   Q h\        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      o\        \        ^4      .\        ^4      ..R	\        4      o\        \        VV3R l4       \        \        ^4      \        ^4      .\        ^4      \        ^4      .\        ^4      \        ^4      ..R
\        4      o\        \        ^4      .\        ^4      .\        ^4      ..R\        4      o\        \        ^ 4      .\        ^^4      ..R	\        4      p SP                  S4      V 8X  g   Q h\        \        ^4      \        ^4      .\        ^4      \        ^4      .\        ^4      \        ^4      ..R
\        4      o\        \        ^4      .\        ^4      .\        ^4      ..R\        4      o\        \        VV3R l4       \        \        ^4      \        ^4      ..R\        4      o\        \        ^4      ..R\        4      o\        \
        VV3R l4       \        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      o\        \        ^4      .\        ^4      ..R	\        4      o\        \        VV3R l4       \        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      o\        \        ^4      \        ^4      ..R\        4      o\        \        VV3R l4       R# )r   c                  &   < S P                  S4      # rH   lu_solver  s   r'   r.   ,test_DomainMatrix_lu_solve.<locals>.<lambda>'      qzz!}r)   c                  &   < S P                  S4      # rH   r(  r  s   r'   r.   r*  2  r+  r)   c                  &   < S P                  S4      # rH   r(  r  s   r'   r.   r*  7  s    

1r)   c                  &   < S P                  S4      # rH   r(  r  s   r'   r.   r*  <  s    

1r)   c                  &   < S P                  S4      # rH   r(  r  s   r'   r.   r*  A  s    Ar)   Nr>   r   r@  r   rO   rN   r4   )	r   r   r)  r   r   rB  r   r   r   )r   r&   r  s    @@r'   test_DomainMatrix_lu_solver0    s   R,,A,A::a=A 	r!ubenr!uben5vrBAr!ug1w'4Ar!ug1az*FB7A::a=A 	r!ubenr!uben5vrBAr!ug1w'4Ar!ug1az*FB7A::a=A 	r!ubenr!uben5vrBAr!ug1w'4A
%'<= 	r!ubenr!ubenr!ubenEvrRAr!ug1wA0&"=Ar!ug1az*FB7A::a=A 	r!ubenr!ubenr!ubenEvrRAr!ug1wA0&"=A
%'<= 	r!uben%vr2Ar!ugY+A
 56 	r!ubenr!uben5vrBAr!ug1w'4A
;-. 	r!ubenr!uben5vrBAr!uben%vr2A
<./r)   c                  z  a \        . R\        4      p \        ^4      .pV P                  4       V8X  g   Q hV P                  4       P                  4       V8X  g   Q h\        ^..R\        4      p \        ^4      \        R4      .pV P                  4       V8X  g   Q hV P                  4       P                  4       V8X  g   Q h\        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      p \        ^4      \        R4      \        R4      .pV P                  4       V8X  g   Q hV P                  4       P                  4       V8X  g   Q h\        \        ^4      \        ^4      \        ^4      .\        ^4      \        ^4      \        ^4      .\        ^4      \        ^4      \        ^	4      ..R	\        4      p \        ^4      \        R
4      \        R4      \        ^ 4      .pV P                  4       V8X  g   Q hV P                  4       P                  4       V8X  g   Q h\        \        ^ 4      \        ^4      \        ^ 4      .\        ^4      \        ^ 4      \        ^4      .\        ^ 4      \        ^4      \        ^ 4      ..R	\        4      p \        ^4      \        ^ 4      \        R4      \        ^ 4      .pV P                  4       V8X  g   Q hV P                  4       P                  4       V8X  g   Q h\	        . RO. RO. RO. RO. RO. RO. RO. RO. RO. RO.
\        4      p \        P
                  ! . RO4      pV P                  4       V8X  g   Q hV P                  4       P                  4       V8X  g   Q h\        \        ^4      \        ^4      ..R\        4      o\        \        V3R l4       R# )r   c                  $   < S P                  4       # rH   )r  r  s   r'   r.   ,test_DomainMatrix_charpoly.<locals>.<lambda>o  s    3<<>r)   Nr>   r4   r  r   r!  rq  r  r  )
   r      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   %   C   r   r   r   r   )r   iir   i:r   r   r   r   r   r   rN   )	r   r   r  r   r   mapr   r   r   )r&   r  r  s     @r'   test_DomainMatrix_charpolyr?  D  s   R$A	AA::<1;;=!!#q(((qcUFB'A	A2A::<1;;=!!#q(((r!ubenr!uben5vrBA	A22A::<1;;=!!#q(((r!ubeRU+beRUBqE-BRUBqESUVWSXDYZ\bdfgA	A3C"Q%(A::<1;;=!!#q(((r!ubeRU+!ubeRU+!ubeRU+-.4b	:A 
A1r"vr!u%A::<1;;=!!#q(((
0000000000	2 46		7A 	<=A::<1;;=!!#q(((
A1'
4C
!#9:r)   c                  B   \        . R\        4      p V P                  4       . 8X  g   Q h\        ^..\        4      p V P                  4       \        ^4      \        R4      .^3.8X  g   Q h\        ^^.^^..\        4      p V P                  4       \        ^4      \        R4      \        R4      .^3.8X  g   Q h\        . RO. RO. RO.\        4      p V P                  4       \        ^4      \        R4      .^3\        ^4      \        R4      \        R4      .^3.8X  g   Q hR# )	r   Nr>   r  r4  r!  )r   r    r   )rP   rR   r   )r   r   r   )r   r   charpoly_factor_listr   rJ   s    r'   &test_DomainMatrix_charpoly_factor_listrB  r  s$   R$A!!#r)))
QC5"A!!#
Q%B!(    	QFQFR A!!#
Q%BB	 !$(    	Iy),b1A!!#
Q%B!
Q%BB	 !$(   r)   c                      \         P                  ! ^\        4      p V P                  \        P                  ! R\        4      8X  g   Q hV P
                  R8X  g   Q hV P                  \        8X  g   Q hR# )rP   Nrq  )r   rA  r   r!   r   r#   r$   rJ   s    r'   test_DomainMatrix_eyerD    sS    BA55CGGFB''''77f88r>>r)   c                      \         P                  ! R\        4      p V P                  \        P                  ! R\        4      8X  g   Q hV P
                  R8X  g   Q hV P                  \        8X  g   Q hR# )r   NrN   )r   r0  r   r!   r   r#   r$   rJ   s    r'   test_DomainMatrix_zerosrF    sS    62&A55CIIfb))))77f88r>>r)   c                  t   \         P                  ! R\        4      p \        R8w  d.   V P                  \
        P                  ! R\        4      8X  g   Q hM:V P                  \        P                  ! R\        4      P                  4       8X  g   Q hV P                  R8X  g   Q hV P                  \        8X  g   Q hR# )r    r   Nr   )
r   onesr   r   r!   r   r   r"   r#   r$   rJ   s    r'   test_DomainMatrix_onesrI    s    &"%Awuu,,,,uu,33555577f88r>>r)   c            	         \        ^ ^ \        ^4      /^^\        ^4      //R\        4      p \         P                  ! \        ^4      \        ^4      .\        4      V 8X  g   Q h\        ^ ^ \        ^4      /^^\        ^4      //R\        4      p \         P                  ! \        ^4      \        ^4      .\        R4      V 8X  g   Q hR# )r   Nr   )rP   rR   )r   r   diagrJ   s    r'   test_DomainMatrix_diagrL    s    a2a5	1a1Y/<AbeRU^R0A555a2a5	1a1Y/<AbeRU^R8A===r)   c                     \        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      p \        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      p\        \        ^	4      \        ^
4      .\        ^4      \        ^4      ..R\        4      p\        \        ^4      \        ^4      \        ^4      \        ^4      .\        ^4      \        ^4      \        ^4      \        ^4      ..R\        4      p\        \        ^4      \        ^4      \        ^4      \        ^4      \        ^	4      \        ^
4      .\        ^4      \        ^4      \        ^4      \        ^4      \        ^4      \        ^4      ..R\        4      pV P                  V4      V8X  g   Q hV P                  W4      V8X  g   Q hR# )r   Nr   )r    rR   )r    r   )r   r   hstackr&   rq   rr   ABABCs        r'   test_DomainMatrix_hstackrR    se   r!ubenr!uben5vrBAr!ubenr!uben5vrBAr!ubfo22'78&"EA		A1r!ube$	A1r!ube$&'-r
3B 	A1r!ubeRUBrF3	A1r!ubeRVRV467=rCC 88A;"88A>S   r)   c                     \        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      p \        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      p\        \        ^	4      \        ^
4      .\        ^4      \        ^4      ..R\        4      p\        \        ^4      \        ^4      .\        ^4      \        ^4      .\        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      p\        \        ^4      \        ^4      .\        ^4      \        ^4      .\        ^4      \        ^4      .\        ^4      \        ^4      .\        ^	4      \        ^
4      .\        ^4      \        ^4      ..R\        4      pV P                  V4      V8X  g   Q hV P                  W4      V8X  g   Q hR# )r   Nr   )rR   r    )r   r    )r   r   vstackrO  s        r'   test_DomainMatrix_vstackrU    sw   r!ubenr!uben5vrBAr!ubenr!uben5vrBAr!ubfo22'78&"EA		A1	A1	A1	A1	  	
%B
 	A1	A1	A1	A1	A2	BB "2'C 88A;"88A>S   r)   c                      \        \        ^4      \        ^4      ..R\        4      p \        \        ^4      \        ^4      ..R\        4      pV P                  R 4      V8X  g   Q hR# )r   c                     ^V ,          # ra   r5   )r   s   &r'   r.   -test_DomainMatrix_applyfunc.<locals>.<lambda>  s    1r)   NrN   )r   r   	applyfuncr   s     r'   test_DomainMatrix_applyfuncrZ    sS    r!uben%vr2Ar!uben%vr2A;;}%***r)   c                  l  a \        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      o\        \        ^4      \        ^4      ,          \        4      p SV ,          \        \        ^^4      \        ^4      .\        ^	^4      \        ^4      ..R\        4      8X  g   Q hS^,          \        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      8X  g   Q h^S,          \        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      8X  g   Q hS\        \        ^ 4      \        4      ,          \        / R\        4      8X  g   Q hS\        \        ^4      \        4      ,          S8X  g   Q h\	        \
        V3R l4       R# )r   c                     < S R ,          # g      ?r5   rJ   s   r'   r.   -test_DomainMatrix_scalarmul.<locals>.<lambda>  	    a#gr)   Nr   )r   r   r   r   r   r?   )lamdar&   s    @r'   test_DomainMatrix_scalarmulra    sD   r!ubenr!uben5vrBAAr!ub)Eu9r!QxA&7"Q(BqE9J%KVUWXXXXq5L2a5"Q%.2a5"Q%.!A62NNNNq5L2a5"Q%.2a5"Q%.!A62NNNN|BqE2&&,r62*FFFF|BqE2&&!+++
9o&r)   c                  T  a \         P                  ! \        ^^.^^..4      4      o\        \	        ^4      \	        ^4      ,          \        4      p SV ,          \        ^ ^ \	        ^^4      ^\	        ^^4      /^^ \	        ^4      ^\	        ^^4      //R\        4      8X  g   Q h\        \        ^4      \
        4      pSV,          \        ^ ^ \	        ^4      ^\	        ^4      /^^ \	        ^4      ^\	        ^4      //R\        4      8X  g   Q hS^,          \        ^ ^ \	        ^4      ^\	        ^4      /^^ \	        ^4      ^\	        ^4      //R\        4      8X  g   Q hS^,          \        ^ ^ \	        ^^4      ^\	        ^4      /^^ \	        ^^4      ^\	        ^4      //R\        4      8X  g   Q h\        \        V3R l4       \        \        V3R l4       \        \        V3R l4       \        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\
        4      oSP                  4       ^,          \        \	        ^^4      \	        ^4      .\	        ^^4      \	        ^4      ..R\        4      8X  g   Q hS^,          \        \	        ^^4      \	        ^4      .\	        ^^4      \	        ^4      ..R\        4      8X  g   Q hSP                  4       \	        ^^4      ,          \        \	        ^^4      \	        ^4      .\	        ^	^4      \	        ^4      ..R\        4      8X  g   Q hR# )r   c                     < S ^ ,          # r[  r5   rJ   s   r'   r.   +test_DomainMatrix_truediv.<locals>.<lambda>  s	    a!er)   c                     < S R ,          # r]  r5   rJ   s   r'   r.   rd    r_  r)   c                  D   < S \        \        ^ 4      \        4      ,          # r[  )r   r   rJ   s   r'   r.   rd    s    a,r!ub*A&Ar)   Nr   )
r   rl   r   r   r   r   r   r^  r?   r   )r`  r  r&   s     @r'   test_DomainMatrix_truedivrg    s     !Q!Q(8!9:AAr!ub)Eu9a!R1Xq"Q()CQBqESTVXYZ\]V^H_%`bhjlmmmmRUBAq5L!aA2a5%91q"Q%BqE>R!SU[]_````q5L!aA2a5%91q"Q%BqE>R!SU[]_````q5L!aAq1be%<a!R1XqRTUVRWAX!Y[aceffff
m,
9o&
ABr!ubenr!uben5vrBA::<!|bAh1->Aq2a5@Q,RTZ\^____q5L2a8RU"3bAh15F!GQSTTTT::<"Qq'!\Bq!Hbe3Dr!QxQSTUQVFW2XZ`bd%eeeer)   c            
      	  a  \        \        ^4      \        ^4      \        ^4      .\        ^4      \        ^4      \        ^4      .\        ^4      \        ^4      \        ^	4      ..R\        4      o S RRR13,          \        \        ^4      .\        ^4      ..R\        4      8X  g   Q hS ^RR13,          \        \        ^4      ..R\        4      8X  g   Q hS RR1RR13,          \        \        ^4      ..R\        4      8X  g   Q hS RR1R3,          \        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      8X  g   Q hS R,          \        \        ^4      .\        ^4      .\        ^	4      ..R\        4      8X  g   Q hS R,          \        \        ^4      \        ^4      \        ^	4      ..R\        4      8X  g   Q hS RRR1R3,          \        \        ^4      \        ^4      \        ^	4      .\        ^4      \        ^4      \        ^4      .\        ^4      \        ^4      \        ^4      ..R\        4      8X  g   Q h\        \        V 3R l4       \        \        V 3R l4       S R,          \	        \        ^4      \        4      8X  g   Q hS R,          \	        \        ^4      \        4      8X  g   Q hS R,          \	        \        ^4      \        4      8X  g   Q hS R,          \	        \        ^4      \        4      8X  g   Q h\        \        V 3R l4       \        \        V 3R l4       \        \        V 3R	 l4       \        ^ ^ \        ^4      //R\        4      o S R,          \	        \        ^ 4      \        4      8X  g   Q hS R,          \	        \        ^4      \        4      8X  g   Q h\        ^^ ^//R\        4      o S R,          \        ^^ ^//R\        4      8X  g   Q h\        \        V 3R
 l4       \        ^^\        ^4      /^^\        ^4      //R\        4      o S R,          \        / R\        4      8X  g   Q hS R,          \        ^ ^ ^/^^^//R\        4      8X  g   Q hS R,          \        ^^^//R\        4      8X  g   Q hS R ,          \        / R!\        4      8X  g   Q hR# )"r   :r   NNN:r   r    NNNNc                     < S ^RR13,          # )rR   Nr!  r5   r  s   r'   r.   +test_DomainMatrix_getitem.<locals>.<lambda>  s    r!SbS&zr)   c                     < S R R1^3,          # )Nr!  r5   rk  s   r'   r.   rl    s    r#2#q&zr)   c                     < S R,          # )rP   rq  r5   rk  s   r'   r.   rl  
  	    r$xr)   c                     < S R,          # )r   rQ   r5   rk  s   r'   r.   rl    ro  r)   c                     < S R,          # )r   )r  r  r5   rk  s   r'   r.   rl    s	    r&zr)   c                     < S R,          # )rP   rP   r   r5   rk  s   r'   r.   rl    ro  r)   rq  r!  r@  r4   r  r   )ri  r  rO   )r  ri  rG  rN   )r!  r    )r   r!  )r  r"  )
   rt  rS   rS   r>   ):r   NNr   )Nr    Nrv  )r    NNrw  )rP   NNrx  )rw  :r   NNrs  )r   r   r   
IndexErrorr   rk  s   @r'   test_DomainMatrix_getitemrz    s   		A1r!u	A1r!u	A1r!u !'
,B
 b"f:1wA&8&"EEEEae9r!ugY;;;;crc#2#g;,Ay&"====crc#g;,A1A1'GQSTTTTe9r!ug1wA%@&"MMMMe9r!ubeRU&;%<fbIIIIddAg;,UBqE2a51UBqE2a51UBqE2a51(3 5;B@ @ @ @
 :)*
:)*d8|BqE2....e9RUB////e9RUB////f:beR0000
:'(
:'(
:)*	q1be*ox	4Bd8|BqE2....d8|BqE2....	q1a&k5"	-Be9a!Q[&"====
:'(	q1be*a!RU4fb	ABe9R4444e9a!QQF%;VRHHHHe9a!Q[&"====f:b&"5555r)   c            	         \        ^^\        ^4      /^^\        ^4      //R\        4      p V P                  ^ ^ 4      pV\        P                  J g   Q hV P                  ^^4      pV^8X  d   \        V\        4      '       g   Q hR# )r    Nru  )r   r   getitem_sympyr   Zero
isinstancer   )r  val1val2s      r'   test_DomainMatrix_getitem_sympyr    sy    	q1be*a!RU4fb	ABAq!D166>>Aq!D19D'22222r)   c            	        aaa \        \        ^4      \        ^4      \        ^4      .\        ^4      \        ^4      \        ^4      .\        ^4      \        ^4      \        ^	4      ..R\        4      p \        \        ^4      \        ^4      .\        ^4      \        ^	4      ..R\        4      pV P                  ^ ^.^ ^.4      V8X  g   Q hV P                  4       P                  ^ ^.^ ^.4      VP                  4       8X  g   Q hV P                  ^ R.^ R.4      V8X  g   Q hV P                  4       P                  ^ R.^ R.4      VP                  4       8X  g   Q h\        \        ^4      \        ^4      \        ^4      .\        ^4      \        ^4      \        ^4      .\        ^4      \        ^4      \        ^4      ..R\        4      pV P                  . RO. RO4      V8X  g   Q hV P                  4       P                  . RO. RO4      VP                  4       8X  g   Q h. . R3^.. R	3. ^.R
3.pV F  w  oopV P                  SS4      \         P                  ! V\        4      P                  4       8X  g   Q hV P                  4       P                  SS4      \         P                  ! V\        4      8X  d   K  Q h	  \        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      o^.^ .3^ .^.3R.^ .3^ .R.3.pV F2  w  oo\        \        VVV3R l4       \        \        VVV3R l4       K4  	  R# )r   c                  (   < SP                  SS 4      # rH   )extractcolsr  r  s   r'   r.   +test_DomainMatrix_extract.<locals>.<lambda>E  s    2::dD#9r)   c                  D   < SP                  4       P                  SS 4      # rH   )r   r  r  s   r'   r.   r  F  s    2<<>#9#9$#Er)   Nrq  r   r  )r   r   r   r>   r   r   r"  )r   r   r  r   r0  r   r   ry  )	r  r  dM3emptysizebad_indicesr  r  r  s	         @@@r'   test_DomainMatrix_extractr  %  s   
	A1r!u	A1r!u	A1r!u !',C 	A1	A1%C ;;1v1v&#---==?""Aq6Aq62cmmoEEE;;2wB(C///==?""Ar7QG4GGG
	A1r!u	A1r!u	A1r!u !',C ;;y),333==?""9i8CMMOKKK 
R
b&	aS&E
 "dD{{4&,*<*<T2*F*O*O*QQQQ}}&&tT2l6H6Hr6RRRR " 
1r!u~1r!u~6	CBC!:aSzRD1#;!rdDK!
dz9:zEF "r)   c            
      <  a a \        ^^\        ^4      /^^\        ^4      //R\        4      o \        ^4      S R&   S \        ^^\        ^4      /^^\        ^4      //R\        4      8X  g   Q hV 3R lo\        \        V3R l4       \        \        V3R l4       R# )r    c                    < VSW3&   R # rH   r5   )rC   jvalr  s   &&&r'   setitem*test_DomainMatrix_setitem.<locals>.setitemM  s    14r)   c                  ,   < S ! ^^\        ^^4      4      # ra   )r   r  s   r'   r.   +test_DomainMatrix_setitem.<locals>.<lambda>O  s    gaBq!H5r)   c                  >   < S ! \        ^^4      ^\        ^4      4      # r9  )slicer   r  s   r'   r.   r  P  s    aQ1(Fr)   Nru  r   )r   r   r   r?   rB  )r  r  s   @@r'   test_DomainMatrix_setitemr  I  s    	q1be*a!RU4fb	AB!uBtHq1be*a!RU<fbIIII
956
 FGr)   c            	      v   ^ RI p \        ^^\        ^4      /^^\        ^4      //R\        4      pV P                  V P	                  V4      4      V8X  g   Q h\        \        ^4      \        ^4      .\        ^4      \        ^4      ..R\        4      pV P                  V P	                  V4      4      V8X  g   Q hR# )r   Nru  r   )pickler   r   loadsdumps)r  r  s     r'   test_DomainMatrix_picklingr  S  s    	q1be*a!RU4fb	AB<<R()R///	1r!u~1r!u~6	CB<<R()R///r)   c                     \        ^^.^^..\        4      p V P                  4       w  rr4VP                  V P                  8X  g   Q hVP                  V P                  8X  g   Q hVP                  V P                  8X  g   Q hVP                  V P                  8X  g   Q hV\        ^^ .^ ^..\        4      8X  g   Q hV\        ^^ .^R..\        4      8X  g   Q hV\        ^^ .^ R..\        4      8X  g   Q hV\        ^^.^ R..\        4      8X  g   Q hVP	                  4       w  rVVP                  V 4      P                  V4      VP                  V4      P                  V4      8X  g   Q hR# )r   Nr!  )r   r   fflur#   r  r,  rmul)r&   Pr   Dr"  dids          r'   test_DomainMatrix_fflur  [  sK   
QFQFR AJA!77agg77agg77agg77aggQFQF#R((((QFQG$b))))QFQG$b))))QFQG$b))))IIKEB88A;A!((2,"5"5a"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(   rE   rL   rV   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%  r3  r6  rD  rN  rX  r_  rf  rl  rr  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r%  r0  r?  rB  rD  rF  rI  rL  rR  rU  rZ  ra  rg  rz  r  r  r  r  r  r5   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.0b+;\*>!!*+	'f()6X3!GHH09r)   