Fix the variable permutation performed at the end of level 1 fold. #90
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Level 0 fold operation requires the indice of folded variables to be sorted. However, level 1 fold takes as argument a list of variable names, which does not necessarily give a sorted list of variable indices. Hence, level 1 fold applis the level 0 fold on the sorted variable indices, and then corrects the result by permuting variable indices until the fist variable in the argument list (i.e., the destination) contains the result of the fold (instead of the variable with the lowest index).
Previously, the code performed a rotation to the right, which was not correct and provided wrong results in some cases. A rotation to the left is actually needed, instead. This PR fixes the rotation.