2D Local implementation of Bivariate Bicycle qLDPC codes: Toric Layouts #387
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR implements the 2D implementation of Bivariate Bicycle Codes via Toric Layout and Embeddings in ℤ² from the paper: https://arxiv.org/pdf/2404.17676. All these Toric layouts has been tested and cross checked with the original implementation. Some details are presented here: #352 (comment). The original python implementation is quite slow and causes many allocations. I have used sparse arrays and optimized using sparse matrices which causes almost 0 allocations and speed-up in run-time as well.
I think these low-hanging fruits from the paper will be useful in circuit simulation of these codes, but I have not familiar with those part of the paper yet.
Toric Layouts:
(Lemma 4, Page 16)The paper has not tried plotting these Toric Layouts. They only plotted the Embedding in ℤ² (the second graph). But I think, we can also plot the Toric Layouts as following:
Code instance:
BivariateBicycle(15,3 ,[9 ,1 ,2] , [0 ,2 ,7])
Code instance:
BivariateBicycle(12,12, [3 ,2 ,7] ,[3 ,1 ,2 ])
Embeddings in ℤ²
Towards the end, we will be able to Plot the Embeddings of these codes in 2D. Probably, this will be divided into smaller PR so each PR is well documented and tested separately.