1. A network of nodes identified according to a G×H matrix with gε{0, 1,. .. , G−1} and hε{0, 1,. .. , H−1}, the network comprising: a first set of nodes {A 0,0 , A 0,1 ,. .. , A 0,H−1 , A 1,0 , A 1,1 ,. .. , A 1,H−1 ,. .. , A G−1,H−1 }, each A g,h node generates an A g,h data output on an A g,h node output port; a second set of nodes {R 0,0 , R 0,1 ,. .. , R 0,H−1 , R 1,0 , R 1,1 ,. .. , R 1,H−1 ,. .. , R G−1,H−1 }, each R g,h node having a first R g,h input connected to the A g,h node output port, a second R g,h input connected to an A g,h+1 node output port, and a third R g,h input connected to an A g,h−1 node output port, where h+1 wraps to 0 when h+1=H and h−1 wraps to H−1 when h−1=−1 and each R g,h node selects the first R g,h input or the second R g,h input or the third R g,h input in response to an R g,h select signal to couple a data output associated with the selected input to an R g,h node output port; and a third set of nodes {S 0,0 , S 0,1 ,. .. , S 0,H−1 , S 1,0 , S 1,1 ,. .. , S 1,H−1 ,. .. , S G−1,H−1 }, each S g,h node having a first S g,h input connected to the R g,h node output port, a second S g,h input connected to an R g+1,h node output port, and a third S g,h input connected to an R g−1,h node output port, where g+1 wraps to 0 when g+1=G and g−1 wraps to G−1 when g−1=−1 and each S g,h node selects the first S g,h input or the second S g,h input or the third S g,h input in response to an S g,h select signal to couple a data output associated with the selected input to an S g,h node output port.