Magic State Factory Catalog

Contribute a factory

The catalogue grows with its community. Send a factory in whatever form you have it. We check it from its circuit and credit you on every class it adds.

  1. Check the catalogue

    Search for your parameters, for example [[49, 1, 5]], or for your gate, such as CCZ012. A factory that is already here still counts if yours needs fewer wires. If in doubt, send it.

  2. Gather what you have

    Any format works. For example:

    • a paper or arXiv link;
    • generator, parity-check or triorthogonal matrices, as text, CSV, LaTeX or an image;
    • circuits in any notation;
    • code or a notebook that builds the factories;
    • a construction described in words, precisely enough to write the circuit down.

    The catalogue holds factories whose output is a diagonal gate built from T, CS and CCZ, with distance at least 2, written as an explicit circuit. A family is fine. We list the members we can write down.

  3. Say who to credit

    • Names and affiliations, and the paper if the work is published.
    • Whether we may include and redistribute the factories, for example under a licence.
    • What you believe they are: n, k, d and the gate. We measure all of it, so a rough guess is fine.
    • A way to reach you with questions.

    Send what you have. We will ask about the rest.

  4. Send it

    The submission form is the easiest. Type a description below. It can be parameters, a gate, matrices, a construction in words or a link. The next page is a form on GitHub with your text already filled in, where you can also attach files. When you submit it, your text and files are saved in the repository's contributions folder automatically. You need a free GitHub account.

    Long matrices are better attached as a file on the next page.

    Pull request. Add one folder to the repository, named community_contributions/submissions/YYYY-MM-DD_surname_short-title/, holding your files as they are.

    No GitHub account? Email it instead.

  5. What happens next

    We convert your files into the catalogue's input format and re-derive every number from the circuit. Valid factories are integrated into the catalogue with appropriate citations.

    Classes are compared up to relabelling and a change of output basis by CNOT and S gates, at the same n, k and d.

  6. Format it yourself, if you like

    This step is optional. A factory has N wires. Wires 0 to k-1 are outputs and the rest are checks. Each column lists the wires one \pi/4 rotation acts on. The 15-to-1 factory of Bravyi and Kitaev reads:

    {"k": 1, "N": 5, "d": 3, "gate": "T0",
     "columns": [[0,1], [0,2], [0,1,2], [0,3], [0,1,3], [0,2,3], [0,1,2,3], [4],
                 [1,4], [2,4], [1,2,4], [3,4], [1,3,4], [2,3,4], [1,2,3,4]]}

    A generator matrix works too. Start from TEMPLATE.json, then check the file against the catalogue. The check writes nothing.

    python community_contributions/check_submission.py path/to/catalogue_input.json

    The full guide lists every field.

  7. Or just email

    If none of this suits you, email your factories to shubhamj810@gmail.com.