-
Notifications
You must be signed in to change notification settings - Fork 47
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
Conversation
… enable syndrome ECC setups for BP Note that `vect` is replaced with `vcat` to avoid `promote_typeof` stackover flow, as reported also in JuliaLang/julia#45454
@Krastanov I made some small changes to make the tests pass. I think it is now ready for review. Thank you! |
There was a problem hiding this 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.
Thanks for your comments! I have made them fixed. |
Co-authored-by: hanakl <hanakl@users.noreply.github.com>
…all that is needed
…, should we delete it?
…at might disappear
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:
|
Congrats on the merge! This is pretty awesome work. |
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:
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.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.