-
Notifications
You must be signed in to change notification settings - Fork 160
Add RS decoder #872
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
base: main
Are you sure you want to change the base?
Add RS decoder #872
Conversation
Jonas, I ran some additional tests on the decoder. It's producing correct results and seems to be pretty efficient around n = O(100). However, it's running ~300-400s on my machine for n=1000. Is that acceptable or we want to optimize more? I can push the new tests to your branch if that helps. |
That's a good point. The implementation is rather naive, so there are a few low hanging optimisations, we could try. If it breaks that much for n=1000, I suspect just using iterators could be a worthwhile optimisation. I'll work on it and get back to you. |
@arnab-roy I found the bottleneck and got the decoding down to 120 ms for n=1024 which should be fine. |
@jonas-lj Amazing! I tested your new code and now the same tests are 1-2s in my machine (likely more than the numbers you got due to crude measurements and machine specs). Ran some more edge cases as well, and all working :) |
Yea, the trick to get a 99% improvement in performance is just to start from something really bad #til |
Implement a RS decoder with Gao's algorithm. This relies on implementations of polynomial division and extended GCD for polynomials, so the polynomial module has been extended accordingly.