Map<Permutation, Boolean> symmetries = getEpsilonSymmetries(indices.length);
//symmetries of product, which is contracted with Levi-Civita
MappingsPort port = IndexMappings.createPort(temp, temp);
Mapping mapping;
Permutation sym;
//check for two symmetric indices of product contracted with two antisymmetric indices of eps
while ((mapping = port.take()) != null) {
//symmetry of product indices
sym = TensorUtils.getSymmetryFromMapping(indices, mapping);
//if symmetry mixes indices of product, which are not contracted with eps
if (!checkNonPermutingPositions(sym, nonPermutableArray))
continue;
//bingo!
if (sym.antisymmetry() != symmetries.get(sym))
return Complex.ZERO;
}
}