cirq.google.ConvertToSycamoreGates

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.