Cute, but the set of quantum gates is so limited that simulating them is trivial, and in particular you don’t need to sample multiple iterations to estimate the probability distribution because you already know it exactly.
There’s a browser emulator that does up to 16 qubits. Assuming half-precision floats, the Commodore 64 could do 6 in just the RAM or 7 if you use a floppy for extra storage. I wonder if there’s a more compact way to implement radical integers; a quick search doesn’t yield anything.
Edit: Storing them symbolically would probably be the best way. If we assume most figures won’t have more than one layer of nesting I wildly guess you could store them in half the space and add a qubit as a result.
If you’re good with linear algebra it’s not the most complicated thing to implement. It gets exponentially wider as you scale up but at it’s heart it’s still just basic linear operators on complex vectors.
Or, alternatively, since they are already making the (reasonable) compromise of working with a restricted gate set, they could expand their gate set to the Clifford group and then use the CHP algorithm to scale to much larger systems.
I haven’t looked into CHP’s implementation. What do you know about it?
The home page for it is here. It’s based on a result known as the Gottesman-Knill Theorem which shows (constructively, i.e. providing a concrete algorithm) that quantum circuits consisting solely of Clifford gates (that is, CNOT + Hadamard + Phase, hence CHP) can be simulated efficiently classically.
Hmm, interesting. Which gates are missing if you want to, say, implement a Quantum Fourier transform?
There are lots of possible choices of universal gate sets. However, if you are starting with Clifford gates, then it turns out to be sufficient for you to add support for a T=sqrt(S) gate; essentially T and H have the property that these two gates by themselves are sufficient to efficiently approximate any 1-qubit gate arbitrarily well (by combining these discrete rotations about the two different angles in the Bloch sphere in specific ways via the Solovay-Kitaev Theorem), and being able to perform an arbitrary 1-qubit gate and having access to an entangling 2-qubit gate (CNOT) lets you extend this to an efficient arbitrarily good approximation of any gate on an any number of qubits.