2016 » | Quirk - Drag-and-Drop Quantum Circuit Simulator |
2021 » | Stim - QEC Circuit Simulation Library |
2023 » | Crumble - (PROTOTYPE) Point-and-Click 2D QEC Circuit Builder |
18 Jan 2024 » |
[Talk at NFSQ] Halving the size of Surface Codes with Yokes![]() ![]() |
14 Dec 2023 » |
[Paper] New circuits and an open source decoder for the color code![]() |
07 Dec 2023 » |
[Paper] Yoked surface codes![]() |
18 Nov 2023 » |
[Paper] Tetrationally Compact Entanglement Purification![]() |
02 Nov 2023 » |
[Talk at QEC23] Less Bacon, More Threshold![]() ![]() |
20 May 2023 » |
[Paper] Less Bacon More Threshold![]() |
22 Apr 2023 » | The mundane uses of quantum computers |
28 Mar 2023 » |
[Paper] Sparse Blossom: correcting a million errors per core second with minimum-weight matching![]() |
23 Feb 2023 » |
[Paper] Cleaner magic states with hook injection![]() |
14 Feb 2023 » |
[Paper] Inplace Access to the Surface Code Y Basis![]() |
04 Feb 2023 » |
[Paper] Relaxing Hardware Requirements for Surface Code Circuits using Time-dynamics![]() |
07 Sep 2022 » |
[Talk at Quantum Summer Symposium] A short history of the honeycomb code![]() |
26 Jun 2022 » |
[Paper] A Pair Measurement Surface Code on Pentagons![]() |
29 Apr 2022 » |
[Paper] Stability Experiments: The Overlooked Dual of Memory Experiments![]() |
29 Apr 2022 » |
[Paper] Quantum Dictionaries without QRAM![]() |
10 Apr 2022 » | Briskly Biased Bits |
24 Feb 2022 » |
[Paper] Benchmarking the Planar Honeycomb Code![]() |
07 Feb 2022 » |
[Talk at iQuHACK] Ideas for quantum computing projects![]() |
30 Sep 2021 » |
[Talk] Software and the Honeycomb Code![]() ![]() |
22 Sep 2021 » |
[Video] Qubits vs Bits: The Kickback Effect![]() |
24 Aug 2021 » |
[Paper] A Fault-Tolerant Honeycomb Memory![]() |
06 Aug 2021 » |
[Talk at DEF CON Crypto and Privacy Village] How expensive is quantum factoring, really?![]() ![]() |
05 Aug 2021 » |
[Talk at QPL] Stim: A fast stabilizer circuit simulator![]() ![]() |
22 Jul 2021 » |
[Video] Discussing Honeycomb code code with Michael Newman![]() |
11 Jul 2021 » |
[Video] Estimating the threshold of a new quantum code using stim and pymatching![]() |
22 Jun 2021 » |
[Paper] A CCCZ gate performed with 6 T gates![]() |
29 Mar 2021 » |
[Video] The non-quantum delayed choice eraser![]() |
03 Mar 2021 » |
[Paper] Stim: a fast stabilizer circuit simulator![]() |
03 Dec 2020 » |
[Talk at IQFA] Spacetime Tradeoffs when Optimizing Large Quantum Computations![]() |
03 Dec 2020 » |
[Paper] Quantum block lookahead adders and the wait for magic states![]() |
09 Nov 2020 » |
[Paper] Focus beyond quadratic speedups for error-corrected quantum advantage![]() |
06 Nov 2020 » |
[Paper] Even more efficient quantum computations of chemistry through tensor hypercontraction![]() |
30 Aug 2020 » | Inverting Clifford Tableaus |
11 Aug 2020 » |
[Paper] Offloading Quantum Computation by Superposition Masking![]() |
05 Aug 2020 » |
[Talk] A Rosetta Stone for the ZS Calculus and the Surface Code![]() |
21 Jul 2020 » | Decorrelated Depolarization |
14 Jul 2020 » |
[Paper] Compilation of Fault-Tolerant Quantum Heuristics for Combinatorial Optimization![]() |
06 Apr 2020 » |
[Talk at QCTIP2020] How to factor 2048 bit RSA integers in 8 hours using 20 million noisy qubits![]() ![]() |
01 Apr 2020 » | Factoring the largest number ever with a quantum computer |
27 Feb 2020 » |
[Talk at Simons Institute] Estimating the Fault Tolerant Cost of Classically Intractable Quantum Computations![]() ![]() |
28 Nov 2019 » | Surviving Chain Link Erasures |
20 Oct 2019 » | Producing an N+1 Qubit CCZ State with an N Qubit Adder |
30 Sep 2019 » |
[Paper] Surface code dislocations have code distance L+O(1)![]() |
25 Aug 2019 » | Spooky Pebble Games and Irreversible Uncomputation |
08 Aug 2019 » | The Frauchiger-Renner Paradox is a Sleeping Beauty Problem |
07 Aug 2019 » | Verifying Measurement Based Uncomputation |
06 Aug 2019 » | Weakening the Born Rule |
23 May 2019 » |
[Paper] How to factor 2048 bit RSA integers in 8 hours using 20 million noisy qubits![]() |
22 May 2019 » |
[Paper] Flexible layout of surface code computations using AutoCCZ states![]() |
22 May 2019 » | Constant Depth Encoded Addition |
21 May 2019 » |
[Paper] Approximate encoded permutations and piecewise quantum adders ![]() |
18 May 2019 » |
[Paper] Windowed quantum arithmetic![]() |
15 Apr 2019 » |
[Paper] Asymptotically Efficient Quantum Karatsuba Multiplication![]() |
27 Feb 2019 » |
[Paper] Improved Fault-Tolerant Quantum Simulation of Condensed-Phase Correlated Electrons via Trotterization![]() |
13 Feb 2019 » | Improving Block Code Distillation (Part 3) |
06 Feb 2019 » |
[Paper] Qubitization of Arbitrary Basis Quantum Chemistry Leveraging Sparsity and Low Rank Factorization![]() |
04 Dec 2018 » |
[Paper] Efficient magic state factories with a catalyzed |CCZ> to 2|T> transformation![]() |
09 Jul 2018 » | Improving Block Code Distillation (Part 2) |
12 Jun 2018 » | Improving Block Code Distillation (Part 1) |
20 May 2018 » | Roulette Selection fit for a Quantum Computer |
09 May 2018 » |
[Paper] Low overhead quantum computation using lattice surgery![]() |
09 May 2018 » |
[Paper] Encoding Electronic Spectra in Quantum Circuits with Linear T Complexity![]() |
09 May 2018 » |
[Paper] Encoding Electronic Spectra in Quantum Circuits with Linear T Complexity![]() |
23 Apr 2018 » | A Slightly Larger S Gate |
01 Apr 2018 » | Announcement: My Quantum Cloud Service |
10 Feb 2018 » | The Bee Movie Singularity |
04 Feb 2018 » | Canonicalizing H+S+CNOT+T Circuits |
28 Jan 2018 » | Why Will Quantum Computers be Slow? |
12 Dec 2017 » | A Classical Delayed Choice Experiment |
28 Nov 2017 » |
[Paper] Improved Techniques for Preparing Eigenstates of Fermionic Hamiltonians![]() |
21 Nov 2017 » | Proxy Phasing and Computed Phasing |
13 Nov 2017 » |
[Paper] Quantum Simulation of Electronic Structure with Linear Depth and Connectivity![]() |
19 Sep 2017 » |
[Paper] Halving the cost of quantum addition![]() |
28 Aug 2017 » | Shor's Quantum Factoring Algorithm |
22 Aug 2017 » | Breaking Down the Quantum Swap |
06 Aug 2017 » | Visualizing 2-Qubit Entanglement |
31 Jul 2017 » | My Preprints #2: A Slightly Smaller Surface Code S Gate |
31 Jul 2017 » |
[Paper] A slightly smaller surface code S gate![]() |
23 Jul 2017 » | Reversible Computation isn't Free |
09 Jul 2017 » | Impractical Experiments #4: High Powered Phase Estimation |
28 Jun 2017 » | My Preprints #1: Dirty Period Finding |
23 Jun 2017 » |
[Paper] Factoring with n+2 clean qubits and n-1 dirty qubits![]() |
18 Jun 2017 » | [Meta] Who Owns Quirk? |
11 Jun 2017 » | Computing Fractional Fourier Transforms |
06 Jun 2017 » | Simple Algorithm for Multiplicative Inverses mod 2ⁿ |
24 May 2017 » | Efficient Controlled Phase Gradients |
02 May 2017 » | Quirk v2.0 - Bowing to Convention |
09 Apr 2017 » | Thinking of Operations as Controls |
02 Apr 2017 » | Difficulty of Classical Control |
13 Mar 2017 » | Why care about circuit width? |
04 Mar 2017 » | Bugs from the Future: Hadamard Coins and Implicit Measurement |
01 Mar 2017 » | [Meta] Joining Google's Quantum AI Team |
26 Feb 2017 » | Trouble Adding Constants into Qubit Registers |
11 Feb 2017 » | Quantum Bomb Detector Detectors |
18 Dec 2016 » | Quantum Data Locking vs Recognizable Data |
12 Dec 2016 » | Turning Detection into Correction with Quantum Teleportation |
04 Dec 2016 » | Improper Priors |
27 Nov 2016 » | Bra-Ket Notation Trivializes Matrix Multiplication |
20 Nov 2016 » | From Swapping to Teleporting with Simple Circuit Moves |
13 Nov 2016 » | Half-Baked Thoughts for a Quantum Scripting Language |
07 Nov 2016 » | Quirk's Performance History |
22 Oct 2016 » | Unfathomable Bugs #9: Lossy Shader Packing |
03 Oct 2016 » | The Quantum Version of the One-Time Pad is Teleportation |
27 Sep 2016 » | Post-selection is cheating |
20 Sep 2016 » | A Resource State won't get you out of Clifford Jail |
10 Sep 2016 » | Java should Autobox Arrays, or maybe not |
31 Jul 2016 » | Turning Gradients into Additions into QFTs |
05 Jul 2016 » | Wait, What?: Genetic Algorithms for Digital Quantum Simulations |
26 Jun 2016 » | [Un]popular Qubits #4: Affecting Atoms by Looking at Emitted Light |
19 Jun 2016 » | Quantum vs NP #2-B: Simulating 'A linear time quantum algorithm for 3SAT' |
14 Jun 2016 » | Using Multiplication to Cut Gates from the QFT |
05 Jun 2016 » | Erasure is Post-Selection |
29 May 2016 » | Ultradense Coding would allow FTL Signalling |
22 May 2016 » | My Quantum Circuit Simulator: Quirk |
15 May 2016 » | Reducing Test Boilerplate with Ascii Diagrams |
24 Apr 2016 » | Eve's Quantum Clone Computer |
05 Apr 2016 » | Gradually Copying a Quantum Brain |
27 Mar 2016 » | Protecting Control Flow with Nested Evals |
16 Mar 2016 » | Wrapping Structure Around Batched Methods |
01 Mar 2016 » | Paper as Problem: 'Non-local measurements via quantum erasure' |
25 Feb 2016 » | Don't Use Github Pages' Jekyll Support |
22 Feb 2016 » | Catching a Crypto Bug in RedPhone |
30 Jan 2016 » | [Un]popular Qubits #3: The Quantum Pigeonhole Principle |
19 Jan 2016 » | Unknowable, but Equal |
10 Jan 2016 » | Using Eigendecomposition to Convert Rotations and Interpolate Operations |
07 Jan 2016 » | Deflating Delayed Choice Quantum Erasure |
28 Dec 2015 » | Quantum Teleportation's Two Subroutines |
08 Nov 2015 » | My Misconceptions: The Quantum Latch |
01 Nov 2015 » | Quantum vs NP #2: Zachary B. Walters 'A linear time quantum algorithm for 3SAT' |
26 Oct 2015 » | [Un]popular Qubits #2: The Quantum Zeno Effect |
11 Oct 2015 » | YOU versus Bell Tests and the No Communication Theorem |
08 Oct 2015 » | Rule of Thumb: Make Generic Code Value-Agnostic instead of Null-Hostile |
17 Sep 2015 » | My Misconceptions: The Unintegrable Function |
02 Sep 2015 » | Partially Erasing Entanglement: Measuring a GHZ Triplet into a Bell Pair |
27 Aug 2015 » | Quantum vs NP #1-B: Simulating a Claimed NP=BQP Algorithm |
01 Aug 2015 » | Quantum vs NP #1: Checking a Claimed BQP=NP Algorithm |
20 Jul 2015 » | Unit Testing with Symbols |
05 Jul 2015 » | Things I Can't Solve: Multiplication |
22 Jun 2015 » | Using Quantum Gates instead of Ancilla Bits |
12 Jun 2015 » | Constructing Large Increment Gates |
05 Jun 2015 » | Constructing Large Controlled Nots |
17 May 2015 » | Impractical Experiments #3: Treating Controls Like Values |
01 May 2015 » | A Quantum Network Flow Puzzle |
25 Apr 2015 » | Entangled States are like Unitary Matrices |
17 Jan 2015 » | Superdense Coding on the Fly and in Reverse |
25 Dec 2014 » | [Un]popular Qubits #1: Quantum Compression |
12 Dec 2014 » | Dust your Tests |
06 Dec 2014 » | Perfect Symmetry Breaking with Quantum Computers |
24 Nov 2014 » | Converting Rotations into "Nice" Qubit Operations |
15 Nov 2014 » | Interpolating Qubit Operations |
29 Jul 2014 » | Logical Ingredients of a Quantum Computer |
08 Jul 2014 » | Puzzle: Boxing Megaspheres |
22 Jun 2014 » | Rule of Thumb: Preconditions Should be Public |
17 Jun 2014 » | Counter-intuitive Counterfactual Strategies |
07 Jun 2014 » | Eating Lions, Wolves, and Goats Faster |
03 Jun 2014 » | Don't Trust the DOM |
27 May 2014 » | Cancelling Cancellation |
15 May 2014 » | Lower Bounding the Space Complexity of One-Pass Algorithms |
11 May 2014 » | Storing Bandwidth with Quantum Teleportation |
03 May 2014 » | Storing Bandwidth with Superdense Coding |
27 Apr 2014 » | The (not) Quantum Laplace Transform |
13 Apr 2014 » | Puzzle: Deflipping a Quantum Coin |
04 Apr 2014 » | Unfathomable Bugs #8: Day to Day |
31 Mar 2014 » | Rule of Thumb: The Condition is the Message |
27 Mar 2014 » | Don't Make Javascript Equality Look Worse Than It Is |
25 Mar 2014 » | Bad Ideas #1: Java-Style Methods in Objective-C |
18 Mar 2014 » | Positive Bias and Testing |
16 Mar 2014 » | Puzzle: Encoding the Remaining Card |
11 Mar 2014 » | Ordering Cyclic Sequence Numbers |
07 Mar 2014 » | Building your own Quantum Fourier Transform |
01 Mar 2014 » | [Meta] A New Home |
19 Feb 2014 » |
What Quantum Computers Do Faster, with Caveats![]() |
09 Feb 2014 » |
Naming Things: Fail-Useful![]() |
29 Jan 2014 » |
Detecting Simple Cycles Forming, Faster![]() |
22 Jan 2014 » |
Third Party Bit Commitment![]() |
10 Jan 2014 » |
Angular Velocity is Simple![]() |
31 Dec 2013 » |
Collection Equality is Hard![]() |
22 Dec 2013 » |
Deadlocks in Practice: Don’t Hold Locks While Notifying![]() |
17 Dec 2013 » |
Brute Force Parallelization![]() |
11 Dec 2013 » |
A Year’s Worth of Opinions about Objective-C![]() |
03 Dec 2013 » |
Referencing Substrings Faster, without Leaking Memory![]() |
26 Nov 2013 » |
Not Crying Over Old Code![]() |
19 Nov 2013 » |
Exploring Universal Ternary Gates![]() |
12 Nov 2013 » |
Impractical Experiments #2: Securing Peer to Peer Fog of War against Map Hacks![]() |
05 Nov 2013 » |
Achieving Exponential Slowdown by Enumerating Twice![]() |
29 Oct 2013 » |
Using Immortality to Kill Accidental Callback Cycles![]() |
22 Oct 2013 » |
Cancellation Tokens (and Collapsing Futures) for Objective-C![]() |
15 Oct 2013 » |
Visualizing the Eigenvectors of a Rotation![]() |
08 Oct 2013 » |
Collapsing Futures in Objective-C![]() |
01 Oct 2013 » |
Bug Hunting #1: Garbled Audio from End to End![]() |
24 Sep 2013 » |
Impractical Experiments #1: Representing Numbers as Polynomials![]() |
17 Sep 2013 » |
Implementing Quantum Pseudo-Telepathy![]() |
09 Sep 2013 » |
Turn On Your Damn Warnings![]() |
03 Sep 2013 » |
Big-O Made Trivial![]() |
02 Sep 2013 » |
Unfathomable Bugs #7: The Broken Oven![]() |
27 Aug 2013 » |
Solomonoff’s Mad Scientist![]() |
26 Aug 2013 » |
Yearly Blogging Roundup #1![]() |
20 Aug 2013 » |
What isn’t a Monad![]() |
13 Aug 2013 » |
Searching a Sorted Matrix Faster![]() |
06 Aug 2013 » |
How to Read Nested Ternary Operators![]() |
30 Jul 2013 » |
My Bug, My Bad #4: Reading Concurrently![]() |
23 Jul 2013 » |
Whole API Testing with Reflection![]() |
16 Jul 2013 » |
Optimizing a Parser Combinator into a memcpy![]() |
09 Jul 2013 » |
Don’t Treat Paths Like Strings![]() |
02 Jul 2013 » |
Breaking a Toy Hash Function![]() |
25 Jun 2013 » |
Counting Iterators Lazily![]() |
18 Jun 2013 » |
Unfathomable Bugs #6: Pretend Precision![]() |
11 Jun 2013 » |
My Bug, My Bad #3: Accidentally Attacking WarCraft 3![]() |
04 Jun 2013 » |
Collapsing Types vs Monads (followup)![]() |
28 May 2013 » |
Collapsing Futures: Easy to Use, Hard to Represent![]() |
22 May 2013 » |
Eventual Exceptions vs Programming in a Minimal Functional Style![]() |
14 May 2013 » |
The Mystery of Flunf![]() |
07 May 2013 » |
Explain it like I’m Five: The Socialist Millionaire Problem and Secure Multi-Party Computation![]() |
02 May 2013 » |
Computer Science Blows My Mind![]() |
23 Apr 2013 » |
Transmuting Dice, Conserving Entropy![]() |
16 Apr 2013 » |
Rule of Thumb: Ask for the Clock![]() |
09 Apr 2013 » |
Rule of Thumb: Use Purposefully Weakened Methods![]() |
02 Apr 2013 » |
Rule of thumb: Preconditions Should be Checked Explicitly![]() |
26 Mar 2013 » |
Intersecting Linked Lists Faster![]() |
19 Mar 2013 » |
My Bug, My Bad #2: Sunk by Float![]() |
12 Mar 2013 » |
Repeat Yourself Differently![]() |
05 Mar 2013 » |
Grover’s Quantum Search Algorithm![]() |
26 Feb 2013 » |
Followup to Non-Nullable Types vs C#![]() |
19 Feb 2013 » |
Optimizing Just in Time with Expression Trees![]() |
12 Feb 2013 » |
When One-Way Latency Doesn’t Matter![]() |
05 Feb 2013 » |
Determining exactly if/when/where a moving line intersected a moving point![]() |
29 Jan 2013 » |
Emulating Actors in C# with Async/Await![]() |
22 Jan 2013 » |
Making an immutable queue with guaranteed constant time operations![]() |
15 Jan 2013 » |
Improving Checked Exceptions![]() |
08 Jan 2013 » |
Perishable Collections: The Benefits of Removal-by-Lifetime![]() |
01 Jan 2013 » |
Decoupling shared control![]() |
25 Dec 2012 » |
Decoupling inlined UI code![]() |
18 Dec 2012 » |
Linq to Collections: Beyond IEnumerable<T>![]() |
11 Dec 2012 » |
Publish your .Net library as a NuGet package![]() |
04 Dec 2012 » |
When null is not enough: an option type for C#![]() |
30 Nov 2012 » |
Unfathomable Bugs #5: Readonly or not![]() |
27 Nov 2012 » |
My Bug, My Bad #1: Fractal Spheres![]() |
20 Nov 2012 » |
Working around the brittle UI Virtualization in Windows 8![]() |
13 Nov 2012 » |
Encapsulating Angles![]() |
06 Nov 2012 » |
Unfathomable Bugs #4: Keys that aren’t![]() |
30 Oct 2012 » |
How would I even use a monad (in C#)?![]() |
23 Oct 2012 » |
Useful/Interesting Methods #1: Observable.WhenEach![]() |
16 Oct 2012 » |
Unfathomable Bugs #3: Stringing you along![]() |
09 Oct 2012 » |
Anonymous Implementation Classes – A Design Pattern for C#![]() |
02 Oct 2012 » |
Tasks for ActionScript 3 – Improving on Event-Driven Programming![]() |
24 Sep 2012 » |
Non-Nullable Types vs C#: Fixing the Billion Dollar Mistake![]() |
17 Sep 2012 » |
Unfathomable Bugs #2: Slashing Out![]() |
10 Sep 2012 » |
Abusing “Phantom Types” to Encode List Lengths Into Their Type![]() |
06 Sep 2012 » |
Constructive Criticism of the Reactive Extensions API![]() |
29 Aug 2012 » |
Unfathomable Bugs #1: You can have things! You can have things IN things! You can have …![]() |
05 Jun 2012 » |
The Visual Studio goes away![]() |
14 May 2012 » |
.Net’s time traveling StopWatch![]() |