Use smallest possible lookup table, introduce classes for the lookup steps.
Use unordered map for improve performance, add stats.
Performance optimizations.
Use std::begin() and std::end().
Micro-optimizations.
Move generation code to a library.
Flesh out map_generator executable.
Bugfixes.
Better testing.
Comments
Allow the name of the function to be specified.
Try and reduce the size of the lookup table using an and instruction.
Limit the maximum number of collisions to 1/4 entries.

Also stop early if we find a polynomial that results in no collisions.
Fix base used for printing.
Add an example (extracting opcode from a load / store instructions).
Move laod_store_map to examples.