I was looking into extending the motif finder to support 5 and 6vertex undirected motifs (of which there are 34 and 156, respectively, still fewer than the 218 directed 4motifs we currently support).
I noticed that parts of the lookup tables are never used. Thus I cannot figure out their purpose.
For 3vertex motifs, we have:

igraph_i_isoclass_3
: This is never used. What is it for? 
igraph_i_isoclass_3_idx
: This assigns a unique bit to each edge, its purpose is clear. 
igraph_i_isoclass2_3
: This is the actual lookup table from a bitwiseunsigned int
based encoding of adjacency matrices to â€śisoclassesâ€ť. Its purpose is clear. 
igraph_i_classedges_3
andigraph_i_isographs_3
: These are used for creating a graph from an â€śisoclassâ€ť. Again, itâ€™s clear what they are for.
@Gabor Do you recall what igraph_i_isoclass_3
is for? If not, should we just remove these unused tables? Perhaps they come from the FANMOD software which is the original implementation of the motif finding algorithm used by igraph. Unfortunately, I can no longer find any downloads for FANMOD.
When I create the tables for 5 and 6vertex graphs: Was there any particular logic to assigning isoclasses to each graph? Is there any particular rule I should stick to?
This is a reminder of the â€śisoclassesâ€ť for 3vertex directed graphs. Note that it is not even sorted by edge count, with 8 having more edges than 9.