Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Multi-Dimensional HGP codes. / 3D Toric Code #33

Closed
oliverweissl opened this issue Mar 20, 2024 · 9 comments · Fixed by #45
Closed

Multi-Dimensional HGP codes. / 3D Toric Code #33

oliverweissl opened this issue Mar 20, 2024 · 9 comments · Fixed by #45

Comments

@oliverweissl
Copy link

oliverweissl commented Mar 20, 2024

Really nice library, and it seems very useful for one of my projects!
I was wondering if you plan to extend the HGP functionality to produce n-dimensional codes aswell?
This would be very helpful to construct a 3D Toric code for example.

@perlinm
Copy link
Collaborator

perlinm commented Mar 20, 2024

Thank you! I would be happy to add additional functionality, particularly if it is helpful or useful to somebody 🙂

To add the n-dimensional HGP code, I need to understand it (or review a PR/implementation written by somebody else). Do you have a reference I could use? Is this the right place to look?

@perlinm
Copy link
Collaborator

perlinm commented Mar 24, 2024

Assuming that I understand the request, I think Eq. 14 here (arXiv version of the paper linked above) gives me a concrete construction that "looks like" a hypergraph product of n classical codes. However, this product gives me an n-complex, in which any pair of adjacent boundary operators can be used to define a CSS code. So in total, the n-complex gives me n-1 CSS codes. Which of these codes is "the" hypergraph product of n classical codes?

Apologies in advance if the things I am saying do not make sense. I am learning this stuff on the fly so I may be getting concepts or terminology wrong 😅

@oliverweissl
Copy link
Author

Hey, thanks for looking at the issue! Im not aware of any generalizable construction method implemented yet. However the 3D toric is coded in panqec. Im struggeling myself to understand it as Im developing a decoder for my masters thesis. However the current libraries are pretty restricted in the type of codes they have.

I have read a paper that describes the construction a bit differently to the one you have, I will try to find kt again!

@perlinm
Copy link
Collaborator

perlinm commented Mar 24, 2024

I see. Are you simply after the n-dimensional toric code? If so, perhaps I can add just that. I would still be interested in adding a multi-dimensional HGPCode, though.

@oliverweissl
Copy link
Author

oliverweissl commented Mar 25, 2024

Yes im trying to validate my decoder concept on different type of codes. For now Im sticking to Toric codes, because the lack of generalizable construction. Also only Toric codes would be a nice to cross validate different libraries :)

@perlinm
Copy link
Collaborator

perlinm commented Mar 26, 2024

I'll let @oliverweissl close this issue if+when it's addressed satisfactorily 🙂

@oliverweissl
Copy link
Author

oliverweissl commented Sep 12, 2024

@perlinm Hey i saw that the construction of the HGP for 2 classical codes (based on [arXiv:2202.01702]) is quite elegant in code.
I have similar formulation for HGP of 3 classical codes [arXiv:2409.04300v2], maybe this is useful

if not please ignore this :D

@perlinm
Copy link
Collaborator

perlinm commented Oct 2, 2024

Sorry for the delayed response!

Generally speaking, more code constructions sounds nice to have. Based on the text between Eqs. (3) and (4) of your paper, it sounds like your 3D HGP code construction is equivalent to the strategy I used to construct the GeneralizedSurfaceCode (note that each Chain_complex.tensor_product here is equivalent to a hypergraph product). Does that sound correct? If so, maybe we rather than hard-coding the 3-fold HGP, it would be better to go ahead and inductively define the n-fold HGP.

@oliverweissl
Copy link
Author

Hey thanks for the reply! This sounds correct to me. And having n-fold construction would be quite elegant, also I think you would be the first library that does this ( at least that im aware of)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants