-
Notifications
You must be signed in to change notification settings - Fork 299
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
Faster erasure codes #30
Comments
Without modifying ISA-L too much there are some quick optimizations possible: (1) Modify the Cauchy matrix structure to make the first row all ones similar to Vandermonde matrix by dividing each column by the first element in that column. (2) Use faster Schur-type-direct-Cauchy algorithm to produce LDU-decomposition of the generator matrix directly in O(N^2) instead of O(N^3). |
thanks for the suggestion, Catid. |
Thanks for the suggestions. Note that ec_encode_data() functions work for any encoding matrix. On (2) do I understand this correctly that it will only work on Cauchy encoding matrices? We did write a general matrix inverse using LU decomposition and a vectorized version but it seems the LU one was only marginally faster and only for very large n. We could add more example encoding matrices gf_gen_cauchy2_matrix(), etc. if useful. |
Yeah I think it’s slower for small matrices. The Cauchy specific LDU method was faster past 16 or so IIRC but it has been a while since I tested that. Also it doesn’t improve performance for banded matrices found in streaming erasure codes |
Please consider this newer O(N Log N) time approach for future versions of ISA-L erasure codes, which supports up to 65536 symbols:
https://github.com/catid/leopard
The text was updated successfully, but these errors were encountered: