mqt.qudits.quantum_circuit

Qudit Quantum Circuit Module.

Submodules

Package Contents

class QuantumCircuit(*args: int | QuantumRegister | list[int] | None)[source]
qasm_to_gate_set_dict: ClassVar
cl_inverse_sitemap: InverseSitemap
inverse_sitemap: InverseSitemap
number_gates: int = 0
instructions: list[Gate] = []
quantum_registers: list[QuantumRegister] = []
classic_registers: list[ClassicRegister] = []
sitemap: mqt.qudits.quantum_circuit.components.quantum_register.SiteMap
classic_site_map: ClSitemap
num_cl: int = 0
mappings: list[list[int]] | None = None
path_save: str | None = None
classmethod get_qasm_set() → dict[str, str][source]
property dimensions: list[int]
property num_qudits: int
reset() → None[source]
copy() → QuantumCircuit[source]
append(qreg: QuantumRegister) → None[source]
append_classic(creg: ClassicRegister) → None[source]
csum(qudits: list[int]) → CSum[source]
cu_one(qudits: int, parameters: numpy.typing.NDArray[numpy.complex128], controls: ControlData | None = None) → CustomOne[source]
cu_two(qudits: list[int], parameters: numpy.typing.NDArray[numpy.complex128], controls: ControlData | None = None) → CustomTwo[source]
cu_multi(qudits: list[int], parameters: numpy.typing.NDArray[numpy.complex128], controls: ControlData | None = None) → CustomMulti[source]
cx(qudits: list[int], parameters: list[int | float] | None = None) → CEx[source]
gellmann(qudit: int, parameters: list[int | str], controls: ControlData | None = None) → GellMann[source]
h(qudit: int, controls: ControlData | None = None) → H[source]
rh(qudit: int, parameters: list[int], controls: ControlData | None = None) → Rh[source]
ls(qudits: list[int], parameters: list[float]) → LS[source]
ms(qudits: list[int], parameters: list[float]) → MS[source]
pm(qudits: int, parameters: list[int]) → Perm[source]
r(qudit: int, parameters: list[int | float], controls: ControlData | None = None) → R[source]
randu(qudits: list[int]) → RandU[source]
rz(qudit: int, parameters: list[int | float], controls: ControlData | None = None) → Rz[source]
noisex(qudit: int, parameters: list[int], controls: ControlData | None = None) → NoiseX[source]
noisey(qudit: int, parameters: list[int], controls: ControlData | None = None) → NoiseY[source]
noisez(qudit: int, level: int, controls: ControlData | None = None) → VirtRz[source]
virtrz(qudit: int, parameters: list[int | float], controls: ControlData | None = None) → VirtRz[source]
s(qudit: int, controls: ControlData | None = None) → S[source]
x(qudit: int, controls: ControlData | None = None) → X[source]
z(qudit: int, controls: ControlData | None = None) → Z[source]
replace_gate(gate_index: int, sequence: Sequence[Gate]) → None[source]
set_instructions(sequence: Sequence[Gate]) → QuantumCircuit[source]
set_mapping(mappings: list[list[int]]) → QuantumCircuit[source]
from_qasm(qasm_prog: str) → None[source]

Create a circuit from qasm text.

to_qasm() → str[source]
save_to_file(file_name: str, file_path: str = '.') → str[source]

Save qasm into a file with the specified name and path.

Parameters:
  • text (str) – The text to be saved into the file.

  • file_name (str) – The name of the file.

  • file_path (str, optional) – The path where the file will be saved. Defaults to “.” (current directory).

Returns:

The full path of the saved file.

Return type:

str

load_from_file(file_path: str) → None[source]

Load text from a file.

Parameters:

file_path (str) – The path of the file to load.

Returns:

The text loaded from the file.

Return type:

str

property gate_set: str
simulate() → numpy.typing.NDArray[numpy.complex128][source]
compileO0(backend_name: str) → QuantumCircuit[source]
compileO1(backend_name: str) → QuantumCircuit[source]
set_initial_state(state: numpy.typing.NDArray[numpy.complex128], approx: bool = False) → QuantumCircuit[source]
class QuantumRegister(name: str, size: int, dims: list[int] | None = None)[source]
classmethod from_map(sitemap: SiteMap) → list[QuantumRegister][source]
label
size: int
dimensions: list[int]
local_sitemap: dict[int, int]
__qasm__() → str[source]
__getitem__(key: int | slice) → int | list[int][source]
class QASM[source]

Class that manages the parsing of QASM programs.

program: dict[str, Any]
static parse_nonspecial_lines(line: str, rgxs: dict[str, Pattern[str]], in_comment_flag: bool) → tuple[bool, bool][source]
static parse_qreg(line: str, rgxs: dict[str, Pattern[str]], sitemap: dict[tuple[str, int], tuple[int, int]]) → bool[source]
static parse_creg(line: str, rgxs: dict[str, Pattern[str]], sitemap_classic: ClSitemap) → bool[source]
static safe_eval_math_expression(expression: str) → float | None[source]
static parse_gate(line: str, rgxs: dict[str, Pattern[str]], sitemap: dict[tuple[str, int], tuple[int, int]], gates: list[dict[str, Any]]) → bool[source]
static parse_ignore(line: str, rgxs: dict[str, Pattern[str]], warned: dict[str, bool]) → bool[source]
parse_ditqasm2_str(contents: str) → dict[str, Any][source]

Parse the string contents of an OpenQASM 2.0 file.

This parser only supports basic gate_matrix definitions, and is not guaranteed to check the full OpenQASM grammar.

parse_ditqasm2_file(fname: str) → dict[str, Any][source]

Parse an OpenQASM 2.0 file.