Decomposes a two-qubit operation into Z/XY/CZ gates.
cirq.two_qubit_matrix_to_cz_operations(
q0: 'cirq.Qid',
q1: 'cirq.Qid',
mat: np.ndarray,
allow_partial_czs: bool,
atol: float = 1e-08,
clean_operations: bool = True
) -> List[cirq.Operation
]
Used in the notebooks
Args |
q0
|
The first qubit being operated on.
|
q1
|
The other qubit being operated on.
|
mat
|
Defines the operation to apply to the pair of qubits.
|
allow_partial_czs
|
Enables the use of Partial-CZ gates.
|
atol
|
A limit on the amount of absolute error introduced by the
construction.
|
clean_operations
|
Enables optimizing resulting operation list by
merging operations and ejecting phased Paulis and Z operations.
|
Returns |
A list of operations implementing the matrix.
|
Raises |
ValueError
|
If allow_partial_czs=False and the matrix requires partial CZs.
|