UnitaryTrace
calculates the trace of SU(N) matrices in expressions.UnitaryTrace
uses notation T_A
for SU(N) matrices, f_ABC
for SU(N) structural constants, d_ABC
for $d$-constatnts and N
for dimension.UnitaryTrace[[Matrix: T, f: f, d: d, N:n]]
specifies the notation for SU(N) matrices, structural constants, $d$-constants and dimension .Calculate different traces:
//set up matrices defineMatrices 'T_A', Matrix2.matrix //structure constants are antisymmetric setAntiSymmetric 'f_ABC' //d-constants are symmetric setSymmetric 'd_ABC' println UnitaryTrace >> 'Tr[T_A*T_B]'.t
> (1/2)*g_AB
UnitaryTrace >> 'Tr[T_A*T_B*T_C]'.t
> (1/4*I)*f_{CAB}+(1/4)*d_{CAB}'
UnitaryTrace >> 'Tr[T_A*T^A + 1]'.t
> N-1/2+(1/2)*N**2
UnitaryTrace >> 'Tr[T_A*T_B*T_C*T^A]'.t
> (-(1/4)*N**(-1)+(1/4)*N)*g_{BC}
Use another notation for SU(N) objects:
//set up matrices defineMatrices 'm_a', Matrix4.matrix //structure constants are antisymmetric setAntiSymmetric 'a_abc' //d-constants are symmetric setSymmetric 's_abc' def uTrace = UnitaryTrace[[Matrix: 'm_a', f: 'a_abc', d: 's_abc', N: 'n']] println uTrace >> 'Tr[m^a*m_b*m^c*(p^b*m_a + p_a*m^b)*m_n]'.t
> (-1/4*I)*n**(-1)*a_{n}^{ac}*p_{a}-(1/4)*n**(-1)*p_{a}*s_{n}^{ac}