Patent ID: 8713399

Claim:
An apparatus comprising: an array of multiplexers, the array having a plurality of inputs and a plurality of outputs, wherein the array of multiplexers is configured to rotate a set of n input messages applied to the inputs by a selected number of positions at the outputs and wherein the number n of messages contained in the set is selectable from among a plurality of values given as z 0 , z 1 and z 2 , wherein the array of multiplexers are arranged in at least a first stage, given as stage 0, second stage, given as stage 1, and a third stage, given as stage 2, each stage comprising multiplexers identifiable by a variable j, and the array comprising at least three groups of multiplexers wherein a first group comprises multiplexer z 0 −1 of stage 0 and multiplexers z 0 −2 and z 0 −1 of stage 1, a second group comprises multiplexer z 1 −1 of stage 0, multiplexers z 1 −2 and z 1 −1 of stage 1 and multiplexers z 1 −4 to z 1 −1 of stage 2, and a third group comprising the remaining multiplexers of the array, further wherein each first group multiplexer (jε{0, 1, . . . , z 0 −1}) of stage k (kε{0, 1, . . . , p 0 −1} and p 0 =┌log 2 z 0 ┐) receives as inputs the outputs of the previous stage multiplexers (or the array of inputs in case of k=0) j and mod(j+t, z 2 ), when the desired configuration z is not equal to z 0 , otherwise it receives as inputs the outputs of the previous stage multiplexers (or the array of inputs in case of k=0) j and mod (j+t, z 0 ); each second group multiplexer j (jε{0, 1, . . . , z 1 −1}) of stage k (kε{0, 1, . . . , p 1 −1} and p 1 =┌log 2 z 1 ┐) receives as inputs the outputs of the previous stage multiplexers (or the array of inputs in case of k=0) j and mod(j+t, z 2 ), when the desired configuration z is not equal to z 1 , otherwise it receives as inputs the outputs of the previous stage multiplexers (or the primary inputs in case of k=0) j and mod(j+t, z 1 ); and each third group multiplexer j (jε{0, 1, . . . , z 2 −1}) of stage k (kε{0, 1, . . . , p 2 −1} and p 2 =┌log 2 z 2 ┐) receives as inputs the outputs of the previous stage multiplexers (or the primary inputs in case of k=0) j and mod(j+t, z 2 ), where t=2 k .