atlas_q.stabilizer_backend.HybridSimulator#

class atlas_q.stabilizer_backend.HybridSimulator(n_qubits, use_stabilizer=True, chi_max=64, device='cuda')[source]#

Bases: object

Hybrid simulator that uses stabilizer backend for Clifford parts and switches to MPS when non-Clifford gates appear

Usage:

sim = HybridSimulator(n_qubits=100, use_stabilizer=True) sim.h(0) sim.cnot(0, 1) sim.t(0) # Automatically switches to MPS here sim.measure_all()

Methods

cnot(control, target)

CNOT gate

get_statistics()

Get simulation statistics

h(qubit)

Hadamard gate

measure(qubit)

Measure qubit

s(qubit)

Phase gate

swap(qubit1, qubit2)

SWAP gate (Clifford)

t(qubit)

T gate (non-Clifford!)

x(qubit)

Pauli-X gate

z(qubit)

Pauli-Z gate

__init__(n_qubits, use_stabilizer=True, chi_max=64, device='cuda')[source]#

Methods

__init__(n_qubits[, use_stabilizer, ...])

cnot(control, target)

CNOT gate

get_statistics()

Get simulation statistics

h(qubit)

Hadamard gate

measure(qubit)

Measure qubit

s(qubit)

Phase gate

swap(qubit1, qubit2)

SWAP gate (Clifford)

t(qubit)

T gate (non-Clifford!)

x(qubit)

Pauli-X gate

z(qubit)

Pauli-Z gate

h(qubit)[source]#

Hadamard gate

s(qubit)[source]#

Phase gate

x(qubit)[source]#

Pauli-X gate

z(qubit)[source]#

Pauli-Z gate

cnot(control, target)[source]#

CNOT gate

t(qubit)[source]#

T gate (non-Clifford!)

swap(qubit1, qubit2)[source]#

SWAP gate (Clifford)

measure(qubit)[source]#

Measure qubit

get_statistics()[source]#

Get simulation statistics