// output of ./demo/perm/perm-decomp-demo.cc:
// Description:
//% Permutations as Kronecker products of simpler permutations.
//% Nasty but useful code.

arg 1: 6 == ldn  [Use 2**ldn elements]  default=6
Operations:
 gray_permute(f, n)
Result:
[
 0, 1, 3, 2, 7, 6, 4, 5,15,14,12,13, 8, 9,11,10,
31,30,28,29,24,25,27,26,16,17,19,18,23,22,20,21,
63,62,60,61,56,57,59,58,48,49,51,50,55,54,52,53,
32,33,35,34,39,38,36,37,47,46,44,45,40,41,43,42 ]
Analysis:
 == gray_permute
 = gray_rev_permute .@ r
 = h @. gray_rev_permute

