+ // Tr gamma5 S_2k =
+ // epsilon0123_mu1_mu2_mu3_mu4 * Tr gamma_mu1 gamma_mu2 gamma_mu3 gamma_mu4 S_2k
+ ex dim = ex_to_idx(e.op(1).op(1)).get_dim();
+ varidx mu1((new symbol)->setflag(status_flags::dynallocated), dim),
+ mu2((new symbol)->setflag(status_flags::dynallocated), dim),
+ mu3((new symbol)->setflag(status_flags::dynallocated), dim),
+ mu4((new symbol)->setflag(status_flags::dynallocated), dim);
+ exvector v;
+ v.reserve(num + 3);
+ v.push_back(dirac_gamma(mu1, rl));
+ v.push_back(dirac_gamma(mu2, rl));
+ v.push_back(dirac_gamma(mu3, rl));
+ v.push_back(dirac_gamma(mu4, rl));
+ for (int i=1; i<num; i++)
+ v.push_back(e.op(i));
+
+ return (eps0123(mu1.toggle_variance(), mu2.toggle_variance(), mu3.toggle_variance(), mu4.toggle_variance()) *
+ dirac_trace(ncmul(v), rl)).simplify_indexed() / 24;
+