#include <gf2.h>
Inheritance diagram for GF2:
Public Types | |
typedef bool | Element |
typedef GF2RandIter | RandIter |
Public Methods | |
Object Management | |
GF2 (int p=2, int exp=1) | |
GF2 (const GF2 &F) | |
const GF2 & | operator= (const GF2 &F) |
Element & | init (Element &x, const integer &y=0) const |
BitVector::reference | init (BitVector::reference x, const integer &y=0) const |
std::_Bit_reference | init (std::_Bit_reference x, const integer &y=0) const |
integer & | convert (integer &x, Element y) const |
Element & | assign (Element &x, Element y) const |
BitVector::reference | assign (BitVector::reference x, Element y) const |
std::_Bit_reference | assign (std::_Bit_reference x, Element y) const |
integer & | cardinality (integer &c) const |
integer & | characteristic (integer &c) const |
Arithmetic Operations | |
x <- y op z; x <- op y These operations require all elements, including x, to be initialized before the operation is called. Uninitialized field base elements will give undefined results. | |
Object Management bool | areEqual (Element x, Element y) const |
bool | isZero (Element x) const |
bool | isOne (Element x) const |
Input/Output Operations | |
Arithmetic Operations std::ostream & | write (std::ostream &os) const |
std::istream & | read (std::istream &is) |
std::ostream & | write (std::ostream &os, Element x) const |
std::istream & | read (std::istream &is, Element &x) const |
std::istream & | read (std::istream &is, BitVector::reference x) const |
std::istream & | read (std::istream &is, std::_Bit_reference x) const |
Arithmetic Operations | |
x <- y op z; x <- op y These operations require all elements, including x, to be initialized before the operation is called. Uninitialized field base elements will give undefined results. | |
Element & | add (Element &x, Element y, Element z) const |
BitVector::reference | add (BitVector::reference x, Element y, Element z) const |
std::_Bit_reference | add (std::_Bit_reference x, Element y, Element z) const |
Element & | sub (Element &x, Element y, Element z) const |
BitVector::reference | sub (BitVector::reference x, Element y, Element z) const |
std::_Bit_reference | sub (std::_Bit_reference x, Element y, Element z) const |
Element & | mul (Element &x, Element y, Element z) const |
BitVector::reference | mul (BitVector::reference x, Element y, Element z) const |
std::_Bit_reference | mul (std::_Bit_reference x, Element y, Element z) const |
Element & | div (Element &x, Element y, Element z) const |
BitVector::reference | div (BitVector::reference x, Element y, Element z) const |
std::_Bit_reference | div (std::_Bit_reference x, Element y, Element z) const |
Element & | neg (Element &x, Element y) const |
BitVector::reference | neg (BitVector::reference x, Element y) const |
std::_Bit_reference | neg (std::_Bit_reference x, Element y) const |
Element & | inv (Element &x, Element y) const |
BitVector::reference | inv (BitVector::reference x, Element y) const |
std::_Bit_reference | inv (std::_Bit_reference x, Element y) const |
BitVector::reference | axpy (BitVector::reference r, Element a, Element x, Element y) const |
std::_Bit_reference | axpy (std::_Bit_reference r, Element a, Element x, Element y) const |
Element & | axpy (Element &r, Element a, Element x, Element y) const |
Inplace Arithmetic Operations | |
x <- x op y; x <- op x | |
Arithmetic Operations Element & | addin (Element &x, Element y) const |
BitVector::reference | addin (BitVector::reference x, Element y) const |
Element & | addin (std::_Bit_reference x, Element y) const |
Element & | subin (Element &x, Element y) const |
BitVector::reference | subin (BitVector::reference x, Element y) const |
Element & | subin (std::_Bit_reference x, Element y) const |
Element & | mulin (Element &x, Element y) const |
BitVector::reference | mulin (BitVector::reference x, Element y) const |
Element & | mulin (std::_Bit_reference x, Element y) const |
Element & | divin (Element &x, Element y) const |
BitVector::reference | divin (BitVector::reference x, Element y) const |
std::_Bit_reference | divin (std::_Bit_reference x, Element y) const |
Element & | negin (Element &x) const |
BitVector::reference | negin (BitVector::reference x) const |
std::_Bit_reference | negin (std::_Bit_reference x) const |
Element & | invin (Element &x) const |
BitVector::reference | invin (BitVector::reference x) const |
std::_Bit_reference | invin (std::_Bit_reference x) const |
Element & | axpyin (Element &r, Element a, Element x) const |
BitVector::reference | axpyin (BitVector::reference r, Element a, Element x) const |
Element & | axpyin (std::_Bit_reference r, Element a, Element x) const |
Static Public Methods | |
Inplace Arithmetic Operations int | getMaxModulus () |
|
Element type |
|
Random iterator generator type. It must meet the common object interface of random element generators as given in the the archetype RandIterArchetype. |
|
Default constructor. |
|
Copy constructor. Constructs Modular object by copying the field. This is required to allow field objects to be passed by value into functions.
|
|
|
|
|
|
Addition. x = y + z This function assumes all the field base elements have already been constructed and initialized.
|
|
|
|
|
|
Inplace Addition. x += y This function assumes both field base elements have already been constructed and initialized.
|
|
Equality of two elements. This function assumes both field base elements have already been constructed and initialized.
|
|
|
|
|
|
Assignment of one field base element to another. This function assumes both field base elements have already been constructed and initialized.
|
|
|
|
|
|
Natural AXPY. r = a * x + y This function assumes all field elements have already been constructed and initialized.
|
|
|
|
|
|
Inplace AXPY. r += a * x This function assumes all field elements have already been constructed and initialized. Purely virtual
|
|
Cardinality. Return integer representing cardinality of the domain. Returns a non-negative integer for all domains with finite cardinality, and returns -1 to signify a domain of infinite cardinality.
|
|
Characteristic. Return integer representing characteristic of the domain. Returns a positive integer to all domains with finite characteristic, and returns 0 to signify a domain of infinite characteristic.
|
|
Conversion of field base element to a template class T. This function assumes the output field base element x has already been constructed, but that it is not already initialized.
|
|
|
|
|
|
Division. x = y / z This function assumes all the field base elements have already been constructed and initialized.
|
|
|
|
|
|
Inplace Division. x /= y This function assumes both field base elements have already been constructed and initialized.
|
|
|
|
|
|
|
|
Initialization of field base element from an integer. Behaves like C++ allocator construct. This function assumes the output field base element x has already been constructed, but that it is not already initialized. This is not a specialization of the template function because such a specialization is not allowed inside the class declaration.
|
|
|
|
|
|
Multiplicative Inverse. x = 1 / y This function assumes both field base elements have already been constructed and initialized.
|
|
|
|
|
|
Inplace Multiplicative Inverse. x = 1 / x This function assumes the field base elementhas already been constructed and initialized.
|
|
One equality. Test if field base element is equal to one. This function assumes the field base element has already been constructed and initialized.
|
|
Zero equality. Test if field base element is equal to zero. This function assumes the field base element has already been constructed and initialized.
|
|
|
|
|
|
Multiplication. x = y * z This function assumes all the field base elements have already been constructed and initialized.
|
|
|
|
|
|
Inplace Multiplication. x *= y This function assumes both field base elements have already been constructed and initialized.
|
|
|
|
|
|
Additive Inverse (Negation). x = - y This function assumes both field base elements have already been constructed and initialized.
|
|
|
|
|
|
Inplace Additive Inverse (Inplace Negation). x = - x This function assumes the field base element has already been constructed and initialized.
|
|
Assignment operator Required by the archetype
|
|
|
|
|
|
Read field base element. This function assumes the field base element has already been constructed and initialized.
|
|
Read field.
|
|
|
|
|
|
Subtraction. x = y - z This function assumes all the field base elements have already been constructed and initialized.
|
|
|
|
|
|
Inplace Subtraction. x -= y This function assumes both field base elements have already been constructed and initialized.
|
|
Print field base element. This function assumes the field base element has already been constructed and initialized.
|
|
Print field.
|