Class GenericGF
java.lang.Object
com.google.zxing.common.reedsolomon.GenericGF
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).
The size of the GF is assumed to be a power of two.
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final GenericGF
static final GenericGF
static final GenericGF
static final GenericGF
static final GenericGF
static final GenericGF
private final int[]
private final int
private final int[]
static final GenericGF
private final GenericGFPoly
private final int
static final GenericGF
private final int
private final GenericGFPoly
-
Constructor Summary
ConstructorsConstructorDescriptionGenericGF
(int primitive, int size, int b) Create a representation of GF(size) using the given primitive polynomial. -
Method Summary
Modifier and TypeMethodDescription(package private) static int
addOrSubtract
(int a, int b) Implements both addition and subtraction -- they are the same in GF(size).(package private) GenericGFPoly
buildMonomial
(int degree, int coefficient) (package private) int
exp
(int a) int
(package private) GenericGFPoly
getOne()
int
getSize()
(package private) GenericGFPoly
getZero()
(package private) int
inverse
(int a) (package private) int
log
(int a) (package private) int
multiply
(int a, int b) toString()
-
Field Details
-
AZTEC_DATA_12
-
AZTEC_DATA_10
-
AZTEC_DATA_6
-
AZTEC_PARAM
-
QR_CODE_FIELD_256
-
DATA_MATRIX_FIELD_256
-
AZTEC_DATA_8
-
MAXICODE_FIELD_64
-
expTable
private final int[] expTable -
logTable
private final int[] logTable -
zero
-
one
-
size
private final int size -
primitive
private final int primitive -
generatorBase
private final int generatorBase
-
-
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
-