ApCoCoALib:RingF2

From ApCoCoAWiki

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.

References

[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.