# cirq.ConvertToCzAndSingleGates¶

class cirq.ConvertToCzAndSingleGates(ignore_failures: bool = False, allow_partial_czs: bool = False)[source]
Attempts to convert strange multi-qubit gates into CZ and single qubit
gates.
First, checks if the operation has a unitary effect. If so, and the gate is
a 1-qubit or 2-qubit gate, then performs circuit synthesis of the
operation.

Second, attempts to cirq.decompose to the operation.

Third, if ignore_failures is set, gives up and returns the gate unchanged.
Otherwise raises a TypeError.
__init__(ignore_failures: bool = False, allow_partial_czs: bool = False) → None[source]
Parameters: ignore_failures – If set, gates that fail to convert are forwarded unchanged. If not set, conversion failures raise a TypeError. allow_partial_czs – If set, the decomposition is permitted to use gates of the form cirq.CZ**t, instead of only cirq.CZ.

Methods

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