You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+4-13Lines changed: 4 additions & 13 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,19 +8,10 @@ A coding theory library for Julia.
8
8
9
9
The goal of this package is to develop a classical and quantum error-correcting codes package in as much native Julia as possible. The library is built around the Oscar.jl framework, and many thanks to Tommy Hofmann of these packages for helping this repo get off the ground. Anyone is welcome to contribute, although the final form of any accepted code may be standardized to maintain intra-package consistency.
10
10
11
-
At the moment, all functions work as intended for test cases but have not been unit tested thoroughly enough to guarantee accuracy and error free usage. All results from this library should be mentally checked and any bugs reported (or fixed and pushed). This is particularly true for the quantum part where algorithms become increasingly more complicated.
12
-
13
-
The generation of hyperbolic tilings (in tilings.jl) requires the [LINS package](https://github.com/FriedrichRober/LINS). Please use the [temporary fork](https://github.com/esabo/LINS.git) at the address below to fix a compatibility issue with the Sonata package. The probabilistic quantum minimum distance algorithm [QDistRnd](https://github.com/QEC-pages/QDistRnd.git) requires the corresponding GAP package. To install these, run
Quantum minimum distance functions are currently disabled due to a change in the underlying structs. DistRandCSS is still available via the built-in GAP interface.
11
+
At the moment, all functions work as intended for test cases but have not been unit tested thoroughly enough to guarantee 100% accuracy and error free usage. All results from this library should be mentally checked and any bugs reported (or fixed and pushed).
23
12
24
13
Parts of the library are multi-threaded and benefit greatly from the use of multiple cores.
25
14
26
-
A growing list of examples and tutorials are provided in the documentation (which is only slightly out of date).
15
+
The minimum distance functions are currently being rewritten and will reappear soon. Depending on what one is looking for, current functions may be sufficient. Feel free to reach out on the [Slack channel](https://join.slack.com/t/juliacodingtheory/shared_invite/zt-2u8n5h5wm-QqnXl2NZqRvTmGGEPumbqQ).
16
+
17
+
Improved documentation is currently a major to-do. Again, feel free to ask questions on Slack.
# sort LLRs from greatest to least (most positive to most negative)
69
+
# since negative implies an error is more likely here, the selection process will allow BP to run on columns which are still positive while fixing columns which are more likely to have an error to have an error
70
+
# this is similar to selecting a test pattern in OSD
# sort LLRs from greatest to least (most positive to most negative)
236
+
# since negative implies an error is more likely here, the selection process will allow BP to run on columns which are still positive while fixing columns which are more likely to have an error to have an error
237
+
# this is similar to selecting a test pattern in OSD
238
+
# ideally we can fix these, determine a syndrome for this, then run BP with this new syndrome
239
+
# the final result comes from combing the correction and fixed error
240
+
# I think it may suffice to skip this step and simply continue BP with the new fixed LLRs
241
+
# it is possible a column all the way on the left of the sort (with clearly no error here) can produce a loop and would therefore be fixed to an error
242
+
# this may be okay in the quantum picture due to degeneracy
243
+
# this would dramatically kick BP out of its local minimum
244
+
# we hope this doesn't kick us out so far to land in another logical coset (can we control this?)
245
+
# codes with a ton of loops (such as QCCs) may fix wayy too many columns to be errors
246
+
# as long as this doesn't cause BP to fail, this may be find for quantum codes due to degeneracy, although we increase the risk we jumped into another logical coset
247
+
248
+
# BP picture:
249
+
# the bits which are most reliably correct are those with high LLR values
250
+
# so sort by absolute value
251
+
# keep solving on the least reliable nodes while fixing bits we are more sure of
252
+
# this can have the same issues as above:
253
+
# assigning a definite value to an index which BP isn't yet sure about
254
+
# fixing too many bits
255
+
# as above, this relies on degeneracy
256
+
# to mimic the above approach, we still set all loopy columns to 1, even if it is strongly known to be not in error
257
+
# however, it may be advantageous to "listen" to BP better by fixing indices based on their sign, keeping nonerrors BP is sure about
258
+
# this can help by reducing the fixed error wt, helping keep us in the logical coset
259
+
# else
260
+
# we are unable to assign an interpretation to 0's and 1's in the received vector
261
+
# we could do standard reliability decoding where we take a parameter and look for test patterns inside the k least-reliable bits
262
+
# or we could proceed as above with the BP picture
0 commit comments