Skip to main content

Table 1 Running time of bit rotation algorithms, techniques and circuits

From: Rotation of bits: a classical and quantum perspective

  Algorithm/technique Running time Operation and support
1 Circular shift O(n) upwards Permutation σ of the n entries in a tuple
Involves arithmetic operations
2 Arithmetic shift O(1)–O(n)
3 Logical shift O(1)–O(n) Does not preserve a number's sign bit
Every bit in the operand is simply moved a given number of bit positions
Vacant bit positions are filled, usually with zeros or one’s
4 Faster bit rotation (Improved version of the circular shift) O(n) Permutation σ of the n entries in a tuple
No arithmetic operations, only bit manipulations
5 Bit shift and bit rotation algorithm with Scilab implementation O(NB-n)
6 A highly efficient reconfigurable rotation unit based on an inverse butterfly network Not applicable because it is a circuit 64-bit Single Instruction Single Data (SISD)
MultiMedia eXtensions/Streaming SIMD Extensions (MMX/SSE) instructions
7 sb-rotate-byte   
8 Fast MSB and LSB Rotate method 8 bit data
9 CORDIC algorithm Operand word-length of 54 bits
10 CORDIC II
11 VHDL 16-bit shifter Circuit 16 bit data
12 Power mux based on dynamic barrel shifter using footed diode domino logic Circuit 8 bit
13 8 bit barrel shifter using 8 × 1 multiplexer Circuit 8 bit
14 Quantum shift register Circuit Qubit data
15 CRotate and QRotate O(n) CRotate: 232 bytes or 264 bytes determined by the amount of memory that the program can access. The size of the array can be increased from 1000 as is in the case of the CRotate to up to 232 or 264
QRotate: n qubit