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 |