Skip to main contentIBM Quantum Documentation

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

Returns

True if the gates commute and false if it is not the case.

Return type

bool(opens in a new tab)

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

Returns

whether two operations commute.

Return type

bool(opens in a new tab)

num_cached_entries

num_cached_entries()

Returns number of cached entries

Was this page helpful?