class cirq.google.ConvertToSycamoreGates(tabulation: Optional[cirq.google.optimizers.two_qubit_gates.gate_compilation.GateTabulation] = None, ignore_failures=False)[source]

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 gate
is a 1-qubit or 2-qubit gate, then performs circuit synthesis of the
operation.

Third, attempts to cirq.decompose to 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[source]
Parameters
• 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.

Methods

 optimization_at(circuit, index, op) Describes how to change operations near the given location. optimize_circuit(circuit)