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).
| Modifier and Type | Field and Description |
|---|---|
static GenericGF | AZTEC_DATA_10Galois field for Aztec 10-bit data symbols (1024 elements). |
static GenericGF | AZTEC_DATA_12Galois field for Aztec 12-bit data symbols (4096 elements). |
static GenericGF | AZTEC_DATA_6Galois field for Aztec 6-bit data symbols (64 elements). |
static GenericGF | AZTEC_DATA_8Alias for DATA_MATRIX_FIELD_256. |
static GenericGF | AZTEC_PARAMGalois field for Aztec parameter symbols (16 elements). |
static GenericGF | DATA_MATRIX_FIELD_256Galois field for Data Matrix symbols (256 elements). |
static GenericGF | MAXICODE_FIELD_64Alias for AZTEC_DATA_6. |
static GenericGF | QR_CODE_FIELD_256Galois field for QR Code symbols (256 elements). |
| Constructor and Description |
|---|
GenericGF(int primitive,
int size,
int b)Create a representation of GF(size) using the given primitive polynomial. |
| Modifier and Type | Method and Description |
|---|---|
(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 | getGeneratorBase() |
(package private) GenericGFPoly | getOne()Multiplicative identity (one polynomial). |
int | getSize() |
(package private) GenericGFPoly | getZero()Additive identity (zero polynomial). |
(package private) int | inverse(int a) |
(package private) int | log(int a) |
(package private) int | multiply(int a,
int b) |
String | toString()Human-readable string representation of this Galois field. |
public static final GenericGF AZTEC_DATA_10
public static final GenericGF AZTEC_DATA_12
public static final GenericGF AZTEC_DATA_6
public static final GenericGF AZTEC_DATA_8
public static final GenericGF AZTEC_PARAM
public static final GenericGF DATA_MATRIX_FIELD_256
public static final GenericGF MAXICODE_FIELD_64
public static final GenericGF QR_CODE_FIELD_256
public GenericGF(int primitive,
int size,
int b)primitive - irreducible polynomial whose coefficients are represented by
the bits of an int, where the least-significant bit represents the constant
coefficientsize - the sizeb - 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.static int addOrSubtract(int a,
int b)GenericGFPoly buildMonomial(int degree, int coefficient)
int exp(int a)
public int getGeneratorBase()
GenericGFPoly getOne()
public int getSize()
GenericGFPoly getZero()
int inverse(int a)
int log(int a)
int multiply(int a,
int b)