CommutationChecker
qiskit.circuit.CommutationChecker(standard_gate_commutations=None, cache_max_entries=1000000)
GitHub(opens in a new tab)
Bases: object
(opens in a new tab)
This code is essentially copy-pasted from commutative_analysis.py. This code cleverly hashes commutativity and non-commutativity results between DAG nodes and seems quite efficient for large Clifford circuits. They may be other possible efficiency improvements: using rule-based commutativity analysis, evicting from the cache less useful entries, etc.
Methods
check_commutation_entries
check_commutation_entries(first_op, first_qargs, second_op, second_qargs)
Returns stored commutation relation if any
Parameters
- first_op (Operation) – first operation.
- first_qargs (List(opens in a new tab)) – first operation’s qubits.
- second_op (Operation) – second operation.
- second_qargs (List(opens in a new tab)) – second operation’s qubits.
Returns
True if the gates commute and false if it is not the case.
Return type
clear_cached_commutations
clear_cached_commutations()
Clears the dictionary holding cached commutations
commute
commute(op1, qargs1, cargs1, op2, qargs2, cargs2, max_num_qubits=3)
Checks if two Operations commute. The return value of True means that the operations truly commute, and the return value of False means that either the operations do not commute or that the commutation check was skipped (for example, when the operations have conditions or have too many qubits).
Parameters
- op1 (Operation) – first operation.
- qargs1 (List(opens in a new tab)) – first operation’s qubits.
- cargs1 (List(opens in a new tab)) – first operation’s clbits.
- op2 (Operation) – second operation.
- qargs2 (List(opens in a new tab)) – second operation’s qubits.
- cargs2 (List(opens in a new tab)) – second operation’s clbits.
- max_num_qubits (int(opens in a new tab)) – the maximum number of qubits to consider, the check may be skipped if the number of qubits for either operation exceeds this amount.
Returns
whether two operations commute.
Return type
num_cached_entries
num_cached_entries()
Returns number of cached entries