ConvertToSycamoreGates(tabulation: Optional[cirq.google.optimizers.two_qubit_gates.gate_compilation.GateTabulation] = None, ignore_failures=False)¶
Attempts to convert non-native gates into SycamoreGates.
First, checks if the given operation is already a native sycamore operation.Second, checks if the operation has a known unitary. If so, and the gateis a 1-qubit or 2-qubit gate, then performs circuit synthesis of theoperation.
Third, attempts to
cirq.decomposeto the operation.Fourth, if ignore_failures is set, gives up and returns the gate unchanged.Otherwise raises a TypeError.
__init__(tabulation: Optional[cirq.google.optimizers.two_qubit_gates.gate_compilation.GateTabulation] = None, ignore_failures=False) → None¶
tabulation – If set, a tabulation for the Sycamore gate to use for decomposing Matrix gates. If unset, an analytic calculation is used for Matrix gates. To get a GateTabulation, call the gate_product_tabulation method with a base gate (in this case, usually cirq.google.SYC) and a maximum infidelity.
ignore_failures – If set, gates that fail to convert are forwarded unchanged. If not set, conversion failures raise a TypeError.
optimization_at(circuit, index, op)
Describes how to change operations near the given location.