aboutsummaryrefslogtreecommitdiff
path: root/vendor/github.com/boombuler/barcode/utils/galoisfield.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/boombuler/barcode/utils/galoisfield.go')
-rw-r--r--vendor/github.com/boombuler/barcode/utils/galoisfield.go65
1 files changed, 0 insertions, 65 deletions
diff --git a/vendor/github.com/boombuler/barcode/utils/galoisfield.go b/vendor/github.com/boombuler/barcode/utils/galoisfield.go
deleted file mode 100644
index 68726fbf..00000000
--- a/vendor/github.com/boombuler/barcode/utils/galoisfield.go
+++ /dev/null
@@ -1,65 +0,0 @@
-package utils
-
-// GaloisField encapsulates galois field arithmetics
-type GaloisField struct {
- Size int
- Base int
- ALogTbl []int
- LogTbl []int
-}
-
-// NewGaloisField creates a new galois field
-func NewGaloisField(pp, fieldSize, b int) *GaloisField {
- result := new(GaloisField)
-
- result.Size = fieldSize
- result.Base = b
- result.ALogTbl = make([]int, fieldSize)
- result.LogTbl = make([]int, fieldSize)
-
- x := 1
- for i := 0; i < fieldSize; i++ {
- result.ALogTbl[i] = x
- x = x * 2
- if x >= fieldSize {
- x = (x ^ pp) & (fieldSize - 1)
- }
- }
-
- for i := 0; i < fieldSize; i++ {
- result.LogTbl[result.ALogTbl[i]] = int(i)
- }
-
- return result
-}
-
-func (gf *GaloisField) Zero() *GFPoly {
- return NewGFPoly(gf, []int{0})
-}
-
-// AddOrSub add or substract two numbers
-func (gf *GaloisField) AddOrSub(a, b int) int {
- return a ^ b
-}
-
-// Multiply multiplys two numbers
-func (gf *GaloisField) Multiply(a, b int) int {
- if a == 0 || b == 0 {
- return 0
- }
- return gf.ALogTbl[(gf.LogTbl[a]+gf.LogTbl[b])%(gf.Size-1)]
-}
-
-// Divide divides two numbers
-func (gf *GaloisField) Divide(a, b int) int {
- if b == 0 {
- panic("divide by zero")
- } else if a == 0 {
- return 0
- }
- return gf.ALogTbl[(gf.LogTbl[a]-gf.LogTbl[b])%(gf.Size-1)]
-}
-
-func (gf *GaloisField) Invers(num int) int {
- return gf.ALogTbl[(gf.Size-1)-gf.LogTbl[num]]
-}