-
Notifications
You must be signed in to change notification settings - Fork 251
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
Add an efficient implementation of shard counts up to 65536 #191
Conversation
Great stuff! I will take a look tomorrow. |
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.
Nice work @elias-orijtech and thank you! Just some initial nits, please take a look.
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.
Just want tests to pass before merge. Feel free to extend the deadline.
4931acb
to
0fdeedf
Compare
This is a O(n*log n) implementation of Reed-Solomon codes, ported from the C++ library https://github.com/catid/leopard. The implementation is based on the paper "Novel Polynomial Basis with Fast Fourier Transform and Its Application to Reed-Solomon Erasure Codes" Several TODOs are left for future commits: - Performance optimizations, in particular SIMD and multiple goroutines - Streaming methods - Merging of reedSolomonFF16 and reedSolomon types - Turn the straight C++ port into more idiomatic Go This change also bumps one race testing timeout, to ensure adequate time on CI.
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.
Thank you, well done and LGTM @elias-orijtech! Thank you for the review @klauspost and the ball is in your court, please help with a merge!
This is a O(n*log n) implementation of Reed-Solomon
codes, ported from the C++ library https://github.com/catid/leopard.
The implementation is based on the paper
"Novel Polynomial Basis with Fast Fourier Transform
and Its Application to Reed-Solomon Erasure Codes"
Several TODOs are left for future commits:
CC @odeke-em