You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Custom pyLIQTR gates and ops don't seem to have a way of quickly and easily assessing if two operations or gates are the same. This is useful when performing decomposition for the purposes of resource estimation. For example, if two operations only differ by a qubit relabelling, it would be useful to re-use cached downstream resource estimates (for example, via Rigetti's estimation tool.
It appears that many cirq gates and operations provide such tooling via the @value.value_equality decorator and related _value_equality_values_ method. For example in the definition of the PhasedXPow gate or the definition for the PauliStringPhasor.
Establishing when two ops/gates are equivalent may be non-trivial to determine, as it may be context dependent. For example, for the purposes of resource estimation, the gates/ops might be equivalent, but for simulation/compilation they may not be. If possible, it might be useful to provide tooling for the user to specify the context under which they are performing the equivalence check. This might be outside of the scope of cirq gates/ops, but due to pyLIQTR's awareness of resource estimation, it may be useful to separate unitary equivalence and resource equivalence.
The text was updated successfully, but these errors were encountered:
Custom pyLIQTR gates and ops don't seem to have a way of quickly and easily assessing if two operations or gates are the same. This is useful when performing decomposition for the purposes of resource estimation. For example, if two operations only differ by a qubit relabelling, it would be useful to re-use cached downstream resource estimates (for example, via Rigetti's estimation tool.
It appears that many cirq gates and operations provide such tooling via the
@value.value_equality
decorator and related_value_equality_values_
method. For example in the definition of thePhasedXPow
gate or the definition for thePauliStringPhasor
.Here is a trivial example:
Establishing when two ops/gates are equivalent may be non-trivial to determine, as it may be context dependent. For example, for the purposes of resource estimation, the gates/ops might be equivalent, but for simulation/compilation they may not be. If possible, it might be useful to provide tooling for the user to specify the context under which they are performing the equivalence check. This might be outside of the scope of cirq gates/ops, but due to pyLIQTR's awareness of resource estimation, it may be useful to separate unitary equivalence and resource equivalence.
The text was updated successfully, but these errors were encountered: