galois_noasm.go 760 B

12345678910111213141516171819202122232425262728293031323334
  1. //+build !amd64 noasm appengine gccgo
  2. //+build !arm64 noasm appengine gccgo
  3. //+build !ppc64le noasm appengine gccgo
  4. // Copyright 2015, Klaus Post, see LICENSE for details.
  5. package reedsolomon
  6. func galMulSlice(c byte, in, out []byte, o *options) {
  7. mt := mulTable[c][:256]
  8. out = out[:len(in)]
  9. for n, input := range in {
  10. out[n] = mt[input]
  11. }
  12. }
  13. func galMulSliceXor(c byte, in, out []byte, o *options) {
  14. mt := mulTable[c][:256]
  15. out = out[:len(in)]
  16. for n, input := range in {
  17. out[n] ^= mt[input]
  18. }
  19. }
  20. // slice galois add
  21. func sliceXor(in, out []byte, sse2 bool) {
  22. for n, input := range in {
  23. out[n] ^= input
  24. }
  25. }
  26. func (r reedSolomon) codeSomeShardsAvx512(matrixRows, inputs, outputs [][]byte, outputCount, byteCount int) {
  27. panic("unreachable")
  28. }