Source code for surface_sim.experiments.rot_surface_code_css

from collections.abc import Sequence

from stim import Circuit

from ..circuit_blocks.decorators import LogOpCallable
from ..circuit_blocks.rot_surface_code_css import (
    gate_to_iterator,
    gate_to_iterator_mid_cycle_cnots,
    init_qubits_iterator,
    tick_iterators_mid_cycle_cnots,
)
from . import templates, templates_mid_cycle


[docs] def memory_experiment( *args, gate_to_iterator: dict[str, LogOpCallable] = gate_to_iterator, init_qubits_iterator: LogOpCallable | None = init_qubits_iterator, **kargs, ) -> Circuit: """For information, see ``surface_sim.experiments.templates.memory_experiment``.""" return templates.memory_experiment( *args, gate_to_iterator=gate_to_iterator, init_qubits_iterator=init_qubits_iterator, **kargs, )
[docs] def memory_experiment_mid_cycle( *args, gate_to_iterator: dict[str, LogOpCallable] = gate_to_iterator_mid_cycle_cnots, tick_iterators: Sequence[LogOpCallable] = tick_iterators_mid_cycle_cnots, init_qubits_iterator: LogOpCallable | None = init_qubits_iterator, **kargs, ) -> Circuit: """For information, see ``surface_sim.experiments.templates_mid_cycle.memory_experiment``.""" return templates_mid_cycle.memory_experiment( *args, gate_to_iterator=gate_to_iterator, tick_iterators=tick_iterators, init_qubits_iterator=init_qubits_iterator, **kargs, )
[docs] def repeated_s_experiment( *args, gate_to_iterator: dict[str, LogOpCallable] = gate_to_iterator, init_qubits_iterator: LogOpCallable | None = init_qubits_iterator, **kargs, ) -> Circuit: """For information, see ``surface_sim.experiments.templates.repeated_s_experiment``.""" return templates.repeated_s_experiment( *args, gate_to_iterator=gate_to_iterator, init_qubits_iterator=init_qubits_iterator, **kargs, )
[docs] def repeated_cnot_experiment( *args, gate_to_iterator: dict[str, LogOpCallable] = gate_to_iterator, init_qubits_iterator: LogOpCallable | None = init_qubits_iterator, **kargs, ) -> Circuit: """For information, see ``surface_sim.experiments.templates.repeated_cnot_experiment``.""" return templates.repeated_cnot_experiment( *args, gate_to_iterator=gate_to_iterator, init_qubits_iterator=init_qubits_iterator, **kargs, )
[docs] def repeated_cnot_experiment_mid_cycle( *args, gate_to_iterator: dict[str, LogOpCallable] = gate_to_iterator_mid_cycle_cnots, tick_iterators: Sequence[LogOpCallable] = tick_iterators_mid_cycle_cnots, init_qubits_iterator: LogOpCallable | None = init_qubits_iterator, **kargs, ) -> Circuit: """For information, see ``surface_sim.experiments.templates_mid_cycle.repeated_cnot_experiment``.""" return templates_mid_cycle.repeated_cnot_experiment( *args, gate_to_iterator=gate_to_iterator, tick_iterators=tick_iterators, init_qubits_iterator=init_qubits_iterator, **kargs, )
[docs] def repeated_s_injection_experiment( *args, gate_to_iterator: dict[str, LogOpCallable] = gate_to_iterator, init_qubits_iterator: LogOpCallable | None = init_qubits_iterator, **kargs, ) -> Circuit: """For information, see ``surface_sim.experiments.templates.repeated_s_injection_experiment``.""" return templates.repeated_s_injection_experiment( *args, gate_to_iterator=gate_to_iterator, init_qubits_iterator=init_qubits_iterator, **kargs, )
[docs] def stability_experiment( *args, gate_to_iterator: dict[str, LogOpCallable] = gate_to_iterator, init_qubits_iterator: LogOpCallable | None = init_qubits_iterator, **kargs, ) -> Circuit: """For information, see ``surface_sim.experiments.templates.stability_experiment``.""" return templates.stability_experiment( *args, gate_to_iterator=gate_to_iterator, init_qubits_iterator=init_qubits_iterator, **kargs, )
[docs] def stability_experiment_mid_cycle( *args, gate_to_iterator: dict[str, LogOpCallable] = gate_to_iterator_mid_cycle_cnots, tick_iterators: Sequence[LogOpCallable] = tick_iterators_mid_cycle_cnots, init_qubits_iterator: LogOpCallable | None = init_qubits_iterator, **kargs, ) -> Circuit: """For information, see ``surface_sim.experiments.templates_mid_cycle.stability_experiment``.""" return templates_mid_cycle.stability_experiment( *args, gate_to_iterator=gate_to_iterator, tick_iterators=tick_iterators, init_qubits_iterator=init_qubits_iterator, **kargs, )