two_qubit_clifford_group
tergite_autocalibration.lib.nodes.coupler.tqg_randomized_benchmarking.utils.two_qubit_clifford_group
Classes:
| Name | Description |
|---|---|
Clifford |
Base class for Clifford gates. |
SingleQubitClifford |
|
TwoQubitClifford |
|
Functions:
| Name | Description |
|---|---|
get_single_qubit_clifford_hash_table |
Get's the single qubit clifford hash table. Requires this to be generated |
get_two_qubit_clifford_hash_table |
Get's the two qubit clifford hash table. Requires this to be generated |
Attributes:
| Name | Type | Description |
|---|---|---|
hash_dir |
This file contains Clifford decompositions for the two qubit Clifford group. |
hash_dir
module-attribute
This file contains Clifford decompositions for the two qubit Clifford group.
The Clifford decomposition closely follows two papers: Corcoles et al. Process verification ... Phys. Rev. A. 2013 http://journals.aps.org/pra/pdf/10.1103/PhysRevA.87.030301 for the different classes of two-qubit Cliffords.
and Barends et al. Superconducting quantum circuits at the ... Nature 2014 https://www.nature.com/articles/nature13171?lang=en for writing the cliffords in terms of CZ gates.
2-qubit clifford decompositions
The two qubit clifford group (C2) consists of 11520 two-qubit cliffords These gates can be subdivided into four classes. 1. The Single-qubit like class | 576 elements (24^2) 2. The CNOT-like class | 5184 elements (24^2 * 3^2) 3. The iSWAP-like class | 5184 elements (24^2 * 3^2) 4. The SWAP-like class | 576 elements (24^2) --------------------------------|------------- + Two-qubit Clifford group C2 | 11520 elements
-
The Single-qubit like class -- C1 -- -- C1 --
-
The CNOT-like class --C1--•--S1-- --C1--•--S1------ | -> | --C1--⊕--S1-- --C1--•--S1^Y90--
-
The iSWAP-like class --C1----S1-- --C1--•---Y90--•--S1^Y90-- | -> | | --C1----S1-- --C1--•--mY90--•--S1^X90--
-
The SWAP-like class --C1--x-- --C1--•-mY90--•--Y90--•------- | -> | | | --C1--x-- --C1--•--Y90--•-mY90--•--Y90--
element of the single qubit Clifford group
N.B. we use the decomposition defined in Epstein et al. here
S1: element of the S1 group, a subgroup of the single qubit Clifford group
S1[0] = I S1[1] = rY90, rX90 S1[2] = rXm90, rYm90
Important clifford indices:
1 2 3 4 5 6 7 | |
SingleQubitClifford
Bases: Clifford
Attributes:
| Name | Type | Description |
|---|---|---|
gate_decomposition |
Returns the gate decomposition of the single qubit Clifford group |
TwoQubitClifford
TwoQubitClifford(idx: int)
Bases: Clifford
Methods:
| Name | Description |
|---|---|
CNOT_like_PTM |
Returns the pauli transfer matrix for gates of the cnot like class |
CNOT_like_gates |
Returns the gates for Cliffords of the cnot like class |
SWAP_like_PTM |
Returns the pauli transfer matrix for gates of the SWAP like class |
SWAP_like_gates |
Returns the gates for Cliffords of the SWAP like class |
iSWAP_like_PTM |
Returns the pauli transfer matrix for gates of the iSWAP like class |
iSWAP_like_gates |
Returns the gates for Cliffords of the iSWAP like class |
single_qubit_like_PTM |
Returns the pauli transfer matrix for gates of the single qubit like class |
single_qubit_like_gates |
Returns the gates for Cliffords of the single qubit like class |
Attributes:
| Name | Type | Description |
|---|---|---|
gate_decomposition |
Returns the gate decomposition of the two qubit Clifford group. |
gate_decomposition
property
Returns the gate decomposition of the two qubit Clifford group.
Single qubit Cliffords are decomposed according to Epstein et al.
CNOT_like_PTM
classmethod
CNOT_like_PTM(idx: int)
Returns the pauli transfer matrix for gates of the cnot like class (q0) --C1--•--S1-- --C1--•--S1------ | -> | (q1) --C1--⊕--S1-- --C1--•--S1^Y90--
CNOT_like_gates
classmethod
CNOT_like_gates(idx: int)
Returns the gates for Cliffords of the cnot like class (q0) --C1--•--S1-- --C1--•--S1------ | -> | (q1) --C1--⊕--S1-- --C1--•--S1^Y90--
SWAP_like_PTM
classmethod
SWAP_like_PTM(idx: int) -> ndarray
Returns the pauli transfer matrix for gates of the SWAP like class
(q0) --C1--x-- --C1--•-mY90--•--Y90--•------- | -> | | | (q1) --C1--x-- --C1--•--Y90--•-mY90--•--Y90--
SWAP_like_gates
classmethod
SWAP_like_gates(idx: int)
Returns the gates for Cliffords of the SWAP like class
(q0) --C1--x-- --C1--•-mY90--•--Y90--•------- | -> | | | (q1) --C1--x-- --C1--•--Y90--•-mY90--•--Y90--
iSWAP_like_PTM
classmethod
iSWAP_like_PTM(idx: int)
Returns the pauli transfer matrix for gates of the iSWAP like class (q0) --C1----S1-- --C1--•---Y90--•--S1^Y90-- | -> | | (q1) --C1----S1-- --C1--•--mY90--•--S1^X90--
iSWAP_like_gates
classmethod
iSWAP_like_gates(idx: int)
Returns the gates for Cliffords of the iSWAP like class (q0) --C1----S1-- --C1--•---Y90--•--S1^Y90-- | -> | | (q1) --C1----S1-- --C1--•--mY90--•--S1^X90--
single_qubit_like_PTM
classmethod
single_qubit_like_PTM(idx: int)
Returns the pauli transfer matrix for gates of the single qubit like class (q0) -- C1 -- (q1) -- C1 --
single_qubit_like_gates
classmethod
single_qubit_like_gates(idx: int)
Returns the gates for Cliffords of the single qubit like class (q0) -- C1 -- (q1) -- C1 --
get_single_qubit_clifford_hash_table
Get's the single qubit clifford hash table. Requires this to be generated first. To generate, execute "generate_clifford_hash_tables.py".