Commit Graph

5 Commits (jerasure-matrix)

Author SHA1 Message Date
Elias Naur 49be604db0
Add an efficient implementation of shard counts up to 65536 (#191)
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
- Documentation
- Detailed Tests
- 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.
2022-07-21 14:27:10 +02:00
Klaus Post 6ef9059245
Add codeql (#192) 2022-07-13 16:25:26 +02:00
Klaus Post 2f19c81be4
Reduce generated code (#185)
* Reduce generated code

Use a define (with hacks)
2022-03-24 13:25:40 +01:00
Klaus Post daf81ef0bd
Use VPTERNLOGD on GOAMD64=v4 (#182)
* Use VPTERNLOGD on GOAMD64=v4
* Bump to Go 1.18
2022-03-16 11:10:29 +01:00
Klaus Post 7761c8f7cd
Use Workflows (#169)
* Use Workflows
* Go 1.17 build tags
* Do races separately.
2021-09-01 18:55:02 +02:00