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

Lifted and lifted product codes via Hecke's GroupAlgebra #356

Merged
merged 70 commits into from
Sep 26, 2024

Conversation

royess
Copy link
Contributor

@royess royess commented Sep 9, 2024

This PR aims to provide lifted and lifted product code construction.

Compared with the previous approach #312, the group algebra (or, group ring) functionality is replaced with the one provided by Hecke, which would benefit the maintenance. I have made the Hecke-dependent codes as an extension, named QuantumCliffordHeckeExt.

During implementation, there are the following adjustments concerning other parts of the repository:

  1. I have made changes to handle redundancy in parity checks. Previously, it was assumed in many places that code_n == code_k + code_s. This holds if the parity-check matrix does not have redundant rows. But with redundancy, as usually the cases for lifted product codes, this does not hold and will cause problems.
  2. I have relaxed some code property checks, also related to the redundancy.

Besides, when building circuits from subcircuits, I replace list unpacking with vcat because the former will trigger promotion errors when the number of gates gets large.

@royess royess marked this pull request as draft September 10, 2024 00:17
@royess royess marked this pull request as ready for review September 10, 2024 01:59
@royess
Copy link
Contributor Author

royess commented Sep 10, 2024

@Krastanov I made some small changes to make the tests pass. I think it is now ready for review. Thank you!

Copy link
Member

@Krastanov Krastanov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have not had time to make an actual review, but here are a couple of quick comments.

Project.toml Outdated Show resolved Hide resolved
src/ecc/codes/lifted_product.jl Outdated Show resolved Hide resolved
@royess
Copy link
Contributor Author

royess commented Sep 15, 2024

Thanks for your comments! I have made them fixed.

@Krastanov
Copy link
Member

Thanks, @royess , this is great! I made a bunch of small changes, each in a separate commit. I do not think they are blocking this merge, so if tests pass I will go ahead and make a release.

There were a few piracies and puns that I removed. Let me know if they were actually necessary for something.

Please look through each of the commits above and address the left-over TODOs. In particular:

  • documentation
  • the _adjoint function -- I have not deleted it yet, but where is it needed?
  • why were the changes to stab_looks_good made? They do not seem to be used

@Krastanov Krastanov merged commit 4801b11 into QuantumSavory:master Sep 26, 2024
15 of 16 checks passed
@Krastanov
Copy link
Member

Congrats on the merge! This is pretty awesome work.

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 this pull request may close these issues.

3 participants