Skip to content

Public API

MonitoredQuantumCircuits

MonitoredQuantumCircuits.CNOT Type
julia
CNOT() <: Operation

The CNOT operation is a two-qubit gate that flips the target qubit if the control qubit is in the |1⟩ state.

source
MonitoredQuantumCircuits.ChainGeometry Type

A data structure representing a one-dimensional chain geometry of qubits.

Constructors

julia
ChainGeometry(Periodic, size::Integer)

Constructs a chain geometry with periodic boundary conditions (i.e., a closed loop).

julia
ChainGeometry(Open, size::Integer)

Constructs a chain geometry with open boundary conditions (i.e., a linear chain).

Arguments

  • size::Integer: The number of qubits in the chain.

Examples

julia
# Create a chain of 8 qubits with periodic boundaries
geometry = ChainGeometry(Periodic, 8)

# Create a chain of 10 qubits with open boundaries
geometry = ChainGeometry(Open, 10)
source
MonitoredQuantumCircuits.Geometry Type
julia
Geometry

Abstract type for the geometry of the qubits.

source
MonitoredQuantumCircuits.H Type
julia
H() <: Operation

The H operation is a single-qubit gate that creates superposition by applying a Hadamard transformation.

source
MonitoredQuantumCircuits.HoneycombGeometry Type

A data structure representing a honeycomb lattice geometry.

Constructors

julia
HoneycombGeometry(Periodic, sizeX::Integer, sizeY::Integer)

Create a honeycomb geometry with periodic boundary conditions.

julia
HoneycombGeometry(Open, sizeX::Integer, sizeY::Integer)

Create a honeycomb geometry with open boundary conditions.

Arguments

  • sizeX::Integer: Width of the lattice

  • sizeY::Integer: Height of the lattice (must be even)

Examples

julia
# Create a 4×4 honeycomb lattice with periodic boundaries
geometry = HoneycombGeometry(Periodic, 4, 4)

# Create a 6×6 honeycomb lattice with open boundaries
geometry = HoneycombGeometry(Open, 6, 6)
source
MonitoredQuantumCircuits.I Type
julia
I() <: Operation

The I operation is a single-qubit gate that represents the identity operation, leaving the qubit unchanged.

source
MonitoredQuantumCircuits.IBMQ_Falcon Type

A data structure representing the geometry of the IBM Quantum Falcon QPU.

Constructors

julia
IBMQ_Falcon()
source
MonitoredQuantumCircuits.MX Type
julia
MX() <: Operation

The MX operation is a single-qubit measurement operation that measures the state of a qubit in the X basis.

source
MonitoredQuantumCircuits.MXX Type
julia
MXX() <: MeasurementOperation

The MXX operation is a two-qubit gate that applies an XX interaction between the two qubits. It is a type of measurement operation that can be used in quantum circuits.

source
MonitoredQuantumCircuits.MY Type
julia
MY() <: Operation

The MY operation is a single-qubit measurement operation that measures the state of a qubit in the Y basis.

source
MonitoredQuantumCircuits.MYY Type
julia
MYY() <: MeasurementOperation

The MYY operation is a two-qubit gate that applies a YY interaction between the two qubits. The operation is used to measure the state of the qubits in the YY basis.

source
MonitoredQuantumCircuits.MZ Type
julia
MZ() <: Operation

The MZ operation is a single-qubit measurement operation that measures the state of a qubit in the Z basis.

source
MonitoredQuantumCircuits.MZZ Type
julia
MZZ() <: MeasurementOperation

The MZZ operation is a two-qubit measurement operation that measures the state of two qubits in the ZZ basis. The first qubit is the target qubit, and the second qubit is an ancilla qubit that is used to store the result of the operation.

source
MonitoredQuantumCircuits.MnPauli Type
julia
MnPauli{N} <: MeasurementOperation

The MnPauli operation is a N-qubit measurement operation that measures the state of multiple qubits in the Pauli basis.

source
MonitoredQuantumCircuits.ShastrySutherlandGeometry Type

A data structure representing a Shastry-Sutherland lattice geometry.

Constructors

julia
ShastrySutherlandGeometry(Periodic, sizeX::Integer, sizeY::Integer)

Construct a Shastry-Sutherland geometry with periodic boundary conditions.

Arguments

  • sizeX::Integer: The number of sites in the x direction

  • sizeY::Integer: The number of sites in the y direction

Examples

julia
# Create a 4×4 Shastry-Sutherland lattice with periodic boundaries
geometry = ShastrySutherlandGeometry(Periodic, 4, 4)
source
MonitoredQuantumCircuits.WeakMXX Type
julia
WeakMXX <: MeasurementOperation

The WeakMXX operation is a three-qubit gate that applies a weak XX interaction between the first two qubits, with a strength determined by the parameter t. The third qubit is an ancilla qubit that is used to store the result of the operation.

source
MonitoredQuantumCircuits.WeakMYY Type
julia
WeakMYY <: MeasurementOperation

The WeakMYY operation is a three-qubit gate that applies a weak YY interaction between the first two qubits, with a strength determined by the parameter t. The third qubit is an ancilla qubit that is used to store the result of the operation.

source
MonitoredQuantumCircuits.WeakMZZ Type
julia
WeakMZZ <: MeasurementOperation

The WeakMZZ operation is a three-qubit gate that applies a weak ZZ interaction between the first two qubits, with a strength determined by the parameter t. The third qubit is an ancilla qubit that is used to store the result of the operation.

source
MonitoredQuantumCircuits.X Type
julia
X() <: Operation

The X operation is a single-qubit gate that flips the state of a qubit.

source
MonitoredQuantumCircuits.Y Type
julia
Y() <: Operation

The Y operation is a single-qubit gate that applies a phase of π to the |1⟩ state.

source
MonitoredQuantumCircuits.Z Type
julia
Z() <: Operation

The Z operation is a single-qubit gate that applies a phase of π to the |1⟩ state.

source
MonitoredQuantumCircuits.isClifford Method
julia
isClifford(operation::Operation)

Return whether the operation is a Clifford operation.

source
MonitoredQuantumCircuits.isSimulator Method
julia
isSimulator(backend::Backend)

Return whether the backend is a simulator.

source
MonitoredQuantumCircuits.nQubits Method
julia
nQubits(geometry::Geometry)

Return the number of qubits in the geometry.

source
MonitoredQuantumCircuits.nQubits Method
julia
nQubits(operation::Operation)

Return the number of qubits the operation acts on.

source

Qiskit

MonitoredQuantumCircuits.Qiskit.CliffordSimulator Type
julia
CliffordSimulator <: AerSimulator

A Qiskit Aer stabilizer simulator.

source
MonitoredQuantumCircuits.Qiskit.GPUStateVectorSimulator Type
julia
GPUStateVectorSimulator <: AerSimulator

A Qiskit Aer statevector simulator that runs on the GPU.

source
MonitoredQuantumCircuits.Qiskit.GPUTensorNetworkSimulator Type
julia
GPUTensorNetworkSimulator <: AerSimulator

A Qiskit Aer tensor network simulator that runs on the GPU.

source
MonitoredQuantumCircuits.Qiskit.IBMBackend Type
julia
IBMBackend <: MonitoredQuantumCircuits.QuantumComputer

A Qiskit backend that runs on IBM's quantum computers.

source
MonitoredQuantumCircuits.Qiskit.StateVectorSimulator Type
julia
StateVectorSimulator <: AerSimulator

A Qiskit Aer statevector simulator.

source

QuantumClifford

MonitoredQuantumCircuits.QuantumClifford.GPUPauliFrameSimulator Type
julia
GPUPauliFrameSimulator()

A QuantumClifford stabilizer Pauli frame simulator that runs on the GPU.

source
MonitoredQuantumCircuits.QuantumClifford.PauliFrameSimulator Type
julia
PauliFrameSimulator()

A QuantumClifford stabilizer Pauli frame simulator.

source
MonitoredQuantumCircuits.QuantumClifford.TableauSimulator Type
julia
TableauSimulator(qubits::Integer; mixed=false, basis=:Z)

A QuantumClifford stabilizer simulator.

source
MonitoredQuantumCircuits.QuantumClifford.projectXX! Method
julia
projectXX!::MixedDestabilizer, q1::Int, q2::Int;
           keep_result::Bool = true, phases::Bool = true)

Project in-place onto the +1 eigenspace of X_q1 ⊗ X_q2. Returns the modified tableau, the index of the anticommuting stabiliser row (or 0 if none existed), and – when keep_result=true – the measurement outcome (Bool).

This is the two-qubit analogue of projectX! and is just as fast (O(n) word scans, no allocations, fully inlined).

source
MonitoredQuantumCircuits.QuantumClifford.projectYY! Method
julia
projectYY!::MixedDestabilizer, q1::Int, q2::Int;
           keep_result::Bool = true, phases::Bool = true)

Project in-place onto the +1 eigenspace of Y_q1 ⊗ Y_q2. Returns the modified tableau, the index of the anticommuting stabiliser row (or 0 if none existed), and – when keep_result=true – the measurement outcome (Bool).

This is the two-qubit analogue of projectY! and is just as fast (O(n) word scans, no allocations, fully inlined).

source
MonitoredQuantumCircuits.QuantumClifford.projectZZ! Method
julia
projectZZ!::MixedDestabilizer, q1::Int, q2::Int;
           keep_result::Bool = true, phases::Bool = true)

Project in-place onto the +1 eigenspace of Z_q1 ⊗ Z_q2. Returns the modified tableau, the index of the anticommuting stabiliser row (or 0 if none existed), and – when keep_result=true – the measurement outcome (Bool).

This is the two-qubit analogue of projectZ! and is just as fast (O(n) word scans, no allocations, fully inlined).

source
MonitoredQuantumCircuits.QuantumClifford.state_entropy Method
julia
state_entropy(state::AbstractStabilizer)

Calculate entropy, i.e. the mixedness, of a stabilizer state from QuantumClifford.

source
MonitoredQuantumCircuits.QuantumClifford.tmi Method
julia
tmi(state::AbstractStabilizer, A, B, C)

Calculate the tripartite mutual information of a stabilizer state from QuantumClifford.

source