// output of ./demo/comb/mixedradix-sl-gray-demo.cc:
// Description:
//% Mixed radix numbers in a minimal-change order
//% related so subset-lex order ("SL-Gray" order).

arg 1: 3 == n  [Number of digits (n>=1)]  default=3
arg 2: 4 == rr  [Base (radix) of digits (0==>falling factorial, 1==>rising factorial)]  default=4
args 3,4,... : [Optionally supply radix for all digits (rr ignored)]
Nines: [ 3 3 3 ]
    0:    [ . . . ]    0  -    [ + + + ]  0    {  }
    1:    [ 1 . . ]    0  +    [ + + + ]  0    { 0 }
    2:    [ 2 . . ]    0  +    [ + + + ]  0    { 00 }
    3:    [ 3 . . ]    0  +    [ + + + ]  0    { 000 }
    4:    [ 3 1 . ]    1  +    [ - + + ]  1    { 0001 }
    5:    [ 3 2 . ]    1  +    [ - + + ]  1    { 00011 }
    6:    [ 3 3 . ]    1  +    [ - + + ]  1    { 000111 }
    7:    [ 3 3 1 ]    2  +    [ - - + ]  2    { 0001112 }
    8:    [ 3 3 2 ]    2  +    [ - - + ]  2    { 00011122 }
    9:    [ 3 3 3 ]    2  +    [ - - + ]  2    { 000111222 }
   10:    [ 3 2 3 ]    1  -    [ - - - ]  2    { 00011222 }
   11:    [ 3 2 2 ]    2  -    [ - - - ]  2    { 0001122 }
   12:    [ 3 2 1 ]    2  -    [ - - - ]  2    { 000112 }
   13:    [ 3 1 1 ]    1  -    [ - - + ]  2    { 00012 }
   14:    [ 3 1 2 ]    2  +    [ - - + ]  2    { 000122 }
   15:    [ 3 1 3 ]    2  +    [ - - + ]  2    { 0001222 }
   16:    [ 3 . 3 ]    1  -    [ - - - ]  2    { 000222 }
   17:    [ 3 . 2 ]    2  -    [ - - - ]  2    { 00022 }
   18:    [ 3 . 1 ]    2  -    [ - - - ]  2    { 0002 }
   19:    [ 2 . 1 ]    0  -    [ - + + ]  2    { 002 }
   20:    [ 2 . 2 ]    2  +    [ - + + ]  2    { 0022 }
   21:    [ 2 . 3 ]    2  +    [ - + + ]  2    { 00222 }
   22:    [ 2 1 3 ]    1  +    [ - + - ]  2    { 001222 }
   23:    [ 2 1 2 ]    2  -    [ - + - ]  2    { 00122 }
   24:    [ 2 1 1 ]    2  -    [ - + - ]  2    { 0012 }
   25:    [ 2 2 1 ]    1  +    [ - + + ]  2    { 00112 }
   26:    [ 2 2 2 ]    2  +    [ - + + ]  2    { 001122 }
   27:    [ 2 2 3 ]    2  +    [ - + + ]  2    { 0011222 }
   28:    [ 2 3 3 ]    1  +    [ - + - ]  2    { 00111222 }
   29:    [ 2 3 2 ]    2  -    [ - + - ]  2    { 0011122 }
   30:    [ 2 3 1 ]    2  -    [ - + - ]  2    { 001112 }
   31:    [ 2 3 . ]    1  -    [ - - + ]  1    { 00111 }
   32:    [ 2 2 . ]    1  -    [ - - + ]  1    { 0011 }
   33:    [ 2 1 . ]    1  -    [ - - + ]  1    { 001 }
   34:    [ 1 1 . ]    0  -    [ - + + ]  1    { 01 }
   35:    [ 1 2 . ]    1  +    [ - + + ]  1    { 011 }
   36:    [ 1 3 . ]    1  +    [ - + + ]  1    { 0111 }
   37:    [ 1 3 1 ]    2  +    [ - - + ]  2    { 01112 }
   38:    [ 1 3 2 ]    2  +    [ - - + ]  2    { 011122 }
   39:    [ 1 3 3 ]    2  +    [ - - + ]  2    { 0111222 }
   40:    [ 1 2 3 ]    1  -    [ - - - ]  2    { 011222 }
   41:    [ 1 2 2 ]    2  -    [ - - - ]  2    { 01122 }
   42:    [ 1 2 1 ]    2  -    [ - - - ]  2    { 0112 }
   43:    [ 1 1 1 ]    1  -    [ - - + ]  2    { 012 }
   44:    [ 1 1 2 ]    2  +    [ - - + ]  2    { 0122 }
   45:    [ 1 1 3 ]    2  +    [ - - + ]  2    { 01222 }
   46:    [ 1 . 3 ]    1  -    [ - - - ]  2    { 0222 }
   47:    [ 1 . 2 ]    2  -    [ - - - ]  2    { 022 }
   48:    [ 1 . 1 ]    2  -    [ - - - ]  2    { 02 }
   49:    [ . . 1 ]    0  -    [ - + + ]  2    { 2 }
   50:    [ . . 2 ]    2  +    [ - + + ]  2    { 22 }
   51:    [ . . 3 ]    2  +    [ - + + ]  2    { 222 }
   52:    [ . 1 3 ]    1  +    [ - + - ]  2    { 1222 }
   53:    [ . 1 2 ]    2  -    [ - + - ]  2    { 122 }
   54:    [ . 1 1 ]    2  -    [ - + - ]  2    { 12 }
   55:    [ . 2 1 ]    1  +    [ - + + ]  2    { 112 }
   56:    [ . 2 2 ]    2  +    [ - + + ]  2    { 1122 }
   57:    [ . 2 3 ]    2  +    [ - + + ]  2    { 11222 }
   58:    [ . 3 3 ]    1  +    [ - + - ]  2    { 111222 }
   59:    [ . 3 2 ]    2  -    [ - + - ]  2    { 11122 }
   60:    [ . 3 1 ]    2  -    [ - + - ]  2    { 1112 }
   61:    [ . 3 . ]    1  -    [ - - + ]  1    { 111 }
   62:    [ . 2 . ]    1  -    [ - - + ]  1    { 11 }
   63:    [ . 1 . ]    1  -    [ - - + ]  1    { 1 }
 ct=64
