Generate a TwoQubitGateTabulation for a base two qubit unitary.
cirq.two_qubit_gate_product_tabulation(
base_gate: np.ndarray,
max_infidelity: float,
*,
sample_scaling: int = 50,
allow_missed_points: bool = True,
random_state: 'cirq.RANDOM_STATE_OR_SEED_LIKE' = None
) -> cirq.TwoQubitGateTabulation
Args |
base_gate
|
The base gate of the tabulation.
|
max_infidelity
|
Sets the desired density of tabulated product unitaries.
The typical nearest neighbor Euclidean spacing (of the KAK vectors)
will be on the order of \(\sqrt{max\_infidelity}\). Thus the number of
tabulated points will scale as \(max\_infidelity^{-3/2}\).
|
sample_scaling
|
Relative number of random gate products to use in the
tabulation. The total number of random local unitaries scales as
~ \(max\_infidelity^{-3/2} * sample\_scaling\). Must be positive.
|
random_state
|
Random state or random state seed.
|
allow_missed_points
|
If True, the tabulation is allowed to conclude
even if not all points in the Weyl chamber are expected to be
compilable using 2 or 3 base gates. Otherwise, an error is raised
in this case.
|
Returns |
A TwoQubitGateTabulation object used to compile new two-qubit gates from
products of the base gate with 1-local unitaries.
|
Raises |
ValueError
|
If allow_missing_points is False and not all the points
in the Weyl chamber are compilable using 2 or 3 base gates.
|