+
    ‹°³jT= ã                   óæ  € ^ RI Ht ^ RIHt ^ RIHt ^ RIHtHt ^ RI	H
t
 ^ RI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IHt ^ RIHt ^ RIH t H!t!H"t"H#t#H$t$H%t%H&t&H't'H(t(H)t)H*t*H+t+H,t,H-t-H.t.H/t/H0t0H1t1H2t2H3t3H4t4H5t5 ^ RI6H7t7H8t8H9t9 ^ RI:H;t; R t<R t=R t>R t?R t@R tAR tBR tCR tDR tER tFR tGR tHR tIR tJR tKR  tLR! tMR" tNR# tOR$ tPR% tQR& tRR' tSR( tTR) tU]8R* 4       tVR+ tWR, tXR- tYR. tZR/ t[R0 t\R1 t]R2 t^R3 t_R4 t`R5 taR6 tbR7 tcR8 tdR9 teR: tfR; tgR< thR= tiR> tjR? tkR@ tlRA tmRB tnRC toRD tpRE tqRF trRG tsRH ttRI tuRJ tvRK twRL txRM tyRN tzRO t{RP t|RQ t}RR t~RS tRT t€RU t�RV t‚RW# )Xé    )ÚSum)Úexpand)ÚInteger)ÚMatrixÚeye)ÚIndexed)ÚPermutation)ÚSÚRationalÚSymbolÚBasicÚAddÚWildÚFunction)ÚTuple)Úsymbols)Úsqrt)Ú	integrate)ÚArray)ÚTensorIndexTypeÚtensor_indicesÚTensorSymmetryÚget_symmetric_group_sgsÚTensorIndexÚ
tensor_mulÚTensAddÚriemann_cyclic_replaceÚriemann_cyclicÚTensMulÚtensor_headsÚTensorManagerÚTensExprÚ
TensorHeadÚcanon_bpÚ
tensorheadÚtensorsymmetryÚ
TensorTypeÚsubstitute_indicesÚWildTensorIndexÚWildTensorHeadÚ_WildTensExpr)ÚraisesÚXFAILÚwarns_deprecated_sympy)Údiagc                 ó¦   € \        V \        4      '       d   V P                  V4      # \        V\        4      '       d   VP                  V 4      # W8H  # ©N)Ú
isinstancer"   Úequals)Úarg1Úarg2s   &&Ú_/home/luca/screen-checking/.venv/lib/python3.14/site-packages/sympy/tensor/tests/test_tensor.pyÚ	_is_equalr7      sB   € Ü�$œ×!Ò!Ø�{‰{˜4Ó Ð Ü	�Dœ(×	#Ò	#Ø�{‰{˜4Ó Ð Ø‰<Ðó    c                  ó   € \        R RR7      p \        RV 4      w  rr4\        RV .\        P                  ! ^4      4      w  rVV! V) 4      V! V4      ,          pVP                  4       p\        V4      R8X  g   Q hV! V4      V! V4      ,          pVP                  4       pW‡8X  g   Q hV! V4      V! V4      ,          p	V	P                  4       p\        V4      R8X  g   Q h\        RV .^,          \        P                  ! ^4      4      pV! W#) 4      V! W14      ,          pVP                  4       p\        V4      R8X  g   Q h\        R	V .\        P                  ! ^4      4      w  rjV! WC) 4      V! V4      ,          V
! V) 4      ,          pVP                  4       p\        V4      R
8X  g   Q h\        RV .^,          \        P                  ! ^4      4      pV! WC) 4      V! V4      ,          V
! V) 4      ,          pVP                  4       p\        V4      R8X  g   Q h\        RV .^,          \        P                  ! ^4      4      pV! WC) 4      V! V) V4      ,          pVP                  4       p\        V4      R8X  g   Q hV! V) V4      V! V) V4      ,          pVP                  4       p\        V4      R8X  g   Q h\        RV .^,          \        P                  ! ^4      4      p
V! WC4      V! V) V) 4      ,          V
! V) V) 4      ,          pVP                  4       p\        V4      R8X  g   Q h\        RV .^,          \        P                  ! ^4      4      pV! WC4      V! V) V) 4      ,          V
! V) V) 4      ,          pVP                  4       p\        V4      R8X  g   Q h\        RV .^,          \        P                  ! ^4      4      p
V! WC4      V! V) V) 4      ,          V
! V) V) 4      ,          pVP                  4       p\        V4      R8X  g   Q hR# )ÚLorentzÚL©Ú
dummy_namez	a,b,d0,d1úA,BzA(L_0)*B(-L_0)z	A(a)*B(b)ÚAzA(a, L_0)*A(b, -L_0)zB,CzA(L_0, L_1)*B(-L_0)*C(-L_1)zA(L_0, L_1)*B(-L_1)*C(-L_0)ÚBzA(L_0, L_1)*B(-L_0, -L_1)zA(L_0, L_1)*B(-L_1, -L_0)ÚCz#A(L_0, L_1)*B(-a, -L_1)*C(-L_0, -b)z#A(L_0, L_1)*B(-a, -L_0)*C(-L_1, -b)z#A(L_0, L_1)*B(-a, -L_0)*C(-b, -L_1)N)	r   r   r    r   Úno_symmetryr$   Ústrr#   Úfully_symmetric)r:   ÚaÚbÚd0Úd1r?   r@   ÚtÚtcÚt1rA   s              r6   Útest_canonicalize_no_slot_symrL      s‘  € ä˜i°CÔ8€GÜ! +¨wÓ7�L€Aˆ"Ü˜ ˜y¬.×*DÒ*DÀQÓ*GÓH�D€AÙ	ˆ2ˆ#‹‰q�‹u�€AØ	
�‰‹€BÜˆr‹7Ð&Ô&Ð&Ð&ñ 	
ˆ!‹‰Qˆq‹T�	€AØ	
�‰‹€BØŒ7€Nˆ7á	
ˆ1‹‰a�‹d�€BØ	�‰‹€BÜˆr‹7�kÔ!Ð!Ð!ô 	�3˜˜	 !�¤^×%CÒ%CÀAÓ%FÓG€AÙ	ˆ!ˆS‹	‘!�B“(Õ€AØ	
�‰‹€BÜˆr‹7Ð,Ô,Ð,Ð,ô ˜ ˜y¬.×*DÒ*DÀQÓ*GÓH�D€AÙ	ˆ"ˆc‹
‘1�R“5Õ™˜B˜3›Õ€AØ	
�‰‹€BÜˆr‹7Ð3Ô3Ð3Ð3ô
 	�3˜˜	 !�¤^×%?Ò%?ÀÓ%BÓC€AÙ	ˆ"ˆc‹
‘1�R“5Õ™˜B˜3›Õ€AØ	
�‰‹€BÜˆr‹7Ð3Ô3Ð3Ð3ô
 	�3˜˜	 !�¤^×%?Ò%?ÀÓ%BÓC€AÙ	ˆ"ˆc‹
‘1�b�S˜"“:Õ€AØ	
�‰‹€BÜˆr‹7Ð1Ô1Ð1Ð1ñ 	
ˆ2ˆ#ˆr‹
‘1�b�S˜"“:Õ€AØ	
�‰‹€BÜˆr‹7Ð1Ô1Ð1Ð1ô
 	�3˜˜	 !�¤^×%?Ò%?ÀÓ%BÓC€AÙ	ˆ"‹	‘!�Q�B˜˜“*Õ™Q ˜s Q B›ZÕ'€AØ	
�‰‹€BÜˆr‹7Ð;Ô;Ð;Ð;ô
 	�3˜˜	 !�¤^×%CÒ%CÀAÓ%FÓG€AÙ	ˆ"‹	‘!�Q�B˜˜“*Õ™Q ˜s Q B›ZÕ'€AØ	
�‰‹€BÜˆr‹7Ð;Ô;Ð;Ð;ô
 	�3˜˜	 !�¤^×%CÒ%CÀAÓ%FÓG€AÙ	ˆ"‹	‘!�Q�B˜˜“*Õ™Q ˜s Q B›ZÕ'€AØ	
�‰‹€BÜˆr‹7Ð;Ô;Ð;Ò;r8   c                  óÈ  € \        R RR7      p \        RV 4      w  rr4\        RV .\        P                  ! ^4      4      pV! V4      V! V4      ,          V! V4      ,          pVP                  4       p\        V4      R8X  g   Q h\        RV .\        P                  ! ^4      ^4      pV! V4      V! V4      ,          V! V4      ,          pVP                  4       p\        V4      R8X  g   Q h\        RV .^,          \        P                  ! ^4      4      pV! W$4      V! W14      ,          pVP                  4       p\        V4      R8X  g   Q h\        RV .^,          \        P                  ! ^4      ^4      pV! W$4      V! W14      ,          pVP                  4       p\        V4      R8X  g   Q hV! W14      V! W$4      ,          pVP                  4       p\        V4      R8X  g   Q hR	# )
r:   r;   r<   ú
a, b, c, dr?   zA(a)*A(b)*A(c)z-A(a)*A(b)*A(c)zA(a, c)*A(b, d)z-A(a, c)*A(b, d)N)r   r   r#   r   rB   r$   rC   rD   )r:   rE   rF   ÚcÚdr?   rI   rJ   s           r6   Útest_canonicalize_no_dummiesrQ   l   s›  € Ü˜i°CÔ8€GÜ ¨gÓ6�J€Aˆ!ô
 	�3˜˜	¤>×#=Ò#=¸aÓ#@ÓA€AÙ	ˆ!‹‰Qˆq‹T�	‘!�A“$�€AØ	
�‰‹€BÜˆr‹7Ð&Ô&Ð&Ð&ô
 	�3˜˜	¤>×#=Ò#=¸aÓ#@À!ÓD€AÙ	ˆ!‹‰Qˆq‹T�	‘!�A“$�€AØ	
�‰‹€BÜˆr‹7Ð'Ô'Ð'Ð'ô
 	�3˜˜	 !�¤^×%CÒ%CÀAÓ%FÓG€AÙ	ˆ!‹‘�!“�€AØ	
�‰‹€BÜˆr‹7Ð'Ô'Ð'Ð'ô
 	�3˜˜	 !�¤^×%CÒ%CÀAÓ%FÈÓJ€AÙ	ˆ!‹‘�!“�€AØ	
�‰‹€BÜˆr‹7Ð(Ô(Ð(Ð(ñ 	
ˆ!‹‘�!“�€AØ	
�‰‹€BÜˆr‹7Ð'Ô'Ð'Ò'r8   c                  óÞ   € \        R 4      p \        RW .4      p\        RW .\        P                  ! ^4      4      pW8X  g   Q h\        RW .\        P                  ! ^4      4      pW8w  g   Q hR# )r:   r?   N)r   r#   r   rB   rD   )r;   ÚA1ÚA2ÚA3s       r6   Ú-test_tensorhead_construction_without_symmetryrV   –   sb   € Ü˜	Ó"€AÜ	�C˜!˜Ó	 €BÜ	�C˜!˜¤×!;Ò!;¸AÓ!>Ó	?€BØŒ8€Oˆ8Ü	�C˜!˜¤×!?Ò!?ÀÓ!BÓ	C€BØŒ8€OŠ8r8   c                  óX  € \        R R^ R7      p \        RV 4      w  rr4\        RV .^,          \        P                  ! ^4      4      pV! W!) 4      V! W) 4      ,          pVP                  4       p\        V4      R8X  g   Q hV! W#) 4      V! W) 4      ,          V! W2) 4      ,          V! WA) 4      ,          pVP                  4       p\        V4      R8X  g   Q hV! W) 4      V! W#) 4      ,          V! W4) 4      ,          V! WA) 4      ,          pVP                  4       p\        V4      R8X  g   Q hR# )	r:   r;   ©r=   Úmetric_symmetryzd:4r?   zA(L_0, -L_1)*A(L_1, -L_0)z3A(L_0, -L_1)*A(L_1, -L_0)*A(L_2, -L_3)*A(L_3, -L_2)z3A(L_0, -L_1)*A(L_1, -L_2)*A(L_2, -L_3)*A(L_3, -L_0)N)r   r   r#   r   rB   r$   rC   )r:   rG   rH   Úd2Úd3r?   rI   rJ   s           r6   Útest_no_metric_symmetryr\   ž   s  € ô ˜i°CÈÔK€GÜ# E¨7Ó3�N€BˆBÜ�3˜˜	 !�¤^×%?Ò%?ÀÓ%BÓC€AÙ	ˆ"ˆc‹
‘1�R˜“:Õ€AØ	
�‰‹€BÜˆr‹7Ð1Ô1Ð1Ð1ñ 	
ˆ"ˆc‹
‘1�R˜“:Õ™a  C›jÕ(©¨2¨s«Õ3€AØ	
�‰‹€BÜˆr‹7ÐKÔKÐKÐKñ 	
ˆ"ˆc‹
‘1�R˜“:Õ™a  C›jÕ(©¨2¨s«Õ3€AØ	
�‰‹€BÜˆr‹7ÐKÔKÐKÒKr8   c            
      ó¾  € \        R RR7      p \        RV 4      w
  rr4rVrxrš\        RV .\        P                  ! ^4      4      pV! V) 4      V! V4      ,          pVP                  4       p\        V4      R8X  g   Q hV! V) 4      V! V) 4      ,          V! V	) 4      ,          V! V	4      ,          V! V4      ,          V! V4      ,          pVP                  4       p\        V4      R8X  g   Q h\        RV .\        P                  ! ^4      ^4      pV! V) 4      V! V) 4      ,          V! V	) 4      ,          V! V	4      ,          V! V4      ,          V! V4      ,          pVP                  4       pV^ 8X  g   Q h\        RV .^,          \        P                  ! ^4      4      pV! Wv4      V! W) 4      ,          V! W‡) 4      ,          pVP                  4       p\        V4      R8X  g   Q h\        RV .^,          \        P                  ! ^4      4      pV! Wv4      V! W‡) 4      ,          V! W) 4      ,          pVP                  4       p\        V4      R	8X  g   Q h\        RV .^,          \        P                  ! ^4      4      pV! W‡V4      V! W) V) 4      ,          pVP                  4       p\        V4      R
8X  g   Q hV! W§V	4      V! W() V	) 4      ,          V! WŠ) V4      ,          V! WEV) 4      ,          pVP                  4       p\        V4      R8X  g   Q h\        RV .^,          \        P                  ! ^4      4      p\        RV .^,          \        P                  ! R 4      4      pV! WxV	4      V! V	) V
) V) 4      ,          V! V) V
4      ,          pVP                  4       pV^ 8X  g   Q h\        RV .^,          \        P                  ! ^4      ^4      p\        RV .^,          \        P                  ! R 4      4      pV! WxV	4      V! V	) V
) V) 4      ,          V! V) V
4      ,          pVP                  4       p\        V4      R8X  g   Q h\        RRR!R7      p\        RV4      w
  rr4rVrxrš\        RV.^,          \        P                  ! ^4      ^4      p\        RV.^,          \        P                  ! R 4      4      pV! WxV	4      V! V	) V
) V) 4      ,          V! V) V
4      ,          pVP                  4       p\        V4      R8X  g   Q h\        R^ RR7      p\        RV4      w
  rr4rVrxrš\        RV.^,          \        P                  ! ^4      ^4      p\        RV.^,          \        P                  ! R 4      4      pV! WxV	4      V! V	) V
) V) 4      ,          V! V) V
4      ,          pVP                  4       p\        V4      R8X  g   Q h\        RV 4      w  pppppp\        RV .\        P                  ! ^4      ^4      p\        RV .^,          \        P                  ! R 4      ^4      p\        RV .^,          \        P                  ! R"4      ^4      pV! V) V) 4      V! V4      ,          V! VVV4      ,          pVP                  4       p\        V4      R8X  g   Q hV! VV4      V! VV4      ,          V! V) 4      ,          V! VV) V) 4      ,          pVP                  4       p\        V4      R8X  g   Q h\        RRR7      p\        RV4      w  rpppp\        RV 4      w  pp\        RV.^,          \        P                  ! ^R 4      4      p\        RV V.\        P                  ! ^4      4      pV! VV) V) 4      V! V) V) V) 4      ,          V! V) V4      ,          V! V) V4      ,          V! VV4      ,          V! VV4      ,          pVP                  4       p\        V4      R8X  g   Q hR# )#r:   r;   r<   za,a0,a1,a2,a3,b,d0,d1,d2,d3r?   zA(L_0)*A(-L_0)z,A(L_0)*A(-L_0)*A(L_1)*A(-L_1)*A(L_2)*A(-L_2)z!A(a, L_0)*A(b, L_1)*A(-L_0, -L_1)r@   z!A(b, L_0)*A(-L_0, L_1)*B(a, -L_1)zA(a, L_0, L_1)*A(b, -L_0, -L_1)zCA(a0, L_0, L_1)*A(a1, -L_0, L_2)*A(a2, a3, L_3)*A(-L_1, -L_2, -L_3)z1A(L_0, L_1, L_2)*A(-L_0, -L_1, L_3)*B(-L_2, -L_3)ÚSpinorr
   rX   z2-A(S_0, S_1, S_2)*A(-S_0, -S_1, S_3)*B(-S_2, -S_3)ÚMatÚM)rY   r=   z1A(M_0, M_1, M_2)*A(-M_0, -M_1, -M_3)*B(-M_2, M_3)zalpha,beta,gamma,mu,nu,rhoÚGammaz4-Gamma(L_0, L_1)*Gamma(rho)*Gamma(alpha, -L_0, -L_1)zGGamma(L_0, L_1)*Gamma(beta, gamma)*Gamma(-rho)*Gamma(alpha, -L_0, -L_1)ÚFlavorÚFúa,b,c,d,e,fzmu,nuÚfzY-f(F_0, F_1, F_2)*f(-F_0, F_3, F_4)*A(L_0, -F_1)*A(-L_0, -F_3)*A(L_1, -F_2)*A(-L_1, -F_4)Néþÿÿÿéÿÿÿÿéýÿÿÿ)	r   r   r#   r   rB   r$   rC   rD   Údirect_product) r:   rE   Úa0Úa1Úa2Úa3rF   rG   rH   rZ   r[   r?   rI   rJ   r@   r^   r_   ÚalphaÚbetaÚgammaÚmuÚnuÚrhora   ÚGamma2ÚGamma3rb   rO   rP   ÚeÚffre   s                                    r6   Útest_canonicalize1rx   µ   s%  € Ü˜i°CÔ8€GäÐ4°gÓ>ñ )€Aˆ2�2˜" "ô
 	�3˜˜	¤>×#=Ò#=¸aÓ#@ÓA€AÙ	ˆ2ˆ#‹‰q�‹u�€AØ	
�‰‹€BÜˆr‹7Ð&Ô&Ð&Ð&ñ
 	
ˆ2ˆ#‹‰q�"�‹v�‘a˜˜“fÕ™Q˜r›UÕ"¡1 R£5Õ(©¨2«Õ.€AØ	
�‰‹€BÜˆr‹7ÐDÔDÐDÐDô
 	�3˜˜	¤>×#=Ò#=¸aÓ#@À!ÓD€AÙ	ˆ2ˆ#‹‰q�"�‹v�‘a˜˜“fÕ™Q˜r›UÕ"¡1 R£5Õ(©¨2«Õ.€AØ	
�‰‹€BØ�Œ7€Nˆ7ô
 	�3˜˜	 !�¤^×%CÒ%CÀAÓ%FÓG€AÙ	ˆ"‹‘�1�c“Õ™1˜R ›:Õ%€AØ	
�‰‹€BÜˆr‹7Ð9Ô9Ð9Ð9ô
 	�3˜˜	 !�¤^×%CÒ%CÀAÓ%FÓG€AÙ	ˆ"‹‘�2�s“Õ™A˜a ›IÕ%€AØ	
�‰‹€BÜˆr‹7Ð9Ô9Ð9Ð9ô
 	�3˜˜	 !�¤^×%CÒ%CÀAÓ%FÓG€AÙ	ˆ"�!‹‘Q�q˜# ˜s“^Õ#€AØ	
�‰‹€BÜˆr‹7Ð7Ô7Ð7Ð7ñ 	
ˆ"�"‹‘a˜˜C " “oÕ%¡a¨¨C°£nÕ4±Q°rÀ¸s³^ÕC€AØ	
�‰‹€BÜˆr‹7Ð[Ô[Ð[Ð[ô 	�3˜˜	 !�¤^×%CÒ%CÀAÓ%FÓG€AÜ�3˜˜	 !�¤^×%CÒ%CÀBÓ%GÓH€AÙ	ˆ"�"‹‘a˜˜˜b˜S 2 #Ó&Õ&¡q¨"¨¨b£zÕ1€AØ	
�‰‹€BØ�Œ7€Nˆ7ô
 	�3˜˜	 !�¤^×%CÒ%CÀAÓ%FÈÓJ€AÜ�3˜˜	 !�¤^×%CÒ%CÀBÓ%GÓH€AÙ	ˆ"�"‹‘a˜˜˜b˜S 2 #Ó&Õ&¡q¨"¨¨b£zÕ1€AØ	
�‰‹€BÜˆr‹7ÐIÔIÐIÐIô
 ˜X°#ÀrÔJ€FäÐ4°fÓ=ñ )€Aˆ2�2˜" "ä�3˜˜ �
¤N×$BÒ$BÀ1Ó$EÀqÓI€AÜ�3˜˜ �
¤N×$BÒ$BÀ2Ó$FÓG€AÙ	ˆ"�"‹‘a˜˜˜b˜S 2 #Ó&Õ&¡q¨"¨¨b£zÕ1€AØ	
�‰‹€BÜˆr‹7ÐJÔJÐJÐJô ˜%°¸sÔ
C€CäÐ4°cÓ:ñ )€Aˆ2�2˜" "ä�3˜˜˜a�¤×!?Ò!?ÀÓ!BÀAÓF€AÜ�3˜˜˜a�¤×!?Ò!?ÀÓ!CÓD€AÙ	ˆ"�"‹‘a˜˜˜b˜S 2 #Ó&Õ&¡q¨"¨¨b£zÕ1€AØ	
�‰‹€BÜˆr‹7ÐIÔIÐIÐIô 	Ð3°WÓ=ñ $€Eˆ4�˜˜B ä�w  	Ü%×5Ò5°aÓ8¸!ó=€Eä˜ ' ¨1¥Ü&×6Ò6°rÓ:¸Aó?€Fä˜ ' ¨1¥Ü&×6Ò6°rÓ:¸Aó?€Fá�ˆs�R�CÓ™˜s›Õ#¡F¨2¨r°5Ó$9Õ9€AØ	
�‰‹€BÜˆr‹7ÐLÔLÐLÐLñ 	ˆr�2‹‘v˜d EÓ*Õ*©5°#°«;Õ6±v¸eÀbÀSÈ2È#Ó7NÕN€AØ	
�‰‹€BÜˆr‹7Ð_Ô_Ð_Ð_ô ˜X°#Ô6€FÜ& }°fÓ=Ñ€Aˆ!ˆQ��2Ü˜G WÓ-�F€BˆÜ�3˜˜ �
¤N×$AÒ$AÀ!ÀRÓ$HÓI€AÜ�3˜ &Ð)¬>×+EÒ+EÀaÓ+HÓI€AÙ	ˆ!ˆaˆR�!�‹‘Q˜�r˜A˜2 ˜r“]Õ"¡1 b S¨!£9Õ,©Q°¨s°A«YÕ6±q¸¸Q³xÕ?ÁÀ"ÀaÃÕH€AØ	
�‰‹€BÜˆr‹7ÐqÔqÐqÒqr8   c                  ó    € \        R 4      p \        RV 4      p\        V\        \        34      '       d   Q h\        V\
        4      '       g   Q hR# )r?   ÚiN)r   r   r2   ÚtupleÚlistr   )r?   rz   s     r6   Ú"test_bug_correction_tensor_indicesr}   ?  sD   € ô 	˜Ó€AÜ�s˜AÓ€AÜ˜!œe¤T˜]×+Ò+Ð+Ð+Ü�aœ×%Ò%Ð%Ò%r8   c                  óö  € \        R RR7      p \        RV 4      w  rr4rVrxršr¼\        RV .^,          \        P                  ! 4       4      pV! WV) V) 4      pVP                  4       p\        V4      R8X  g   Q hV! V) W!) V4      V! WuW) 4      ,          V! V) V) V	) V
) 4      ,          V! V) V) V) V) 4      ,          V! W8WÂ) 4      ,          V! WšWK4      ,          pVP                  4       p\        V4      R8X  g   Q hR# )r:   r;   r<   zd0:12ÚRz-R(L_0, L_1, -L_0, -L_1)z“R(L_0, L_1, L_2, L_3)*R(-L_0, -L_1, L_4, L_5)*R(-L_2, -L_3, L_6, L_7)*R(-L_4, -L_5, L_8, L_9)*R(-L_6, -L_7, L_10, L_11)*R(-L_8, -L_9, -L_10, -L_11)N)r   r   r#   r   Úriemannr$   rC   )r:   rG   rH   rZ   r[   Úd4Úd5Úd6Úd7Úd8Úd9Úd10Úd11r   rI   rJ   s                   r6   Útest_riemann_invariantsr‰   H  s  € Ü˜i°CÔ8€Gä�w Ó(ñ 5€BˆB�B˜B B¨Cô 	�3˜˜	 !�¤^×%;Ò%;Ó%=Ó>€AÙ	ˆ"�2�#˜�sÓ€AØ	
�‰‹€BÜˆr‹7Ð0Ô0Ð0Ð0ñ 	
ˆ3ˆ$ˆr�#�bÓ™!˜B " S›/Õ)©!¨R¨C°°°R°C¸¸Ó*<Õ<Ù	ˆ3ˆ$�ˆs�B�3˜�sÓõ	Ù˜b C¨Ó,õ	-Ù-.¨r°R«_õ	=€Aà	
�‰‹€BÜˆr‹7ð  lô  lð  lò  lr8   c                  ó¤  € \        R RR7      p \        RV 4      w  rr4rVp\        RV 4      w  r‰r«rÍ\        RV 4      w  rï\        RV .^,          \        P                  ! 4       4      pV! WïW) 4      pVP                  4       pV^ 8X  g   Q hV! WWá) 4      pVP                  4       p\        V4      R8X  g   Q hV! W#) Wñ) 4      V! WV) V4      ,          pVP                  4       p\        V4      R8X  g   Q h\        R	V .^,          \        P                  ! ^4      4      pV! WvV) V4      V! WQW44      ,          V! V) V) 4      ,          V! V) V) 4      ,          V! V) V) 4      ,          pVP                  4       p\        V4      R
8X  g   Q hV! W8W¡4      V! W#) W›4      ,          V! WÍV) V) 4      ,          pVP                  4       p\        V4      R8X  g   Q hR# )r:   r;   r<   zd0:7za0:6úa,br   z-R(a, L_0, b, -L_0)z+-R(a, L_0, L_1, L_2)*R(b, -L_0, -L_1, -L_2)ÚVzW-R(L_0, L_1, L_2, L_3)*R(-L_0, L_4, L_5, L_6)*V(-L_1, -L_4)*V(-L_2, -L_5)*V(-L_3, -L_6)z>R(a0, L_0, a2, L_1)*R(a1, a3, -L_0, L_2)*R(a4, a5, -L_1, -L_2)N)r   r   r#   r   r€   r$   rC   rD   )r:   rG   rH   rZ   r[   r�   r‚   rƒ   rj   rk   rl   rm   Úa4Úa5rE   rF   r   rI   rJ   rŒ   s                       r6   Útest_riemann_productsr�   _  sÇ  € Ü˜i°CÔ8€GÜ!/°¸Ó!@Ñ€BˆB�B˜BÜ+¨F°GÓ<Ñ€BˆB�BÜ˜% Ó)�D€AÜ�3˜˜	 !�¤^×%;Ò%;Ó%=Ó>€Aá	ˆ!��CÓ€AØ	
�‰‹€BØ�Œ7€Nˆ7ñ 	
ˆ"��CÓ€AØ	
�‰‹€BÜˆr‹7Ð+Ô+Ð+Ð+ñ 	
ˆ"ˆc�1�cÓ™1˜R R C¨Ó,Õ,€AØ	
�‰‹€BÜˆr‹7ÐCÔCÐCÐCô 	�3˜˜	 !�¤^×%CÒ%CÀAÓ%FÓG€AÙ	ˆ"�2�#�rÓ™1˜R RÓ,Õ,©Q°¨s°R°C«[Õ8¹¸B¸3ÀÀ»ÕDÁQÈÀsÈRÈCÃ[ÕP€AØ	
�‰‹€BÜˆr‹7ÐoÔoÐoÐoñ 	
ˆ"�"Ó™!˜B  RÓ,Õ,©Q¨r¸°s¸R¸CÓ-@Õ@€AØ	
�‰‹€BÜˆr‹7ÐVÔVÐVÒVr8   c                  ó¾  € \        R 4      p \        R^V RR7      p\        RV4      w  r#rErgr‰r«rÍrïp\        RV.^,          \        P
                  ! R4      4      pV! W#V4      V! V) WV4      ,          V! V) W—4      ,          V! V) V) V4      ,          V! V) V) V
4      ,          pVP                  4       pV^ 8X  g   Q hV! W#V4      V! V) WV4      ,          V! V) Wx4      ,          V! V) Wš4      ,          V! V) V	) V4      ,          V! V
) WÏ4      ,          V! V) V) V4      ,          V! V) V) V4      ,          V! V) V) V4      ,          pVP                  4       pV^ 8X  g   Q hR# )ÚDÚEuclÚE)rY   Údimr=   zi0:15r?   Nrh   )r   r   r   r#   r   rD   r$   )r‘   r’   Úi0Úi1Úi2Úi3Úi4Úi5Úi6Úi7Úi8Úi9Úi10Úi11Úi12Úi13Úi14r?   rI   rK   s                       r6   Útest_canonicalize2r¤   ‡  s`  € Üˆs‹€AÜ˜6°1¸!ÈÔL€Dä�w Ó%ñ 6€Bˆ"��b˜B #¨#°#ä�3˜˜˜q�¤.×"@Ò"@ÀÓ"DÓE€Añ
 	
ˆ"�‹‘A�r�c˜"“LÕ ¡ B 3 r£Õ-©a°°°R°C¸«mÕ;¹A¸r¸cÀ2À#Àb»MÕI€AØ	
�‰‹€BØ�Œ7€Nˆ7ñ
 	
ˆ"�‹‘A�r�c˜"“LÕ ¡ B 3 r£Õ-©a°°°B«lÕ:¹1¸b¸SÀ"ÀÀR»=ÕHÙ	ˆ2ˆ#ˆc‹õ	Ù˜"˜˜c˜T #“õ	'Ù'(¨"¨¨c¨T°#£õ	7Ù78¸"¸¸c¸TÀ#³õ	G€Aà	
�‰‹€BØ�Œ7€NŠ7r8   c                  ó€  € \        R 4      p \        RV RRR7      p\        RV4      w  r#rEp\        RV.\        P
                  ! ^4      ^4      w  rxV! V4      V! V4      ,          p	V	P                  4       p
W©8X  g   Q hV! V4      V! V4      ,          p	V	P                  4       p
W§! V4      ) V! V4      ,          8X  g   Q hR# )r‘   r^   r
   ©r”   rY   r=   úa0:5úchi,psiNrg   )r   r   r   r    r   rB   r$   )r‘   r^   rj   rk   rl   rm   r�   ÚchiÚpsirI   rK   s              r6   Útest_canonicalize3r«   �  s«   € Üˆs‹€AÜ˜X¨1¸bÈSÔQ€FÜ# F¨FÓ3�N€Bˆ"�Ü˜I¨ x´×1KÒ1KÈAÓ1NÐPQÓR�H€CáˆB‹‘�B“�€AØ	
�‰‹€BØŒ7€Nˆ7áˆB‹‘�B“�€AØ	
�‰‹€BØ�#�b“'�™#˜b›'Õ!Ô!Ð!Ò!r8   c                  óÌ   € \        R ^R7      p \        RV 4      p\        RV .4      p\        V! V4      RV! V4      ,          4      pVP	                  4       V! V4      ) 8X  g   Q hR# )Ú	Cartesian©r”   ÚpÚKNrf   )r   r   r#   r   r$   )r­   r¯   r°   Úexprs       r6   Útest_canonicalize4r²   «  sZ   € ä °Ô3€IÜ�s˜IÓ&€AÜ�3˜˜Ó$€AÜ‘A�a“D˜3™q ›t�8Ó%€DØ�=‰=‹?™q ›t˜eÔ#Ð#Ò#r8   c                  ót  € \        R ^R7      p \        RV 4      p\        RV .4      p\        R\        R7      p\        R4      p\        V! V4      V^ ^34      V! V4      ,          pVP                  4       P                  4       \        V! V4      V^ ^34      P                  4       V! V4      ,          8X  g   Q hR# )ÚR3r®   r¯   r°   re   )ÚclsÚxN)r   r   r#   r   r   r   Úas_dummyr$   )r´   r¯   r°   re   r¶   r±   s         r6   Útest_canonicalize5r¸   ³  s�   € Ü	˜ 1Ô	%€BÜ�s˜BÓ€AÜ�3˜˜Ó€AÜ�œÔ"€AÜ�‹€Aä‘Q�q“T˜A˜a ˜7Ó#¡a¨£dÕ*€DØ�=‰=‹?×#Ñ#Ó%¬±1°Q³4¸!¸A¸a¸Ó)A×)JÑ)JÓ)LÉqÐQRËtÕ)SÔSÐSÒSr8   c                  óø  € \        R 4      p \        RR^V RR7      p\        RV4      w  r#rEp\        P                  ! ^4      p\        \        ^4      !  pWx8X  g   Q hVP                  p	\        V	4      R8X  g   Q hVP                  VP                  8X  g   Q h\        RRR7      p
\        R	V
4      w  r¼V
P                  p	\        R
V
.^,          V4      p\        V! W») 4      P                  4       4      R8X  g   Q hR# )r‘   r:   Úgr;   )Úmetric_namerY   r”   r=   zm0:5zg(Lorentz,Lorentz)ÚTSpacer<   zi0 i1r?   zA(TSpace_0, -TSpace_0)N)r   r   r   r   rD   r   ÚmetricrC   Úeps_dimr”   r#   r$   )r‘   r:   Úm0Úm1Úm2Úm3Úm4Úsym2Úsym2nrº   r¼   r•   r–   r?   s                 r6   Útest_TensorIndexTyperÆ   ½  sé   € Üˆs‹€AÜ˜i°SÈ!Ø"#°ô5€Gä'¨°Ó8Ñ€BˆB�BÜ×)Ò)¨!Ó,€DÜÔ3°AÓ6Ñ7€EØŒ=Ðˆ=Ø�‰€AÜˆq‹6Ð)Ô)Ð)Ð)Ø�?‰?˜gŸk™kÔ)Ð)Ð)ä˜X°HÔ=€FÜ˜G VÓ,�F€BØ�‰€AÜ�3˜˜ �
 DÓ)€AÜ‰q��C‹y×!Ñ!Ó#Ó$Ð(@Ô@Ð@Ò@r8   c            
      óì  aaaaa	€ \        R RR7      o\        RS4      w  ooo	p SP                  S8X  g   Q hSS) 8w  g   Q h\        RS.^,          \        P
                  ! ^4      4      w  opS! SS4      V! S) S	4      ,          pVP                  4       p\        RS4      pVSWD) S	.8X  g   Q h\        \        V3R l4       \        \        VVVV	3R l4       \        RSS.4      oS! R	R
4      S! \        R	S4      \        R
S4      4      8X  g   Q hS! R	R4      S! \        R	S4      \        R
SRR7      4      8X  g   Q hS! R	\        R
S4      4      S! \        R	S4      \        R
S4      4      8X  g   Q hR# )r:   r;   r<   úa,b,c,dúA BÚL_0c                  ó   <€ \        ^S 4      # )é   )r   )r:   s   €r6   Ú<lambda>Útest_indices.<locals>.<lambda>Ù  s   ø€ œ~¨a°Ô9r8   c                  ó   <€ S ! SSS4      # r1   © ©r?   rE   rF   rO   s   €€€€r6   rÍ   rÎ   Ú  s   ø€ ™q  1 Qœxr8   r?   rE   rF   z-bF©Úis_upN)r   r   Útensor_index_typer    r   rD   Úget_indicesr   r,   Ú
ValueErrorr#   )
rP   r@   rI   ÚindicesrÊ   r?   r:   rE   rF   rO   s
        @@@@@r6   Útest_indicesrØ   Ï  s{  ü€ Ü˜i°CÔ8€GÜ 	¨7Ó3�J€A€qˆ!ˆQØ×Ñ 'Ô)Ð)Ð)Ø��Œ7€Nˆ7Ü˜ ˜y¨�{¬N×,JÒ,JÈ1Ó,MÓN�D€A€qÙ	ˆ!ˆA‹‰q�!��A‹w�€AØ�m‰m‹o€GÜ
�e˜WÓ
%€CØ�q˜#˜t QÐ'Ô'Ð'Ð'Ü
Œ:Ô9Ô:Ü
Œ:×'Ô(ä�3˜ 'Ð*Ó+€AÙˆS�#‹;™!œK¨¨WÓ5Ü'¨¨WÓ5ó7ô 7ð 7ð 7áˆS�$‹<™1œ[¨¨gÓ6Ü(¨¨g¸UÔCóEô Eð Eð EáˆS”+˜c 7Ó+Ó,±´+¸cÀ7Ó2KÜ2=¸cÀ7Ó2Kó1Mô Mð Mò Mr8   c                  óN  € \         P                  ! ^4      \        \        ^4      4      8X  g   Q h\         P                  ! R4      \        \        ^R4      4      8X  g   Q h\         P                  ! R4      \         P                  ! R4      8X  g   Q h\         P                  ! R4      \         P                  ! ^4      8X  g   Q h\         P                  ! ^R^4      \         P                  ! ^4      8X  g   Q h\        \        ^4      4      \        \        ^4      !  8X  g   Q h\         P                  ! R4      p V P
                  ^8X  g   Q hV P                  \        ^ ^4      8X  g   Q hV P                  \        \        ^ ^4      ! ^^4      \        ^^4      ! ^^4      4      8X  g   Q hR# )é   TNrh   éüÿÿÿrg   )
r   rD   r   ri   rB   ÚrankÚbaser   Ú
generatorsr	   )Úsyms    r6   Útest_TensorSymmetryrà   ä  sz  € Ü×)Ò)¨!Ó,ÜÔ.¨qÓ1Ó2ô3ð 3ð 3ä×)Ò)¨"Ó-ÜÔ.¨q°$Ó7Ó8ô9ð 9ð 9ä×(Ò(¨Ó,Ü×&Ò& rÓ*ô+ð +ð +ä×)Ò)¨"Ó-Ü×&Ò& qÓ)ô*ð *ð *ä×(Ò(¨¨B°Ó2Ü×"Ò" 1Ó%ô&ð &ð &äÔ1°!Ó4Ó5ÜÔ/°Ó2Ñ3ô4ð 4ð 4ô ×
(Ò
(¨Ó
,€CØ�8‰8�qŒ=Ðˆ=Ø�8‰8”u˜Q “{Ô"Ð"Ð"Ø�>‰>œU¤;¨q°!Ô#4°Q¸Ó#:¼KÈÈ1Ô<MÈaÐQRÓ<SÓTÔTÐTÒTr8   c            	      óˆ  aaaaaa€ \        R RR7      p \        RV 4      w  ooooV P                  o\        RV .^,          \        P
                  ! ^4      4      w  op\        \        VVVVV3R l4       \        \        VVV3R l4       \        \        VVVVVV3R l4       \        \        VVVV3R l4       \        \        VVVV3R	 l4       \        4       ;_uu_ 4        \        \        VVV3R
 l4       RRR4       \        \        VVV3R l4       \        \        VVV3R l4       R#   + '       g   i     L>; i)r:   r;   r<   rÈ   rÉ   c                  ó2   <€ S! SS4      S! S S4      ,          # r1   rÐ   )rE   rF   rO   rP   rº   s   €€€€€r6   rÍ   Útest_TensExpr.<locals>.<lambda>ü  ó   ø€ ™q  A›w¡q¨¨A£wžr8   c                  ó@   <€ \         P                  S! S S4      ,          # r1   ©r
   ÚOne)rE   rF   rº   s   €€€r6   rÍ   rã   ý  s   ø€ œqŸu™u¡Q q¨!£Wž}r8   c                  óN   <€ S ! SS4      S! SS4      ,           S! SS4      ,          # r1   rÐ   )r?   rE   rF   rO   rP   rº   s   €€€€€€r6   rÍ   rã   þ  s!   ø€ ¡ ! Q£©!¨A¨q«'Õ 1±1°Q¸³7Ö:r8   c                  ó\   <€ \         P                  S ! SS4      S! SS4      ,           ,          # r1   ræ   )r?   rO   rP   rº   s   €€€€r6   rÍ   rã   ÿ  s   ø€ œqŸu™u¡a¨¨1£g±°!°Q³Õ&7Ö8r8   c                  ó2   <€ S ! SS4      S ! SS4      ,           # r1   rÐ   rÑ   s   €€€€r6   rÍ   rã      s   ø€ ™q  A›w©¨1¨a«Ö0r8   c                  ó$   <€ S ! SS4      ^,          # ©rÚ   rÐ   ©r?   rE   rF   s   €€€r6   rÍ   rã     s   ø€ ¡1 Q¨£7¨A¦:r8   Nc                  ó$   <€ ^S ! SS4      ,          # rì   rÐ   rí   s   €€€r6   rÍ   rã     s   ø€ ¨©1¨Q°«7®
r8   c                  ó(   <€ \        S ! SS4      4      # r1   )Úabsrí   s   €€€r6   rÍ   rã     s   ø€ ¬©A¨a°«G¬r8   )
r   r   r½   r    r   rD   r,   rÖ   r.   ÚNotImplementedError)r:   r@   r?   rE   rF   rO   rP   rº   s     @@@@@@r6   Útest_TensExprrò   ÷  sÊ   ý€ Ü˜i°CÔ8€GÜ 	¨7Ó3�J€A€qˆ!ˆQØ�‰€AÜ˜ ˜y¨�{¬N×,JÒ,JÈ1Ó,MÓN�D€A€qÜ
Œ:×.Ð.Ô/Ü
Œ:Ö,Ô-Ü
Œ:×:Ñ:Ô;Ü
Œ:×8Ô9Ü
Œ:×0Ô1ô 
 ×	!Õ	!äŒzÖ-Ô.÷ 
"ô ÔÖ 2Ô3Ü
ÔÖ 4Ö5÷	 
"×	!ús   Ã$D1Ä1E	c                  ó0  € \        R RR7      p \        RV .^,          4      pVP                  R8X  g   Q hVP                  W .8X  g   Q hVP                  ^8X  g   Q hVP
                  \        P                  ! ^4      8X  g   Q hVP                  ^ 8X  g   Q hR# )r:   r;   r<   r?   N)	r   r#   ÚnameÚindex_typesrÜ   Úsymmetryr   rB   Úcomm)r:   r?   s     r6   Útest_TensorHeadrø     s‚   € ä˜i°CÔ8€GÜ�3˜˜	 !�Ó$€AØ�6‰6�SŒ=Ðˆ=Ø�=‰=˜WÐ.Ô.Ð.Ð.Ø�6‰6�QŒ;Ðˆ;Ø�:‰:œ×3Ò3°AÓ6Ô6Ð6Ð6Ø�6‰6�QŒ;ÐŠ;r8   c            	      ó¾  € \        4       P                  R8X  g   Q h\        4       P                  4       ^ 8X  g   Q h\        RRR7      p \	        RV 4      w  rr4rVp\        RV .^,          \        P                  ! ^4      4      w  r‰V! W#) 4      V	! W14      ,          p
\        V
4      P                  V
4      '       g   Q hV	! W14      V! W14      ,           pV! W#) 4      V,          p\        V4      R8X  g   Q hVP                  4       p\        V4      R8X  g   Q hVP                  4       p\        V4      R8X  g   Q hWÊ,           p\        V4      R	8X  g   Q hVP                  4       p\        V4      R
8X  g   Q h\        RV .4      w  rïpV! V4      ^,          p\        V4      R8X  g   Q h^V! V4      ,          p\        V4      R8X  g   Q hV! V4      ^V! V4      ,          ,           p
\        V
4      R8X  g   Q hV! V) 4      ^V! V) 4      ,          ,           p\        V4      R8X  g   Q hV! V4      p
W¬,          p\        V4      R8X  g   Q hVP                  4       p\        V4      R8X  g   Q hWÊ,          pVP                  4       p\        V4      R8X  g   Q hVP                  4       p\        V4      R8X  g   Q hV! V4      ^V! V4      ,          ,           p
W¬,          pVP                  4       p\        V4      R8X  g   Q hV! V4      ^V! V4      ,          ,
          p
\        V
4      R8X  g   Q hV! V) 4      ^V! V) 4      ,          ,           pW¬,          pVP                  4       pVV! V4      V! V) 4      ,          ^V! V4      ,          V! V) 4      ,          ,
          8X  g   Q hV! V4      V! V4      ,          V! V4      V! V4      ,           ,          V! V4      V! V4      V! V4      ,           ,          V! V4      ^V! V4      ,          ,
          ,          ,           pVP                  4       pV^V! V4      ,          V! V4      ,          V! V4      ,          ^V! V4      ,          V! V4      ,          V! V4      ,          ,
          V! V4      V! V4      ,          V! V4      ,          ,           ^V! V4      ,          V! V4      ,          V! V4      ,          ,
          8X  g   Q hV! V4      V! V4      ,           ^V! V4      ,          ,           V! V4      V! V4      ,
          ,          p
V! V4      V! V4      ,           ^V! V4      ,          ,           V! V4      V! V4      ,
          ,          pW¬,           pVP                  4       pV^V! V4      ,          V! V4      ,          ^V! V4      ,          V! V4      ,          ,           ^V! V4      ,          V! V4      ,          ,           ^V! V4      ,          V! V4      ,          ,
          ^V! V4      ,          V! V4      ,          ,
          ^V! V4      ,          V! V4      ,          ,
          8X  g   Q hV! V4      V! V4      ,          ^,          p^V,          V! V4      V! V4      ,          8X  g   Q hV! V4      V! V4      ,           ^,          p^V,          V! V4      V! V4      ,           8X  g   Q h\        P                  V! V4      V! V) 4      ,          ,
          pVP                  4       pVV! V) 4      V! V4      ,          ,           pV^8w  g   Q hVP                  4       pVP                  ^4      '       g   Q h\        P                  V! V4      V! V) 4      ,          ,           pVV! V) 4      V! V4      ,          ,
          P                  4       P                  ^4      '       g   Q hV! W4      V	! W4      ,           pVP                  ^8X  g   Q hVV! W4      ,
          V	! W4      ,
          p
V
^ 8X  g   Q h^V! W) 4      V	! W) 4      ,           ,
          p^V! W) 4      V	! W) 4      ,           ,           p
VV
,           P                  4       P                  ^4      '       g   Q h^V! W) 4      ,           pW¬8w  g   Q hV\        P                   ! ^ . . . 4      8w  g   Q h\        V! V4      \        ^ V! V4      4      4      P                  4       V! V4      8X  g   Q hR# )r   r:   r;   r<   úa,b,d0,d1,i,j,kr>   z"A(b, -L_0)*(A(L_0, a) + B(L_0, a))z+A(b, -L_0)*A(L_0, a) + A(b, -L_0)*B(L_0, a)z+A(a, L_0)*A(b, -L_0) + A(b, L_0)*B(a, -L_0)zBA(a, L_0)*A(b, -L_0) + A(b, -L_0)*B(L_0, a) + A(b, L_0)*B(a, -L_0)z-A(a, L_0)*A(b, -L_0) + 2*A(b, L_0)*B(a, -L_0)úp,q,rz2*q(d0)z2*q(d0) + p(d0)z2*q(-d0) + p(-d0)zp(L_0)*(2*q(-L_0) + p(-L_0))z!p(L_0)*p(-L_0) + 2*p(L_0)*q(-L_0)z!p(-L_0)*p(L_0) + 2*q(-L_0)*p(L_0)z4p(L_0)*p(-L_0) + 4*p(L_0)*q(-L_0) + 4*q(L_0)*q(-L_0)z-2*q(d0) + p(d0)NrÐ   )r   ÚargsÚdoitr   r   r    r   rD   r3   rC   r   r$   r
   rç   rÜ   r   Ú	from_data)r:   rE   rF   rG   rH   rz   ÚjÚkr?   r@   rK   Út2aÚt2Út2br¯   ÚqÚrrI   Út3Útz1s                       r6   Ú	test_add1r    s,  € Ü‹9�>‰>˜RÔÐÐÜ‹9�>‰>Ó˜qÔ Ð Ð ä˜i°CÔ8€GÜ$Ð%6¸Ó@�O€Aˆˆa�!ä˜ ˜y¨�{¬N×,JÒ,JÈ1Ó,MÓN�D€AÙ	
ˆ1ˆc‹‘1�R“8Õ	€BÜ�2‹;×Ñ˜b×!Ò!Ð!Ð!Ù
ˆB‹(‘Q�r“XÕ
€CÙ	
ˆ1ˆc‹�3�€BÜˆr‹7Ð:Ô:Ð:Ð:Ø	�‰‹€BÜˆr‹7ÐCÔCÐCÐCØ	�‰‹€BÜˆr‹7ÐCÔCÐCÐCØ
�'€CÜˆs‹8Ð[Ô[Ð[Ð[Ø
�,‰,‹.€CÜˆs‹8ÐFÔFÐFÐFÜ˜7 W IÓ.�G€Aˆ!Ù	ˆ"‹ˆa�€AÜˆq‹6�YÔÐÐØ	‰!ˆB‹%�€AÜˆq‹6�YÔÐÐÙ	
ˆ2‹�‘1�R“5•�€BÜˆr‹7Ð'Ô'Ð'Ð'Ù	
ˆBˆ3‹�!‘A�r�c“F•(Õ	€BÜˆr‹7Ð)Ô)Ð)Ð)Ù	
ˆ2‹€BØ	�€BÜˆr‹7Ð4Ô4Ð4Ð4Ø	�‰‹€BÜˆr‹7Ð9Ô9Ð9Ð9Ø	�€BØ	�‰‹€BÜˆr‹7Ð9Ô9Ð9Ð9Ø	�‰‹€BÜˆr‹7Ð9Ô9Ð9Ð9Ù	
ˆ2‹�‘1�R“5•�€BØ	�€BØ	�‰‹€BÜˆr‹7ÐLÔLÐLÐLÙ	
ˆ2‹�‘1�R“5•�€BÜˆr‹7Ð(Ô(Ð(Ð(Ù	
ˆBˆ3‹�!‘A�r�c“F•(Õ	€BØ	�€BØ	�‰‹€BØ‘�2“‘q˜"˜“v• ¡! B£%¥©¨2¨#«¥Õ.Ô.Ð.Ð.Ù	ˆ!‹‰Qˆq‹T�	‘1�Q“4™!˜A›$•;Õ¡! A£$©¨!«©q°«t­Õ"4±a¸³d¸Q¹qÀ»t½VµmÕ"DÕD€AØ	�
‰
‹€AØ�‘!�A“$•‘q˜“t•™A˜a›DÕ  1¡Q q£T¥6©!¨A«$¥;©q°«tÕ#3Õ3±a¸³d¹1¸Q»4µiÁÀ!ÃµnÕDÀqÉÈ1ËÅvÉaÐPQËdÅ{ÑSTÐUVÓSWÕGWÕWÔWÐWÐWÙ
ˆA‹$‘�1“�+˜™!˜A›$�Õ
¡ 1£©¨!«¥Õ	-€BÙ
ˆA‹$‘�1“�+˜™!˜A›$�Õ
¡ 1£©¨!«¥Õ	-€BØ
�€AØ	�
‰
‹€AØ�‘!�A“$•‘q˜“t•˜a¡ !£�f¡Q q£T�kÕ)¨A©a°«d­F±1°Q³4­KÕ7¸!¹A¸a»D½&ÁÀ1Ã½+ÕEÈÉ!ÈAË$ÍÉqÐQRËtÍÕSÐVWÑXYÐZ[ÓX\ÕV\Ñ]^Ð_`Ó]aÕVaÕaÔaÐaÐaÙ	ˆ!‹‰Qˆq‹T�	�!�€AØˆQ�3‘!�A“$‘q˜“t•)ÔÐÐÙ	
ˆ1‹‘�!“��a�€AØˆQ�3‘!�A“$™˜1›•+ÔÐÐä	�‰‘�!“‘Q˜�r“U•
Õ€AØ	�
‰
‹€AØ
‰a��‹e‘A�a“D�j�.€CØ�!Œ8€Oˆ8Ø
�,‰,‹.€CØ�:‰:�a�=Š=Ðˆ=Ü	�‰‘�!“‘Q˜�r“U•
Õ€AØ‘�1�"“‘a˜“d•
�N×$Ñ$Ó&×-Ñ-¨a×0Ò0Ð0Ð0á	ˆ!‹‘!�A“'Õ€AØ�6‰6�QŒ;Ðˆ;Ø	
‰Qˆq‹W�‘q˜“wÕ	€BØ�Œ7€Nˆ7Ø	‰Qˆq�"‹X™˜!˜R›Õ Õ!€AØ	
‰a��2‹h™˜1˜b›Õ!Õ	"€BØ��F�?‰?Ó×#Ñ# A×&Ò&Ð&Ð&Ø	
‰Qˆq�"‹X�€BØŒ8€Oˆ8Ø”×"Ò" 1 b¨"¨bÓ1Ô1Ð1Ð1ô ‘1�Q“4œ ¡A a£DÓ)Ó+×0Ñ0Ó2±a¸³dÔ:Ð:Ò:r8   c                  ó
  € \        R RR7      p \        RV 4      w  rr4rVp\        RV .^,          \        P                  ! ^4      4      w  r‰\        RV .4      w  r«p^ V! W4      ,          p\        V^ 4      '       g   Q h\        V\        P                  4      '       g   Q hV
! V4      V! W4      8w  g   Q hV! W) 4      V! W4      8w  g   Q h^ V! W4      V	! W4      ,           ,          ^ 8X  g   Q h^ V! W4      V	! W4      ,           ,          \        P                  J g   Q h^V! W4      V! W4      ,
          ,          \        P                  J g   Q hV
! V4      V! V4      ,           V! W4      8w  g   Q hV
! V4      V! V4      ,           V! W4      V	! W4      ,           8w  g   Q hV
! V4      V
! V4      ,
          ^ 8X  g   Q hV
! V4      V
! V4      ,
          \        P                  J g   Q h\        V! W4      V! W!4      4      '       g   Q hR# )r:   r;   r<   rú   r>   rû   N)r   r   r    r   rD   r7   r
   ÚZero)r:   rE   rF   rG   rH   rz   rÿ   r   r?   r@   r¯   r  r  rI   s                 r6   Útest_special_eq_ner  q  s·  € ä˜i°CÔ8€GÜ*Ð+<¸gÓFÑ€Aˆ"�!˜ä˜ ˜y¨�{¬N×,JÒ,JÈ1Ó,MÓN�D€AÜ˜7 W IÓ.�G€Aˆ!à	‰!ˆA‹'�	€AÜ�Q˜�?Š?Ðˆ?Ü�QœŸ™×ÒÐÐáˆQ‹4‘1�Q“7Œ?Ðˆ?ÙˆQ�‹8‘q˜“wÔÐÐØ‰a�‹g™˜!›ÕÕ  AÔ%Ð%Ð%Ø‰a�‹g™˜!›ÕÕ ¤A§F¡FÓ*Ð*Ð*à‰a�‹g™˜!›ÕÕ ¤A§F¡FÓ*Ð*Ð*áˆQ‹4‘!�A“$�;™!˜A›'Ô!Ð!Ð!ÙˆQ‹4‘!�A“$�;™!˜A›'¡A a£GÕ+Ô+Ð+Ð+áˆQ‹4‘!�A“$�;˜!ÔÐÐÙˆQ‹4‘!�A“$�;œ!Ÿ&™&Ó Ð Ð ä‘Q�q“W™a ›g×&Ò&Ð&Ò&r8   c                  óü  € \        R RR7      p \        RV 4      w  rr4\        RV .^,          \        P                  ! 4       4      p\        RV .^,          \        P
                  ! R4      4      p^V! WW44      ,          V! WW#4      ,
          V! WW$4      ,           pWv! V) V) V) 4      ,          pVP                  4       pV^ 8X  g   Q h\        ^^4      V! WW44      ,          \        ^^4      V! WW#4      ,          ,
          \        ^^4      V! WW$4      ,          ,           pWv! V) V) V) 4      ,          pVP                  4       pV^ 8X  g   Q hV! W) V4      V! W#V) 4      ,           p	V	P                  4       p	V	^ 8X  g   Q hR# )r:   r;   r<   zm,n,p,qr   r?   Nrh   )r   r   r#   r   r€   rD   r$   r   )
r:   ÚmÚnr¯   r  r   r?   rK   r  rI   s
             r6   Ú	test_add2r  Œ  sQ  € Ü˜i°CÔ8€GÜ 	¨7Ó3�J€Aˆ!Ü�3˜˜	 !�¤^×%;Ò%;Ó%=Ó>€AÜ�3˜˜	 !�¤^×%CÒ%CÀBÓ%GÓH€AØ	
‰1ˆQ�1‹=�™1˜Q 1›=Õ	(©1¨Q°1«=Õ	8€BØ	ˆAˆqˆb�1�"�q�b‹MÕ	€BØ	�‰‹€BØ�Œ7€Nˆ7Ü	�!�Q‹™˜!˜a›
Õ	"¤X¨a°£^±A°a¸!³JÕ%>Õ	>ÄÈ!ÈQÃÑPQÐRSÐVWÓPZÕAZÕ	Z€BØ	ˆAˆqˆb�1�"�q�b‹MÕ	€BØ	�‰‹€BØ�Œ7€Nˆ7Ù	ˆ!ˆR�‹‘a˜˜q˜b“kÕ!€AØ	�
‰
‹€AØ�Œ6€MŠ6r8   c            
      ó  € \        R RR7      p \        RV 4      w  r\        R4      w  r4rV\        RV .4      p\        RV .4      pV! V4      V! V) 4      ,          V^,          V^,          ,
          V^,          ,
          V^,          ,
          ,
          p	V	P                  V^,          ) V^,          V^,          V^,          V! V4      V! V) 4      ,          38X  g   Q hV^,          V^,          ,
          V^,          ,
          V^,          ,
          V! V4      V! V) 4      ,          ,
          p
V
P                  V^,          V^,          ) V^,          ) V^,          ) V! V4      ) V! V) 4      ,          38X  g   Q hV! V4      V! V) 4      ,          V^,          ,
          V^,          ,           V^,          ,           V^,          ,           pVP                  V^,          ) V^,          V^,          V^,          V! V4      V! V) 4      ,          38X  g   Q hV! V4      V! V) 4      ,          ^V^,          ,          ,           ^V^,          ,          ,
          ^V^,          ,          ,
          ^V^,          ,          ,
          V! V4      V! V) 4      ,          ,
          pVP                  ^V^,          ,          RV^,          ,          RV^,          ,          RV^,          ,          V! V4      V! V) 4      ,          V! V4      ) V! V) 4      ,          38X  g   Q hR# )	r:   r;   r<   zi0:2ú
E px py pzr?   r@   Nrf   )r   r   r   r#   rü   )r:   r•   r–   r“   ÚpxÚpyÚpzr?   r@   Úexpr1Úexpr2Úexpr3Úexpr4s                r6   Ú	test_add3r  �  sb  € Ü˜i°CÔ8€GÜ˜F GÓ,�F€BÜ˜LÓ)�M€Aˆ2Ü�3˜˜	Ó"€AÜ�3˜˜	Ó"€Aáˆb‹E‘!�R�C“&�L˜A˜q�D 2 q¥5�L¨2¨q­5Õ0°2°qµ5Õ8Õ9€EØ�:‰:˜1˜a�4˜%  Q¥¨¨A­¨r°1­u±a¸³e¹A¸r¸c»FµlÐCÔCÐCÐCàˆq�D�2�q•5�L˜2˜q�5Õ  2 q¥5Õ(©1¨R«5±°B°3³­<Õ7€EØ�:‰:˜!˜Q�$  Q¥ ¨¨Q­¨°°Qµ°¹¸2»¸¹qÀ"À»v½ÐFÔFÐFÐFáˆb‹E‘!�R�C“&�L˜1˜a�4Õ " a¥%Õ'¨"¨a­%Õ/°"°aµ%Õ7€EØ�:‰:˜1˜a�4˜%  Q¥¨¨A­¨r°1­u±a¸³e¹A¸r¸c»FµlÐCÔCÐCÐCáˆb‹E‘!�R�C“&�L˜1˜Q �T�6Õ! A b¨!¥e¥GÕ+¨a°°Aµ­gÕ5¸¸"¸a½%½Õ?Á!ÀBÃ%ÉÈ2È#ËÅ,ÕN€EØ�:‰:˜!˜A˜q�D�& " R¨¥U¥(¨B¨r°1­u­H°b¸¸Q½µhÁÀ"ÃÁaÈÈÃfÅÉqÐQSËuÈfÑUVÐXZÐWZÓU[ÍmÐ\Ô\Ð\Ò\r8   c                  ó–  aa	a
a€ ^ RI Hp  \        RRR7      p\        RV4      w  o	o
op\        P
                  ! \        P                  . . . 4      p\        V4      R8X  g   Q h\        RV.^,          \        P                  ! ^4      4      w  op^V ,           S! S	S
4      ,          p\        V4      R8X  g   Q hVP                  W.8X  g   Q hVP                  ^8X  g   Q hVP                  . 8X  g   Q hVP                  ^V ,           8X  g   Q h\!        VP"                  4      S	^ 3S
^3.8X  g   Q hVP$                  S.8X  g   Q hS! S	S
4      p\        V4      R	8X  g   Q hVP                  W.8X  g   Q hVP                  ^8X  g   Q hVP                  . 8X  g   Q hVP                  ^8X  g   Q h\!        VP"                  4      S	^ 3S
^3.8X  g   Q hVP$                  S.8X  g   Q hS! S
) S	4      V! S	) S4      ,          S! S) V4      ,          p\'        VP)                  4       !  pW68X  g   Q h\'        . !  \        P
                  ! \        P                  . . . 4      8X  g   Q h\        P
                  ! ^. . . 4      p\+        R
. 4      p\        V! 4       4      R
8X  g   Q h\        V4      R8X  g   Q hV^8X  g   Q h\-        \.        VV	V
V3R l4       R# )r   )r¶   r:   r;   r<   rÈ   Ú1rÉ   z(x + 1)*A(a, b)zA(a, b)rA   c                  ó2   <€ S ! SS4      S ! SS4      ,          # r1   rÐ   rÑ   s   €€€€r6   rÍ   Útest_mul.<locals>.<lambda>Ô  rä   r8   N)Ú	sympy.abcr¶   r   r   r   rþ   r
   rç   rC   r    r   rD   rõ   rÜ   ÚdumÚcoeffÚsortedÚfreeÚ
componentsr   Úsplitr#   r,   rÖ   )r¶   r:   rP   rI   r@   ÚtsrK   rA   r?   rE   rF   rO   s           @@@@r6   Útest_mulr&  ±  su  û€ ÝÜ˜i°CÔ8€GÜ 	¨7Ó3�J€A€qˆ!ˆQÜ×Òœ!Ÿ%™%  R¨Ó,€AÜˆq‹6�SŒ=Ðˆ=Ü˜ ˜y¨�{¬N×,JÒ,JÈ1Ó,MÓN�D€A€qØ	
ˆQ�‘�!�Q“�€AÜˆq‹6Ð&Ô&Ð&Ð&Ø�=‰=˜WÐ.Ô.Ð.Ð.Ø�6‰6�QŒ;Ðˆ;Ø�5‰5�BŒ;Ðˆ;Ø�7‰7�a˜!•eÔÐÐÜ�!—&‘&‹>˜q !˜f q¨! fÐ-Ô-Ð-Ð-Ø�<‰<˜A˜3ÔÐÐá	
ˆ1ˆa‹€BÜˆr‹7�iÔÐÐØ�>‰>˜gÐ/Ô/Ð/Ð/Ø�7‰7�aŒ<Ðˆ<Ø�6‰6�RŒ<Ðˆ<Ø�8‰8�qŒ=Ðˆ=Ü�"—'‘'‹?  1˜v¨¨1 vÐ.Ô.Ð.Ð.Ø�=‰=˜Q˜CÔÐÐá	ˆ1ˆ"ˆa‹‘�A�2�q“Õ™!˜Q˜B ›(Õ"€AÜ	�Q—W‘W“YÑ	€BØŒ7€Nˆ7Ü�r‰?œg×/Ò/´·±°r¸2¸rÓBÔBÐBÐBä×Ò˜!˜R  RÓ(€AÜ�3˜Ó€AÜ‰q‹s‹8�sŒ?Ðˆ?Üˆq‹6�SŒ=Ðˆ=Ø�Œ6€Mˆ6Ü
Œ:×.Ö/r8   c                  ó  € \        R RR7      p \        RV 4      w  rr4rVrx\        RV .^,          \        P                  ! ^4      4      w  rš\        RV .4      pV! V4      pVP                  W#34      pWË8X  g   Q hVP                  W34      pWÇ! V4      8X  g   Q hVP                  W) 34      pWÇ! V) 4      8X  g   Q hVP                  V) V34      pWÇ! V) 4      8X  g   Q hVP                  V) V) 34      pWÇ! V4      8X  g   Q hV	! WV4      pVP                  WQ3Wa) 34      pWÉ! Wf) 4      8X  g   Q h\        WµV3Wa) 34      pWÉ! Wf) 4      8X  g   Q hV	! W4      V
! V) V) 4      ,          pVP                  W3W#34      pV	! W$4      V
! V) V) 4      ,          pWÍ8X  g   Q h\        W±V3W#34      pWÍ8X  g   Q hV	! W4      V
! W4      ,           pVP                  W!) 34      pV	! W) 4      V
! W) 4      ,           pWÍ8X  g   Q h\        W²V) 34      pWÍ8X  g   Q hR# )r:   r;   r<   úi,j,k,l,m,n,p,qr>   r¯   N)r   r   r    r   rD   r#   r(   )r:   rz   rÿ   r   Úlr  r  r¯   r  r?   r@   rI   rK   Út1as                 r6   Útest_substitute_indicesr+  Ö  s4  € Ü˜i°CÔ8€GÜ+Ð,=¸wÓGÑ€Aˆ!��aÜ˜ ˜y¨�{¬N×,JÒ,JÈ1Ó,MÓN�D€Aä�3˜˜	Ó"€AÙ	ˆ!‹€AØ	
×	Ñ	˜q˜fÓ	%€BØŒ7€Nˆ7Ø	
×	Ñ	˜q˜fÓ	%€BØ��1“Œ:Ðˆ:Ø	
×	Ñ	˜q "˜gÓ	&€BØ��A�2“Œ;Ðˆ;Ø	
×	Ñ	 ˜r 1˜gÓ	&€BØ��A�2“Œ;Ðˆ;Ø	
×	Ñ	 ˜r A 2˜hÓ	'€BØ��1“Œ:Ðˆ:Ù	ˆ!‹€AØ	
×	Ñ	˜q˜f q¨" gÓ	.€BØ��1�b“Œ>Ðˆ>Ü	˜A 1˜v¨¨2 wÓ	/€BØ��1�b“Œ>Ðˆ>á	ˆ!‹‘�1�"�q�b“	Õ€AØ	
×	Ñ	˜q˜f q fÓ	-€BÙ
ˆA‹'‘!�Q�B˜˜“)Õ
€CØŒ9Ðˆ9Ü	˜A 1˜v¨ vÓ	.€BØŒ9Ðˆ9á	ˆ!‹‘!�A“'Õ€AØ	
×	Ñ	˜q "˜gÓ	&€BÙ
ˆAˆr‹(‘Q�q˜"“XÕ
€CØŒ9Ðˆ9Ü	˜A A 2˜wÓ	'€BØŒ9ÐŠ9r8   c                  óv  € \        R RR7      p \        RV 4      w  rr4\        RV .^,          \        P                  ! 4       4      pV! WW$4      p\        V4      p\        R^4      V! WW24      ,          \        ^^4      V! WW44      ,          ,           \        ^^4      V! WW$4      ,          ,           pWx8X  g   Q hR# )r:   r;   r<   zm:4r   Nrg   )r   r   r#   r   r€   r   r   )	r:   r¿   rÀ   rÁ   rÂ   r   rI   rK   r*  s	            r6   Útest_riemann_cyclic_replacer-  û  s§   € Ü˜i°CÔ8€GÜ# E¨7Ó3�N€BˆBÜ�3˜˜	 !�¤^×%;Ò%;Ó%=Ó>€AÙ	ˆ"�"Ó€AÜ	 Ó	"€BÜ
�2�q‹/™!˜B BÓ+Õ
+¬h°q¸!«n¹Q¸rÀrÓ=NÕ.NÕ
NÔQYÐZ[Ð]^ÓQ_Ñ`aÐbdÐjlÓ`qÕQqÕ
q€CØŒ9ÐŠ9r8   c            	      óº  € \        R RR7      p \        RV 4      w  rr4rVrx\        RV .^,          \        P                  ! 4       4      p	V	! WW44      V	! WW#4      ,           V	! WWB4      ,           V	! WWC4      ,
          V	! WW24      ,
          V	! WW$4      ,
          p
W©! V) V) V) V) 4      ,          p\        V4      pV^ 8X  g   Q hV	! WW44      V	! V) V) V) V) 4      ^V	! V) V) V) V) 4      ,          ,
          ,          p
\        V
4      pV^ 8X  g   Q hV	! WW44      p
\        V
4      pV\        R^4      V	! WW#4      ,          \        ^^4      V	! WW$4      ,          ,           \        ^^4      V	! WW44      ,          ,           8X  g   Q hV	! WW44      V	! V) V) WV4      ,          V	! V) V) V) V) 4      ^V	! V) V) V) V) 4      ,          ,           ,          p
\        V
4      pV^ 8X  g   Q hR# )r:   r;   r<   r(  r   Nrg   )r   r   r#   r   r€   r   r   )r:   rz   rÿ   r   r)  r  r  r¯   r  r   rI   r  r  rK   s                 r6   Útest_riemann_cyclicr/    sÜ  € Ü˜i°CÔ8€GÜ+Ð,=¸wÓGÑ€Aˆ!��aÜ�3˜˜	 !�¤^×%;Ò%;Ó%=Ó>€AÙ	ˆ!ˆa‹
‘Q�q˜1“ZÕ¡! A¨£*Õ,Ù	ˆ!ˆa‹
õ	Ù�q˜1“Zõ	 Ù"# A¨£*õ	-€Aà	
ˆ1ˆaˆR���A�2�q�b‹>Õ	€BÜ	˜Ó	€BØ�Œ7€Nˆ7Ù	ˆ!ˆa‹
‘A�q�b˜!˜˜Q˜B ˜r“N Q¡q¨!¨¨Q¨B°¨r°1°"£~Õ%5Õ5Õ6€AÜ	˜Ó	€BØ�Œ7€Nˆ7Ù	ˆ!ˆa‹
€AÜ	˜Ó	€BØ”˜"˜a“¡ 1¨£Õ.´¸!¸Q³ÁÀ!ÈÃÕ1MÕMÔPXÐYZÐ\]ÓP^Ñ_`ÐabÐghÓ_lÕPlÕlÔlÐlÐlá	ˆ!ˆa‹
‘1�a�R˜˜˜1“<Õ¡ A 2 q b¨!¨¨Q¨B£°!±A°q°b¸!¸¸Q¸BÀ¸r³NÕ2BÕ!BÕC€AÜ	˜Ó	€BØ�Œ7€NŠ7r8   c                  ó¨  € \        R RR7      p \        RV 4      w  rr4\        RV .^,          \        P                  ! 4       4      pV! WV) V4      pV\        ^4      ,          p\        V4      R8X  g   Q hVP                  4       pVP                  '       d   Q hV^,          pVP                  '       g   Q hV^,          pVP                  '       g   Q hR# )r:   r;   r<   zm0:4r   z(1/4)*R(m0, L_0, -L_0, m3)N)	r   r   r#   r   r€   r
   rC   r$   Ú_is_canon_bp)r:   r¿   rÀ   rÁ   rÂ   r   rI   rK   s           r6   Útest_divr2    s²   € ä˜i°CÔ8€GÜ# F¨GÓ4�N€BˆBÜ�3˜˜	 !�¤^×%;Ò%;Ó%=Ó>€AÙ	ˆ"���B‹€AØ	
Œ1ˆQ‹4�€BÜˆr‹7Ð2Ô2Ð2Ð2Ø	�
‰
‹€AØ��ˆÐÐØ	
ˆ1�€BØ�?�?ˆ?Ðˆ?Ø	ˆA�€BØ�?�?ˆ?ÐŠ?r8   c                  ó"  € \        R 4      p \        RV RR7      p\        RV4      w  r#rEpVP                  p\	        RV.4      pV! W#4      V! V) 4      ,          p	V	P                  V4      p
W¨! V4      8X  g   Q h\        RV.^,          \        P                  ! ^4      4      w  r¼V! W#4      V! V) V4      ,          V! WV4      ,          p
V
P                  V4      pW­8X  g   Q hV! W#4      V! V) V4      ,          V! V) V4      ,          p
V
P                  V4      pWÐV! W%4      ,          V! V) V4      ,          8X  g   Q hV! W#4      V! V) V) 4      ,          V! WE4      ,          p
V
P                  V4      pWÛ! W$4      V! V) V4      ,          8X  g   Q hV! W#4      V! V) V) 4      ,          V! WB) 4      ,          p
V
P                  V4      p\        WÛ! W#4      V! V) V) 4      ,          4      '       g   Q hV! W#4      V! V) V) 4      ,          V! WE4      ,          V! V) V) 4      ,          p
V
P                  V4      p\        WÛ! W#4      V! V) V) 4      ,          4      '       g   Q hV! W#4      V! V) V) 4      ,          p
V
P                  V4      p\        WÛ! W") 4      4      '       g   Q hVP                  '       d   Q h\        RRR7      p\        RV4      w  r#VP                  p\        V! W") 4      P                  V4      VP                  4      '       g   Q hR	# )
r‘   r:   r;   ©r”   r=   ú	a,b,c,d,er¯   r>   r<   r‹   N)r   r   r   r½   r#   Úcontract_metricr    r   rD   r7   r"  r”   )r‘   r:   rE   rF   rO   rP   rv   rº   r¯   rI   rK   r?   r@   r  s                 r6   Útest_contract_metric1r7  '  sÌ  € Üˆs‹€AÜ˜i¨Q¸3Ô?€GÜ" ;°Ó8�M€Aˆ!�Ø�‰€AÜ�3˜˜	Ó"€AÙ	ˆ!‹‘�1�"“�€AØ	
×	Ñ	˜1Ó	€BØ��1“Œ:Ðˆ:Ü˜ ˜y¨�{¬N×,JÒ,JÈ1Ó,MÓN�D€Añ 
ˆ1‹‘�1�"�Q“�™˜!›Õ	€BØ	×	Ñ	˜AÓ	€BØŒ8€Oˆ8ñ 
ˆ1‹‘�1�"�Q“�™˜1˜"˜a›Õ	 €BØ	×	Ñ	˜AÓ	€BØ‘1�Q“7•™1˜a˜R ›8Õ#Ô#Ð#Ð#ñ 
ˆ1‹‘�1�"�a�R“�™˜1›Õ	 €BØ	×	Ñ	˜AÓ	€BØ��1“™˜A˜2˜q›Õ!Ô!Ð!Ð!ñ 
ˆ1‹‘�1�"�a�R“�™˜1˜b›Õ	!€BØ	×	Ñ	˜AÓ	€BÜ�R˜˜1›¡ A 2¨ r£Õ*×+Ò+Ð+Ð+á	
ˆ1‹‘�1�"�a�R“�™˜1›Õ	 ¡ A 2¨ r£Õ	*€BØ	×	Ñ	˜AÓ	€BÜ�R˜˜1›¡ 1 " a R£�×)Ò)Ð)Ð)á	
ˆ1‹‘�1�"�a�R“�€BØ	×	Ñ	˜AÓ	€BÜ�R˜˜1˜b›×"Ò"Ð"Ð"Ø�w�wˆwÐˆ;Ü˜i°CÔ8€GÜ˜% Ó)�D€AØ�‰€AÜ‘Q�q˜"“X×-Ñ-¨aÓ0°'·+±+×>Ò>Ð>Ò>r8   c                  ó€  € \        R 4      p \        RV RR7      p\        RV4      w  r#rErgVP                  p\	        RV.4      w  ršV! W#4      V	! V4      ,          V	! V) 4      ,          p^V! V) V) 4      ,          V
! V4      ,          V
! V) 4      ,          pW¼,          pVP                  V4      pV^V ,          V	! V4      ,          V	! V) 4      ,          V
! V4      ,          V
! V) 4      ,          8X  g   Q hV! W#4      V	! V4      ,          V	! V) 4      ,          p^V
! V) 4      ,          V
! V) 4      ,          pW¼,          pVP                  V4      pVP                  4       pV^V	! V4      ,          V	! V) 4      ,          V
! V4      ,          V
! V) 4      ,          8X  g   Q h^V! W#4      ,          V	! V4      ,          V	! V) 4      ,          pRV! V) V) 4      ,          V
! V4      ,          V
! V) 4      ,          pW¼,          pVP                  V4      p^V! W#4      ,          V! V) V) 4      ,          V	! V4      ,          V	! V) 4      ,          V
! V4      ,          V
! V) 4      ,          pVP                  V4      p^V! W#4      ,          V	! V4      ,          V	! V) 4      ,          pV
! V) 4      V
! V) 4      ,          ^V! V) V) 4      ,          V
! V4      ,          V
! V) 4      ,          ,           pW¼,          pVP                  V4      pV^^V ,          ,           V	! V4      ,          V	! V) 4      ,          V
! V4      ,          V
! V) 4      ,          8X  g   Q hV	! V4      V	! V4      ,          V	! V4      V
! V4      ,          ,           ^V! W#4      ,          V	! V4      ,          V	! V) 4      ,          ,           pV
! V) 4      V
! V) 4      ,          V! V) V) 4      V
! V4      ,          V
! V) 4      ,          ,
          pW¼,          pVP                  V4      p^^V ,          ,
          V	! V4      ,          V	! V) 4      ,          V
! V4      ,          V
! V) 4      ,          V	! V4      V
! V) 4      ,          V	! V4      ,          V
! V) 4      ,          ,           p\        WÛ,
          4      ^ 8X  g   Q hV! W#4      V! WE4      ,          V! V) V) 4      ,          pVP                  V4      pW¸! W%4      8X  g   Q hV! W#4      V! WE4      ,          V! W$4      V! W54      ,          ,           V! W%4      V! W44      ,          ,           pVP                  W") 3W3) 3WD) 3WU) 34      pW¼,          pVP                  V4      pVP                  ^V ^,          ,          ^V ,          ,           4      '       g   Q h^V	! V4      ,          V! W3) 4      ,          pVP                  V4      pVP                  ^V ,          V	! V4      ,          4      '       g   Q h^V	! V4      ,          V! W2) 4      ,          pVP                  V4      pV^V	! V4      ,          8X  g   Q h\        R4      pV	! V4      V	! V4      ,          V! W#4      V^,          ,          ,           V! V) V) 4      ,          W^,          ,          ,
          pVP                  V4      pW¹! V4      V	! V) 4      ,          8X  g   Q h\        RV.^,          \        P                  ! ^4      4      pV! W#4      V	! V4      ,          V! V) V) 4      ,          pVP                  V4      p\        V4      R8X  g   \        V4      R	8X  g   Q hR
# R
# )r‘   r:   r;   r4  za,b,c,d,e,L_0zp,qr`   r?   zA(L_1, -L_1)*p(L_0)zA(-L_1, L_1)*p(L_0)Nrh   )r   r   r   r½   r    r6  r$   r(   r3   r#   r   rD   rC   )r‘   r:   rE   rF   rO   rP   rv   rÊ   rº   r¯   r  rK   r  rI   r`   r?   s                   r6   Útest_contract_metric2r9  S  sþ  € Üˆs‹€AÜ˜i¨Q¸3Ô?€GÜ'¨¸ÓAÑ€Aˆ!�Ø�‰€AÜ˜ ˜yÓ)�D€Aá	
ˆ1‹‘�!“�‘Q˜�r“UÕ	€BØ	
‰1ˆaˆR��‹8�‘A�a“D�™˜A˜2›Õ	€BØ
�€AØ	×Ñ˜!Ó€AØ��!•‘A�a“D•™˜A˜2›•™q ›tÕ#¡A q b£EÕ)Ô)Ð)Ð)Ù	
ˆ1‹‘�!“�‘Q˜�r“UÕ	€BØ	
‰1ˆaˆR‹5�‘�A�2“�€BØ
�€AØ	×Ñ˜!Ó€AØ	�
‰
‹€AØ�‘!�A“$•‘q˜!˜“u•™Q˜q›TÕ!¡! Q B£%Õ'Ô'Ð'Ð'à	
‰1ˆQ‹6�‘!�A“$�‘q˜!˜“uÕ	€BØ	‰Q�ˆr�1�"‹X�‘a˜“dÕ	™1˜a˜R›5Õ	 €BØ
�€AØ	×Ñ˜!Ó€AØ	‰!ˆA‹&�‘�A�2�q�b“Õ™!˜A›$Õ™q ! ›uÕ$¡Q q£TÕ)©!¨Q¨B«%Õ/€AØ	×Ñ˜!Ó€Aà	
‰1ˆQ‹6�‘!�A“$�‘q˜!˜“uÕ	€BÙ	
ˆAˆ2‹‰q�!�‹u��q™˜A˜2˜q˜b›•z¡! A£$•¡q¨!¨£uÕ,Õ	,€BØ
�€AØ	×Ñ˜!Ó€AØ��Q�q•S•™!˜A›$•™q ! ›uÕ$¡Q q£TÕ)©!¨Q¨B«%Õ/Ô/Ð/Ð/á	
ˆ1‹‰a�‹d�‘Q�q“T™!˜A›$•YÕ	 ¡1 Q£6¥©!¨A«$¥©q°!°«uÕ!4Õ	4€BÙ	
ˆAˆ2‹‰q�!�‹u�‘q˜!˜˜Q˜B“x¡ !£•}¡Q¨ r£UÕ*Õ	*€BØ
�€AØ	×Ñ˜!Ó€AØ
ˆa��c�'‘1�Q“4�™˜1˜"›Õ	™a ›dÕ	"¡1 a R£5Õ	(©1¨Q«4±°1°"³­:±a¸³d­?¹1¸a¸R»5Õ+@Õ	@€BÜ�A•FÓ˜qÔ Ð Ð á	ˆ!‹‰q�‹v�‘a˜˜˜A˜2“hÕ€AØ	
×	Ñ	˜1Ó	€BØ��1“Œ=Ðˆ=á	
ˆ1‹‘�!“�™˜1›¡ !£�Õ	&©¨1«±°!³­Õ	6€BØ	×	Ñ	  "˜v q¨ f¨a°¨V°Q°r°FÓ	;€BØ
�€AØ	×Ñ˜!Ó€AØ�8‰8�A�a˜•d•F˜Q˜q�S•L×!Ò!Ð!Ð!à	‰!ˆA‹$�‰q��2‹w�€AØ	
×	Ñ	˜1Ó	€BØ�9‰9�Q�q•S™˜1›•X×ÒÐÐà	‰!ˆA‹$�‰q��2‹w�€AØ	
×	Ñ	˜1Ó	€BØ�‘1�Q“4•Œ<Ðˆ<äˆs‹€AÙ	
ˆ1‹‰a�‹d�‘Q�q“W˜Q �T•\Õ	!¡1 a R¨!¨£9Õ,¨q°Aµ­vÕ5€AØ	
×	Ñ	˜1Ó	€BØ��1“‘a˜˜“e•ÔÐÐä�3˜˜	 !�¤^×%CÒ%CÀAÓ%FÓG€AÙ	ˆ!‹‘�#“�‘q˜!˜˜a˜R“yÕ €AØ	
×	Ñ	˜1Ó	€BÜˆr‹7Ð+Ô+¬s°2«wÐ:OÔ/OÐOÐOÑ/OÑ+r8   c                  ó  € \        R 4      p \        RV RRR7      p\        RV4      w  r#rEpVP                  p\	        RV.\
        P                  ! ^4      ^4      w  r‰\        RV.^,          \
        P                  ! ^4      4      p
V! W") 4      pVP                  V4      pVP                  V ) 4      '       g   Q hV! V) V4      pVP                  V4      pVP                  V 4      '       g   Q hV! W#4      V! V) V) 4      ,          pVP                  V4      pVP                  V 4      '       g   Q hV! W24      V! V) V) 4      ,          pVP                  V4      pVP                  V ) 4      '       g   Q hV! V) V4      V! W#) 4      ,          pVP                  V4      pVP                  V ) 4      '       g   Q hV! W2) 4      V! W#) 4      ,          pVP                  V4      pVP                  V 4      '       g   Q hV! W#4      V
! V) V) 4      ,          pVP                  V4      pVP                  4       p\        WÊ! W") 4      4      '       g   Q hV! W24      V
! V) V) 4      ,          pVP                  V4      p\        WÊ! W") 4      ) 4      '       g   Q hV! W#) 4      V
! W2) 4      ,          pVP                  V4      p\        WÊ! W") 4      ) 4      '       g   Q hV! V) V4      V
! V) V4      ,          pVP                  V4      p\        WÊ! W") 4      ) 4      '       g   Q hV! V) V) 4      V
! W24      ,          pVP                  V4      p\        WÊ! W") 4      4      '       g   Q hV! V) V4      V
! W2) 4      ,          pVP                  V4      p\        WÊ! W") 4      4      '       g   Q hV! W#4      V	! V) 4      ,          pVP                  V4      p\        WÉ! V4      4      '       g   Q hV! W24      V	! V) 4      ,          pVP                  V4      p\        WÉ! V4      ) 4      '       g   Q hV! W#4      V! V) 4      ,          V	! V) 4      ,          pVP                  V4      p\        WÈ! V4      ) V	! V) 4      ,          4      '       g   Q hV! W24      V! V) 4      ,          V	! V) 4      ,          pVP                  V4      p\        WÈ! V4      V	! V) 4      ,          4      '       g   Q hV! V) V4      V! V) 4      ,          V	! V4      ,          pVP                  V4      p\        WÈ! V) 4      V	! V4      ,          4      '       g   Q hV! W#) 4      V! V) 4      ,          V	! V4      ,          pVP                  V4      p\        WÈ! V) 4      ) V	! V4      ,          4      '       g   Q hV! V) V) 4      V! V4      ,          V	! V4      ,          pVP                  V4      p\        WÈ! V) 4      V	! V4      ,          4      '       g   Q hV! V) V) 4      V! V4      ,          V	! V4      ,          pVP                  V4      p\        WÈ! V) 4      ) V	! V4      ,          4      '       g   Q hV! V) V) 4      V
! W$4      ,          V	! V4      ,          pVP                  V4      p\        WÊ! V) V4      ) V	! V4      ,          4      '       g   Q hV! W24      V
! V) V) 4      ,          V	! V) 4      ,          pVP                  V4      p\        WÊ! V) V4      V	! V) 4      ,          4      '       g   Q hR# )	r‘   r^   r
   r¦   r§   r¨   r@   Nrg   )r   r   r   r½   r    r   rB   r#   r6  r3   r$   r7   )r‘   r^   rj   rk   rl   rm   r�   rA   r©   rª   r@   rI   rK   s                r6   Útest_metric_contract3r;  –  so  € Üˆs‹€AÜ˜X¨1¸bÈSÔQ€FÜ'¨°Ó7Ñ€BˆB�BØ�‰€AÜ˜I¨ x´×1KÒ1KÈAÓ1NÐPQÓR�H€CÜ�3˜˜ �
¤N×$>Ò$>¸qÓ$AÓB€Aá	ˆ"ˆS‹	€AØ	
×	Ñ	˜1Ó	€BØ�9‰9�a�R�=Š=Ðˆ=á	ˆ2ˆ#ˆb‹	€AØ	
×	Ñ	˜1Ó	€BØ�9‰9�Q�<Š<Ðˆ<á	ˆ"‹‘�B�3˜�s“Õ€AØ	
×	Ñ	˜1Ó	€BØ�9‰9�Q�<Š<Ðˆ<á	ˆ"‹‘�B�3˜�s“Õ€AØ	
×	Ñ	˜1Ó	€BØ�9‰9�a�R�=Š=Ðˆ=á	ˆ2ˆ#ˆb‹	‘!�B�s“)Õ€AØ	
×	Ñ	˜1Ó	€BØ�9‰9�a�R�=Š=Ðˆ=á	ˆ"ˆS‹	‘!�B�s“)Õ€AØ	
×	Ñ	˜1Ó	€BØ�9‰9�Q�<Š<Ðˆ<á	ˆ"‹‘�B�3˜�s“Õ€AØ	
×	Ñ	˜1Ó	€BØ	�‰‹€BÜ�R˜˜2˜c›×#Ò#Ð#Ð#á	ˆ"‹‘�B�3˜�s“Õ€AØ	
×	Ñ	˜1Ó	€BÜ�R˜!˜B˜s›)˜×$Ò$Ð$Ð$á	ˆ"ˆS‹	‘!�B�s“)Õ€AØ	
×	Ñ	˜1Ó	€BÜ�R˜!˜B˜s›)˜×$Ò$Ð$Ð$á	ˆ2ˆ#ˆb‹	‘!�R�C˜“)Õ€AØ	
×	Ñ	˜1Ó	€BÜ�R˜!˜B˜s›)˜×$Ò$Ð$Ð$á	ˆ2ˆ#ˆrˆc‹
‘1�R“8Õ€AØ	
×	Ñ	˜1Ó	€BÜ�R˜˜2˜c›×#Ò#Ð#Ð#á	ˆ2ˆ#ˆr‹
‘1�R˜“9Õ€AØ	
×	Ñ	˜1Ó	€BÜ�R˜˜2˜c›×#Ò#Ð#Ð#á	ˆ"‹‘�b�S“Õ€AØ	
×	Ñ	˜1Ó	€BÜ�R˜˜R›×!Ò!Ð!Ð!á	ˆ"‹‘�b�S“Õ€AØ	
×	Ñ	˜1Ó	€BÜ�R˜#˜b›'˜×"Ò"Ð"Ð"á	ˆ"‹‘�b�S“Õ™#˜r˜c›(Õ"€AØ	
×	Ñ	˜1Ó	€BÜ�R˜#˜b›'˜¡# r c£(Õ*×+Ò+Ð+Ð+á	ˆ"‹‘�b�S“Õ™#˜r˜c›(Õ"€AØ	
×	Ñ	˜1Ó	€BÜ�R˜˜R›¡ b S£Õ)×*Ò*Ð*Ð*á	ˆ2ˆ#ˆb‹	‘#�r�c“(Õ™3˜r›7Õ"€AØ	
×	Ñ	˜1Ó	€BÜ�R˜˜b˜S›¡# b£'Õ)×*Ò*Ð*Ð*á	ˆ"ˆS‹	‘#�r�c“(Õ™3˜r›7Õ"€AØ	
×	Ñ	˜1Ó	€BÜ�R˜#˜r˜c›(˜¡3 r£7Õ*×+Ò+Ð+Ð+á	ˆ2ˆ#ˆrˆc‹
‘3�r“7Õ™3˜r›7Õ"€AØ	
×	Ñ	˜1Ó	€BÜ�R˜˜b˜S›¡# b£'Õ)×*Ò*Ð*Ð*á	ˆ2ˆ#ˆrˆc‹
‘3�r“7Õ™3˜r›7Õ"€AØ	
×	Ñ	˜1Ó	€BÜ�R˜#˜r˜c›(˜¡3 r£7Õ*×+Ò+Ð+Ð+á	ˆ2ˆ#ˆrˆc‹
‘1�R“8Õ™C ›GÕ#€AØ	
×	Ñ	˜1Ó	€BÜ�R˜!˜R˜C ›)˜¡C¨£GÕ+×,Ò,Ð,Ð,á	ˆ"‹‘�B�3˜�s“Õ™C  ›HÕ$€AØ	
×	Ñ	˜1Ó	€BÜ�R˜˜B˜3˜r›¡3¨ s£8Õ+×,Ò,Ð,Ò,r8   c                  ó"  € \        R ^R7      p \        RV 4      w  rpV P                  pV P                  p\	        RV .4      pV! WV4      V! V) 4      V! V) 4      ,          V! V) V) 4      ,           ,          pVP                  V4      ^ 8X  g   Q hR# )r´   r®   úp q rr°   N)r   r   ÚdeltaÚepsilonr#   r6  )r´   r¯   r  r  r>  Úepsr°   r±   s           r6   Útest_contract_metric4rA  ø  sˆ   € Ü	˜ 1Ô	%€BÜ˜W bÓ)�G€Aˆ!Ø�H‰H€EØ
�*‰*€CÜ�3˜˜Ó€Añ ˆq�1‹:™˜1˜"›™a  ›e�¡e¨Q¨B°¨r£lÕ2Õ4€DØ×Ñ Ó&¨!Ô+Ð+Ò+r8   c                  ó"  € \        R ^R7      p \        RV 4      w  rpV P                  p\        RV .4      p\	        R4      p\        R4      p^V! V4      ,           V! V) 4      ,          V! V) 4      ,          pVP                  V4      V8X  g   Q hR# )r´   r®   r=  r°   rc   r¶   N)r   r   r>  r#   r   r   r6  )	r´   r¯   r  r  r>  r°   rc   r¶   r±   s	            r6   Útest_contract_metric5rC    s„   € Ü	˜ 1Ô	%€BÜ˜W bÓ)�G€Aˆ!Ø�H‰H€EÜ�3˜˜Ó€Aä�‹€AÜˆs‹€Að ‰a�‹d�F‘A�q�b“E�>™!˜Q˜B›%Õ€DØ×Ñ Ó&¨$Ô.Ð.Ò.r8   c                  óÆ  € \        R ^RR7      p \        RV 4      w  rr4pV P                  p\        RV .4      w  rxršV! W!W44      pVP	                  4       pWÆ! WW44      ) 8X  g   Q hV! W2WA4      pVP	                  4       pWÆ! WW44      8X  g   Q hV! W1WB4      pVP	                  4       pWÆ! WW44      ) 8X  g   Q hV! WW44      V! V) 4      ,          V! V) 4      ,          pVP	                  4       pWÆ! W4W4      V! V) 4      ,          V! V) 4      ,          8X  g   Q hV! W2WA4      V! V) 4      ,          V! V) 4      ,          pVP	                  4       pWÆ! W4W4      V! V) 4      ,          V! V) 4      ,          8X  g   Q hV! W1WB4      V! V) 4      ,          V! V) 4      ,          pVP	                  4       pWÆ! W4W4      ) V! V) 4      ,          V! V) 4      ,          8X  g   Q hV! W1WB4      V! V) 4      ,          V! V) 4      ,          pVP	                  4       pV^ 8X  g   Q hV! W1WB4      V! V) 4      ,          V! V) 4      ,          V! WW44      V! V) 4      ,          V! V) 4      ,          ,           pVP	                  4       pVRV! W4W4      ,          V! V) 4      ,          V! V) 4      ,          8X  g   Q h\        R \        ^4      RR7      p V P                  p\        V\        4      '       g   Q hR# )r:   r;   r4  r5  zp,q,r,sNrf   )r   r   r?  r    r$   r   r2   r#   )r:   rE   rF   rO   rP   rv   r?  r¯   r  r  ÚsrI   rK   s                r6   Útest_epsilonrF    s¹  € Ü˜i¨Q¸3Ô?€GÜ" ;°Ó8�M€Aˆ!�Ø�o‰o€GÜ˜i¨'¨Ó3�J€Aˆ!á��AÓ€AØ	
�‰‹€BØ�'˜!˜aÓ"Ð"Ô"Ð"Ð"á��AÓ€AØ	
�‰‹€BØ�˜˜QÓ!Ô!Ð!Ð!á��AÓ€AØ	
�‰‹€BØ�'˜!˜aÓ"Ð"Ô"Ð"Ð"á��AÓ™˜A˜2›Õ™q ! ›uÕ$€AØ	
�‰‹€BØ�˜˜QÓ!¡! Q B£%Õ'©¨1¨"«Õ-Ô-Ð-Ð-á��AÓ™˜A˜2›Õ™q ! ›uÕ$€AØ	
�‰‹€BØ�˜˜QÓ!¡! Q B£%Õ'©¨1¨"«Õ-Ô-Ð-Ð-á��AÓ™˜A˜2›Õ™q ! ›uÕ$€AØ	
�‰‹€BØ�'˜!˜aÓ"Ð"¡1 a R£5Õ(©¨A¨2«Õ.Ô.Ð.Ð.á��AÓ™˜A˜2›Õ™q ! ›uÕ$€AØ	
�‰‹€BØ�Œ7€Nˆ7á��AÓ™˜A˜2›Õ™q ! ›uÕ$¡w¨q°1Ó'7¹¸1¸"»Õ'=¹aÀÀ»eÕ'CÕC€AØ	
�‰‹€BØ�‘G˜A Ó$Õ$¡Q¨ r£UÕ*©1¨a¨R«5Õ0Ô0Ð0Ð0ô ˜i¬W°Q«ZÀCÔH€GØ�o‰o€GÜ�gœz×*Ò*Ð*Ò*r8   c            	      ó²  aaaa€ \        R 4      o\        RSRR7      p \        RV 4      w  rr4rVV P                  oV3R loV3R loVVV3R lpVV3R lpV! W) WV) 4      V! We) WC) 4      ,          p	V	P	                  S4      p
\        W§! W) WC) 4      ,
          4      ^ 8X  g   Q hV! W) WV) 4      V! We) WC) 4      ,          p	V	P	                  S4      p
W¨! W) WC) 4      8X  g   Q hV! W) WV) 4      V! We) WC) 4      ,          p	V	P	                  S4      p
V
^ 8X  g   Q hV! W) W!) 4      p	V	P	                  S4      p
V
P                  S^,          ^,
          4      '       g   Q hR	# )
r  ÚColorrA   r4  rd   c                 óÆ   <€ V P                   '       d   VP                   '       g   Q hVP                   '       g   VP                   '       d   Q hS! W4      S! W!4      ,          # r1   rÒ   ©rE   rF   rP   rO   r>  s   &&&&€r6   ÚidnÚ!test_contract_delta1.<locals>.idnD  óD   ø€ Ø�w�wˆw˜1Ÿ7Ÿ7˜7Ð"Ð"Ø—G—G�G˜qŸwŸw˜wÐ'Ð'Ù�Q‹z™% ›*Õ$Ð$r8   c                 óÆ   <€ V P                   '       d   VP                   '       g   Q hVP                   '       g   VP                   '       d   Q hS! W4      S! W#4      ,          # r1   rÒ   rJ  s   &&&&€r6   ÚTÚtest_contract_delta1.<locals>.TI  rM  r8   c                 óN   <€ S! WW#4      ^S,          S! WW#4      ,          ,
          # ©é   rÐ   )rE   rF   rO   rP   rO  rK  r  s   &&&&€€€r6   ÚP1Ú test_contract_delta1.<locals>.P1N  s"   ø€ Ù�1�q‹|˜a �c¡! A¨£*�nÕ,Ð,r8   c                 ó2   <€ ^S,          S! WW#4      ,          # rR  rÐ   )rE   rF   rO   rP   rO  r  s   &&&&€€r6   ÚP2Ú test_contract_delta1.<locals>.P2Q  s   ø€ Ø��s‘1�Q˜“:�~Ðr8   N)r   r   r   r>  Úcontract_deltar$   r3   )rH  rE   rF   rO   rP   rv   re   rT  rW  rI   rK   rO  r>  rK  r  s              @@@@r6   Útest_contract_delta1rZ  =  s`  û€ äˆs‹€AÜ˜G¨°sÔ;€EÜ% m°UÓ;Ñ€Aˆ!�Ø�K‰K€Eõ%õ
%÷
-öñ 	ˆ1ˆb�!�RÓ™˜A˜r 1 bÓ)Õ)€AØ	
×	Ñ	˜%Ó	 €BÜ�B˜˜A˜r 1 bÓ)Õ)Ó*¨aÔ/Ð/Ð/á
ˆ1ˆb�!�RÓ™˜A˜r 1 bÓ)Õ)€AØ	
×	Ñ	˜%Ó	 €BØ��A�r˜1˜bÓ!Ô!Ð!Ð!á
ˆ1ˆb�!�RÓ™˜A˜r 1 bÓ)Õ)€AØ	
×	Ñ	˜%Ó	 €BØ�Œ7€Nˆ7á
ˆ1ˆb�!�RÓ€AØ	
×	Ñ	˜%Ó	 €BØ�9‰9�Q˜•T˜A•X×ÒÐÒr8   c                  ó,  € \        R ^R7      p \        RV 4      w  rV P                  p\        RV .4      p^V! V4      V! V4      ,          V! V) V) 4      ,          ,           pVP	                  V4      ^V! V4      V! V) 4      ,          ,           8X  g   Q hR# )r´   r®   úp qr°   N)r   r   r>  r#   rY  )r´   r¯   r  r>  r°   r±   s         r6   Útest_contract_delta2r]  d  s…   € Ü	˜ 1Ô	%€BÜ˜% Ó$�D€AØ�H‰H€EÜ�3˜˜Ó€Að ‰q�‹t‘A�a“D�y™ ˜r 1 "›Õ%Õ%€DØ×Ñ˜uÓ%¨©Q¨q«T±!°Q°B³%­Z­Ô7Ð7Ò7r8   c            
      ó€  € \        4       ;_uu_ 4        \        R 4      p \        RV RR7      p\        RV4      w  r#rEpVP                  p\        RV.4      w  r‰V	! V4      V! V4      ,          V	! V4      ,          V! W#4      V! WE4      ,          V	! V) 4      ,          ,           p
V
! W#V4      V
8X  g   Q h\        Wª! W2V4      ,
          V	! V4      V! V4      ,          V	! V4      ,          ,
          V	! V4      V! V4      ,          V	! V4      ,          ,           4      ^ 8X  g   Q hV
! W4V4      V	! V4      V! V4      ,          V	! V4      ,          V! W44      V! WV4      ,          V	! V) 4      ,          ,           8X  g   Q hV
P                  W#3W234      p\        W¹! V4      V! V4      ,          V	! V4      ,          ,
          V! W#4      V! WE4      ,          V	! V) 4      ,          ,
          4      ^ 8X  g   Q h\        RV.^,          \        P                  ! ^^4      4      p\        P                  V! W%4      ,          V! V) V) V) 4      V! V) V) V) 4      ,           V! V) V) V) 4      ,
          ,          pV! V) V) V) 4      V! V) V) 4      V! WS) V) 4      ,          ,
          V! V) V) 4      V! WR) V) 4      ,          ,
          p
V
P                  V4      p
V
^ 8X  g   Q hV	! V4      V! V4      ,          V	! V4      ,          p
V
! W4V4      V	! V4      V! V4      ,          V	! V4      ,          8X  g   Q h RRR4       R#   + '       g   i     R# ; i)r‘   r:   r;   r4  r5  r\  ÚdgN)r.   r   r   r   r½   r    r$   r(   r#   r   ri   r
   ÚHalfr6  )r‘   r:   rE   rF   rO   rP   rv   rº   r¯   r  rI   rK   r_  rp   s                 r6   Útest_funra  n  s¬  € Ü	×	!Õ	!Ü�3‹KˆÜ! )°¸sÔCˆÜ& {°GÓ<‰ˆˆa�AØ�N‰Nˆä˜E G 9Ó-‰ˆÙˆa‹D‘�1“�I‘a˜“d�N™Q˜q›V¡A a£F�]©1¨a¨R«5Õ0Õ0ˆÙ��Q‹x˜1Œ}Ðˆ}Ü˜˜A˜a !›H�¡q¨£t©A¨a«D¥y±°1³¥~Õ5¹¸!»¹Q¸q»T½	Á!ÀAÃ$½ÕFÓGÈ1ÔLÐLÐLÙ��Q‹x™1˜Q›4¡ !£�9¡Q q£T�>©A¨a«F±1°Q³6­M¹!¸Q¸B»%Õ,?Õ?Ô?Ð?Ð?Ø×!Ñ! 1 %¨¨Ó.ˆÜ˜˜Q˜q›T¡! A£$�Y¡q¨£t�^Õ+©a°«f±Q°q³V­m¹A¸q¸b»EÕ.AÕAÓBÀaÔGÐGÐGô ˜˜w˜i¨�k¬>×+HÒ+HÈÈAÓ+NÓOˆä—‘‘q˜“v•™r 1 " a R¨¨›|©b°!°°Q°B¸°r«lÕ:¹RÀÀÀAÀ2ÀqÀb»\ÕIÕJˆá�ˆr�1�"�a�R‹L™1˜a˜R  ›8¡E¨!¨B°¨r£NÕ2Õ2±Q¸°r¸1¸"³X¹eÀAÀbÈ!È»nÕ5LÕLˆØ×Ñ˜aÓ ˆØ�AŒvˆˆvÙˆa‹D‘�1“�I‘a˜“d�NˆÙ��Q‹x™1˜Q›4¡ !£�9¡Q q£T�>Ô)Ð)Ñ)÷5 
"×	!×	!Ò	!ús   “LL,Ì,L=	c                  ót  a€ \        R RR7      p \        RRR7      p\        RV 4      w  r#\        RV4      w  rE\        RV .4      w  rg\        RV.4      w  r‰\        R	4      p
\        R
4      o\        P
                  ! V
S^ 4       \        RV .\        P                  ! ^4      V
4      p\        P                  VP                  ,          V
8X  g   Q h\        RV.\        P                  ! ^4      S4      pV! V4      V! V) 4      ,          pV! V4      V! V) 4      ,          pWÞ,           pWÿ,          p\        VWÝ,          ,
          ^V,          V,          ,
          Wî,          ,
          4      ^ 8X  g   Q hV! V4      V! V) 4      ,          pV! V4      V	! V) 4      ,          p\        VV,          VV,          4      '       g   Q h\        VV,          VV,          4      '       d   Q h\        P                  ! V
4      p\        P                  ! V4      V
8X  g   Q hS\        P                  9   g   Q h\!        \"        V3R l4       \        P$                  ! V
S^ 3V
^^34       \        P&                  ! V^4      \        P&                  ! ^V4      u;8X  d	   ^8X  g   Q h Q h\        P(                  ! 4        \        P                  ^ ^ ^^ ^^ /^ ^ ^^^R/^ ^ ^R/.8X  g   Q hS\        P                  9  g   Q h\        P                  ! S4      p\        P                  ! V4      S8X  g   Q hS\        P                  9   g   Q hR# )r:   r;   r<   ÚLorentzHÚLHzi,jzih,jhr\  zph qhÚGsymbolÚGHsymbolÚGÚGHc                  ó4   <€ \         P                  ! S ^^4      # rR  )r!   Úset_comm)rf  s   €r6   rÍ   Ú$test_TensorManager.<locals>.<lambda>¦  s   ø€ œ}×5Ò5°hÀÀ1ÔEr8   N)r   r   r    r   r!   rj  r#   r   rB   Ú_comm_i2symbolr÷   r$   r7   Úcomm_symbols2iÚcomm_i2symbolÚ_comm_symbols2ir,   rÖ   Ú	set_commsÚget_commÚclear)r:   rc  rz   rÿ   ÚihÚjhr¯   r  ÚphÚqhre  rg  rh  ÚpsÚpshrI   rK   ÚqsÚqshr  Únhrf  s                        @r6   Útest_TensorManagerr|  ‹  sÂ  ø€ Ü˜i°CÔ8€GÜ˜z°dÔ;€HÜ˜% Ó)�D€AÜ˜G XÓ.�F€BÜ˜ ˜yÓ)�D€AÜ˜' H :Ó.�F€Bä�YÓ€GÜ�jÓ!€HÜ×Ò˜7 H¨aÔ0Ü�3˜˜	¤>×#=Ò#=¸aÓ#@À'ÓJ€AÜ×'Ñ'¨¯©Õ/°7Ô:Ð:Ð:Ü	�D˜8˜*¤n×&@Ò&@ÀÓ&CÀXÓ	N€BÙ	
ˆ1‹‰a��‹e�€BÙ
ˆR‹&‘�R�C“�.€CØ
�€AØ	
�€BÜ�B˜�•J  2¥ c¥Õ)¨C­GÕ3Ó4¸Ô9Ð9Ð9Ù	
ˆ1‹‰a��‹e�€BÙ
ˆR‹&‘�R�C“�.€CÜ�R˜•V˜S �V×$Ò$Ð$Ð$Ü˜˜B�  2¥×&Ò&Ð&Ð&Ü×$Ò$ WÓ-€AÜ×&Ò& qÓ)¨WÔ4Ð4Ð4à”}×4Ñ4Ô4Ð4Ð4Ü
Œ:ÔEÔFÜ×Ò˜W X¨aÐ0°'¸!¸A°Ô?Ü×!Ò! ! QÓ'¬=×+AÒ+AÀ!ÀQÓ+GÖLÈ1ÔLÐLÑLÐLÐLÜ×ÒÔÜ×Ñ 1 Q¨¨!¨Q¨q /°A°a¸¸1¸aÀÐ3EÈÈ!ÈQÈtÀ}Ð!UÔUÐUÐUØœ=×8Ñ8Ô8Ð8Ð8Ü	×	%Ò	% hÓ	/€BÜ×&Ò& rÓ*¨hÔ6Ð6Ð6Ø”}×4Ñ4Ô4Ð4Ò4r8   c                  ó  € \        R 4      p \        RV RR7      p\        RV4      w  r#rEpVP                  p\	        RV.4      w  r‰VP
                  ^,          p
V! V4      V	! V4      ,          pV! V4      V! V4      ,          p\        V4      \        V4      8w  g   Q hV! V4      V! V4      ,          V! W#4      ,           pV! V4      V! V4      ,          V! W#4      ,
          p\        V4      \        V4      8w  g   Q hVP                  ! VP
                  !  V8X  g   Q hVP                  ! VP
                  !  V8X  g   Q hVP                  ! VP
                  !  V8X  g   Q hVP                  ! VP
                  !  V8X  g   Q hV
P                  ! V
P
                  !  V
8X  g   Q hV! V4      P                  ! V! V4      P
                  !  V! V4      8X  g   Q hVP                  ! VP
                  !  V8X  g   Q hVP                  ! VP
                  !  V8X  g   Q hVP                  ! VP
                  !  V8X  g   Q hVP                  ! VP
                  !  V8X  g   Q h\        VP                  ! VP
                  !  4      \        V4      8X  g   Q h\        VP                  ! VP
                  !  4      \        V4      8X  g   Q h\        VP                  ! VP
                  !  4      \        V4      8X  g   Q h\        VP                  ! VP
                  !  4      \        V4      8X  g   Q h\        V
P                  ! V
P
                  !  4      \        V
4      8X  g   Q h\        V! V4      P                  ! V! V4      P
                  !  4      \        V! V4      4      8X  g   Q h\        VP                  ! VP
                  !  4      \        V4      8X  g   Q h\        VP                  ! VP
                  !  4      \        V4      8X  g   Q h\        VP                  ! VP
                  !  4      \        V4      8X  g   Q h\        VP                  ! VP
                  !  4      \        V4      8X  g   Q hR pV! V4      '       g   Q hV! V4      '       g   Q hV! V4      '       g   Q hV! V4      '       g   Q hV! V
4      '       g   Q hV! V! V4      4      '       g   Q hV! V4      '       g   Q hV! V4      '       g   Q hV! V4      '       g   Q hV! V4      '       g   Q h\        P                  ! R^^4      pVP                  ! VP
                  !  V8X  g   Q h\        VP                  ! VP
                  !  4      \        V4      8X  g   Q hV! V4      '       g   Q hR# )	r‘   r:   r;   r4  r5  r\  c                 ó’   € \         ;QJ d&    R  V P                   4       F  '       d   K   R# 	  R# ! R  V P                   4       4      # )c              3   óB   "  € T F  p\        V\        4      x € K  	  R # 5ir1   )r2   r   )Ú.0Ú_s   & r6   Ú	<genexpr>Ú/test_hash.<locals>.check_all.<locals>.<genexpr>×  s   é € Ð:±¨A”:˜a¤×'Ð'³ùs   ‚FT)Úallrü   )Úobjs   &r6   Ú	check_allÚtest_hash.<locals>.check_allÖ  s3   € ß‹sÑ:°·²Ó:�sŒsÐ:ŠsÐ:ˆsÑ:°·²Ó:Ó:Ð:r8   Nrf   )
r   r   r   r½   r    rü   ÚhashÚfuncr   ri   )r‘   r:   rE   rF   rO   rP   rv   rº   r¯   r  Úp_typerK   r  r  Út4r†  Ú	tsymmetrys                    r6   Ú	test_hashr�  ±  s\  € Üˆs‹€AÜ˜i¨Q¸3Ô?€GÜ" ;°Ó8�M€Aˆ!�Ø�‰€Aä˜ ˜yÓ)�D€AØ�V‰V�A�Y€FÙ	
ˆ1‹‰a�‹d�€BÙ	
ˆ1‹‰a�‹d�€BÜ�‹8”t˜B“xÔÐÐÙ	
ˆ1‹‰a�‹d�‘Q�q“VÕ	€BÙ	
ˆ1‹‰a�‹d�‘Q�q“VÕ	€BÜ�‹8”t˜B“xÔÐÐà�6Š6�1—6‘6‰?˜aÔÐÐØ�<Š<˜Ÿ™Ñ&¨'Ô1Ð1Ð1Ø�6Š6�1—6‘6‰?˜aÔÐÐØ�6Š6�1—6‘6‰?˜aÔÐÐØ�;Š;˜Ÿ™Ñ$¨Ô.Ð.Ð.ÙˆQ‹4�9Š9‘q˜“t—k‘kÑ"¡a¨£dÔ*Ð*Ð*Ø�7Š7�B—G‘GÑ Ô"Ð"Ð"Ø�7Š7�B—G‘GÑ Ô"Ð"Ð"Ø�7Š7�B—G‘GÑ Ô"Ð"Ð"Ø�7Š7�B—G‘GÑ Ô"Ð"Ð"ä�—’˜Ÿ™‘Ó ¤D¨£GÔ+Ð+Ð+Ü�—’˜gŸl™lÑ+Ó,´°W³Ô=Ð=Ð=Ü�—’˜Ÿ™‘Ó ¤D¨£GÔ+Ð+Ð+Ü�—’˜Ÿ™‘Ó ¤D¨£GÔ+Ð+Ð+Ü�—’˜VŸ[™[Ñ)Ó*¬d°6«lÔ:Ð:Ð:Ü‘�!“—	’	™A˜a›DŸ;™;Ñ'Ó(¬D±°1³«JÔ6Ð6Ð6Ü�—’˜Ÿ™Ñ!Ó"¤d¨2£hÔ.Ð.Ð.Ü�—’˜Ÿ™Ñ!Ó"¤d¨2£hÔ.Ð.Ð.Ü�—’˜Ÿ™Ñ!Ó"¤d¨2£hÔ.Ð.Ð.Ü�—’˜Ÿ™Ñ!Ó"¤d¨2£hÔ.Ð.Ð.ò;ñ �Q�<Š<Ðˆ<Ù�W×ÒÐÐÙ�Q�<Š<Ðˆ<Ù�Q�<Š<Ðˆ<Ù�V×ÒÐÐÙ‘Q�q“T�?Š?Ðˆ?Ù�R�=Š=Ðˆ=Ù�R�=Š=Ðˆ=Ù�R�=Š=Ðˆ=Ù�R�=Š=Ðˆ=ä×-Ò-¨b°!°QÓ7€Ià�>Š>˜9Ÿ>™>Ñ*¨iÔ7Ð7Ð7Ü�	—’ 	§¡Ñ/Ó0´D¸³OÔCÐCÐCÙ�Y×ÒÐÒr8   c                  ó–  € \        R4      p \        R^R7      pWn        \        RV4      w  r#rEp\	        R4      w  rxrš\        RV.4      pWxWš.Vn        \        RV.\        P                  ! ^4      R4      p\        ^4      Vn        \        RV.^,          4      pWn        \        R4      p\        R	V.^,          4      pWïn        \        R
4      p. ROVn        \        RV4      w  ppp\        RV.4      pWxWš.Vn        Rp\        R4      pVVn        \        RV4      w  ppp\        RV.4      p\        ^
^4      Vn        \        RV.^,          4      p\        ^
^4       UUu. uF&  p\        ^
^4       Uu. uF  pVV,           NK  	  upNK(  	  uppVn        \        RV.^,          4      p\        ^^4       UUUu. uFI  p\        ^^4       UUu. uF-  p\        ^^4       Uu. uF  pVV,           V,           NK  	  upNK/  	  uppNKK  	  upppVn        W¼WßVWW‰V
VVVVVVVVVVVWVW#WEV3# u upi u uppi u upi u uppi u upppi )rS  r:   r®   úi0:5r  r?   r@   ÚGcommÚABÚBAÚLorentzDzmu0:3rA   Úndmzn0:3ÚNAÚNBÚNC)©rS  r   r   r   ©r   rg   r   r   ©r   r   rg   r   ©r   r   r   rg   )©rS  rÚ   rÌ   é   ©é   é   é   é   ©é	   r   rg   rf   ©rh   rÛ   éûÿÿÿéúÿÿÿ©rg   rS  rS  rS  )©rS  rS  r   )rS  r   rS  ©r   rS  r   )	r   r   Údatar   r   r#   r   rB   Úrange) Ú	minkowskir:   r•   r–   r—   r˜   r™   r“   r  r  r  r?   r@   r‘  Ú	ba_matrixr’  r“  Úmu0Úmu1Úmu2rA   Ú
ndm_matrixr”  Ún0Ún1Ún2r•  r–  rz   rÿ   r—  r   s                                    r6   Ú_get_valued_base_test_variablesr¶  î  sD  € Üð ó €Iô ˜i¨QÔ/€GØ„Lä'¨°Ó8Ñ€BˆB�Bä˜LÓ)�M€Aˆ2Ü�3˜˜	Ó"€AØ�Rˆ_€A„FÜ�3˜˜	¤>×#=Ò#=¸aÓ#@À'ÓJ€AÜ�1‹X€A„FÜ	�D˜7˜) A�+Ó	&€BØ„Gäð ó €Iô 
�D˜7˜) A�+Ó	&€BØ„Gô ˜zÓ*€HÚ!€H„MÜ" 7¨HÓ5�M€CˆˆcÜ�3˜˜
Ó#€AØ�Rˆ_€A„Fð€Jô
 ˜%Ó
 €CØ€C„HÜ ¨Ó,�J€BˆˆBÜ	�D˜3˜%Ó	 €BÜ�B˜‹m€B„GÜ	�D˜3˜% �'Ó	"€BÜ5:¸2¸r´]ÔC±]°œU 2 rœ]Ó+™]˜��!—�™]Ô+±]ÒC€B„GÜ	�D˜3˜% �'Ó	"€BÜLQÐRSÐUVÌKÕXÉKÀq´e¸A¸q´kÔB±k°¤ a¨¤Ó,¡˜1��1•�Q—�¡Ô,±kÕBÉKÓX€B„Gà�"˜!˜W¨°°X¸sÀCÈÈcÐSUÐWYØ��B˜˜I°*¸bÀbÈbðRð Rùò	 ,ùÓCùâ,ùÓBùÔXsB   Å$H3Å7H.Æ	H3Æ=IÇH>Ç$H9Ç=H>ÈIÈ.H3È9H>È>Ic                  ó"  € \        4       ;_uu_ 4        \        4       w  rr#rErgr‰r«rÍrïppppppppppppp\        . RO4      \        . RO4      \        . RO4      \        . RO4      .p\        V 4      WgW‰.8X  g   Q h\        V4      . RO8X  g   Q h\        V4      V8X  g   Q h\        V ! V4      4      WgW‰.8X  g   Q h\        V! VV4      4      V8X  g   Q h\        ^V! VV4      ,          4      V Uu. uF  p^V,          NK  	  up8X  g   Q h\        RV! VV4      ,          4      V Uu. uF  pRV,          NK  	  up8X  g   Q h\        V ! V4      V ! V4      ,           4      ^V,          ^V,          ^V,          ^V	,          .8X  g   Q hV! VV4      V! VV4      ,
          ^ 8X  g   Q h\        V! VV4      ^V! VV4      ,          ,
          4      V Uu. uF  pV) NK  	  up8X  g   Q h RRR4       R# u upi u upi u upi   + '       g   i     R# ; i)rS  Nrœ  rž  r£  r¦  r¥  )rS  rÚ   rÌ   r�  rŸ  r   r¡  r¢  r¤  r   rg   rf   rh   rÛ   r¦  r§  )r.   r¶  r   r|   )r?   r@   r‘  r’  rA   r:   r“   r  r  r  r“  r¯  r°  r±  r”  r³  r´  rµ  r•  r–  r—  r­  r®  r²  r•   r–   r—   r˜   r™   Úlist_BArz   s                                  r6   Útest_valued_tensor_iterr¹  '  sð  € Ü	×	!Õ	!äQpÓQrñ	Oˆˆr�q 1¨"°(ÀÈ3ÐTVØ	ˆR��R˜ I¨z¸2¸rÀ2ÀrÈ2äšÓ&¬ªlÓ(;¼UÂ>Ó=RÔTYÒZjÓTkÐlˆä�A‹w˜1 "˜/Ô)Ð)Ð)Ü�I‹Ò"XÔXÐXÐXÜ�B‹x˜7Ô"Ð"Ð"ô ‘A�b“E‹{˜q b˜oÔ-Ð-Ð-Ü‘B�r˜2“JÓ 7Ô*Ð*Ð*Ü�A™˜2˜r›
•NÓ#±wÓ'?±w°!¨¨A¯¨±wÑ'?Ô?Ð?Ð?Ü�B™˜B ›•OÓ$¹Ó(A¹°A¨¨a¯¨¹Ñ(AÔAÐAÐAô ‘A�b“E™A˜b›E•MÓ" q¨¥s¨A¨b­D°!°Bµ$¸¸"½Ð&=Ô=Ð=Ð=Ù�"�b‹z™B˜r 2›JÕ&¨!Ô+Ð+Ð+Ü‘B�r˜2“J ¡R¨¨B£Z¥Õ/Ó0ÁÓ4IÁ¸A°a³RÁÑ4IÔIÐIÑI÷) 
"Ñ	!ùò (@ùÚ(Aùò 5J÷) 
"×	!Ð	!ús7   “CG=Ã/G.
Ä%G=Ä&G3
Ä8BG=ÇG8
Ç	G=Ç.G=Ç=H	c                  óø  € \        4       ;_uu_ 4        \        4       w  rr#rErgr‰r«rÍrïpppppppppppppV ! V) 4      ^ ,          V ! V4      ^ ,          8X  g   Q hV ! V) 4      ^,          V ! V4      ^,          ) 8X  g   Q hV! VV4      R,          R8X  g   Q hV! VV) 4      R,          ^8X  g   Q hV! V) V) 4      R,          R8X  g   Q hV! V) V4      R,          ^8X  g   Q h RRR4       R#   + '       g   i     R# ; i)r   N©rS  rS  rg   )r.   r¶  ©r?   r@   r‘  r’  rA   r:   r“   r  r  r  r“  r¯  r°  r±  r”  r³  r´  rµ  r•  r–  r—  r­  r®  r²  r•   r–   r—   r˜   r™   s                                r6   Ú3test_valued_tensor_covariant_contravariant_elementsr½  ?  s   € Ü	×	!Õ	!äQpÓQrñ	Oˆˆr�q 1¨"°(ÀÈ3ÐTVØ	ˆR��R˜ I¨z¸2¸rÀ2ÀrÈ2á�"�‹v�a�y™A˜b›E !�HÔ$Ð$Ð$Ù�"�‹v�a�y™Q˜r›U 1�X˜IÔ%Ð%Ð%á�"�b‹z˜$Õ 2Ô%Ð%Ð%Ù�"�r�c‹{˜4Õ  AÔ%Ð%Ð%Ù�2�#˜�s‹|˜DÕ! RÔ'Ð'Ð'Ù�2�#�r‹{˜4Õ  AÔ%Ð%Ñ%÷ 
"×	!×	!Ò	!ús   “C
C(Ã(C9	c                  ó
  € \        4       ;_uu_ 4        \        4       w  rr#rErgr‰r«rÍrïpppppppppppppV! VV4      P                  4       pV\        . RO. RO. RO. RO.4      8X  g   Q hV! VV) 4      P                  4       \	        ^4      8X  g   Q hV ! V4      P                  4       \        WgW‰.4      8X  g   Q hV ! V) 4      P                  4       \        Wg) V) V	) .4      8X  g   Q h RRR4       R#   + '       g   i     R# ; i)rS  Nr˜  r™  rš  r›  )r.   r¶  Ú
get_matrixr   r   )r?   r@   r‘  r’  rA   r:   r“   r  r  r  r“  r¯  r°  r±  r”  r³  r´  rµ  r•  r–  r—  r­  r®  r²  r•   r–   r—   r˜   r™   Úmatabs                                 r6   Útest_valued_tensor_get_matrixrÁ  M  s
  € Ü	×	!Õ	!äQpÓQrñ	Oˆˆr�q 1¨"°(ÀÈ3ÐTVØ	ˆR��R˜ I¨z¸2¸rÀ2ÀrÈ2á�2�r“
×%Ñ%Ó'ˆØœÚ /Ú /Ú /Ú /ð	 "ó #ô #ð 	#ð #ñ �"�r�c‹{×%Ñ%Ó'¬3¨q«6Ô1Ð1Ð1ñ �‹u×ÑÓ!¤V¨Q°B¨OÓ%<Ô<Ð<Ð<Ù�"�‹v× Ñ Ó"¤f¨a°°r°c¸B¸3Ð-?Ó&@Ô@Ð@Ñ@÷# 
"×	!×	!Ò	!ús   “CC1Ã1D	c                  ó*  € \        4       ;_uu_ 4        \        4       w  rr#rErgr‰r«rÍrïpppppppppppppV ! V4      V ! V) 4      ,          P                  V^,          V^,          ,
          V^,          ,
          V	^,          ,
          8X  g   Q hV ! V4      V ! V) 4      ,          P                  V ^,          8X  g   Q hV ! V4      V ! V) 4      ,          P                  V ! V4      ^,          8X  g   Q hV ! V4      V! V) 4      ,          P                  V) ^V,          ,
          ^V	,          ,
          8X  g   Q h\        ^4       FT  p\        ^4       FB  pV ! V4      V! V) 4      ,          VV3,          WgW‰.V,          . ROV,          ,          8X  d   KB  Q h	  KV  	  V! V4      V! V) 4      ,          P                  V^,          ) V^,          ,           V^,          ,           V	^,          ,           8X  g   Q hV ! V4      V! VV) 4      ,          pV ! V4      P                  ^8X  g   Q hV! VV) 4      P                  ^8X  g   Q hVP                  ^8X  g   Q h\        ^4       F  pVV,          WgW‰.V,          8X  d   K  Q h	  RRR4       R#   + '       g   i     R# ; i)rÚ   N)r   rg   rf   rh   )r.   r¶  r«  r¬  rÜ   ) r?   r@   r‘  r’  rA   r:   r“   r  r  r  r“  r¯  r°  r±  r”  r³  r´  rµ  r•  r–  r—  r­  r®  r²  r•   r–   r—   r˜   r™   rz   rÿ   Úcontrexps                                    r6   Útest_valued_tensor_contractionrÄ  a  s4  € Ü	×	!Õ	!äQpÓQrñ	Oˆˆr�q 1¨"°(ÀÈ3ÐTVØ	ˆR��R˜ I¨z¸2¸rÀ2ÀrÈ2á�"“™˜2˜#›•×$Ñ$¨¨Q­°°qµÕ(8¸2À½7Õ(BÀRÈ1ÅWÕ(LÔLÐLÐLÙ�"“™˜2˜#›•×$Ñ$¨¨Q­Ô.Ð.Ð.Ù�"“™˜2˜#›•×$Ñ$©¨"«°­
Ô2Ð2Ð2Ù�"“™˜2˜#›•×$Ñ$¨¨¨a°"­f­°q¸2µvÕ(=Ô=Ð=Ð=ä�q–ˆAÜ˜1–X�Ù˜"›¡ 2 #£�¨¨1¨Õ-°!¸°ÀÕ1CÂoÐVWÕFXÕ1XÖXÐXÐXó ñ ñ
 �#“™˜C˜4›Õ ×&Ñ&¨1°­6¨'°B¸!µGÕ*;¸bÀA½gÕ*EÈÈaÍÕ*OÔOÐOÐOá�R“5™2˜b 2 #›;Õ&ˆÙ�‹u�z‰z˜QŒÐˆÙ�"�r�c‹{×Ñ 1Ô$Ð$Ð$Ø�}‰} Ô!Ð!Ð!Ü�q–ˆAØ˜A•; 1¨" /°!Õ"4Ö4Ð4Ð4ñ ÷) 
"×	!×	!Ò	!ús   “E5JÆC!JÉ3JÊJ	c                  ó  € \        4       ;_uu_ 4        \        4       w  rr#rErgr‰r«rÍrïpppppppppppppV! VV) 4      P                  ^8X  g   Q hV! VV) 4      P                  ^8X  g   Q h RRR4       R#   + '       g   i     R# ; i©r�  N©r.   r¶  r«  r¼  s                                r6   Ú#test_valued_tensor_self_contractionrÈ  y  sŠ   € Ü	×	!Õ	!äQpÓQrñ	Oˆˆr�q 1¨"°(ÀÈ3ÐTVØ	ˆR��R˜ I¨z¸2¸rÀ2ÀrÈ2á�"�r�c‹{×Ñ 1Ô$Ð$Ð$Ù�"�r�c‹{×Ñ 1Ô$Ð$Ñ$÷ 
"×	!×	!Ò	!ús   “AA5Á5B	c                  ó4  € \        4       ;_uu_ 4        \        4       w  rr#rErgr‰r«rÍrïpppppppppppppV^,          V^,          ) V^,          ,           V^,          ,           V	^,          ,           8X  g   Q hV^,          \        V^,          ) V^,          ,           V^,          ,           V	^,          ,           4      8X  g   Q hV! V4      ^,          V^,          8X  g   Q hV! V4      ^,          V^,          8X  g   Q h RRR4       R#   + '       g   i     R# ; i©rÚ   N)r.   r¶  r   r¼  s                                r6   Útest_valued_tensor_powrË  ‚  sï   € Ü	×	!Õ	!äQpÓQrñ	Oˆˆr�q 1¨"°(ÀÈ3ÐTVØ	ˆR��R˜ I¨z¸2¸rÀ2ÀrÈ2à�!�t˜˜1��u˜r 1�u•} r¨1¥uÕ,¨r°1­uÕ4Ô4Ð4Ð4Ø�!�t”t˜Q �T˜E B¨¥E�M¨B°­EÕ1°B¸µEÕ9Ó:Ô:Ð:Ð:Ù�‹v�q�y˜A˜q�DÔ Ð Ð Ù�‹v�q�y˜A˜q�DÔ Ð Ñ ÷ 
"×	!×	!Ò	!ús   “C(DÄD	c                  óÈ  € \        4       ;_uu_ 4        \        4       w  rr#rErgr‰r«rÍrïppppppppppppp\        R 4      w  pppVV ! V4      ,          V! V4      ,          p V R,          VV,          8X  g   Q hV R,          ^V	,          V,          8X  g   Q hVV ! V4      ,          V! V) 4      V,          ,          P                  p!V!P	                  4       V) V,          V,          ^V,          V,          V,          ,
          ^V	,          V,          V,          ,
          8X  g   Q hV ! V4      V! V4      ,           p"V"^ ,          V8X  g   Q hV"^,          V^,           8X  g   Q hV"^,          V^,           8X  g   Q hV"^,          V	^,           8X  g   Q hV ! V4      V! V4      ,
          p#V#^ ,          V8X  g   Q hV#^,          V^,
          8X  g   Q hV#^,          V^,
          8X  g   Q hV#^,          V	^,
          8X  g   Q hV"V! V) 4      ,          P                  V) ^V,          ,
          ^V	,          ,
          ^,
          8X  g   Q hVV ! V4      ,          VV! V4      ,          ,           p$V$V! V4      ,          R,          p%V%^V,          V! VV4      ,          ,           p&V&^,          p'V'^,          V&8X  g   Q hV'V! V) V) 4      ,          p(V(P                  P	                  4       ^V,          V,          ^V,          V,          ,           ^V,          V,          ,           ^V	,          V,          ,           ^ˆV,          ,           ^V,          ,           8X  g   Q h RRR4       R#   + '       g   i     R# ; i)zx1:4Nr»  )rÌ   rÌ   rÛ   )r.   r¶  r   r«  r   ))r?   r@   r‘  r’  rA   r:   r“   r  r  r  r“  r¯  r°  r±  r”  r³  r´  rµ  r•  r–  r—  r­  r®  r²  r•   r–   r—   r˜   r™   Úx1Úx2Úx3Ú
rank2coeffÚ
coeff_exprÚadd_exprÚsub_exprr  r  r  r  Úexpr5s)                                            r6   Útest_valued_tensor_expressionsrÕ  �  sç  € Ü	×	!Õ	!äQpÓQrñ	Oˆˆr�q 1¨"°(ÀÈ3ÐTVØ	ˆR��R˜ I¨z¸2¸rÀ2ÀrÈ2ä˜V“_‰
ˆˆB�ð ™!˜B›%•Z¡! B£%Õ'ˆ
Ø˜$Õ 2¨¥7Ô*Ð*Ð*Ø˜$Õ 1 r¥6¨B¥;Ô.Ð.Ð.Ø™A˜b›E•z¡a¨¨£f¨r¥kÕ2×8Ñ8ˆ
à× Ñ Ó" r c¨"¥f¨R¥i°!°Bµ$°rµ'¸"µ*Õ&<¸qÀ½tÀB½wÀr½zÕ&IÔIÐIÐIá�R“5™1˜R›5•=ˆà˜�{˜aÔÐÐØ˜�{˜b 1�fÔ$Ð$Ð$Ø˜�{˜b 1�fÔ$Ð$Ð$Ø˜�{˜b 1�fÔ$Ð$Ð$á�R“5™1˜R›5•=ˆà˜�{˜aÔÐÐØ˜�{˜b 1�fÔ$Ð$Ð$Ø˜�{˜b 1�fÔ$Ð$Ð$Ø˜�{˜b 1�fÔ$Ð$Ð$à™1˜b˜S›6Õ!×'Ñ'¨B¨3°°2µ­:¸¸"½Õ+<¸rÕ+AÔAÐAÐAà‘1�R“5•˜2™a ›e�8Õ#ˆØ™˜"›• Õ$ˆØ˜˜"�™R  B›Z�Õ'ˆØ˜•	ˆØ�q�y˜EÔ!Ð!Ð!Ø™˜R˜C " ›Õ%ˆà�z‰z× Ñ Ó" b¨¥d¨2¥g°°2µ°bµÕ&8¸2¸b½5À½8Õ&CÀbÈÅeÈBÅhÕ&NÐQTÐUWÕQWÕ&WÐZ[Ð\^ÕZ^Õ&^Ô^Ð^Ñ^÷K 
"×	!×	!Ò	!ús   “L2MÍM!	c                  ó  € \        4       ;_uu_ 4        \        4       w  rr#rErgr‰r«rÍrïpppppppppppppV ! V4      V ! V) 4      ,          V^,          V^,          ,
          V^,          ,
          V	^,          ,
          ,
          pVP                  ^ 8X  g   Q hV^,          V^,          ,
          V^,          ,
          V	^,          ,
          V ! V4      V ! V) 4      ,          ,
          pVP                  ^ 8X  g   Q hV ! V4      V ! V) 4      ,          V^,          ,
          V^,          ,           V^,          ,           V	^,          ,           pVP                  ^ 8X  g   Q hV! V4      V! V) 4      ,          ^V^,          ,          ,           ^V^,          ,          ,
          ^V^,          ,          ,
          ^V	^,          ,          ,
          V ! V4      V ! V) 4      ,          ,
          p V P                  ^ 8X  g   Q h RRR4       R#   + '       g   i     R# ; irÊ  rÇ  )!r?   r@   r‘  r’  rA   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  s!                                    r6   Útest_valued_tensor_add_scalarr×  ¶  s™  € Ü	×	!Õ	!äQpÓQrñ	Oˆˆr�q 1¨"°(ÀÈ3ÐTVØ	ˆR��R˜ I¨z¸2¸rÀ2ÀrÈ2ñ �"“‘a˜˜“f•  1¥ r¨1¥u¥¨r°1­uÕ 4°r¸1µuÕ <Õ=ˆØ�z‰z˜QŒÐˆð �1•�r˜1•u•˜r 1�uÕ$ r¨1¥uÕ,©q°«u±Q¸°s³V­|Õ;ˆØ�z‰z˜QŒÐˆñ �2“‘q˜"˜“v•  1¥Õ$ r¨1¥uÕ,¨r°1­uÕ4°r¸1µuÕ<ˆØ�z‰z˜QŒÐˆñ �#“‘q˜#˜“w•  1 a¥4¥Õ'¨!¨B°­E­'Õ1°A°b¸!µeµGÕ;¸aÀÀAÅ½gÕEÉÈ"ËÉaÐQSÐPSËfÍÕTˆØ�z‰z˜QŒÐ‰÷% 
"×	!×	!Ò	!ús   “GG:Ç:H	c                  óŒ  € \        4       ;_uu_ 4        \        4       w  rr#rErgr‰r«rÍrïppppppppppppp\        R 4      p^^.Vn        \	        RV4      w  ppp\        RRR7      w  ppp p!\        RV.^,          4      p"VV.V V!3.V"n        \        RV.^,          4      p#VV .VV!..V#n        V"! VV4      V#! V) V) 4      ,          p$V$P                  V^,          V^,          ,           V ^,          ,           V!^,          ,           8X  g   Q hV$P                  V^,          ^V,          V ,          ,           V!^,          ,           8w  g   Q hV"! VV4      V"! V) V) 4      ,          p%V%P                  V^,          VV ,          ,           V V,          ,           V!^,          ,           8X  g   Q hV%P                  V^,          ^V,          V ,          ,           V!^,          ,           8w  g   Q hVV"! VV) 4      ,          P                  p&V&P                  4       VV,          VV!,          ,           8X  g   Q h RRR4       R#   + '       g   i     R# ; i)Ú	Euclideanzi1:4za b c dF)ÚcommutativeÚV1ÚV2N)r.   r¶  r   r«  r   r   r#   r   )'r?   r@   r‘  r’  rA   r:   r“   r  r  r  r“  r¯  r°  r±  r”  r³  r´  rµ  r•  r–  r—  r­  r®  r²  r•   r–   r—   r˜   r™   ÚeuclidrE   rF   rO   rP   rÛ  rÜ  ÚvtpÚvtp2ÚVcs'                                          r6   Útest_noncommuting_componentsrá  Ë  sú  € Ü	×	!Õ	!äQpÓQrñ	Oˆˆr�q 1¨"°(ÀÈ3ÐTVØ	ˆR��R˜ I¨z¸2¸rÀ2ÀrÈ2ä  Ó-ˆØ˜!�fˆŒÜ# F¨FÓ3‰
ˆˆB�ä˜Y°EÔ:‰
ˆˆ1ˆa�Ü˜˜v˜h q�jÓ)ˆØ�q�6˜A˜q˜6Ð"ˆŒÜ˜˜v˜h q�jÓ)ˆØ�q�6˜A˜q˜6Ð"ˆŒá��R‹j™2˜r˜c B 3›<Õ'ˆà�x‰x˜1˜a�4 ! Q¥$�;¨¨A­Õ-°°1µÕ4Ô4Ð4Ð4Ø�x‰x˜1˜a�4 ! A¥# a¥%�<¨!¨Q­$Õ.Ô.Ð.Ð.á�"�b‹z™"˜b˜S 2 #›,Õ&ˆà�y‰y˜A˜q�D 1 Q¥3�J¨¨1­Õ,¨q°!­tÕ3Ô3Ð3Ð3Ø�y‰y˜A˜q�D 1 Q¥3 q¥5�L¨1¨a­4Õ/Ô/Ð/Ð/à‘"�R˜"˜“+�o×#Ñ#ˆØ�y‰y‹{˜a !�e a¨!¥e�mÔ+Ð+Ñ+÷3 
"×	!×	!Ò	!ús   “HH2È2I	c                  ó˜  € \        4       ;_uu_ 4        \        4       w  rr#rErgr‰r«rÍrïppppppppppppp\        V4      pV! V4      V! V) 4      ,          P                  V! V4      P	                  4       P
                  V,          V! V4      P	                  4       ,          R,          8X  g   Q h RRR4       R#   + '       g   i     R# ; i)r   N)r   r   )r.   r¶  r   r«  r¿  rO  )r?   r@   r‘  r’  rA   r:   r“   r  r  r  r“  r¯  r°  r±  r”  r³  r´  rµ  r•  r–  r—  r­  r®  r²  r•   r–   r—   r˜   r™   Úmmatrixs                                 r6   Útest_valued_non_diagonal_metricrä  è  s®   € Ü	×	!Õ	!äQpÓQrñ	Oˆˆr�q 1¨"°(ÀÈ3ÐTVØ	ˆR��R˜ I¨z¸2¸rÀ2ÀrÈ2ä˜Ó$ˆÙ�2“‘r˜2˜#“w•×$Ñ$©¨B«×):Ñ):Ó)<×)>Ñ)>ÀÕ)HÉ2ÈbË6×K\ÑK\ÓK^Õ)^Ð`dÕ(eÔeÐeÑe÷ 
"×	!×	!Ò	!ús   “BB8Â8C		c                  ób  € \        4       ;_uu_ 4        \        4       w  rr#rErgr‰r«rÍrïpppppppppppppV^,           V^,
          W‰.p\        V4      V n        \	        ^4       F*  pV ! V4      P                  V,          VV,          8X  d   K*  Q h	  \        R4      w  pp p!\        VVV V!.4      V ! V) 4      n        \	        ^4       FY  pV ! V4      P                  V,          VV) V ) V!) .V,          8X  g   Q hV P                  V,          VV) V ) V!) .V,          8X  d   KY  Q h	  \	        ^4       U"Uu. uFH  p"\	        ^4       Uu. uF/  pV^,          ^V^,          ,          ,
          V"^,           ,          NK1  	  upNKJ  	  p#p"pV#V! V) V) 4      n        \	        ^4       EF$  p\	        ^4       EF  p"V! VV4      P                  VV"3,          V#V,          V",          V'       d   RM^,          V"'       d   RM^,          8X  g   Q hV! V) V4      P                  VV"3,          V#V,          V",          V"'       d   RM^,          8X  g   Q hV! VV) 4      P                  VV"3,          V#V,          V",          V'       d   RM^,          8X  g   Q hV! V) V) 4      P                  VV"3,          V#V,          V",          8X  d   EK  Q h	  EK'  	  V#V! V) V4      n        \	        ^4       EF$  p\	        ^4       EF  p"V! VV4      P                  VV"3,          V#V,          V",          V'       d   RM^,          8X  g   Q hV! V) V4      P                  VV"3,          V#V,          V",          8X  g   Q hV! VV) 4      P                  VV"3,          V#V,          V",          V'       d   RM^,          V"'       d   RM^,          8X  g   Q hV! V) V) 4      P                  VV"3,          V#V,          V",          V"'       d   RM^,          8X  d   EK  Q h	  EK'  	  RRR4       R# u upi u upp"i   + '       g   i     R# ; i)rS  zqx qy qzNrg   )r.   r¶  r   r«  r¬  r   )$r?   r@   r‘  r’  rA   r:   r“   r  r  r  r“  r¯  r°  r±  r”  r³  r´  rµ  r•  r–  r—  r­  r®  r²  r•   r–   r—   r˜   r™   Úarrrz   ÚqxÚqyÚqzrÿ   Úrandom_4x4_datas$                                       r6   Ú test_valued_assign_numpy_ndarrayrë  ñ  s¯  € Ü	×	!Õ	!äQpÓQrñ	Oˆˆr�q 1¨"°(ÀÈ3ÐTVØ	ˆR��R˜ I¨z¸2¸rÀ2ÀrÈ2ð ��s�B�q•D˜"Ð!ˆÜ�s“ˆŒÜ�q–ˆAÙ˜“u—z‘z !•}¨¨A­Ö.Ð.Ð.ñ ô ˜ZÓ(‰
ˆˆB�Ü˜Q  B¨˜OÓ,‰ˆ2ˆ#‹ŒÜ�q–ˆAÙ�R“5—:‘:˜a•= Q¨¨¨b¨S°2°#Ð$6°qÕ$9Ô9Ð9Ð9Ø—6‘6˜!•9  R C¨"¨¨r¨cÐ 2°1Õ 5Ö5Ð5Ð5ñ ô
 MRÐRSÌHÔUÉHÀq¼¸q¼ÓB¹°A˜Q �T ! A q¥D¥&�[¨1¨Q­3×/Ð/¹ÔBÉHˆÑUØ+‰ˆBˆ3��‹Ôä�q—ˆAÜ˜1—X�Ù˜"˜b“z—‘ q¨! tÕ,°ÀÕ0BÀ1Õ0EÏQÁrÐTUÕ0V×^_ÑXZÐefÕ0gÔgÐgÐgÙ˜2˜#˜r“{×'Ñ'¨¨1¨Õ-°ÀÕ1CÀAÕ1FÏaÉÐUVÕ1WÔWÐWÐWÙ˜"˜r˜c“{×'Ñ'¨¨1¨Õ-°ÀÕ1CÀAÕ1FÏaÉÐUVÕ1WÔWÐWÐWÙ˜2˜# ˜s“|×(Ñ(¨¨A¨Õ.°/À!Õ2DÀQÕ2G×GÐGÐGô	 ñ ð +‰ˆBˆ3�‹ÔÜ�q—ˆAÜ˜1—X�Ù˜"˜b“z—‘ q¨! tÕ,°ÀÕ0BÀ1Õ0EÏQÁrÐTUÕ0VÔVÐVÐVÙ˜2˜#˜r“{×'Ñ'¨¨1¨Õ-°ÀÕ1CÀAÕ1FÔFÐFÐFÙ˜"˜r˜c“{×'Ñ'¨¨1¨Õ-°ÀÕ1CÀAÕ1FÏaÉÐUVÕ1W×_`ÑY[ÐfgÕ1hÔhÐhÐhÙ˜2˜# ˜s“|×(Ñ(¨¨A¨Õ.°/À!Õ2DÀQÕ2GÏqÉÐVWÕ2X×XÐXÐXô	 ñ ÷; 
"Ñ	!ùò$ CùÓU÷% 
"×	!Ð	!úsr   “A4PÂBPÄPÄ0P
Å5PÅ7P
Å>A3PÇ2APÈ5APÉ8>PÊ<CPÎPÎ*APÏ.PÏ?	PÐP
ÐPÐP.	c                  óh  € \        4       ;_uu_ 4        \        4       w  rr#rErgr‰r«rÍrïppppppppppppp. RO. RO. RO. RO.pVVn        \        V4      pVP                  pVP                  4       p \        ^4      p!VP                  4       p"\        ^4       EF{  p#\        ^4       EFg  p$V! VV4      P                  V#V$3,          VV#V$3,          8X  g   Q hV! V) V) 4      P                  V#V$3,          V V#V$3,          8X  g   Q hV! VV) 4      P                  V#V$3,          V!V#V$3,          8X  g   Q hV! V) V4      P                  V#V$3,          V!V#V$3,          8X  g   Q hV! VV4      V#V$3,          VV#V$3,          8X  g   Q hV! V) V) 4      V#V$3,          V V#V$3,          8X  g   Q hV! VV) 4      V#V$3,          V!V#V$3,          8X  g   Q hV! V) V4      V#V$3,          V!V#V$3,          8X  g   Q hV"! VV) 4      V#V$3,          V!V#V$3,          8X  d   EKh  Q h	  EK~  	  RRR4       R#   + '       g   i     R# ; i)rÚ   N)rÚ   rÚ   rÚ   rS  )rÚ   rÌ   rS  r   )rÚ   rS  rÚ   rÌ   )rS  r   rÌ   rÚ   )	r.   r¶  r«  r   r½   Úinvr   Úget_kronecker_deltar¬  )%r?   r@   r‘  r’  rA   r:   r“   r  r  r  r“  r¯  r°  r±  r”  r³  r´  rµ  r•  r–  r—  r­  r®  r²  r•   r–   r—   r˜   r™   Úmdr  r½   ÚminvÚmeyeÚKDrz   rÿ   s%                                        r6   Útest_valued_metric_inverseró    s4  € Ü	×	!Õ	!äQpÓQrñ	Oˆˆr�q 1¨"°(ÀÈ3ÐTVØ	ˆR��R˜ I¨z¸2¸rÀ2ÀrÈ2ò
 šLª,ºÐEˆØˆŒÜ�2‹JˆØ—‘ˆØ�u‰u‹wˆä�1‹vˆð ×(Ñ(Ó*ˆä�q—ˆAÜ˜1—X�Ù˜b "“~×*Ñ*¨1¨a¨4Õ0°A°a¸°dµGÔ;Ð;Ð;Ù˜r˜c B 3Ó'×,Ñ,¨Q°¨TÕ2°d¸1¸a¸4µjÔ@Ð@Ð@Ù˜b 2 #“×+Ñ+¨A¨q¨DÕ1°T¸!¸Q¸$µZÔ?Ð?Ð?Ù˜r˜c 2“×+Ñ+¨A¨q¨DÕ1°T¸!¸Q¸$µZÔ?Ð?Ð?Ù˜b "“~ a¨ dÕ+¨q°°A°­wÔ6Ð6Ð6Ù˜r˜c B 3Ó'¨¨1¨Õ-°°a¸°dµÔ;Ð;Ð;Ù˜b 2 #“ q¨! tÕ,°°Q¸°Tµ
Ô:Ð:Ð:Ù˜r˜c 2“ q¨! tÕ,°°Q¸°Tµ
Ô:Ð:Ð:á˜"˜r˜c“{ 1 a 4Õ(¨D°°A°­J×6Ð6Ð6ô ñ ÷% 
"×	!×	!Ò	!ús   “G4H È	H È H1	c                  ó®  € \        4       ;_uu_ 4        \        4       w  rr#rErgr‰r«rÍrïpppppppppppppV ! V4      V ! V4      ,          pVP                  4       pVV ! V4      V ! V4      ,          8X  g   Q h\        ^4       F0  p\        ^4       F  p VVV 3,          VV V3,          8X  d   K  Q h	  K2  	  V! V4      V ! V4      ,          V! V4      ,          p!V!P                  4       p"\        ^4       FD  p\        ^4       F2  p \        ^4       F   p#V!VV V#3,          V"V VV#3,          8X  d   K   Q h	  K4  	  KF  	  RRR4       R#   + '       g   i     R# ; irÆ  )r.   r¶  r$   r¬  )$r?   r@   r‘  r’  rA   r:   r“   r  r  r  r“  r¯  r°  r±  r”  r³  r´  rµ  r•  r–  r—  r­  r®  r²  r•   r–   r—   r˜   r™   Úe1Úe2rz   rÿ   Úo1Úo2r   s$                                       r6   Útest_valued_canon_bp_swapaxesrù  8  s5  € Ü	×	!Õ	!äQpÓQrñ	Oˆˆr�q 1¨"°(ÀÈ3ÐTVØ	ˆR��R˜ I¨z¸2¸rÀ2ÀrÈ2áˆr‹U‘1�R“5�[ˆØ�[‰[‹]ˆØ‘Q�r“U™1˜R›5•[Ô Ð Ð Ü�q–ˆAÜ˜1–X�Ø˜!˜Q˜$•x 2 a¨ d¥8Ö+Ð+Ð+ó ñ ñ ˆr‹U‘1�R“5�[™˜2›ÕˆØ�[‰[‹]ˆÜ�q–ˆAÜ˜1–X�Ü˜qž�AØ˜a  A˜g�;¨"¨Q°°1¨W­+Ö5Ð5Ð5ó "ó ñ ÷ 
"×	!×	!Ò	!ús   “BEÂ,A<EÄ-EÅE	c            	      ó6  aaaa	a
a€ \        4       ;_uu_ 4        \        R ^R7      p \        RV 4      w  rr4. R
OV n        \	        RV .^,          4      p\	        RV .^,          \
        P                  ! ^4      4      o\	        RV .^,          \
        P                  ! R4      4      o\        . RO. RO. RO.4      o
S
S
P                  ,           oS
S
P                  ,
          o	S
Vn        SVn        S	Vn        R oSSn        \        \        VVV
3R l4       \        \        VVV	3R l4       S	Sn        \        \        VVV3R l4       \        \        VVV
3R l4       . RO. RO. RO.Sn        . RO. RO. RO.Sn        R	R	R	4       R	#   + '       g   i     R	# ; i)ÚITr®   úi0:4r?   c                 ó   € Wn         R # r1   )r«  )r?   Údats   &&r6   ÚassignÚ:test_valued_components_with_wrong_symmetry.<locals>.assign\  s   € ØŽFr8   c                  ó   <€ S! S S4      # r1   rÐ   )ÚA_symrÿ  Ú	mat_nosyms   €€€r6   rÍ   Ú<test_valued_components_with_wrong_symmetry.<locals>.<lambda>`  s   ø€ ¡6¨%°Ô#;r8   c                  ó   <€ S! S S4      # r1   rÐ   )r  rÿ  Úmat_antisyms   €€€r6   rÍ   r  a  s   ø€ ¡6¨%°Ô#=r8   c                  ó   <€ S! S S4      # r1   rÐ   )Ú	A_antisymrÿ  Úmat_syms   €€€r6   rÍ   r  d  s   ø€ ¡6¨)°WÔ#=r8   c                  ó   <€ S! S S4      # r1   rÐ   )r  rÿ  r  s   €€€r6   rÍ   r  e  s   ø€ ¡6¨)°YÔ#?r8   N©rS  rS  rS  rf   )rS  rÚ   rÌ   )r�  rŸ  r   )r¡  r¢  r¤  )r   r   r   )r.   r   r   r«  r#   r   rD   r   rO  r,   rÖ   )rû  r•   r–   r—   r˜   ÚA_nosymr  r  rÿ  r  r  r	  s         @@@@@@r6   Ú*test_valued_components_with_wrong_symmetryr  K  s-  ý€ Ü	×	!Õ	!Ü˜T qÔ)ˆÜ'¨°Ó3‰ˆ�ÚˆŒÜ˜S 2 $ q¥&Ó)ˆÜ˜3   Q¥¬×(FÒ(FÀqÓ(IÓJˆÜ˜s R D¨¥F¬N×,JÒ,JÈ2Ó,NÓOˆ	äšG¢GªGÐ4Ó5ˆ	Ø˜iŸk™kÕ)ˆØ )§+¡+Õ-ˆà ˆŒØˆŒØ"ˆŒò	ð ˆŒ
ÜŒzÖ;Ô<ÜŒzÖ=Ô>à$ˆ	ŒÜŒzÖ=Ô>ÜŒzÖ?Ô@â¢ªIÐ6ˆŒ
Ú#¢Y²	Ð:ˆ	Œ÷9 
"×	!×	!Ò	!ús   ™E$FÆF	c            	      óâ  € \        4       ;_uu_ 4        \        R ^R^R7      p R^.V n        \        RV 4      w  rr4\	        RV .4      p^^ .Vn        \	        RV .^,          \
        P                  ! R4      4      p^ ^.R^ ..Vn        V! W4      V! V) 4      ,          V! W$4      ,          V! V) 4      ,          pVP                  \        ^ ^ .^ ^..4      8X  g   Q hV! W4      V! W$4      ,          V! V) 4      ,          V! V) 4      ,          pVP                  VP                  8X  g   Q hWw,           P                  ^VP                  ,          8X  g   Q h RRR4       R#   + '       g   i     R# ; i)	r:   rz   ©rY   r=   r”   ú\mu, \nu, \alpha, \betaÚurc   Nrg   rf   )r.   r   r«  r   r#   r   rD   r   )	r:   rq   rr   rn   ro   r  rc   Úmul_1Úmul_2s	            r6   Útest_issue_10972_TensMul_datar  j  sF  € Ü	×	!Õ	!Ü! )¸QÈ3ÐTUÔVˆØ˜A�wˆŒä,Ð-JØ-4ó6Ñˆ�ô �s˜W˜IÓ&ˆØ�Q�ˆŒä�s˜W˜I a�K¬×)GÒ)GÈÓ)KÓLˆØ�a�&Ø�q�'ðˆŒñ �"“™q % ›yÕ(©1¨R«;Õ6¹¸D¸5»ÕAˆØ—
‘
œe a¨ V¨a°¨VÐ$4Ó5Ô5Ð6Ð5á�"“™q ›{Õ*©Q°¨v«YÕ6¹¸D¸5»ÕAˆØ—
‘
˜eŸj™jÔ(Ð)Ð(à•×$Ñ$¨¨E¯J©J­Ô6Ð7Ñ6÷) 
"×	!×	!Ò	!ús   “D?EÅE.	c                  óÌ  € \        4       ;_uu_ 4        \        R ^R^R7      p . R	OV n        \        RV 4      w  rr4\	        RV .4      p. R
OVn        \	        RV .^,          \
        P                  ! R4      4      p\        R4      w  rxršr¼^ WxV	.V) ^ WË) .V) V) ^ V
.V	) Wº) ^ ..Vn        V! W4      V! V) 4      ,          pV! V4      V! V4      ,          P                  \        . RO^ V^,          Wx,          Wy,          .^ Wx,          V^,          W‰,          .^ Wy,          W‰,          V	^,          ..4      8X  g   Q hV! V4      V! V4      ,          P                  4       P                  V! V4      V! V4      ,          P                  8X  g   Q hV! W4      V! WB4      ,          V! V) 4      ,          V! V) 4      ,          P                  V! V4      V! V4      ,          P                  ) 8X  g   Q hV! W14      V! WB4      ,          V! V) 4      ,          V! V) 4      ,          P                  V! V4      V! V4      ,          P                  8X  g   Q h\	        RV .^,          \
        P                  ! ^4      4      pV P                  Vn        V! V4      V! V4      ,          V! W4      ,           pV! V) 4      V! W4      ,          pVP                  \        . RO4      8X  g   Q hV! V) 4      V! W4      ,          V! W$4      ,          pVP                  \        P                  ! ^^^4      8X  g   Q hV! W4      V! W$4      ,          V! V) V) 4      ,          pVP                  R,          \        . RO4      8X  g   Q hVP                  R,          \        . RO4      8X  g   Q hV! V) 4      V! W4      ,          pVP                  \        . RO4      8X  g   Q hV=RRR4       R#   + '       g   i     R# ; i)r:   r;   r  r  r  rc   zE_x E_y E_z B_x B_y B_zrº   Nr¨  r˜  rf   )r   r   r   r   )r   ºNNN)r  r   )r.   r   r«  r   r#   r   rD   r   r   r$   Úzeros)r:   rq   rr   rn   ro   r  rc   ÚExÚEyÚEzÚBxÚByÚBzr“   rº   Úperpr  r  ÚFperpÚmul_3s                       r6   Útest_TensMul_datar!  ‚  sp  € Ü	×	!Õ	!Ü! )¸QÈ3ÐTUÔVˆÚ$ˆŒä,Ð-JØ-4ó6Ñˆ�ô �s˜W˜IÓ&ˆÚˆŒä�s˜W˜I a�K¬×)GÒ)GÈÓ)KÓLˆÜ!(Ð)BÓ!CÑˆ�˜à�˜ˆOØˆS�!�R˜ÐØˆS�2�#�q˜"ÐØˆS�"�c˜1Ðð	ˆŒñ ˆb‹I™˜2˜#›Õˆá�2“™˜2›•×$Ñ$Ü’|Ø  q¥¨"­'°2µ7Ð;Ø ¥¨"°­'°2µ7Ð;Ø ¥¨"­'°2¸µ7Ð;ð=ó >ô>ð 	ð >ñ �2“™˜2›•×(Ñ(Ó*×/Ñ/±A°b³E¹A¸b»EµM×3GÑ3GÔGÐHÐGá�2“¡ $£Õ+©a°°«iÕ7¹!¸T¸E»(ÕB×HÑHÙ�R“5™1˜R›5•=×&Ñ&Ð&ô'ð 	ð 'ñ �5“¡ $£Õ+©a°°«iÕ7¹!¸T¸E»(ÕB×HÑHÙ�2“™˜2›•×$Ñ$ô%ð 	ð %ô �s˜W˜I a�K¬×)GÒ)GÈÓ)JÓKˆØ—‘ˆŒñ �‹u‘q˜“u�}™q ›yÕ(ˆá�2�#“™˜b›Õ%ˆØ—
‘
œe¢LÓ1Ô1Ð2Ð1á�2�#“™˜b›Õ(©4°«>Õ9ˆØ—
‘
œeŸkšk¨!¨Q°Ó2Ô2Ð3Ð2á�R“¡$ r£.Õ0±1°e°V¸d¸UÓ3CÕCˆØ—
‘
˜4Õ ¤Eª,Ó$7Ô7Ð8Ð7Ø—
‘
˜4Õ ¤Eª,Ó$7Ô7Ð8Ð7á�2�#“™˜r›Õ&ˆØ—
‘
œe¢LÓ1Ô1Ð2Ð1ð ˆF÷q 
"×	!×	!Ò	!ús   “N5OÏO#	c            	      óL  € \        4       ;_uu_ 4        \        R ^R^R7      p R^.V n        \        RV 4      w  rr4\        RV 4      w  rV\	        RV .^,          \
        P                  ! ^4      4      pV P                  Vn        \	        RV .4      p^^ .Vn        V! W#4      V! WE4      ,          V! V) 4      ,          V! W#4      V! V4      ,          ,
          p	V	P                  \        P                  ! ^^^4      8X  g   Q hV! W#4      V! W4      ,          V! V) 4      ,          V! W#4      V! V4      ,          ,
          p
V
P                  \        P                  ! ^^^4      8X  g   Q hV! V4      V! V4      ,          V! W4      ,           pV! V) 4      V! W4      ,          pVP                  \        ^ ^ .4      8X  g   Q hV! V) 4      V! W14      ,          V! WB4      ,          pVP                  \        P                  ! ^^^4      8X  g   Q h RRR4       R#   + '       g   i     R# ; i)	r:   rz   r  rN   zi_0:2rº   r  Nrg   )	r.   r   r«  r   r#   r   rD   r   r  )r:   rE   rF   rO   rP   r•   r–   rº   r  Úadd_1Úadd_2r  r  r  s                 r6   Útest_issue_11020_TensAdd_datar%  ½  s¹  € Ü	×	!Õ	!Ü! )¸QÈ3ÐTUÔVˆØ˜A�wˆŒä# L°'Ó:‰
ˆˆaÜ ¨Ó1‰ˆô �s˜W˜I a�K¬×)GÒ)GÈÓ)JÓKˆØ—‘ˆŒä�s˜W˜IÓ&ˆØ�Q�ˆŒá�!“™!˜A›(Õ"¡Q¨ s£VÕ+©a°«g¹¸!»­nÕ<ˆØ—
‘
œeŸkšk¨!¨Q°Ó2Ô2Ð3Ð2á�!“™!˜A›(Õ"¡Q¨ s£VÕ+©a°«g¹¸!»­nÕ<ˆØ—
‘
œeŸkšk¨!¨Q°Ó2Ô2Ð3Ð2ñ �‹t‘a˜“d�{™Q˜q›WÕ$ˆÙ�1�"“™˜Q›
Õ"ˆØ—
‘
œe Q¨ F›mÔ+Ð,Ð+á�1�"“™˜Q›
Õ"¡T¨!£ZÕ/ˆØ—
‘
œeŸkšk¨!¨Q°Ó2Ô2Ð3Ñ2÷7 
"×	!×	!Ò	!ús   “G4HÈH#	c                  ó€  € \        R RR7      p \        RV 4      w  rr4p\        RV 4      p\        RV 4      p\        RW .4      p\        RW .\        P                  ! ^4      4      p	V! W4      p
V! W) 4      pV! W4      V	! W44      ,          pV! W4      V	! W2) 4      ,          pV! W4      V	! V) V) 4      ,          pW­,           p\        V
P                  4      VR	3VR
3.8X  g   Q h\        V
P                  4      . 8X  g   Q h\        V
P                  4      VR	3VR
3.8X  g   Q h\        VP                  4      . 8X  g   Q h\        VP                  4      VR	3V) R
3.8X  g   Q h\        VP                  4      VR	3V) R
3.8X  g   Q h\        VP                  4      VR3VR3VR3VR3.8X  g   Q h\        VP                  4      . 8X  g   Q h\        VP                  4      VR3VR3VR3VR3.8X  g   Q h\        VP                  4      VR3VR3.8X  g   Q h\        VP                  4      VR3V) R3.8X  g   Q h\        VP                  4      VR3VR3VR3V) R3.8X  g   Q h\        VP                  4      . 8X  g   Q h\        VP                  4      VR3VR3V) R3V) R3.8X  g   Q h\        VP                  4      VR3VR3V) R3V) R3.8X  g   Q h\        VP                  4      VR3VR3VR3VR3.8X  g   Q h\        VP                  4      VR3V) R3.8X  g   Q h\        VP                  4      VR3VR3VR3V) R3VR3VR3.8X  g   Q hV
P                  4       W.8X  g   Q hV
P                  4       W.8X  g   Q hVP                  4       Wf) .8X  g   Q hVP                  4       . 8X  g   Q hVP                  4       WW4.8X  g   Q hVP                  4       WW4.8X  g   Q hVP                  4       WW6) .8X  g   Q hVP                  4       W.8X  g   Q hVP                  4       WgV) V) .8X  g   Q hVP                  4       . 8X  g   Q hR# )r:   r;   r<   r�  rÊ   ÚL_1r?   r@   N)rS  r   r»  rª  )r   rS  rS  r©  r  )r   r   rS  r   )r   rS  rS  r   )r   r   rS  rS  )r   rS  rS  rS  )r   r   r#   r   rD   r|   Ú_iterate_free_indicesÚ_iterate_dummy_indicesÚ_iterate_indicesrÕ   Úget_free_indices)r;   r•   r–   r—   r˜   r™   ÚL0ÚL1r?   r@   rõ  rö  Úe3Úe4Úe5Úe6s                   r6   Útest_index_iterationr2  Ü  s   € Ü˜	¨cÔ2€AÜ'¨°Ó2Ñ€BˆB�BÜ	˜˜qÓ	!€BÜ	˜˜qÓ	!€BÜ�3˜˜Ó€AÜ�3˜˜¤× >Ò >¸qÓ AÓB€Aá	
ˆ2‹€BÙ	
ˆ2ˆc‹€BÙ	
ˆ2‹‘!�B“(Õ	€BÙ	
ˆ2‹‘!�B�s“)Õ	€BÙ	
ˆ2‹‘!�R�C˜˜“*Õ	€BØ	�€Bä�×(Ñ(Ó)¨r°6¨l¸RÀ¸LÐ-IÔIÐIÐIÜ�×)Ñ)Ó*¨bÔ0Ð0Ð0Ü�×#Ñ#Ó$¨"¨f¨¸¸F°|Ð(DÔDÐDÐDä�×(Ñ(Ó)¨RÔ/Ð/Ð/Ü�×)Ñ)Ó*°°F¨|¸r¸cÀ6¸]Ð.KÔKÐKÐKÜ�×#Ñ#Ó$¨"¨f¨¸¸¸V°}Ð(EÔEÐEÐEä�×(Ñ(Ó)¨r°9¨oÀÀI¸ÐQSÐU^ÐP_ÐbdÐfoÐapÐ-qÔqÐqÐqÜ�×)Ñ)Ó*¨bÔ0Ð0Ð0Ü�×#Ñ#Ó$¨"¨i¨¸2¸y¸/ÈBÐPYÈ?Ð]_ÐajÐ\kÐ(lÔlÐlÐlä�×(Ñ(Ó)¨r°9¨oÀÀI¸Ð-OÔOÐOÐOÜ�×)Ñ)Ó*°°I¨À"ÀÀiÐ@PÐ.QÔQÐQÐQÜ�×#Ñ#Ó$¨"¨i¨¸2¸y¸/ÈBÐPYÈ?Ð^`Ð]`ÐbkÐ\lÐ(mÔmÐmÐmä�×(Ñ(Ó)¨RÔ/Ð/Ð/Ü�×)Ñ)Ó*°°I¨ÀÀYÀÐSUÐRUÐW`ÐQaÐegÐdgÐirÐcsÐ.tÔtÐtÐtÜ�×#Ñ#Ó$¨"¨i¨¸2¸y¸/ÈRÈCÐQZÐK[Ð_aÐ^aÐclÐ]mÐ(nÔnÐnÐnä�×(Ñ(Ó)¨r°<Ð.@À2À|ÐBTÐWYÐ[dÐVeÐhjÐluÐgvÐ-wÔwÐwÐwÜ�×)Ñ)Ó*°°LÐ/AÀRÀCÈÐCVÐ.WÔWÐWÐWÜ�×#Ñ#Ó$¨"¨lÐ);¸bÀ,Ð=OÐRTÐVbÐQcÐgiÐfiÐkwÐexÐ{}ð  @Ið  {Jð  MOð  QZð  L[ð  )\ô  \ð  \ð  \à�>‰>Ó ˜xÔ'Ð'Ð'Ø×ÑÓ  R HÔ,Ð,Ð,Ø�>‰>Ó  C˜yÔ(Ð(Ð(Ø×ÑÓ  BÔ&Ð&Ð&Ø�>‰>Ó ¨Ð/Ô/Ð/Ð/Ø×ÑÓ  R¨RÐ$4Ô4Ð4Ð4Ø�>‰>Ó ¨¨CÐ0Ô0Ð0Ð0Ø×ÑÓ  R HÔ,Ð,Ð,Ø�>‰>Ó ¨¨¨b¨SÐ1Ô1Ð1Ð1Ø×ÑÓ  BÔ&Ð&Ò&r8   c                  ó¸  € \        R 4      p \        RV 4      w  rp\        RV 4      p\        RV .4      w  rVrx\	        R4      p	\        R4      p
\        \        V! V4      V! V4      4      \        4      '       g   Q h\        \        V! V4      V! V4      ,           4      \        4      '       g   Q hV! V4      V! V) 4      V! V) 4      ,           ,          pVP                  V! V4      V! V) 4      V! V) 4      ,           38X  g   Q hWµ! V4      V! V) 4      ,          V! V4      V! V) 4      ,          ,           8w  g   Q hVP                  4       V! V4      V! V) 4      ,          V! V4      V! V) 4      ,          ,           8X  g   Q h\        V4      R8X  g   Q hV! V4      V! V4      ,          V! V4      V! V4      ,          ,           p\        V4      R8X  g   Q hV! V) 4      V! V4      V! V4      ,          V! V4      V! V4      ,          V! V4      ,          V! V) 4      ,          ,           ,          pWµ! V) 4      V! V4      ,          V! V4      ,          V! V) 4      V! V4      ,          V! V4      ,          V! V4      ,          V! V) 4      ,          ,           8w  g   Q hVP                  4       V! V) 4      V! V4      ,          V! V4      ,          V! V) 4      V! V4      ,          V! V4      ,          V! V4      ,          V! V) 4      ,          ,           8X  g   Q h\        V4      R8X  g   Q h\        VP                  4       4      R	8X  g   Q hV! V) 4      ^V! V4      ,          V! V4      ,          V! V4      V! V4      ,          ,           ,          pVP                  4       ^V! V) 4      ,          V! V4      ,          V! V4      ,          V! V) 4      V! V4      ,          V! V4      ,          ,           8X  g   Q h^V! V4      ,          V! V) 4      ,          pVP                  ^8X  g   Q hV! V4      V! V4      V! V4      ,          V! V4      V! V4      V! V4      ,           ,          ,           ,          p\        V4      R
8X  g   Q h\        VP                  4       4      R8X  g   Q h\        \        ^4      \        4      '       g   Q h\        ^4      P                  4       pV^8X  g   Q h\        V\         4      '       g   Q hV! V4      V! V) 4      ,          V! V4      V! V) 4      ,          ,           pV! V) 4      V,          pV! V4      V,          pVP                  4       V! V4      V! V) 4      ,          V! V4      ,          V! V) 4      ,          V! V4      V! V) 4      ,          V! V4      ,          V! V) 4      ,          ,           8X  g   Q hV! V4      V! V) 4      V! V) 4      V! V4      V! V) 4      ,          V! V4      V! V) 4      ,          ,           ,          ,           ,          pVP                  4       V! V4      V! V) 4      ,          V! V4      V! V) 4      ,          V! V4      ,          V! V) 4      ,          ,           V! V4      V! V) 4      ,          V! V4      ,          V! V) 4      ,          ,           8X  g   Q hV! V) 4      V! V4      V! V) 4      ,          V! V4      V! V) 4      ,          ,           ,          pVP                  4       V! V) 4      V! V4      ,          V! V) 4      ,          V! V) 4      V! V4      ,          V! V) 4      ,          ,           8X  g   Q h ^V	! V
4      ,           V! V4      ,          pVP                  4       p\        V\        4      '       g   Q hVP                  ^V! V4      ,          V	! V
4      V! V4      ,          38X  g   Q h^V	! V
4      ,           V! V4      ,          V! V4      ,           pVP                  4       p\        V\        4      '       g   Q hVP                  ^V! V4      ,          V	! V
4      V! V4      ,          V! V4      38X  g   Q hR# )r;   zi j krÊ   úA B C Drc   r¶   zA(L_0)*(A(-L_0) + B(-L_0))zA(i)*A(j) + A(i)*B(j)z2A(-L_0)*(A(L_0)*A(j) + A(L_0)*B(j)*C(L_1)*C(-L_1))z8A(j)*A(L_0)*A(-L_0) + A(L_0)*A(-L_0)*B(j)*C(L_1)*C(-L_1)z%A(i)*(B(j)*C(k) + C(j)*(A(k) + D(k)))z0A(i)*B(j)*C(k) + A(i)*C(j)*A(k) + A(i)*C(j)*D(k)N)r   r   r   r    r   r   r2   r   r   r   rü   rC   r$   r   r   rý   r   )r;   rz   rÿ   r   rÊ   r?   r@   rA   r‘   rc   r¶   r±   ÚtmÚp1Úp2Úp3Úexpr_expands                    r6   Útest_tensor_expandr:    sŽ  € Ü˜Ó€Aä˜W aÓ(�G€Aˆ!Ü
�e˜QÓ
€Cä˜i¨!¨Ó-�J€Aˆ!ä�‹€AÜˆs‹€Aä”c™!˜A›$¡ !£“o¤w×/Ò/Ð/Ð/Ü”f™Q˜q›T¡! A£$�YÓ'¬×1Ò1Ð1Ð1áˆQ‹4‘�A�2“‘q˜!˜“u•Õ€DØ�9‰9™˜3›¡ C 4£©1¨c¨T«7Õ!2Ð3Ô3Ð3Ð3Ø�1�Q“4™˜1˜"›•:¡ !£¡Q¨ r£U¥
Õ*Ô*Ð*Ð*Ø�;‰;‹=™A˜a›D¡ A 2£�J©¨1«©a°°«e­Õ3Ô3Ð3Ð3Üˆt‹9Ð4Ô4Ð4Ð4áˆQ‹4‘�!“�9‘q˜“t™A˜a›D•yÕ €DÜˆt‹9Ð/Ô/Ð/Ð/áˆaˆR‹5‘!�A“$‘q˜“t•)™a ›d¡1 Q£4�i©¨!«�n©Q°¨r«UÕ2Õ2Õ3€DØ�1�a�R“5™˜1›•:™a ›d•?¡Q¨ r£U©1¨Q«4¥Z±°!³¥_±Q°q³TÕ%9¹!¸Q¸B»%Õ%?Õ?Ô?Ð?Ð?Ø�;‰;‹=™A˜q˜b›E¡! A£$�J¡q¨£t�O©a°°«e±A°a³D­j¹¸1»­o¹aÀ»dÕ.BÁ1ÀaÀRÃ5Õ.HÕHÔHÐHÐHÜˆt‹9ÐLÔLÐLÐLÜˆt�}‰}‹ÓÐ#]Ô]Ð]Ð]áˆaˆR‹5�!‘A�a“D•&™˜1›•+¡ !£¡Q q£T¥	Õ)Õ*€DØ�;‰;‹=˜A™a  ›e�G¡A a£D�L©¨1«Õ-±°1°"³±a¸³dµ
¹1¸Q»4µÕ?Ô?Ð?Ð?à‰Qˆq‹T�6‘!�Q�B“%�<€DØ�:‰:˜Œ?Ðˆ?áˆQ‹4‘�1“‘a˜“d•™Q˜q›T¡1 Q£4©!¨A«$¥;Õ/Õ/Õ0€DÜˆt‹9Ð?Ô?Ð?Ð?Üˆt�{‰{‹}ÓÐ!SÔSÐSÐSä”g˜a“j¤'×*Ò*Ð*Ð*Ü	�‹�‰Ó	€BØ�Œ7€Nˆ7Ü�bœ'×"Ò"Ð"Ð"á	
ˆ1‹‰a��‹e�‘a˜“d™1˜a˜R›5•jÕ	 €BÙ	
ˆAˆ2‹ˆr�€BÙ	
ˆ1‹ˆb�€BØ�9‰9‹;™!˜A›$™q ! ›u�*¡Q q£T�/©!¨Q¨B«%Õ/±!°A³$±q¸!¸³uµ*¹Q¸q»Tµ/Á!ÀQÀBÃ%Õ2GÕGÔGÐGÐGáˆQ‹4‘�A�2“™˜A˜2›¡ !£¡Q¨ r£U¥
©Q¨q«T±!°Q°B³%­ZÕ 7Õ8Õ8Õ9€DØ�;‰;‹=™A˜a›D¡ A 2£�J©¨1«©a°°«e­±A°a³D­¹¸A¸2»Õ)>Õ>ÁÀ1ÃÁaÈÈÃeÅÉAÈaËDÅÑQRÐTUÐSUÓQVÕAVÕVÔVÐVÐVáˆaˆR‹5‘!�A“$‘q˜!˜“u•*™q ›t¡A q b£E�zÕ)Õ*€DØ�;‰;‹=™A˜q˜b›E¡! A£$�J¡q¨!¨£uÕ,©q°!°«u±Q°q³T­z¹!¸Q¸B»%Õ/?Õ?Ô?Ð?Ð?ðð
 ‘�!“�H‘a˜“d�?€DØ—+‘+“-€KÜ�k¤7×+Ò+Ð+Ð+Ø×Ñ ¡! A£$¥©¨!«©Q¨q«T­	Ð2Ô2Ð2Ð2à‘�!“�H‘a˜“d�?™Q˜q›TÕ!€DØ—+‘+“-€KÜ�k¤7×+Ò+Ð+Ð+Ø×Ñ ¡! A£$¥©¨!«©Q¨q«T­	±1°Q³4Ð8Ô8Ð8Ò8r8   c                  óH  aaa€ \        R 4      p \        RV 4      w  rr4\        RV .4      o\        R4      w  ooS! V4      S! \	        R4      4      8X  g   Q hS! V) 4      S! \	        R4      ) 4      8X  g   Q h\        \        VVV3R l4       \        \        VV3R l4       R# )r;   rü  r?   zx yr•   c                  ó"   <€ S ! SS,           4      # r1   rÐ   )r?   r¶   Úys   €€€r6   rÍ   Ú6test_tensor_alternative_construction.<locals>.<lambda>^  s   ø€ ™a  !¥œfr8   c                  ó"   <€ S ! ^S,          4      # rì   rÐ   )r?   r¶   s   €€r6   rÍ   r>  _  s   ø€ ™q  1¥œvr8   N)r   r   r#   r   r   r,   Ú	TypeErrorrÖ   )r;   r•   r–   r—   r˜   r?   r¶   r=  s        @@@r6   Ú$test_tensor_alternative_constructionrA  V  s…   ú€ Ü˜Ó€AÜ# F¨AÓ.�N€BˆBÜ�3˜˜Ó€AÜ�5‹>�D€A€qáˆR‹5‘A”f˜T“l“OÔ#Ð#Ð#ÙˆbˆS‹6‘Qœ˜t›�}Ó%Ô%Ð%Ð%Ü
Œ9–nÔ%Ü
Œ:•~Ö&r8   c                  ó(  aaaaaa€ \        R 4      p \        R^R7      p\        RV 4      w  oor#\        RV .4      w  rErg\        RW .4      p\        RV .^,          4      p	V! SS4      oV! SS) 4      ^^.^^..V \	        ^R4      /oSP                  S4      SS.\        ^R.^R..4      38X  g   Q hSP                  S4      \        ^R.^R..4      8X  g   Q hSP                  SSS.4      \        ^R.^R..4      8X  g   Q hSP                  SSS) .4      \        ^^.^^..4      8X  g   Q hSP                  S\        R4      \        R4      ) .4      \        ^^.^^..4      8X  g   Q hSP                  SS) S.4      \        ^R.R^..4      8X  g   Q hSP                  SS) S) .4      \        ^^.RR..4      8X  g   Q hSP                  SSS.4      \        ^^.RR..4      8X  g   Q hSP                  SSS) .4      \        ^R.R^..4      8X  g   Q hSP                  SS) S.4      \        ^^.^^..4      8X  g   Q hSP                  SS) S) .4      \        ^R.^R..4      8X  g   Q hSP                  S4      \        ^R.^R..4      8X  g   Q hV! SS4      oV! SS4      ^^.^^..V \	        ^R4      /oSP                  S4      SS.\        ^^.^^..4      38X  g   Q hSP                  S4      \        ^^.^^..4      8X  g   Q hSP                  SSS.4      \        ^^.^^..4      8X  g   Q hSP                  SSS) .4      \        ^R.^R..4      8X  g   Q hSP                  SS) S.4      \        ^^.RR..4      8X  g   Q hSP                  SS) S) .4      \        ^R.R^..4      8X  g   Q hSP                  SSS.4      \        ^^.^^..4      8X  g   Q hSP                  SSS) .4      \        ^R.^R..4      8X  g   Q hSP                  SS) S.4      \        ^^.RR..4      8X  g   Q hSP                  SS) S) .4      \        ^R.R^..4      8X  g   Q hV! SV4      oV! SS4      ^^.^^..V \	        ^R4      /oSP                  S4      SV.\        ^^.^^..4      38X  g   Q hV! S4      V! S) 4      ,          oV! S4      ^^.V \	        ^R4      /oSP                  S4      . R38X  g   Q hSP                  S. 4      R8X  g   Q hV	! SSS) V4      V! S) 4      ,          V! V) 4      ,          oV! S4      ^^.V	! SSW#4      \        ^.^,          4      P                  ^^^^4      V \	        ^R4      /oSP                  S4      '       g   Q hV! SV4      oV! SS4      ^^.^^..V \	        ^R4      /o\        \        VV3R	 l4       V! S4      oV! S4      ^^./o\        \        VV3R
 l4       V! S4      oV! S4      ^^.^^../o\        \        VV3R l4       V! V4      V! SS4      ,          V! V4      V! SS4      ,          ,           oV! V4      ^.V! V4      ^.V! SS4      ^^.^^..V \	        ^^4      /oSP                  S4      VSS.\        ^^.^^...4      38X  g   Q hSP                  SVSS.4      \        ^^.^^...4      8X  g   Q hSP                  SVSS.4      \        ^^.^^...4      8X  g   Q hV! V4      V! V) 4      ,          ^d,           oV! V4      ^^.V \	        ^^4      /oSP                  S. 4      ^q8X  g   Q hV! SS4      V! SS4      ,           oV! SS4      ^^.^^../oSP                  S4      SS.\        ^^.^^..4      38X  g   Q hSP                  SSS.4      \        ^^.^^..4      8X  g   Q hSP                  SSS.4      \        ^^.^^..4      8X  g   Q hV! SS4      V! SS4      ,
          oV! SS4      ^^.^^../oSP                  SSS.4      \        ^ R.^^ ..4      8X  g   Q hSP                  SSS.4      \        ^ ^.R^ ..4      8X  g   Q hV	! SSW") 4      oV	! SSW") 4      ^^.^^../oSP                  S4      SS.\        ^^.^^..4      38X  g   Q hV! SS) 4      oV! SS) 4      ^*/oSP                  S4      . ^*38X  g   Q hV! SS) 4      oV! S) S) 4      \        . RO. RO. RO. RO.4      V \        . RO. RO. RO. RO.4      /oSP                  S4      . ^38X  g   Q hV! S4      V! S4      ,          oV! S4      ^^./o\        \        VVV3R l4       V! S4      oV! S4      ^^../o\        \        VVV3R l4       \        RV4      w  oop
\        RV.4      pV! S4      V! S) 4      ,          oV! S4      ^../o\        \        VVVV3R l4       R# )r;   ÚL2r®   zi j k lr4  ÚHr°   rz   rÿ   c                  ó&   <€ S P                  S4      # r1   ©Ú_extract_data©r±   Úrepls   €€r6   rÍ   Ú)test_tensor_replacement.<locals>.<lambda>™  ó   ø€ ˜t×1Ñ1°$Ô7r8   c                  ó&   <€ S P                  S4      # r1   rF  rH  s   €€r6   rÍ   rJ  �  rK  r8   c                  ó&   <€ S P                  S4      # r1   rF  rH  s   €€r6   rÍ   rJ  ¡  rK  r8   c                  ó*   <€ S P                  SS.4      # r1   ©Úreplace_with_arrays)r±   rÿ   rI  s   €€€r6   rÍ   rJ  Î  ó   ø€ ˜t×7Ñ7¸¸q¸cÔBr8   c                  ó*   <€ S P                  SS.4      # r1   rO  )r±   rz   rI  s   €€€r6   rÍ   rJ  Ó  rQ  r8   zu1:4ÚUc                  ó.   <€ S P                  SSS) .4      # r1   rO  )r±   rI  Úu1Úu2s   €€€€r6   rÍ   rJ  Ú  s   ø€ ˜t×7Ñ7¸¸rÀBÀ3¸iÔHr8   Nrg   rf   rÛ   rh   r˜  r™  rš  r›  )r   r   r    r#   r/   rG  r   rP  r   Úreshaper,   rÖ   )r;   rC  r   r)  r?   r@   rA   r‘   rD  r°   Úu3rS  r±   rz   rÿ   rI  rU  rV  s               @@@@@@r6   Útest_tensor_replacementrY  b  sc  ý€ Ü˜Ó€AÜ	˜ 1Ô	%€BÜ 	¨1Ó-�J€A€qˆ!Ü˜i¨!¨Ó-�J€Aˆ!Ü�3˜˜Ó€AÜ�3˜˜˜A�Ó€AáˆQ�‹7€DÙˆa��‹G�q˜�e˜Q˜q˜E�] A¤t¨A¨r£{Ð3€DØ×Ñ˜dÓ#¨¨A¨´¸¸2°wÀÀBÀÐ6HÓ0IÐ'JÔJÐJÐJà×#Ñ# DÓ)¬U°Q¸°G¸aÀ¸WÐ3EÓ-FÔFÐFÐFØ×#Ñ# D¨1¨a¨&Ó1´U¸QÀ¸GÀaÈÀWÐ;MÓ5NÔNÐNÐNØ×#Ñ# D¨1¨q¨b¨'Ó2´e¸aÀ¸VÀaÈÀVÐ<LÓ6MÔMÐMÐMØ×#Ñ# D¬6°#«;¼À»¸Ð*EÓFÌ%ÐRSÐUVÐQWÐZ[Ð]^ÐY_ÐP`ÓJaÔaÐaÐaØ×#Ñ# D¨A¨2¨q¨'Ó2´e¸aÀ¸WÀrÈ1ÀgÐ<NÓ6OÔOÐOÐOØ×#Ñ# D¨A¨2°¨r¨(Ó3´u¸qÀ!¸fÀrÈ2ÀhÐ=OÓ7PÔPÐPÐPØ×#Ñ# D¨1¨a¨&Ó1´U¸QÀ¸FÀRÈÀHÐ;MÓ5NÔNÐNÐNØ×#Ñ# D¨1¨q¨b¨'Ó2´e¸aÀ¸WÀrÈ1ÀgÐ<NÓ6OÔOÐOÐOØ×#Ñ# D¨A¨2¨q¨'Ó2´e¸aÀ¸VÀaÈÀVÐ<LÓ6MÔMÐMÐMØ×#Ñ# D¨A¨2°¨r¨(Ó3´u¸qÀ"¸gÈÈ2ÀwÐ=OÓ7PÔPÐPÐPà×#Ñ# DÓ)¬U°Q¸°G¸aÀ¸WÐ3EÓ-FÔFÐFÐFáˆQˆq‹6€DÙˆa�‹F�a˜�U˜A˜a˜5�M 1¤d¨1¨b£kÐ2€DØ×Ñ˜dÓ#¨¨A¨´¸¸1°vÀÀ1¸vÐ6FÓ0GÐ'HÔHÐHÐHà×#Ñ# DÓ)¬U°Q¸°F¸QÀ¸FÐ3CÓ-DÔDÐDÐDØ×#Ñ# D¨1¨a¨&Ó1´U¸QÀ¸FÀQÈÀFÐ;KÓ5LÔLÐLÐLØ×#Ñ# D¨1¨q¨b¨'Ó2´e¸aÀ¸WÀqÈ"ÀgÐ<NÓ6OÔOÐOÐOØ×#Ñ# D¨A¨2¨q¨'Ó2´e¸aÀ¸VÀbÈ"ÀXÐ<NÓ6OÔOÐOÐOØ×#Ñ# D¨A¨2°¨r¨(Ó3´u¸qÀ"¸gÈÈAÀwÐ=OÓ7PÔPÐPÐPØ×#Ñ# D¨1¨a¨&Ó1´U¸QÀ¸FÀQÈÀFÐ;KÓ5LÔLÐLÐLØ×#Ñ# D¨1¨q¨b¨'Ó2´e¸aÀ¸WÀqÈ"ÀgÐ<NÓ6OÔOÐOÐOØ×#Ñ# D¨A¨2¨q¨'Ó2´e¸aÀ¸VÀbÈ"ÀXÐ<NÓ6OÔOÐOÐOØ×#Ñ# D¨A¨2°¨r¨(Ó3´u¸qÀ"¸gÈÈAÀwÐ=OÓ7PÔPÐPÐPñ ˆQˆq‹6€DÙˆa�‹F�a˜�U˜A˜a˜5�M 1¤d¨1¨b£kÐ2€DØ×Ñ˜dÓ#¨¨A¨´¸¸1°vÀÀ1¸vÐ6FÓ0GÐ'HÔHÐHÐHáˆQ‹4‘�1�"“�:€DÙˆa‹D�1�Q�%˜œD  B›KÐ(€DØ×Ñ˜dÓ#¨¨B xÔ/Ð/Ð/Ø×#Ñ# D¨"Ó-°Ô3Ð3Ð3áˆQ��A�2�q‹>™!˜Q˜B›%Õ¡ 1 "£Õ%€DÙˆa‹D�1�a�&™!˜A˜a ›*¤e¨Q¨C°­H£o×&=Ñ&=¸aÀÀ!ÀAÓ&FÈÌ4ÐPQÐSUË;ÐW€DØ×Ñ˜d×#Ò#Ð#Ð#áˆQ�‹7€DÙˆa�‹F�a˜�U˜A˜a˜5�M 1¤d¨1¨b£kÐ2€DÜ
Œ:Õ7Ô8áˆQ‹4€DÙˆa‹D�1�a�&ˆ>€DÜ
Œ:Õ7Ô8áˆQ‹4€DÙˆa‹D�A�q�6˜A˜q˜6Ð"Ð#€DÜ
Œ:Õ7Ô8ñ ˆQ‹4‘�!�Q“�<™!˜A›$™q  A›w�,Õ&€DÙˆa‹D�1�#‘q˜“t˜a˜S¡! A q£'¨Q°¨F°A°a°5¨>¸1¼TÀ!ÀA»YÐG€DØ×Ñ˜dÓ#¨¨A¨q¨	´5¸A¸q¸6ÀAÀqÀ6Ð:JÐ9KÓ3LÐ'MÔMÐMÐMØ×#Ñ# D¨1¨a°¨)Ó4¼ÀÀAÀÈÈAÈÐ?OÐ>PÓ8QÔQÐQÐQØ×#Ñ# D¨1¨a°¨)Ó4¼ÀÀAÀÈÈAÈÐ?OÐ>PÓ8QÔQÐQÐQáˆQ‹4‘�1�"“�:˜Õ€DÙˆa‹D�1�a�&˜!œT ! Q›ZÐ(€DØ×#Ñ# D¨"Ó-°Ô4Ð4Ð4ñ ˆQ�‹7‘Q�q˜!“WÕ€DÙˆa�‹G�q˜!�f˜q !˜fÐ%Ð&€DØ×Ñ˜dÓ#¨¨A¨´¸¸1°vÀÀ1¸vÐ6FÓ0GÐ'HÔHÐHÐHØ×#Ñ# D¨1¨a¨&Ó1´U¸QÀ¸FÀQÈÀFÐ;KÓ5LÔLÐLÐLØ×#Ñ# D¨1¨a¨&Ó1´U¸QÀ¸FÀQÈÀFÐ;KÓ5LÔLÐLÐLñ ˆQ�‹7‘Q�q˜!“WÕ€DÙˆa�‹G�q˜!�f˜q !˜fÐ%Ð&€DØ×#Ñ# D¨1¨a¨&Ó1´U¸QÀ¸GÀaÈÀVÐ;LÓ5MÔMÐMÐMØ×#Ñ# D¨1¨a¨&Ó1´U¸QÀ¸FÀRÈÀGÐ;LÓ5MÔMÐMÐMñ ˆQ��1�b‹>€DÙˆa��A�r‹N˜a ˜V a¨ VÐ,Ð-€DØ×Ñ˜dÓ#¨¨A¨´¸¸1°vÀÀ1¸vÐ6FÓ0GÐ'HÔHÐHÐHáˆQ��‹8€DÙˆa�!�‹H�bˆ>€DØ×Ñ˜dÓ#¨¨B xÔ/Ð/Ð/áˆQ��‹8€Dá	ˆ1ˆ"ˆqˆb‹	”5š,ª²}ÂmÐTÓUØ	Œ5’,¢ª}ºmÐLÓMð€Dð ×Ñ˜dÓ#¨¨A wÔ.Ð.Ð.ñ ˆQ‹4‘�!“�9€DÙˆa‹D�1�a�&ˆ>€DÜ
Œ:ÖBÔCñ ˆQ‹4€DÙˆa‹D�A�q�6�(Ð€DÜ
Œ:ÖBÔCô   ¨Ó+�J€BˆˆBÜ�3˜˜Ó€AÙˆR‹5‘�B�3“�<€DÙˆb‹E�Q�C�5ˆ>€DÜ
Œ:×HÖIr8   c                  ó&  € \        R ^R7      p \        RV .^,          4      p\        RV .4      p\        R4      w  r4rV\        R4      w  rxV! W4WV4      p	V	P                  \        4      \	        \        R4      W4WV4      8X  g   Q hV! W3) WV4      p
V
P                  \        4      \        \	        \        R4      WwWV4      V^ ^34      8X  g   Q hW¡! WVW3) 4      ,           pVP                  \        4      \        \	        \        R4      WwWV4      V^ ^34      \        \	        \        R4      WVWw4      V^ ^34      ,           8X  g   Q hV! V) 4      V	,          pVP                  \        4      \        \	        \        R4      V4      \	        \        R4      WtWV4      ,          V^ ^34      8X  g   Q hV! V) 4      V
,          pVP                  \        4      \        \	        \        R4      V4      \	        \        R4      WwWX4      ,          V^ ^3V^ ^34      8X  g   Q hR# )r;   r®   r?   r@   rü  zL_0:2N)r   r#   r   Úrewriter   r   r   )r;   r?   r@   r•   r–   r—   r˜   rÊ   r'  rk   rl   rm   Úb1Úb2s                 r6   Útest_rewrite_tensor_to_Indexedr^  Ý  s÷  € Ü˜ Ô#€AÜ�3˜˜˜A�Ó€AÜ�3˜˜Ó€Aä˜V“_�N€BˆBÜ�wÓ�H€Cá	
ˆ2�2Ó	€BØ�:‰:”gÓ¤'¬&°«+°r¸rÓ"FÔFÐFÐFá	
ˆ2ˆs�BÓ	€BØ�:‰:”gÓ¤#¤g¬f°S«k¸3ÀRÓ&LÈsÐTUÐWXÈkÓ"ZÔZÐZÐZà	ˆa�˜˜CÓ Õ	 €BØ�:‰:”gÓÜŒG”F˜3“K ¨2Ó2°S¸!¸Q°KÓ@ÜŒG”F˜3“K ¨Ó2°S¸!¸Q°KÓ@õ	AôAð Að Añ 
ˆBˆ3‹��€BØ�:‰:”gÓ¤#¤g¬f°S«k¸3Ó&?ÄÌÈsËÐUXÐ^`Ó@eÕ&eÐhkÐmnÐpqÐgrÓ"sÔsÐsÐsá	
ˆBˆ3‹��€BØ�:‰:”gÓ¤#¤g¬f°S«k¸3Ó&?ÄÌÈsËÐUXÐ_aÓ@gÕ&gÐjmÐopÐrsÐitÐwzÐ|}ð  @Að  wBó  #Cô  Cð  Cò  Cr8   c            
     óž  € \        R^R7      p \        RV 4      w  rp\        R\        V RR7      w  rEp\        RV 4      pV P                  pV P
                  p	\        RV .4      p
\        R	V .4      p\        R
W .4      p\        RRR7      p\        R4      pVP                  V4      WB/8X  g   Q hVP                  V) 4      WB) /8X  g   Q hVP                  V) 4      R8X  g   Q hVP                  V4      Wr/8X  g   Q hV	! W) V4      P                  V	! WV4      4      R8X  g   Q hV	! W) V4      P                  V	! WV4      4      WCV) V/8X  g   Q hV	! W) V4      P                  V	! WEV4      ^4      ^8X  g   Q hV! 4       P                  V
! V4      V! V4      ,          4      V! 4       V
! V4      V! V4      ,          /8X  g   Q hV! V4      P                  V
! V4      4      WAV! V4      P                  \        V
! V4      4      /8X  g   Q hV! WA4      P                  V
! V4      V! V4      ,          4      WBV! WA4      P                  \        V
! V4      V! V4      ,          4      /8X  g   Q hV! W4      P                  V
! V4      V! V4      ,          4      V! W4      P                  \        V
! V4      V! V4      ,          4      /8X  g   Q hV! W4      P                  V! W!4      4      V! W4      P                  \        V! W!4      4      /8X  g   Q hV! W4      P                  V! W!4      4      R8X  g   Q hV
! V4      V
! V4      ,          P                  V! W!4      ^4      ^8X  g   Q hV! W4      P                  V! W!4      4      / 8X  g   Q hV	! WV4      P                  V	! W!V4      4      e   Q hV	! WV4      P                  V	! W#V4      4      / 8X  g   Q hR# )zQ
Test match and replace with the pattern being a WildTensor or a WildTensorIndex
r´   r®   r=  za b cT©rµ   rÔ   Úignore_updownrº   r°   rŒ   r?   ÚW©Úunordered_indicesrS  N)r   r   r   r)   r>  r?  r#   r*   ÚmatchesÚreplaceÚheadr+   )r´   r¯   r  r  rE   rF   rO   rº   r>  r@  r°   rŒ   r?   rb  rS  s                  r6   Útest_tensor_matchingrh  ö  s^  € ô 
˜ 1Ô	%€BÜ˜W bÓ)�G€Aˆ!Ü�G¤?ÀbÐX\Ô]�E€AˆÜ˜˜RÓ €AØ�H‰H€EØ
�*‰*€CÜ�3˜˜Ó€AÜ�3˜˜Ó€AÜ�3˜˜Ó!€AÜ�s¨dÔ3€AÜ�sÓ€Aà�9‰9�Q‹<˜A˜5Ô Ð Ð Ø�9‰9�a�R‹=˜Q˜r˜FÔ"Ð"Ð"Ø�9‰9�a�R‹=˜DÔ Ð Ð Ø�9‰9�Q‹<˜A˜5Ô Ð Ð Ùˆq��A‹;×Ñ¡ A¨£
Ó,°Ô4Ð4Ð4Ùˆq��A‹;×Ñ¡ A¨£
Ó,°¸°r¸1°Ô=Ð=Ð=Ùˆq��A‹;×Ñ™s 1 q›z¨1Ó-°Ô2Ð2Ð2Ù‹3�;‰;™˜!›™Q˜q›T�	Ó#©«©Q¨q«T±!°A³$­YÐ'7Ô7Ð7Ð7ÙˆQ‹4�<‰<™˜1›Ó A©¨1«¯©´MÁ!ÀAÃ$Ó4GÐ#HÔHÐHÐHÙˆQ‹6�>‰>™1˜Q›4¡ !£�9Ó&¨1±°!³·±¼]É1ÈQË4ÑPQÐRSÓPTÍ9Ó=UÐ*VÔVÐVÐVÙˆQ‹6�>‰>™1˜Q›4¡ !£�9Ó&©1¨Q«6¯;©;¼ÁaÈÃdÉ1ÈQË4ÅiÓ8PÐ*QÔQÐQÐQÙˆQ‹6�>‰>™1˜Q›6Ó#©¨!«¯©´]Á1ÀQÃ7Ó5KÐ'LÔLÐLÐLÙˆQ‹6�>‰>™1˜Q›6Ó# tÔ+Ð+Ð+Ùˆq‹T‘!�A“$�Y× Ñ ¡! A£&¨!Ó,°Ô1Ð1Ð1ñ �‹:×Ñ™e A›jÓ)¨RÔ/Ð/Ð/Ùˆq�1‹:×Ñ™c ! a›jÓ)Ò1Ð1Ð1Ùˆq�1‹:×Ñ™c ! a›jÓ)¨RÔ/Ð/Ò/r8   c                 óî  € \        R^R7      p \        RV 4      w  r\        RV .4      p\        RV .4      p\        RRR7      pV! V4      V! V4      ,          V! V4      V! V4      ,          ,           P	                  V! V4      V! V4      ,          V! V4      V! V4      ,          ,           4      / 8X  g   Q hV! V4      V! V4      ,          V! V4      V! V4      ,          ,           P	                  V! V4      V! V4      ,          V! V4      V! V4      ,          ,           V! V4      V! V4      ,          ,           V! V4      V! V4      ,          ,           4      e   Q hV! V4      V! V4      ,          V! V4      V! V4      ,          ,           V! V4      V! V4      ,          ,           V! V4      V! V4      ,          ,           P                  V! W4      V! V4      V! V4      ,          ,           V! V4      V! V4      ,          ,           V! W4      ^V! V4      ,          V! V4      ,          ,           4      P                  4       V! V4      V! V4      ,          ^V! V4      ,          V! V4      ,          ,           8X  g   Q hR	# )
z9
Test match and replace with the pattern being a TensAdd
r´   r®   r\  r°   rŒ   rb  Trc  N)r   r   r#   r*   re  rf  rý   )r´   r¯   r  r°   rŒ   rb  s         r6   Útest_TensAdd_matchingrj    sà  € ô 
˜ 1Ô	%€BÜ˜% Ó$�D€AÜ�3˜˜Ó€AÜ�3˜˜Ó€AÜ�s¨dÔ3€Aáˆq‹T‘!�A“$�Y™˜1›™a ›d�Õ"×,Ñ,©a°«d±1°Q³4­i¹!¸A»$¹qÀ»t½)Õ.CÓEÈÔKÐKÐKÙˆq‹T‘!�A“$�Y™˜1›™a ›d�Õ"×,Ñ,©a°«d±1°Q³4­i¹!¸A»$¹qÀ»t½)Õ.CÁaÈÃdÉ1ÈQË4ÅiÕ.OÑRSÐTUÓRVÑWXÐYZÓW[ÕR[Õ.[Ó]ÒeÐeÐeÙˆq‹T‘!�A“$�Y™˜1›™a ›d�Õ"¡Q q£T©!¨A«$¥YÕ.±°1³±a¸³dµÕ:×DÑDÙ	ˆ!‹‘�1“‘a˜“d•Õ™Q˜q›T¡! A£$�YÕ&Ù	ˆ!‹�‘1�Q“4•™˜!›•Õó
÷ ‰$‹&‘A�a“D™˜1›•I ¡! A£$¥¡q¨£t¥Õ+ô,ð ,ò ,r8   c            	     óP  € \        R^R7      p \        RV 4      w  rr4p\        R4      p\        R\        V RR7      w  rxršr¼V P
                  pV P                  p\        RV .4      p\        R	V .4      p\        R
RR7      p\        R4      p\        R4      pWo! V4      ,          P                  V! V4      4      V^/8X  g   Q hWn! WV4      ,          P                  V! WV4      4      VR/8X  g   Q hV! V4      V! V) 4      ,          P                  V! V4      V! V) 4      ,          ^4      ^8X  g   Q hV! V4      V! V4      ,          V! V) 4      ,          P                  V! W'4      V! V) 4      ,          ^4      ^8X  g   Q hV! V4      V! V) 4      ,          P                  V! V) 4      V! V4      ,          ^4      ^8X  g   Q hV! V4      V! V4      ,          V! V) 4      ,          P                  V! V4      V! V4      ,          V! V) 4      ,          ^4      ^8X  g   Q hV! V4      V! V4      ,          P                  V! 4       V! V4      ,          V! V4      ,          V! 4       V! V4      ,          V! V4      ,          4      P                  4       V! V4      V! V4      ,          8X  g   Q hV! W1V4      V! V) V) V) 4      ,          P                  V! W·V4      V! V) Wš4      ,          V! Wy4      V! WŠ4      ,          V! Wz4      V! W‰4      ,          ,
          4      P                  4       P                  4       V! W) 4      V! W%) 4      ,          V! W) 4      V! W$) 4      ,          ,
          8X  g   Q hV! W1V4      V! V) V) V) 4      ,          P                  V! W—V4      V! V	) W¬4      ,          V! Wz4      V! WŒ4      ,          V! W|4      V! WŠ4      ,          ,
          4      P                  V4      P                  4       ^8X  g   Q hV! V) 4      V! V4      ,          V! V) 4      ,          P                  VV! 4       ,          V! V4      ,          V! V) 4      ,          VV! 4       ,          4      P                  4       V! V) 4      8X  g   Q hV^,          V! V4      ,          V! V) 4      ,          P                  VV! 4       ,          V! V4      ,          V! V) 4      ,          VV! 4       ,          V^,          ,          4      P                  4       V^,          8X  g   Q hV! V4      V! V4      ,          P                  V! V4      V! V4      ,          V! V4      V! V4      ,          4      V! V4      V! V4      ,          8X  g   Q hV! V4      V! V4      ,          V! V4      ,          P                  V! W#4      V! V4      ,          V! W4      V! W$4      ,          V! V) 4      ,          4      V! V4      V! V4      ,          V! V4      ,          V! V4      ,          V! V) 4      ,          8X  g   Q h\        RV 4      w  ppppV! V) V) 4      V! V4      ,          V! V4      ,          V! V) 4      ,          pV! 4       V! V4      ,          V! V) 4      ,          P                  V4      pVVP                  4       9  g   Q hR# )z9
Test match and replace with the pattern being a TensMul
r´   r®   z	p q r s tÚwiza b c d e fTr`  r°   rŒ   rb  rc  rS  zR_0 R_1 R_2 R_3Nrg   )r   r   r   r   r)   r>  r?  r#   r*   r   re  rf  rý   r$   rY  Úvalues)r´   r¯   r  r  rE  rI   rl  rE   rF   rO   rP   rv   re   r>  r@  r°   rŒ   rb  rS  r   ÚD0ÚD1ÚD2ÚD3r±   r  s                             r6   Útest_TensMul_matchingrr  +  s�  € ô 
˜ 1Ô	%€BÜ" ;°Ó3�M€Aˆ!�Ü	ˆd‹€BÜ˜-¬ÐRTÐdhÔi�K€AˆˆAØ�H‰H€EØ
�*‰*€CÜ�3˜˜Ó€AÜ�3˜˜Ó€AÜ�s¨dÔ3€AÜ�sÓ€AÜˆs‹€Aà��!“�W×Ñ¡ !£Ó&¨2¨q¨'Ô1Ð1Ð1Ø�#�a˜!“*�_×&Ñ&¡s¨1¨q£zÓ2°r¸"°gÔ=Ð=Ð=Ùˆq‹T‘!�Q�B“%�Z×!Ñ!¡1 Q£4©¨1¨"«¥:¨qÓ1°QÔ6Ð6Ð6Ùˆq‹T‘!�A“$�Y‘q˜!˜“u�_×&Ñ&©¨!«©q°!°«u­°aÓ8¸AÔ=Ð=Ð=Ùˆq‹T‘!�Q�B“%�Z×!Ñ!¡1 a R£5©¨1«¥:¨qÓ2°aÔ7Ð7Ð7Ùˆq‹T‘!�A“$�Y‘q˜!˜“u�_×&Ñ&©¨!«©Q¨q«T­	±!°Q°B³%­¸Ó;¸qÔ@Ð@Ð@á	
ˆ1‹‰a�‹d�×Ñ™A›C¡ !£�H¡Q q£T�M©1«3©q°«t­8±A°a³D­=Ó9×>Ñ>Ó@ÙˆQ‹4‘�!“�9ô	ð
ð	ñ ˆa�!‹*‘S˜!˜˜Q˜B ˜r“]Õ
"×,Ñ,Ù��A‹J‘s˜A˜2˜a“{Õ"Ù�!‹J‘u˜Q“zÕ!¡E¨!£J©u°Q«zÕ$9Õ9ó	÷ ‰d‹f—X‘X“ZÙ��2‹;‘u˜Q˜r“{Õ"¡U¨1¨R£[±°q¸³Õ%<Õ<ô		=ð
ð	=ñ ˆa�!‹*‘S˜!˜˜Q˜B ˜r“]Õ
"×,Ñ,Ù��A‹J‘s˜A˜2˜a“{Õ"Ù�!‹J‘u˜Q“zÕ!¡E¨!£J©u°Q«zÕ$9Õ9ó	÷ ‰n˜UÓ#§D¡D£FØô		ð
ð	ñ �ˆr‹U‘1�Q“4�Z™˜1˜"›Õ×'Ñ'¨©A«C­±°!³­±Q¸°r³UÕ):¸B¹q»s½FÓD×IÑIÓKÉqÐRSÐQSËuÔTÐTÐTØ��T‘!�A“$�Y‘q˜!˜“u�_×&Ñ&¨©1«3­©q°«t­±A°q°b³EÕ(9¸2¹a»c½6À!ÀQÅ$½;ÓH×MÑMÓOÐSTÐVWÕSWÔWÐWÐWñ ˆA‹$‰q�‹t�)×Ñ™a ›d¡1 Q£4�i©¨1«©a°«d­Ó3ÙˆQ‹4‘�!“�9ô	ð
ð	ñ ˆA‹$‰q�‹t�)‘A�a“D�.×"Ñ"¡1 Q£6©!¨A«$¥;±°!³±q¸³vµ¹aÀÀ»eÕ0CÓEÙˆQ‹4‘�!“�9‘Q�q“T�>™!˜A›$Õ™q ! ›uÕ$ô	%ð
ð	%ô
 $Ð$5°rÓ:�N€BˆˆB�Ù�"��r�c‹?™1˜R›5Õ ¡ 2£Õ&¡q¨"¨£vÕ-€DÙ
‹#‰a�‹d�(‘1�a�R“5�.×"Ñ" 4Ó(€AØ�Q—X‘X“ZÔÐÒr8   c            	     ó‚  € \        R^R7      p \        RV 4      w  rp\        RV .4      p\        RV .4      p\        RW .4      p\        V P                  R,           V R4      p\        R	V RR
7      pV! V4      V! V4      ,          V! V) 4      ,          P                  V! V4      V! V4      V! V) 4      ,          /4      V! V4      V! V4      ,          V! V) 4      ,          V! V) 4      ,          8X  g   Q hV! V4      V! V4      ,          V! V) 4      ,          P                  V! V4      V! V4      V! V) 4      ,          /4      V! V4      V! V4      ,          V! V) 4      ,          V! V) 4      ,          8X  g   Q hV! V4      V! V4      ,          P                  WV! V4      V! V4      V! V) 4      ,          /4      V! V4      V! V4      ,          V! V) 4      ,          8X  g   Q hV! V4      V! W") 4      ,          V! V) 4      ,          P                  4       V! V4      V! W") 4      ,          V! V) 4      ,          8X  g   Q hV! V4      V! V) 4      ,          P                  V! V4      V! V4      V! V4      ,          V! V) 4      ,          4      V! V4      V! V4      ,          V! V) 4      ,          V! V) 4      ,          8X  g   Q hR# )z3
Test subs and xreplace in TensMul. See bug #24337
r´   r®   r=  r°   rŒ   r?   Ú_0TrE   )ra  N)
r   r   r#   r   r=   r)   ÚsubsÚxreplacerý   rf  )	r´   r¯   r  r  r°   rŒ   r?   ÚC0rE   s	            r6   Útest_TensMul_subsrx  f  sC  € ô 
˜ 1Ô	%€BÜ˜W bÓ)�G€Aˆ!Ü�3˜˜Ó€AÜ�3˜˜Ó€AÜ�3˜˜Ó!€AÜ	�R—]‘] TÕ)¨2¨tÓ	4€BÜ˜˜R¨tÔ4€Aáˆq‹T‘!�A“$�Y‘q˜!˜“u�_×#Ñ#¡Q q£T©1¨Q«4±°1°"³­:Ð$6Ó7¹1¸Q»4ÁÀ!Ã½9ÁQÈÀrÃU½?É1ÈaÈRË5Õ;PÔPÐPÐPÙˆq‹T‘!�A“$�Y‘q˜!˜“u�_×'Ñ'©¨1«©q°«t±A°q°b³E­zÐ(:Ó;¹qÀ»tÁAÀaÃD½yÉÈAÈ2Ë½ÉqÐRSÐQSËuÕ?TÔTÐTÐTÙˆq‹T‘!�A“$�Y×!Ñ! 1©!¨A«$±°!³±Q¸°r³Uµ
Ð";Ó<ÁÀ"ÃÁaÈÃdÅ
É1ÈaÈRË5Õ@PÔPÐPÐPÙˆq‹T‘!�A�b“'�\™!˜Q˜B›%Õ×&Ñ&Ó(©A¨a«D±°1°R³­L¹¸A¸2»Õ,>Ô>Ð>Ð>Ùˆq‹T‘!�Q�B“%�Z×!Ñ!¡1 Q£4©¨1«©a°«d­±1°a°R³5­Ó:¹aÀ»dÁ1ÀQÃ4½iÉÈ1È"Ë½oÉaÐQRÐPRËeÕ>SÔSÐSÒSr8   c                  óŠ   € \        4       ;_uu_ 4        \        ^.^,          4       RRR4       R#   + '       g   i     R# ; i)rS  N)r.   r&   rÐ   r8   r6   Útest_tensorsymmetryrz  y  s(   € Ü	×	!Õ	!Ü˜�s˜1•uÔ÷ 
"×	!×	!Ò	!ús	   “1±A	c                  ó|   € \        4       ;_uu_ 4        \        R . 4       RRR4       R#   + '       g   i     R# ; i)r?   N)r.   r%   rÐ   r8   r6   Útest_tensorheadr|  }  s$   € Ü	×	!Õ	!Ü�3˜Ô÷ 
"×	!×	!Ò	!ús   “*ª;	c                  ó   € \        4       ;_uu_ 4        \        P                  ! ^4      p \        R4      p\	        V.^,          V 4      p\        V\        4      '       g   Q h RRR4       R#   + '       g   i     R# ; i)rÚ   r:   N)r.   r   rD   r   r'   r2   )rÄ   r:   ÚS2s      r6   Útest_TensorTyper  �  sY   € Ü	×	!Õ	!Ü×-Ò-¨aÓ0ˆÜ! )Ó,ˆÜ˜˜	 !� TÓ*ˆÜ˜"œj×)Ò)Ð)Ñ)÷	 
"×	!×	!Ò	!ús   “AA,Á,A=	c                  ó~   € \        4       ;_uu_ 4        \        R RR7       RRR4       R#   + '       g   i     R# ; i)r:   r;   )Ú	dummy_fmtN)r.   r   rÐ   r8   r6   Útest_dummy_fmtr‚  ˆ  s$   € Ü	×	!Õ	!Ü˜	¨SÕ1÷ 
"×	!×	!Ò	!ús   “+«<	c            	     ó:  € \        R^R7      p \        RV 4      p\        RV .4      p\        R4      w  r4p\	        V^,          P                  W2! V4      /4      \        4      '       g   Q h\	        V^,           P                  W2! V4      V! V) 4      ,          /4      \        4      '       g   Q h\	        V^,          P                  W2! V4      /4      \        4      '       g   Q h\	        V^,           P                  W2! V4      V! V) 4      ,          /4      \        4      '       g   Q h\	        V^,          P                  W2! V4      4      \        4      '       g   Q h\	        V^,           P                  W2! V4      V! V) 4      ,          4      \        4      '       g   Q hR# )z‡
Test if substituting a Tensor into a Mul or Add automatically converts it
to TensMul or TensAdd respectively. See github issue #25051
r´   r®   rz   r°   zx y zN)
r   r   r#   r   r2   rv  r   r   ru  rf  )r´   rz   r°   r¶   r=  Úzs         r6   Útest_postprocessorr…  Œ  sB  € ô
 
˜ 1Ô	%€BÜ�s˜BÓ€AÜ�3˜˜Ó€AÜ�GÓ�E€Aˆä�q˜•s—n‘n a¨¨1« YÓ/´×9Ò9Ð9Ð9Ü�q˜•s—n‘n a¨¨1«©a°°«e­ _Ó5´w×?Ò?Ð?Ð?ä�q˜•s—j‘j ! Q q£T Ó+¬W×5Ò5Ð5Ð5Ü�q˜•s—j‘j ! Q q£T©!¨Q¨B«%¥Z Ó1´7×;Ò;Ð;Ð;ä�q˜•s—m‘m A q¨£tÓ,¬g×6Ò6Ð6Ð6Ü�q˜•s—m‘m A q¨£t©A¨q¨b«E¥zÓ2´G×<Ò<Ð<Ò<r8   c                 óê   € \        R^R7      p \        RV 4      w  r\        RV .4      p\        RV .4      p\        ^V! V4      V! V4      4      pVP                  VP
                  ,          V8X  g   Q hR# )zI
Ensure that for any TensMul instance, self.coeff * self.nocoeff == self
r´   r®   zi jr°   ÚPN)r   r   r#   r   r   Únocoeff)r´   rz   rÿ   r°   r‡  r±   s         r6   Útest_TensMul_nocoeffr‰  Ÿ  sk   € ô
 
˜ 1Ô	%€BÜ˜% Ó$�D€AÜ�3˜˜Ó€AÜ�3˜˜Ó€Aä�1‘a˜“d™A˜a›DÓ!€DØ�:‰:˜Ÿ™Õ$¨Ô,Ð,Ò,r8   N)ƒÚsympy.concrete.summationsr   Úsympy.core.functionr   Úsympy.core.numbersr   Úsympy.matrices.denser   r   Úsympy.tensor.indexedr   Úsympy.combinatoricsr	   Ú
sympy.corer
   r   r   r   r   r   r   Úsympy.core.containersr   Úsympy.core.symbolr   Ú(sympy.functions.elementary.miscellaneousr   Úsympy.integralsr   Úsympy.tensor.arrayr   Úsympy.tensor.tensorr   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   Úsympy.testing.pytestr,   r-   r.   Úsympy.matricesr/   r7   rL   rQ   rV   r\   rx   r}   r‰   r�   r¤   r«   r²   r¸   rÆ   rØ   rà   rò   rø   r  r  r  r  r&  r+  r-  r/  r2  r7  r9  r;  rA  rC  rF  rZ  r]  ra  r|  r�  r¶  r¹  r½  rÁ  rÄ  rÈ  rË  rÕ  r×  rá  rä  rë  ró  rù  r  r  r!  r%  r2  r:  rA  rY  r^  rh  rj  rr  rx  rz  r|  r  r‚  r…  r‰  rÐ   r8   r6   Ú<module>r™     sý  ðÝ )Ý &Ý &ß .Ý (Ý +ß F× FÑ FÝ 'Ý %Ý 9Ý %Ý $÷3÷ 3÷ 3÷ 3÷ 3÷ 3÷ GÑ FÝ òòK<òZ((òTòLò.GròT&òlò.$WòPò,"ò$òTòAò$Mò*Uò&6ò2òT;òl'ò6ò"]ò(#0òJ#òJòð( ñó ðò*?òXAPòF_-òD	,ò/ò)+òV%òN8ò*ò:#5òL7 òz6RòrJò0&òAò(5ò0%ò!ò&_òRò*,ò:fò#YòL7òB6ò&;ò>8ò09òv4ò>0'òfD9òN	'òxJòvCò2"0òH,ò"9 òvTò&òò*ò2ò=ô&-r8   