User documentation for files RingF2.C and RingF2.H
These files contain an implementation of the field with 2 elements. The fields representation is Z/(2).
An instance of RingF2 can be created via
CoCoA::ring R = ApCoCoA::AlgebraicCore::NewRingF2();
To see if a given CoCoA::ring R is an instance of RingF2 you can check
bool b = ApCoCoa::AlgebraicCore::IsRingF2(R);
Furthermore, any instance of RingF2 can be used like any other ring in CoCoA. To create an element proceed as follows:
CoCoA::ring R = ApCoCoA::AlgebraicCore::NewRingF2(); CoCoA::RingElem e(r,1);
and e represents the ring element '1'. Some more details on how elements can be stored and retrieved from this ring can be found in the example ex-RingF16.C in ApCoCoALib's example directory.
Maintainer documentation for files RingF2.C and RingF2.H
This Ring is most likely not very useful, since Z/(2) already exists in CoCoA, although not hard-coded. Still, to complete Z/(2^p) for small p, this field was created.
Bugs, Shortcomings and other ideas
The current implementation does not support a lot of intractability with other rings. A set of Ringhomomorphisms could be implemented to allow a more easy switch between other implementations of F_2.
[http://apcocoa.org/wiki/ApCoCoA:Representation_of_finite_fields] - more information on the representation of finite fields..
[http://apcocoa.org/wiki/HowTo:Construct_fields] - a description, how the multiplication / division matrices were constructed, including the needed source-code / tools.