+
+ } else if (is_ex_exactly_of_type(other->op(0), su3t)) {
+
+ // f.abc T.b T.c = 3/2 I T.a
+ if (other+1 != v.end()
+ && is_ex_exactly_of_type(other[1].op(0), su3t)
+ && ex_to<indexed>(*self).has_dummy_index_for(other[1].op(1))) {
+
+ exvector self_indices = ex_to<indexed>(*self).get_indices();
+ exvector dummy_indices;
+ dummy_indices.push_back(other[0].op(1));
+ dummy_indices.push_back(other[1].op(1));
+ int sig;
+ ex a = permute_free_index_to_front(self_indices, dummy_indices, sig);
+ *self = numeric(3, 2) * sig * I;
+ other[0] = color_T(a, ex_to<color>(other[0]).get_representation_label());
+ other[1] = _ex1();
+ return true;
+ }