can2cz_decomposer
Can2CZDecomposer
Bases: Decomposer
Source code in opensquirrel/passes/decomposer/can2cz_decomposer.py
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 | |
decompose
General decomposition of an arbitrary 2-qubit gate into (at most 3) CZ gate(s) with single-qubit rotations.
Adapted from Quantum Gates by G.E. Crooks (2024), Section 7.3.
Note
This decomposition does not, in general, preserve the global phase of the original gate. It is advised to run the single-qubit gates merger pass after this two-qubit gate decomposition pass.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
instruction
|
Gate
|
2-qubit gate to decompose. |
required |
Returns:
| Type | Description |
|---|---|
list[Gate]
|
Decomposition of the original gate into a sequence of gates. |
Source code in opensquirrel/passes/decomposer/can2cz_decomposer.py
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 | |