Class GenericGF
java.lang.Object
com.google.zxing.common.reedsolomon.GenericGF
public final class GenericGF extends Object
This class contains utility methods for performing mathematical operations over the Galois Fields. Operations use a given primitive polynomial in calculations.
Throughout this package, elements of the GF are represented as an int
for convenience and speed (but at the cost of memory).
- Author:
- Sean Owen, David Olivier
-
Field Summary
Fields Modifier and Type Field Description static GenericGFAZTEC_DATA_10static GenericGFAZTEC_DATA_12static GenericGFAZTEC_DATA_6static GenericGFAZTEC_DATA_8static GenericGFAZTEC_PARAMstatic GenericGFDATA_MATRIX_FIELD_256static GenericGFMAXICODE_FIELD_64static GenericGFQR_CODE_FIELD_256 -
Constructor Summary
Constructors Constructor Description GenericGF(int primitive, int size, int b)Create a representation of GF(size) using the given primitive polynomial. -
Method Summary
Modifier and Type Method Description (package private) static intaddOrSubtract(int a, int b)Implements both addition and subtraction -- they are the same in GF(size).(package private) GenericGFPolybuildMonomial(int degree, int coefficient)(package private) intexp(int a)intgetGeneratorBase()(package private) GenericGFPolygetOne()intgetSize()(package private) GenericGFPolygetZero()(package private) intinverse(int a)(package private) intlog(int a)(package private) intmultiply(int a, int b)StringtoString()
-
Field Details
-
Constructor Details
-
GenericGF
public GenericGF(int primitive, int size, int b)Create a representation of GF(size) using the given primitive polynomial.- Parameters:
primitive- irreducible polynomial whose coefficients are represented by the bits of an int, where the least-significant bit represents the constant coefficientsize- the size of the fieldb- the factor b in the generator polynomial can be 0- or 1-based (g(x) = (x+a^b)(x+a^(b+1))...(x+a^(b+2t-1))). In most cases it should be 1, but for QR code it is 0.
-
-
Method Details
-
getZero
GenericGFPoly getZero() -
getOne
GenericGFPoly getOne() -
buildMonomial
- Returns:
- the monomial representing coefficient * x^degree
-
addOrSubtract
static int addOrSubtract(int a, int b)Implements both addition and subtraction -- they are the same in GF(size).- Returns:
- sum/difference of a and b
-
exp
int exp(int a)- Returns:
- 2 to the power of a in GF(size)
-
log
int log(int a)- Returns:
- base 2 log of a in GF(size)
-
inverse
int inverse(int a)- Returns:
- multiplicative inverse of a
-
multiply
int multiply(int a, int b)- Returns:
- product of a and b in GF(size)
-
getSize
public int getSize() -
getGeneratorBase
public int getGeneratorBase() -
toString
-