Craig Gidney
banner
craiggidney.bsky.social
Craig Gidney
@craiggidney.bsky.social
Research scientist on Google's quantum team, working on reducing the cost of quantum error correction.

Useful tools I've made:
- Quirk: https://algassert.com/quirk
- Stim: https://github.com/quantumlib/stim
- Crumble: https://algassert.com/crumble
Stim has received its first AI slop pull request: github.com/quantumlib/S...

(It's actually not the first AI generated pull request that's been submitted, but the other one was actually a correct bug fix thus not slop.)
October 27, 2025 at 5:08 PM
For confused people checking the link and not seeing this anymore: the typo got fixed
October 22, 2025 at 6:28 PM
My contribution to arxiv.org/abs/2510.10967 is a space-efficient strategy for modular division under superposition. It's based on recording the branches taken during a GCD, to decompose a number+modulus into their "dialog representation", which unlike binary is entirely linear.
October 14, 2025 at 4:40 AM
I'll be speaking at the Simons Institute this Thursday: simons.berkeley.edu/events/quant... (Hopefully my flight doesn't get cancelled this time.)

Talk Title: Optimizing the Annoying Stuff: Reducing Costs Obscured by the Abstract Circuit Model

Abstract: attached as image
October 13, 2025 at 10:23 PM
Blog post: "Actually, you can't test if quantum uses complex numbers" algassert.com/post/2501

I doom the concept of that 2021 Nature paper by showing how to compile any distributed quantum protocol into real-only gates while preserving locality.
September 15, 2025 at 4:20 AM
Remember the Nature paper constructing an experiment to distinguish real-number-only QM from complex-number-using QM?

In the supplementary material, they admit it doesn't work if pre-shared entanglement is present. Which there's no way to test for. So the experiment doesn't actually do the thing.
September 12, 2025 at 1:42 AM
Apparently September 5th is "cultivate with fold-transversal S" day:

arxiv.org/abs/2509.05232

arxiv.org/abs/2502.017...

arxiv.org/abs/2509.05212
September 8, 2025 at 9:53 PM
Was wondering why my code suddenly got HALF AS FAST.

I traced it to extra error info.. in a switch default that never even runs! I think the compiler was unconditionally constructing a location for the temporary string or something?? 🤮

Clear example why people trust C more than C++.
August 27, 2025 at 1:15 AM
An identity that'd be great... if it did 2 things instead of 3.

If one of the two CCZs on the right wasn't there, it'd yield an n-qubit incrementer with ̶4̶n̶→3n T gates.

If the CCCZ wasn't there, it'd yield n single-shared-control Toffolis to be done with ̶4̶n̶→3n T gates.
August 2, 2025 at 1:51 PM
The key idea is to just eagerly delete inconvenient qubits using X basis measurements, and fix the resulting phase shifts later.
August 1, 2025 at 3:08 AM
The first novel thing I did in quantum computing was find a way add +1 to a register using O(1) space and O(n) gates. For 10 years I've wanted to know how to generalize that from x+=1 to x+=C... and I finally figured out a way to do it!

arxiv.org/abs/2507.23079
August 1, 2025 at 3:03 AM
Based on Zenodo stats, people like the cultivation and factoring papers way more than my others. In the same league as downloads of the below surface code threshold experiment data!

Could be recency bias (average rate should drop over time) but the totals are already higher.
July 11, 2025 at 8:37 PM
I found a nice way to draw multi-qubit-parity controls.

Lattice surgery likes accessing these kinds of operators, so it'd be counter-productive to decompose them using CX gates while hoping a later step would put them back together. Having notation that avoids that is handy.
July 9, 2025 at 3:22 PM
Quantum attacks on elliptic curve crypto have costs dominated by one operation: uncomputing a division (see fig15 and fig20 of arxiv.org/abs/2302.06639).

Masking makes it easy to *compute* a division, but isn't reversible (arxiv.org/abs/2008.04577). Very unusual situation. I bet it can be fixed.
May 30, 2025 at 6:04 PM
I'm often asked if I'll redo the 2019 quantum factoring estimate. Denser storage by yokes, smaller magic factories by cultivation, slimmer approx arithmetic by Chevignard et al… surely the cost is lower now?

Yes, it's lower now.

security.googleblog.com/2025/05/trac...

arxiv.org/abs/2505.15917
May 23, 2025 at 1:25 PM
Mike finally paid for the "pro" version of sketchup, so we owned the 3d models attached to the paper, meaning the yoked surface codes paper is now published! www.nature.com/articles/s41...

The message of this paper is: anytime someone says they're 10x better than surface codes, actually it's 4x.
May 14, 2025 at 10:14 PM
Months ago, Greg K-M told me something amazing: the QFT is approximated by a 1D-local circuit!

Well.. not quite. I realized that'd make the Draper adder local, so carries couldn't possibly work. Greg and others then proved the local circuit works in most relevant cases: arxiv.org/abs/2505.00701
May 2, 2025 at 8:47 PM
I added MBQC decompositions to the stim gate documentation (github.com/quantumlib/S...).

These were made by hand (with automation to solve the feedback), so I kinda wonder if it's possible to do substantially better. Like... my SQRT_ZZ uses 8 two-qubit measurements. Surely that's suboptimal?
April 25, 2025 at 8:08 AM
A diagram of the 3 coupler surface code cycle (from arxiv.org/abs/2412.14360).

It's interesting people missed it for so long. I'd have sworn it was impossible before we found it. I think it was hard to find because it oscillates between two surface codes. Probably lots of stuff like that out there.
April 24, 2025 at 8:25 AM
Tomorrow I'm giving a zoom talk on magic state cultivation at the Simons quantum Colloquium.

Apr 8, 10am PST, see simons.berkeley.edu/programs-eve...

Cultivation is the (current) culmination of a decade of work ending the reign of T gates as the dominant cost in fault tolerant quantum computation.
April 7, 2025 at 5:30 PM
More evidence you should be thinking about fault tolerance in terms of circuits, not codes: arxiv.org/abs/2504.02749

An error correcting code is a cross section of a fault tolerant circuit. Cross sections are useful, but so is standing back and considering the whole object.
April 7, 2025 at 12:01 AM
The catch is that Shor's algorithm is too easy for small numbers. It works fast even if you replace the quantum computer with a random number generator. And the circuits I was giving to the computer are enormous; far larger than its error rate allowed. I forced it to be a random number generator.
April 1, 2025 at 10:27 PM
For sigbovik, I factored all 8 bit ints (up to 255) with a quantum computer github.com/strilanc/fal...

I did it as legit as I possibly could. I ran a correct circuit with no optimization shenanigans. I did correct pre/postprocessing.

It took 121 quantum samples to finish the entire task.

But...
April 1, 2025 at 10:26 PM
Wrote down the brute force case by case has-to-be-right-by-being-explicit version of single-qubit Clifford multiplication. Then applied identities for longer than I want to admit. It got a lot smaller (see image).
March 6, 2025 at 8:29 PM
I'm adding the rest of the single qubit cliffords to the next version of stim. It's just convenient, when generating/optimizing/parsing circuits, to know for sure that every rotation can be a single instruction.

Now tempted to define a CliffordString class... Just haven't *needed* it yet.
March 5, 2025 at 10:03 PM