create domainVector... domainVector: [[a, b, c], [0,1,2]] compute cartesian product... [a, 0] [b, 0] [c, 0] [a, 1] [b, 1] [c, 1] [a, 2] [b, 2] [c, 2] compute 1-boundary... [a, 0] [c, 0] [a, 2] [c, 2] compute 2-boundary... [b, 1] generate length/index pairs... [1, 0] [2, 0] [2, 1] [3, 0] [3, 2] [4, 0] [4, 3] [5, 0] [5, 4]