The script src/polymorphisms.py now contains the definitions of the Hamming graph polymorphisms, but the hyperoctahedral ones have yet to be added to it. The script src/binary_image_polymorphisms.py remains so that the work found there isn't lost, but most of it has been moved over and, in some cases, improved. For example, SwappingAutomorphism and BlankingEndomorphism now work for relations of arbitrary arity, not just binary ones.
Once the hyperoctahedral automorphisms have been implemented, we still need to decide whether to keep the original RotationAutomorphism and ReflectionAutomorphism or perhaps make these aliases for specific cases of the general hyperoctahedral implementation.
The script
src/polymorphisms.py
now contains the definitions of the Hamming graph polymorphisms, but the hyperoctahedral ones have yet to be added to it. The scriptsrc/binary_image_polymorphisms.py
remains so that the work found there isn't lost, but most of it has been moved over and, in some cases, improved. For example,SwappingAutomorphism
andBlankingEndomorphism
now work for relations of arbitrary arity, not just binary ones.Once the hyperoctahedral automorphisms have been implemented, we still need to decide whether to keep the original RotationAutomorphism and ReflectionAutomorphism or perhaps make these aliases for specific cases of the general hyperoctahedral implementation.