Skip to content

Conversation

@Fe-r-oz
Copy link

@Fe-r-oz Fe-r-oz commented Oct 4, 2024

This PR aims to introduce Coprime Bivariate Bicycle codes via Univariate Polynomial Ring from https://arxiv.org/pdf/2408.10001v1.

There were no quotient_ring quo method for univariate polynomial ring using ideal so I defined MpPolyRing in one variable. Please see the test-cases. The n values from Table 2 are correct but there is some discrepency in the k values. So, there is some error in the code, but I think that can be fixed.

I think you would like to make some changes to this implementation so that conventions with other codes are followed. Maybe we can use residue_ring instead of quo since we are considering univariate polynomial rings. Pardon, if I missed something or the current form is not that according to requirement.

Maybe I should use this structure instead?

julia> S, π = polynomial_ring(GF(2), :π)
(Univariate polynomial ring in x over GF(2), π)

julia> R, = residue_ring(S, π^(l*m));

or 

julia> S, π = polynomial_ring(GF(2), :π)
(Univariate polynomial ring in π over GF(2), π)

julia> R, _ = quo(S, π^(l*m));

I think coceptually, there is not much that needs to be changed, It's mostly the BivaraiteBicycleCode with some more freedom in the input. It's just using one Univariate Polynomial ring π = xy. BivaraiteBicycleCode has some restrictions that like Polynomials had to be 2 variables, and also you are collecting l and m from collect(exponents(h)) but in univariate case, it's not a 2D vector as well, so we can't do exps[1][2] for example. That's why I defined a new method, CoPrimeiBivariateBicycleCode which gives correct n values from Table 2 of aforementioned paper. I hope can be fixed to give correct k values. I think I have messed up some small detail somewhere, that might be reason for k values discrepency.

Miscellaneous detail: The current dev version had some errors. GroupAlgebraElem not defined if you run the dev version locally. So, I had to do Pkg.resolve(), Pkg.update() to add Hecke as these are found there.

@Fe-r-oz
Copy link
Author

Fe-r-oz commented Oct 5, 2024

@esabo, I think the PR is ready for review. Thanks for your feedback.

@Fe-r-oz Fe-r-oz force-pushed the new branch 4 times, most recently from 4053d14 to 6c98047 Compare October 11, 2024 17:50
@Fe-r-oz
Copy link
Author

Fe-r-oz commented Oct 11, 2024

@esabo, Thank you for your comments. All the tests now pass for these codes. The documentation error is unrelated to this PR. Please do check these codes by running the tests on your end as well.

P.S. The Manifest file changed on it's own when I did Pkg.activate(), Pkg.instantiate(), Pkg.update(), Pkg.resolve() and it seems that is causing the documentation error.

@Fe-r-oz Fe-r-oz requested a review from esabo October 11, 2024 17:54
@esabo esabo merged commit c52fe61 into esabo:dev Oct 11, 2024
1 check failed
@Fe-r-oz Fe-r-oz deleted the new branch October 11, 2024 20:08
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.

2 participants