#include <galois.h>
Public Member Functions | |
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) | |
Friends | |
std::ostream & | operator<< (std::ostream &os, const GF &ingf) |
Output stream for GF(q). |
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 ).
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".
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.
References itpp::dec2bin().
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.
References itpp::bin2dec(), it_assert_debug, and set_size().