private void addRandomSymmetries(NameDescriptor descriptor) {//TODO add antisymmetries if (!descriptor.getSymmetries().isTrivial()) //todo <= review this moment return; StructureOfIndices typeStructure = descriptor.getStructureOfIndices(); int i; for (byte type = 0; type < TYPES_COUNT; ++type) { StructureOfIndices.TypeData typeData = typeStructure.getTypeData(type); if (typeData == null) continue; if (typeData.length == 0)//redundant continue; int count = random.nextInt(4); for (i = 0; i < count; ++i) descriptor.getSymmetries().addSymmetry(type, Permutations.createPermutation(false, nextPermutation(typeData.length))); } }
result.put(term); this.result = indices.getSymmetries().isTrivial() ? result.build() : symmetrize(result.build());
if (fromIndices.size() == 1 || fromIndices.getSymmetries().isTrivial()) { IndexMappingBuffer tempBuffer = currentBuffer; for (int i = 0; i < size; ++i)