- factor out control flow in two functions,
reverse_each_moduletakes two iterators, and finds the partitions corresponding to a module, and the reverses each of these partitions partitions
for_each_quadranttakes a container and a container of offsets which defines partitions of that container. It calls, for each parittion, the callable with the first,last iterator of these partitions
- replace the vector of partitionpoints with a boost::container::static_vector to avoid allocating memory on the heap
- add some lamdas which bind common function arguments, so they don't have to be repeated...
- move the verbose printout out of the main decoding loop (avoiding repeated checks on msgLevel) and instead provide a single loop which dumps the created clusters (note: this slightly changes the printout format!)