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