deltakit.explorer.Client.generate_circuit#

Client.generate_circuit(experiment_definition: QECExperimentDefinition) str#

Generate a STIM circuit for a quantum error correction experiment. experiment_definition holds all information essential for building an experiment.

Parameters:

experiment_definition (QECExperimentDefinition) –

Definition of an experiment.

  • experiment_type: Type of experiment, e.g. Quantum Memory or Stability.

  • code_type: QEC code, e.g. Rotated Planar Code.

  • observable_basis: Pauli Basis, in which observable is measured. E.g. X or Z.

  • num_rounds: Number of experiment rounds.

  • basis_gates: If circuit is generated with a specific basis gate set.

  • parameters: Optional parameters of circuit generation.

Returns:

STIM circuit.

Return type:

str

Examples

Using shortcut experiment definition:

compiled_circuit = client.generate_circuit(
    QECExperimentDefinition.get_rotated_planar_z_quantum_memory(
        distance, distance, ["CZ", "H", "MZ", "RZ"]
    )
)

Using explicit definition:

circuit = client.generate_circuit(
    types.QECExperimentDefinition(
        experiment_type=types.QECExperimentType.QUANTUM_MEMORY,
        code_type=types.QECECodeType.BIVARIATE_BICYCLE,
        observable_basis=PauliBasis.Z,
        num_rounds=6,
        basis_gates=["CZ", "H", "MZ", "RZ"],
        parameters=types.CircuitParameters.from_matrix_specification(
            param_l=6,
            param_m=6,
            m_A_powers=[3, 1, 2],
            m_B_powers=[3, 1, 2],
        ),
    )
)