mqt.qudits.quantum_circuit.gates

Instructions module.

Submodules

Package Contents

class ControlData[source]
indices: list[int]
ctrl_states: list[int]
class GateTypes[source]

Bases: enum.Enum

Enumeration for gate types.

SINGLE = 'Single Qudit Gate'
TWO = 'Two Qudit Gate'
MULTI = 'Multi Qudit Gate'
class CSum(circuit: QuantumCircuit, name: str, target_qudits: list[int], dimensions: list[int], controls: ControlData | None = None)[source]

Bases: mqt.qudits.quantum_circuit.gate.Gate

Unitary gate_matrix.

__array__() numpy.typing.NDArray[numpy.complex128][source]
class CustomMulti(circuit: QuantumCircuit, name: str, target_qudits: list[int], parameters: numpy.typing.NDArray[numpy.complex128], dimensions: list[int], controls: ControlData | None = None)[source]

Bases: mqt.qudits.quantum_circuit.gate.Gate

Multi body custom gate.

__array__() numpy.typing.NDArray[numpy.complex128][source]
static validate_parameter(parameter: Parameter | None = None) bool[source]
class CustomOne(circuit: QuantumCircuit, name: str, target_qudits: int, parameters: numpy.typing.NDArray[numpy.complex128], dimensions: int, controls: ControlData | None = None)[source]

Bases: mqt.qudits.quantum_circuit.gate.Gate

One body custom gate.

__array__() numpy.typing.NDArray[numpy.complex128][source]
static validate_parameter(parameter: Parameter | None = None) bool[source]
class CustomTwo(circuit: QuantumCircuit, name: str, target_qudits: list[int], parameters: numpy.typing.NDArray[numpy.complex128], dimensions: list[int], controls: ControlData | None = None)[source]

Bases: mqt.qudits.quantum_circuit.gate.Gate

Two body custom gate.

__array__() numpy.typing.NDArray[numpy.complex128][source]
static validate_parameter(parameter: Parameter | None = None) bool[source]
class CEx(circuit: QuantumCircuit, name: str, target_qudits: list[int], parameters: list[int | float] | None, dimensions: list[int], controls: ControlData | None = None)[source]

Bases: mqt.qudits.quantum_circuit.gate.Gate

Unitary gate_matrix.

__array__() numpy.typing.NDArray[numpy.complex128][source]
static validate_parameter(parameter: Parameter) bool[source]
property dimensions: list[int]
class GellMann(circuit: QuantumCircuit, name: str, target_qudits: int, parameters: list[int | str], dimensions: int, controls: ControlData | None = None)[source]

Bases: mqt.qudits.quantum_circuit.gate.Gate

Gate used as generator for Givens rotations.

type_m
__array__() numpy.typing.NDArray[numpy.complex128][source]
static validate_parameter(parameter: Parameter) bool[source]
class H(circuit: QuantumCircuit, name: str, target_qudits: int, dimensions: int, controls: ControlData | None = None)[source]

Bases: mqt.qudits.quantum_circuit.gate.Gate

Unitary gate_matrix.

__array__() numpy.typing.NDArray[numpy.complex128][source]
property dimensions: int
class LS(circuit: QuantumCircuit, name: str, target_qudits: list[int], parameters: list[float], dimensions: list[int], controls: ControlData | None = None)[source]

Bases: mqt.qudits.quantum_circuit.gate.Gate

Unitary gate_matrix.

__array__() numpy.typing.NDArray[numpy.complex128][source]
static validate_parameter(parameter: Parameter) bool[source]
property dimensions: list[int]
class MS(circuit: QuantumCircuit, name: str, target_qudits: list[int], parameters: list[float], dimensions: list[int], controls: ControlData | None = None)[source]

Bases: mqt.qudits.quantum_circuit.gate.Gate

Unitary gate_matrix.

__array__() numpy.typing.NDArray[numpy.complex128][source]
static validate_parameter(parameter: Parameter) bool[source]
property dimensions: list[int]
class NoiseX(circuit: QuantumCircuit, name: str, target_qudits: int, parameters: list[int], dimensions: int, controls: ControlData | None = None)[source]

Bases: mqt.qudits.quantum_circuit.gate.Gate

Unitary gate_matrix.

__array__() numpy.typing.NDArray[numpy.complex128][source]
static levels_setter(la: int, lb: int) tuple[int, int][source]
validate_parameter(parameter: Parameter) bool[source]
property dimensions: int
class NoiseY(circuit: QuantumCircuit, name: str, target_qudits: int, parameters: list[int], dimensions: int, controls: ControlData | None = None)[source]

Bases: mqt.qudits.quantum_circuit.gate.Gate

Unitary gate_matrix.

__array__() numpy.typing.NDArray[numpy.complex128][source]
static levels_setter(la: int, lb: int) tuple[int, int][source]
validate_parameter(parameter: Parameter) bool[source]
property dimensions: int
class Perm(circuit: QuantumCircuit, name: str, target_qudits: int, parameters: list[int], dimensions: int, controls: ControlData | None = None)[source]

Bases: mqt.qudits.quantum_circuit.gate.Gate

Unitary gate_matrix.

__array__() numpy.typing.NDArray[numpy.complex128][source]
validate_parameter(parameter: Parameter) bool[source]
property dimensions: int
class R(circuit: QuantumCircuit, name: str, target_qudits: int, parameters: list[int | float], dimensions: int, controls: ControlData | None = None)[source]

Bases: mqt.qudits.quantum_circuit.gate.Gate

Unitary gate_matrix.

__array__() numpy.typing.NDArray[numpy.complex128][source]
static levels_setter(la: int, lb: int) tuple[int, int][source]
validate_parameter(parameter: Parameter) bool[source]
property cost: float
property dimensions: int
class RandU(circuit: QuantumCircuit, name: str, target_qudits: list[int], dimensions: list[int], controls: ControlData | None = None)[source]

Bases: mqt.qudits.quantum_circuit.gate.Gate

Unitary gate_matrix.

__array__() numpy.typing.NDArray[numpy.complex128][source]
property dimensions: list[int]
class Rh(circuit: QuantumCircuit, name: str, target_qudits: int, parameters: list[int], dimensions: int, controls: ControlData | None = None)[source]

Bases: mqt.qudits.quantum_circuit.gate.Gate

SU2 Hadamard.

__array__() numpy.typing.NDArray[numpy.complex128][source]
static levels_setter(la: int, lb: int) tuple[int, int][source]
validate_parameter(parameter: Parameter) bool[source]
property dimensions: int
class Rz(circuit: QuantumCircuit, name: str, target_qudits: int, parameters: list[int | float], dimensions: int, controls: ControlData | None = None)[source]

Bases: mqt.qudits.quantum_circuit.gate.Gate

Unitary gate_matrix.

__array__() numpy.typing.NDArray[numpy.complex128][source]
static levels_setter(la: int, lb: int) tuple[int, int][source]
validate_parameter(parameter: Parameter) bool[source]
property cost: float
property dimensions: int
class S(circuit: QuantumCircuit, name: str, target_qudits: int, dimensions: int, controls: ControlData | None = None)[source]

Bases: mqt.qudits.quantum_circuit.gate.Gate

Unitary gate_matrix.

__array__() numpy.typing.NDArray[numpy.complex128][source]
static is_prime(n: int) bool[source]

Check if a number is prime.

Optimized for dimensions under 23.

Args: n (int): The number to check for primality

Returns: bool: True if the number is prime, False otherwise

property dimensions: int
class VirtRz(circuit: QuantumCircuit, name: str, target_qudits: int, parameters: list[int | float], dimensions: int, controls: ControlData | None = None)[source]

Bases: mqt.qudits.quantum_circuit.gate.Gate

Unitary gate_matrix.

__array__() numpy.typing.NDArray[numpy.complex128][source]
validate_parameter(param: Parameter) bool[source]
property cost: float
property dimensions: int
class X(circuit: QuantumCircuit, name: str, target_qudits: int, dimensions: int, controls: ControlData | None = None)[source]

Bases: mqt.qudits.quantum_circuit.gate.Gate

Unitary gate_matrix.

__array__() numpy.typing.NDArray[numpy.complex128][source]
property dimensions: int
class Z(circuit: QuantumCircuit, name: str, target_qudits: int, dimensions: int, controls: ControlData | None = None)[source]

Bases: mqt.qudits.quantum_circuit.gate.Gate

Unitary gate_matrix.

__array__() numpy.typing.NDArray[numpy.complex128][source]
property dimensions: int