A simple simulator for quantum stabilizer circuits based on Scott Aaronson, Daniel Gottesman, Improved Simulation of Stabilizer Circuits for Julia. Adapted from a Python implementation and uses a similar API.
This simulator can efficiently simulate Clifford operations on many qubits but does not support non-Clifford operations.
Install ChpSim with Julia's package manager:
julia -e 'using Pkg; Pkg.add("ChpSim")'
using ChpSim sim = ChpState(6) hadamard!(sim, 1) # Hadamard gate on the first qubit phase!(sim, 6) # S gate on the last qubit cnot!(sim, 2, 3) # CNOT gate with control on qubit 2 and target on 3 r = measure!(sim, 3) # Measure qubit 3 r.value # The boolean measurement, true or false r.determined # False if the qubit was in superposition before measurement
# Uses 1/8 the memory but is typically slower using ChpSim sim = ChpState(6, bitpack=true)