In case a molecule cannot pass the canonical test, there is still something to learn from the test. In the row by row comparison of the canonical test, when a row does not pass the test, the entry making it non-canonical is detected. As explained in Algorithm 1, if a block is not canonical, MAYGEN updates the matrix starting with its last entry in the block. However, with the help of the non-canonical matrix, the algorithm starts modifying the matrix from the entry making the matrix non-canonical. For a matrix C with its partition } and the refined λ (0) = {5 partition , there are 5 cycle transpositions. One of these cycles is . To λ (0) ' = {1, 4} (1, 3) perform the maximality test, its first and third rows are compared as shown in Figure . row. Here the first entry making the row non-canonical is in the matrix. Then the 𝐶 matrix construction continues with the indices . With the "learning from the canonical test", all the other non-canonical matrices are skipped.