- if (is_a<indexed>(metr)) {
- exvector indices = ex_to<indexed>(metr).get_indices();
- if ((indices.size() == 2) && is_a<varidx>(indices[0]) && is_a<varidx>(indices[1])) {
- return clifford(unit, mu, metr, rl, anticommuting);
- } else {
- throw(std::invalid_argument("clifford_unit(): metric for Clifford unit must be indexed exactly by two indices of same type as the given index"));
- }
- } else if (is_a<tensor>(metr)) {
- static varidx xi((new symbol)->setflag(status_flags::dynallocated), ex_to<varidx>(mu).get_dim()),
- chi((new symbol)->setflag(status_flags::dynallocated), ex_to<varidx>(mu).get_dim());
- return clifford(unit, mu, indexed(metr, xi, chi), rl, anticommuting);
+ if (indices.size() == 2) {
+ return clifford(unit, mu, metr, rl);