
    Qi9                         d dl mZmZ d dlmZmZmZmZmZ d dl	m
ZmZmZmZmZmZ d dlmZ d Zd Zd Zd Zd	 Zd
 Zd ZdS )    )eyeMatrix)tensor_indices
TensorHeadtensor_headsTensExprcanon_bp)GammaMatrixLorentzIndexkahane_simplifygamma_trace_simplify_single_linesimplify_gamma_expression)Symbolc                     t          |           } t          |          }t          | t                    r|                     |          S t          |t                    r|                    |           S | |k    S N)r	   
isinstancer   equals)arg1arg2s     /var/www/development/aibuddy-work/election-extract/venv/lib/python3.11/site-packages/sympy/physics/hep/tests/test_gamma_matrices.py_is_tensor_eqr   	   sj    D>>DD>>D$!! !{{4   	D(	#	# !{{4   4<    c           	      l5   t          dt                    \  }}}}t          dt                    \  }}}}	}
}t          dt                    \  }}}}}}}}t          dt                    \  }}}t          dt                    \  }}}}}}}d }|dk    rt          |          t          |          z  t          |          z  t          |          z  t          |           z  t          |          z  t          |           z  }t           | |          dt          |          z  t          |          z  t          |          z  dt          |          z  t          |          z  t          |          z  z
            sJ t          |          t          |          z  t          |          z  t          |          z  t          |          z  t          |          z  t          |          z  t          |          z  t          |	          z  t          |          z  t          |           z  t          |          z  t          |          z  t          |           z  t          |          z  t          |           z  t          |          z  t          |          z  t          |	           z  }t           | |          d	t          |          z  t          |          z  t          |          z  t          |          z  t          |          z  t          |          z  t          |          z  t          |          z  t          |          z  t          |          z  t          |          z  d	t          |          z  t          |          z  t          |          z  t          |          z  t          |          z  t          |          z  t          |          z  t          |          z  t          |          z  t          |          z  t          |          z  z   d	t          |          z  t          |          z  t          |          z  t          |          z  t          |          z  t          |          z  t          |          z  t          |          z  t          |          z  t          |          z  t          |          z  z   d	t          |          z  t          |          z  t          |          z  t          |          z  t          |          z  t          |          z  t          |          z  t          |          z  t          |          z  t          |          z  t          |          z  z             sJ d
 } t          |          t          |           z  } | |          }!t           | |          |!          sJ t          |          t          |          z  t          |           z  t          |           z  } | d|z  |dz  z
            }!t           | |          |!          sJ t          |          t          |          z  t          |           z  t          |           z  } | |dz            }!t           | |          |!          sJ t          |          t          |          z  t          |           z  t          |           z  t          |           z  t          |          z  } | d|z  d|dz  z  z
  |dz  z             }!t           | |          |!          sJ t          |          t          |          z  t          |          z  t          |           z  t          |           z  t          |           z  } | |dz            }!t           | |          |!          sJ t          |          t          |          z  t          |          z  t          |	          z  t          |           z  t          |           z  t          |           z  t          |	           z  } | d|z  d	|dz  z  z   d|dz  z  z
  |dz  z             }!t           | |          |!          sJ t          |           t          |           z  t          |           z  t          |           z  t          |          z  t          |          z  t          |          z  t          |          z  } | d|z  d|dz  z  z   d|dz  z  z
  |dz  z             }!t           | |          |!          sJ t          |           t          |          z  t          |           z  t          |          z  t          |          z  t          |           z  t          |          z  t          |           z  } | d|z  d|dz  z  z
  d|dz  z  z   |dz  z
            }!t           | |          |!          sJ t          |          t          |          z  t          |          z  t          |	          z  t          |
          z  t          |           z  t          |           z  t          |           z  t          |
           z  t          |	           z  } | d|z  d|dz  z  z
  d|dz  z  z   d|dz  z  z
  |dz  z             }!t           | |          |!          sJ t          |          t          |          z  t          |          z  t          |	          z  t          |
          z  t          |           z  t          |           z  t          |           z  t          |	           z  t          |
           z  } | d|z  d|dz  z  z
  d|dz  z  z   d	|dz  z  z
  |dz  z             }!t           | |          |!          sJ t          |          t          |          z  t          |          z  t          |	          z  t          |
          z  t          |          z  t          |           z  t          |           z  t          |           z  t          |           z  t          |
           z  t          |	           z  } | d|z  d|dz  z  z
  d|dz  z  z   d|dz  z  z
  d|dz  z  z   |dz  z
            }!t           | |          |!          sJ t          |          t          |          z  t          |          z  t          |	          z  t          |
          z  t          |          z  t          |           z  t          |           z  t          |           z  t          |           z  t          |	           z  t          |
           z  } | d|z  d|dz  z  z
  d|dz  z  z   d |dz  z  z
  d!|dz  z  z   |dz  z
            }!t           | |          |!          sJ t          |          t          |          z  t          |          z  t          |          z  t          |           z  }t           | |          d"t          |          z  t          |          z  t          |          z  d|z
  t          |          z  t          |          z  t          |          z  z             sJ t          |          t          |          z  t          |           z  }t           | |          d|z
  t          |          z            sJ t          |          t          |          z  t          |          z  t          |           z  }t           | |          dt          |          z  t          |          z  dt          |          z  t          |          z  z   d|z
  t          |          z  t          |          z  z
            sJ dt          |          z  t          |          z  t          |          z  t          |           z  t          |           z  } | |          }"t          |"|d"|z  dz   z  t          |          z            sJ t          |          t          |          z  t          |          z  t          |           z  t          |           z  } | |          }"t          |"| dz   dz  t          |          z            sJ t          |          t          |          z  t          |          z  t          |          z  t          |           z  } | |          }"t          |"|dz
  t          |          z  t          |          z  t          |          z  dt          |          z   |||          z  z             sJ t          |          t          |          z  t          |          z  t          |          z  t          |           z  t          |           z  } | |          }"t          |"|dz
  dz  t          |          z  t          |          z  d|z  d	z
   |||          z  z             sJ t          |          t          |          z  t          |          z  t          |           z  t          |           z  } | |          }"t          |"| dz   |dz
  z  dz   t          |          z            sJ t          |          t          |          z  t          |          z  t          |          z  t          |           z  t          |           z  t          |           z  } | |          }"t          |"d|z  | dz   dz  |dz
  z  z   dz   t          |          z            sJ dt          |          z  t          |          z  t          |          z  t          |          z  t          |           z  } | |          }"t          |"d"|z  dz   t          |          z  t          |          z  t          |          z  dt          |          z  t          |          z  t          |          z  z
            sJ t          |          t          |          z  t          |          z  t          |          z  t          |          z  t          |           z  t          |          z  t          |           z  } | |          }"t          |"| dz   | dz   z  t          |          z  t          |          z  t          |          z  t          |          z  d|z  dz
  t          |          z  t          |          z  t          |          z  t          |          z  z             sJ t          |           t          |          z  t          |          z  t          |          z  t          |           z  t          |          z  } | |          }"t          |"|dz
  t          |          z  t          |          z  t          |          z  t          |          z  dt          |          z  t          |          z  t          |          z  t          |          z  z             sJ t          |           t          |          z  t          |          z  t          |          z  t          |          z  t          |          z  t          |           z  t          |          z  } | |          }"| dz   dz  dz   t          |          z  t          |          z  t          |          z  t          |          z  d|z  d	z
  t          |          z  t          |          z  t          |          z  t          |          z  z   d|z  d	z
  t          |          z  t          |          z  t          |          z  t          |          z  z   dt          |          z  t          |          z  t          |          z  t          |          z  z   dt          |          z  t          |          z  t          |          z  t          |          z  z   dt          |          z  t          |          z  t          |          z  t          |          z  z   }#dt          |          z  t          |          z  t          |          z  t          |          z  dt          |          z  t          |          z  t          |          z  t          |          z  z   }$|dk    r#t          |"|#          st          |"|$          sJ nt          |"|#          sJ t          |          } | |          }"t          |"|          sJ d#t          |          z  } | |          }"t          |"|          sJ d$t          |          z  t          |          z  t          |           z  t          |          z  } | |          }"t          |"|          sJ d%S )&a  
    Perform tests to check if sfunc is able to simplify gamma matrix expressions.

    Parameters
    ==========

    `sfunc`     a function to simplify a `TIDS`, shall return the simplified `TIDS`.
    `D`         the number of dimension (in most cases `D=4`).

    mu, nu, rho, sigmaza1:7z.mu11, mu12, mu21, mu31, mu32, mu41, mu51, mu52zmu61, mu71, mu72m0:7c                     t          |           t          |          z  t          |          t          |           z  z   dz  S )N   )G)xxyys     r   gz4execute_gamma_simplify_tests_for_function.<locals>.g$   s2    "aeeaeeAbEEk)1,,r         c                 &    | t          d          z  S )Nr#   )r   )nes    r   	add_deltaz<execute_gamma_simplify_tests_for_function.<locals>.add_delta9   s    CFF{r   r                  @   p   <      x   H   i  i0  i        iP  iH        i   N)r   r   r   r   )%tfuncDmunurhosigmaa1a2a3a4a5a6mu11mu12mu21mu31mu32mu41mu51mu52mu61mu71mu72m0m1m2m3m4m5m6r"   tr(   tsstresult1result2s%                                        r   )execute_gamma_simplify_tests_for_functionr_      s    ((<lKKBC+FLAABBB5CDt  wC  6D  6D2D$dD$d%&8,GGD$!/!E!EBBBB- - - 	AvvrUU1T77]1R55 4(B3/$72#>UU1XXr!D''z!D'''9!D'''AAaggIaPTggDUVWX\V]V]D]']^^^^^rUU1T77]1T77"ee$$%dGG,ee$$%dGG,,-dGG4  ee$ %&dGG,  ff	% &'tWW	- ./tWW	5
  ff%
 &'tWW-  ff% &'tWW- ./tWW5  ff% UU1XXqwwJqwwqww&qww.qww6qww>qwwFqwwNqQUwwVWXY]W^W^^_`ae_f_ffiklmnrlslsistuvzt{t{i{|}  C  }D  }D  jD  EF  GK  EL  EL  jL  MN  OS  MT  MT  jT  UV  W[  U\  U\  j\  ]^  _c  ]d  ]d  jd  ef  gk  el  el  jl  mn  os  mt  mt  jt  uv  w{  u|  u|  j|  }~  C  }D  }D  jD  D  GI  JK  LP  JQ  JQ  GQ  RS  TX  RY  RY  GY  Z[  \`  Za  Za  Ga  bc  dh  bi  bi  Gi  jk  lp  jq  jq  Gq  rs  tx  ry  ry  Gy  z{  |@  zA  zA  GA  BC  DH  BI  BI  GI  JK  LP  JQ  JQ  GQ  RS  TX  RY  RY  GY  Z[  \`  Za  Za  Ga  a  df  gh  im  gn  gn  dn  op  qu  ov  ov  dv  wx  y}  w~  w~  d~  @  AE  F  F  dF  GH  IM  GN  GN  dN  OP  QU  OV  OV  dV  WX  Y]  W^  W^  d^  _`  ae  _f  _f  df  gh  im  gn  gn  dn  op  qu  ov  ov  dv  wx  y}  w~  w~  d~  ~  	 	 	
   
2q"vvA	1Bq2&&&&&	
2quuQsVV	ArcFF	"A	1Q3A:		Bq2&&&&&	
2quuQsVV	ArcFF	"A	1a4Bq2&&&&&	
2quuQtWW	QsVV	#ArcFF	*1S66	1A	1Q31a4<!Q$&	'	'Bq2&&&&&	
2quuQsVV	AsdGG	#ArcFF	*1bS66	1A	1a4Bq2&&&&&	
2quuQrUU	1R55	 B3	'2#	.q"vv	5aff	<A	2a4"QT'>AadF*QT1	2	2Bq2&&&&&	
B32#q#ww	q%yy	(2	.quu	4QuXX	=aff	DA	3q52ad7?Qq!tV+ad2	3	3Bq2&&&&&	
B3"agg	ahh	&qvv	-aff	4QrUU	:1eV99	DA	1Q3AqD=1QT6)AqD0	1	1Bq2&&&&&	
2quuQrUU	1R55	 2	&q"vv	-aff	4QsVV	;ArcFF	B1bS66	IA	2a4#ad(?R1W,r!Q$w6A=	>	>Bq2&&&&&	
2quuQrUU	1R55	 2	&q"vv	-aff	4QsVV	;ArcFF	B1bS66	IA	2a4#ad(?R1W,r!Q$w6A=	>	>Bq2&&&&&	
2quuQrUU	1R55	 2	&quu	,QsVV	3ArcFF	:1bS66	A!RC&&	HB3	OPQSURUPVPV	VA	3q53q!t8#c!Q$h.QT9Bq!tGCadJ	K	KBq2&&&&&	
2quuQrUU	1R55	 2	&quu	,QsVV	3ArcFF	:1bS66	A!RC&&	HB3	OPQSURUPVPV	VA	3q53q!t8#c!Q$h.QT9Bq!tGCadJ	K	KBq2&&&&& 
2quuQsVV	AeHH	$QsVV	+AqBqxxK#$6quu$<!QrUU{1S66?QRSTYRZRZ?Z$Z\\\\\	
2quuQsVV	AqAaC2;/////	
2quuQsVV	ArcFF	"Aq1QrUU71S66>AaffHQrUUN#Bac1R55[QRSVQWQWEW#WXXXXX	!B%%"aeeArcFF"1bS66)A	qBaAlAbEE122222	"aeeAbEE!RC&& B3'A	qBrAvk1R55011111	"aeeAbEE!B%%2#&A	qBa!eQrUU]1R550261R552r9JJKKKKK	"aeeAbEE!B%%2#&q"vv-A	qBq1uqj!B%%/"51r11R998LLMMMMM	"aeeAbEE!RC&& B3'A	qBrAvA.2AbEE9:::::	"aeeAbEE!B%%2#&q"vv-aff4A	qBbdqb1fq[!a%%881<aeeCDDDDD	!B%%"aeeAbEE!!RC&&(A	qBr!tax2.quu4QrUU:QquuWQrUU]1R55=PPRRRRR	"aeeAbEE!B%%"%aff,QrUU21bS669A	qBQ!a0!B%%7"=aeeCAbEEIQqSSTWVWXZV[V[O\]^`\a\aLabcdfbgbgLghijlhmhmLmmooooo	
2quuQrUU1R55 B3'"-A	qBq1uaeemAbEE1!B%%7"=!B%%"aPRee@STUVXTYTY@YY[[[[[	2#quuQrUU1R55 2&quu,QsVV3AbEE9A	qBQ{Q"%aee+AbEE1!B%%7	
1r1R552quu$QrUU*+./cBh"-=aee-CAbEE-I!B%%-OP
AbEE'!B%%-"
aee
#$&'"gaeemAbEE&9!B%%&?@ 	
!B%%"aeeAbEE!"G "gaeemAbEE!!B%%'!AbEE'!B%%-"*=aee*CCGAvvR'++K}R'/K/KKKKR'+++++ 	
"A	qBQ
1R55A	qBQAbEE	!B%%2#quu$A	qBQr   c                  .    d } t          | d           d S )Nc                      t          |           S r   )r   )es    r   r<   z$test_kahane_algorithm.<locals>.tfunc   s    $Q'''r   r#   r=   )r_   )r<   s    r   test_kahane_algorithmrd      s,    ( ( ( .eq999999r   c                  b   t          dt                    \  } }}}}}}}}}	}
}}}}}t          dt                    \  }}}}d}t          |           t          |          z  }t          |          }|                    |          sJ t          |           t          |          z  t          |            z  }t          |          }|                    dt          |          z            sJ t          |           t          |          z  t          |            z  }t          |          }|                    dt          |          z            sJ t          |           t          |          z  }t          |          }|                    |          sJ t          |           t          |          z  }t          |          }|                    |          sJ t          |           t          |            z  }t          |          }|                    dt          d          z            sJ t          |           t          |            z  }t          |          }|                    dt          d          z            sJ t          |           t          |            z  }t          |          }|                    dt          d          z            sJ t          |           t          |          z  t          |            z  }t          |          }|                    dt          |          z            sJ t          |           t          |          z  t          |            z  t          |           z  }t          |          }|                    d|z  |dz  z
  t          d          z            sJ t          |           t          |          z  t          |            z  t          |           z  }t          |          }|                    d|z  |dz  z
  t          d          z            sJ t          |           t          |            z  t          |          z  t          |           z  }t          |          }|                    dt          d          z            sJ t          |          t          |          z  t          |           z  t          |           z  }t          |          }|                    |dz  t          d          z            sJ t          |          t          |          z  t          |           z  t          |           z  }t          |          }|                    |dz  t          d          z            sJ t          |          t          |          z  t          |           z  t          |           z  }t          |          }|                    |dz  t          d          z            sJ t          |          t          |          z  t          |           z  t          |           z  t          |           z  t          |          z  }t          |          }|                    d|z  d|dz  z  z
  |dz  z   t          d          z            sJ t          |           t          |           z  t          |           z  t          |           z  t          |          z  t          |          z  t          |          z  t          |          z  }t          |          }|                    d|z  d	|dz  z  z   d
|dz  z  z
  |dz  z   t          d          z            sJ t          |           t          |          z  t          |           z  t          |          z  t          |          z  t          |           z  t          |          z  t          |           z  }t          |          }|                    d
|z  d|dz  z  z
  d|dz  z  z   |dz  z
  t          d          z            sJ t          |          t          |          z  t          |          z  t          |          z  t          |           z  }t          |          }|                    dt          |          z  t          |          z  t          |          z            sJ t          |          t          |           z  t          |          z  t          |          z  }t          |          }|                    dt          |          z  t          |          z            sJ t          |          t          |          z  t          |          z  t          |           z  }t          |          }|                    dt          |          z  t          |          z            sJ d S )Nzi0:16r   r#   r:   r   r%   r)   r,   r-   r+   r.   r/   )r   r   r   r   r   r   )i0i1i2i3i4i5i6i7i8i9i10i11i12i13i14i15r>   r?   r@   rA   r=   rZ   rs                          r   test_kahane_simplify1rw      se   <J7T`<a<a9Br"R2bBr#c#c#c'(<lKKBC	A	"aeeAA88A;;	"aeeArcFFAA88BquuH	"aeeArcFFAA88BquuH	"aeeAA88A;;	"aeeAA88A;;	"affAA88Ac!ffH	"affAA88Ac!ffH	"affAA88Ac!ffH	"aeeArcFFAA88BquuH	"aeeArcFF1bS66!AA88QqS1a4ZQ'(((((	"aeeArcFF1bS66!AA88QqS1a4ZQ'(((((	"affQrUU1bS66!AA88Bs1vvI	
2quuQsVV	ArcFF	"AA88AqDQK     	
2quuQsVV	ArcFF	"AA88AqDQK     	
2quuQsVV	ArcFF	"AA88AqDQK     	
2quuQtWW	QsVV	#ArcFF	*1S66	1AA88QqS1QT6\AqD(#a&&011111	
B32#q#ww	q%yy	(2	.quu	4QuXX	=aff	DAA88SUR1W_qAv-14c!ff<=====	
B3"agg	ahh	&qvv	-aff	4QrUU	:1eV99	DAA88QqS2ad7]Qq!tV+ad2CFF:;;;;; 
2quuQsVV	AeHH	$QsVV	+AA88BqxxK#&quu,-----	
2q"vvaff	QuXX	%AA88AaffHQuXX%&&&&&	
3%2	q"vv	%AA88AaffHQuXX%&&&&&&&r   c            
      ^   t          dt                    \  } }}t          dt          g          } ||          t          |           z  t          |            z  }t	          |          }t          |t          g dg dg dg dg           ||          z            sJ t          |            ||          z  t          |          z  }t	          |          }t          | ||          t          |           z  t          |          z            sJ t          t          d           d S )	Nzi,j,kA)r#   r   r   r   )r   r#   r   r   )r   r   r#   r   )r   r   r   r#   r#   rc   )r   r   r   r   r   r   r   r_   )ijkry   rZ   r[   s         r   test_gamma_matrix_classr}     s3   Wl33GAq! 	3''A	!QqTT	!QB%%A	"1	%	%BV	%   qtt	      	
!QQqTT	!A$$A	"1	%	%BQQqTT!A$$Yqtt^,,,,,-.G1MMMMMMr   c            
         t           j        } t          dt                     \  }}}}}}}t          dt                     \  }}	}
}}}d}t          |          }t	          |          }|                    d          sJ t          |          t          |          z  t          |          z  }t	          |          }|                    d          sJ t          |          t          |          z  t          |           z  }t	          |          }|                    d          sJ t          |          t          |          z  t          |          z  t          |          z  t          |          z  }t	          |          }|                    d          sJ t          |          t          |          z  }t	          |          }t          |d | ||          z            sJ t          |          t          |          z  t          |          z  t          |          z  }t	          |          }d | ||          z   | ||          z  d | ||          z   | ||          z  z   d | ||          z   | ||          z  z   }t          ||          sJ t          |          t          |          z  t          |          z  t          |          z  t          |          z  t          |          z  }t	          |          }| | | |           z  }|                    |           }t          ||t	          t          |          t          |          z  t          |          z  t          |          z            z            sJ t          |          t          |           z  }t	          |          }|                    d|z            sJ t          |          t          |          z  t          |           z  t          |           z  }t	          |          }|                    d|z  d|dz  z  z
            sJ t          |          t          |          z  t          |          z  t          |          z  t          |          z  t          |           z  }t	          |          }d|z   | ||          z   | ||          z  d|z   | ||          z   | ||          z  z   d|z   | ||          z   | ||          z  z   }t          ||          sJ t          |           t          |          z  t          |          z  t          |          z  t          |          z  t          |          z  t          |           z  t          |          z  }t	          |          }d|z  d| dz   dz  z  z   d	z
   | ||           | ||          z   | ||           | ||          z  z
   | ||           | ||          z  z   z  }t          ||          sJ t          |          t          |          z  t          |           z  t          |          z  }t	          |          }|                    d|z  dz    | ||          z            sJ t          |          t          |          z  t          |          z  t          |          z  t          |          z  t          |          z  t          |           z  t          |           z  t          |           z  t          |           z  t          |           z  t          |           z  }t	          |          }|                    d|d
z  z  d|dz  z  z   d|dz  z  z
  d|dz  z  z   d|dz  z  z
  d|z  z             sJ t          |          t          |          z  t          |	          z  t          |          z  t          |
          z  t          |          z  t          |          z  t          |
           z  t          |	           z  t          |           z  t          |           z  t          |           z  t          |           z  t          |           z  }t	          |          }d|z  d|dz  z  z   d|dz  z  z
  d|dz  z  z   d|dz  z  z
  d|d
z  z  z   d|dz  z  z
  }|                    |          sJ t          |          t          |          z  t          |	          z  t          |          z  t          |
          z  t          |          z  t          |          z  t          |          z  t          |          z  t          |           z  t          |           z  t          |           z  t          |           z  t          |           z  }t	          |          }d|dz  z  d|dz  z  z   d|dz  z  z
  d|dz  z  z   d|z  z
  dz   }d|dz  z  d|dz  z  z   d|dz  z  z
  d|dz  z  z   d|z  z
  d z   }t          || | |	|          z   | |
|          z  | | |	|
          z   | ||          z  z   |  | |	|          z   | |
|          z  z             sJ t          d!t           g          \  }} ||          t          |           z  } ||          t          |           z  } ||           ||           z  } ||           ||           z  } ||           ||           z  }||z  |z  |z  }t	          |          }t          |d|z  |z  d|z  |z  z
            sJ ||z  |z  |z  |z  |z  }t	          |          }t          |d"|z  |z  |z  d#|z  |z  |z  z             sJ ||z  |z  |z  |z  |z  |z  |z  }t	          |          }t          |d$|z  |z  |z  |z  d|z  |z  |z  |z  z   d|z  |z  |z  |z  z             sJ d ||          z   ||          z   ||           z   ||           z   ||          z   ||           z  }t          t	          |          |          sJ ||z  |z  |z  |z  |z  |z  |z  }t	          |          }|                    d|z  |z  |z  |z            sJ d S )%Nr   zn0:6r#   r   r$   r+   r       r0   r/   r4   r3   i  i   r)   i  i   i iA  i@8  i   i     i  i  i@)  i  X   i0  i  i@  i  zp,qir%   i)	r   metricr   r   r   r   r   contract_metricr   )r"   rS   rT   rU   rV   rW   rX   rY   n0n1n2n3n4n5r=   rZ   t1t2tresuc1c2pqpsqsp2q2pqrv   s                                r   test_gamma_matrix_tracer   !  se   A!/!E!EBBBB+FLAABBB 	
A 	
"A	QB99Q<<	"aeeAbEEA	QB99Q<<	"aeeArcFFA	QB99Q<<	"aeeAbEE!B%%"%A	QB99Q<< 	
"aeeA	QBQqqRyy[)))))	"aeeAbEE!B%%A	QB	AAb"IIaaBii	!AAb"II+aaBii"7	7!AAb"II+aaBii:O	OBR     	"aeeAbEE!B%%"%aee+A	QB	AArcB3KKB			A		BQ{1R552;quu+<QrUU+BCCCDDDDD 	
"affA	QB99QqS>>	"aeeArcFF1bS66!A	QB99QqS1QT6\"""""	"aeeAbEE!B%%"%aff,A	QB
Q$"b			!!B))	#qsAAb"IIoaaBii&?	?A#qqRyy2r*
+BR     	2#quuQrUU1R55 2&quu,QsVV3AbEE9A	QB
Q$QBFQ;

#aaBii"b		&9Ab"IIaaBii' "#!B))AAb"II"5'6 
7BR     	"aeeArcFF1R55 A	QB99bdQh"b		)***** 	
"aeeAbEE!B%%"%aee+ArcFF21bS669!RC&&@B3G2#NqRTQTvvUA	QB99R1Ws1a4x'$q!t)3d1a4i?$q!t)KdSTfTUUUUU	"aeeAbEE!B%%"%aee+AbEE1!RC&&8B3?2#Fq"vvMaQSPSffTUVXZWZU[U[[\]_a^a\b\bbA	QB!GeAqDj 5A:-QT	9DAIEAqDPSTUVXYUYSYYE99U 	
"aeeAbEE!B%%"%aee+AbEE1!B%%7"=affDQsVVKArcFFRSTVXUXSYSYYZ[]_\_Z`Z``A	QB	AqD3q!t8	d1a4i	'$q!t)	3eAg	=	DB	AqD2ad7	SAX	%QT		1DF	:S	@BR"b		\!!B))3b2rl11R996LLS!!B))OAAb"II%& ' ' ' ' ' ~..DAq	
2q"vvB	
2q"vvB	
2qq"vvB	
2qq"vvB	
2qq"vvB
2bAAAAbDGad2g-.....
2bBrAAACF2IbL2b58B;677777
2bBr"RAAACF2IbLObeBhrk"n<qtBwrz"}LMMMMM	!!B%%"aaffQQsVV#AAbEE)!!RC&&0AQ+++++
2bBr"RAAA88AbDGBJrM"""""""r   c                  6   t          dt          g          \  } }}t          dt                    \  }}}}}t          d          } | |          t	          |           z  }	 ||          t	          |           z  }
 ||          t	          |           z  }|t	          |          z  |
z  t	          |          z  |	z  t	          |           z  |
z  t	          |           z  }|t	          |          z  |
z  t	          |          z  |	z  |z  t	          |           z   | |           z  }t          |          }t          |          }t          ||z             }|dd ||          z   ||           z   ||          z   | |           z  d ||          z   ||          z   ||           z   | |           z  z   z  k    sJ |d|z   ||          z   ||           z   | |          z   | |           z  k    sJ |||z   k    sJ dS )	zkTest issue 13636 regarding handling traces of sums of products
    of GammaMatrix mixed with other factors.z
pi, ki, pfzi0:5xr#   r$   r+   r*   N)r   r   r   r   r   r   )pikipfrf   rg   rh   ri   rj   r   piskispfsabtatb
t_a_plus_bs                    r   test_bug_13636r     s:    l\N;;JBB'==BBBsA
"R&&1bS66/C
"R&&1bS66/C
"R&&1bS66/CaeecAbEE!C'!RC&&036B3?AaeecAbEE!C'!+aff4rr2#ww>A	QB	QBQU##J
RRVVbb"gg2&RC0
bbff*rr"vv
B3
'""bS''
1	2     a""R&&22rc77*RRVV3bb"gg=====b      r   N)sympy.matrices.denser   r   sympy.tensor.tensorr   r   r   r   r	    sympy.physics.hep.gamma_matricesr
   r   r   r   r   r   r   sympyr   r   r_   rd   rw   r}   r   r    r   r   <module>r      sW   , , , , , , , ,             S S S S S S S S S S S S S S S S        f  f  f R: : :F' F' F'PN N N*s# s# s#l! ! ! ! !r   