|
| GF () |
| Constructor.
|
|
| GF (int qvalue) |
| Constructor.
|
|
| GF (int qvalue, int inexp) |
| Constructor.
|
|
| GF (const GF &ingf) |
| Copy constructor.
|
|
void | set (int qvalue, int inexp) |
| GF(q) equals alpha ^ inexp.
|
|
void | set (int qvalue, const bvec &vectorspace) |
| GF(q) equals the element that corresponds to the given vector space.
|
|
void | set_size (int qvalue) |
| set q=2^mvalue
|
|
int | get_size () const |
| Return q.
|
|
bvec | get_vectorspace () const |
| Returns the vector space representation of GF(q).
|
|
int | get_value () const |
| Returns the alpha exponent.
|
|
int | operator== (const GF &ingf) const |
| Equality check.
|
|
int | operator!= (const GF &ingf) const |
| Not-equality check.
|
|
void | operator= (const GF &ingf) |
| GF(q) equals ingf.
|
|
void | operator= (const int inexp) |
| GF(q) equals alpha^inexp.
|
|
void | operator+= (const GF &ingf) |
| sum of two GF(q)
|
|
GF | operator+ (const GF &ingf) const |
| sum of two GF(q)
|
|
void | operator-= (const GF &ingf) |
| Difference of two GF(q), same as sum for q=2^m.
|
|
GF | operator- (const GF &ingf) const |
| Difference of two GF(q), same as sum for q=2^m.
|
|
void | operator*= (const GF &ingf) |
| product of two GF(q)
|
|
GF | operator* (const GF &ingf) const |
| product of two GF(q)
|
|
void | operator/= (const GF &ingf) |
| division of two GF(q)
|
|
GF | operator/ (const GF &ingf) const |
| product of two GF(q)
|
|
Galois Field GF(q).
- Author
- Tony Ottosson
Galois field GF(q), where q = 2^m. Possible m values is m = 1,2,...,16. Elements are given as exponents of the primitive element alpha. Observe that the zeroth element are given as "-1". ( log(0)=-Inf ).
The following primitve polynomials are used to construct the fields:
-
GF(4): 1+x+x^2
-
GF(8): 1+x+x^3
-
GF(16): 1+x+x^4
-
GF(32): 1+x^2+x^5
-
GF(64): 1+x^2+x^6
-
GF(128): 1+x^3+x^7
-
GF(256): 1+x^2+x^3+x^4+x^8
-
GF(512): 1+x^4+x^9
-
GF(1024): 1+x^3+x^10
-
GF(2^11): 1+x^2+x^11
-
GF(2^12): 1+x+x^4+x^12
-
GF(2^13): 1+x+x^3+x^4+x^13
-
GF(2^14): 1+x+x^3+x^5+x^14
-
GF(2^15): 1+x+x^15
-
GF(2^16): 1+x+x^3+x^12+x^16
As indicated it is possible to use this class for binary elements, that is GF(2). However, this is less efficient in storage (each element take 5 bytes of memory) and in speed. If possible use the class BIN instead. Observe, also that the element "0" is called "-1" and "1" called "0".
Definition at line 74 of file galois.h.
void itpp::GF::set |
( |
int |
qvalue, |
|
|
const bvec & |
vectorspace |
|
) |
| |
|
inline |
GF(q) equals the element that corresponds to the given vector space.
The format is (...,c,b,a), where the element x is given as x=...+c*alpha^2+b*alpha+a.
Definition at line 269 of file galois.h.
References itpp::bin2dec(), it_assert_debug, and set_size().
bvec itpp::GF::get_vectorspace |
( |
| ) |
const |
|
inline |
Returns the vector space representation of GF(q).
The format is (...,c,b,a), where the element x is given as x=...+c*alpha^2+b*alpha+a.
Definition at line 276 of file galois.h.
References itpp::dec2bin().